设为首页 - 加入收藏
广告 1000x90
您的当前位置:二四六天天好彩308K文字资料 > 博弈树搜索 > 正文

第四章与或图搜索ppt

来源:未知 编辑:admin 时间:2019-07-15

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  第四章 与或图搜索;问题: 在边长为 2 的正方形内,任意放置 5 个点,求证其中必存在两个点,它们之间的距离不大于?2。 问题可转化为:在四个单位正方形内,任意放置5个点,至少有两个点在同一正方形内。;问题: 假定我们已经会求矩形的面积,现在要求如图所示的五边形的面积。 方法分析: 五边形的面积转化为矩形面积。;求解步骤:;问题归约法: 当问题复杂时,可把初始问题分解成若干简单的子问题,若子问题仍复杂,可再进一步分解,直到这些子问题的解可直接得到。这种问题的描述和求解方法,称为~. 本原问题: 可直接解答的问题称为~ ,它是不必证明的、自然成立的. 归约法的组成: 1)一个初始问题的描述; 2)一组把问题变成子问题的算子 (分解或转换); 3)?一组本原问题的描述 不同的算子对应不同的关系,从而使问题归约的描述可用一个与或图的结构来表示.;2 与或图;定义:与或图就是包含与节点和或节点的图,即存在超弧的图,也称为超图. 超图与状态空间图有什么区别? 与或图是一种更一般的图. 定义:一超弧所相关的边数(K)被称为该超弧的度,实现的连接称为K-连接. K—连接符:从一个父节点指向一组含有K个后继节点的节点集.;在与或图中,节点 n0 有两个连接符:1-连接符指向节点 n1;2-连接符指向节点集合{n4、n5}; 对于节点 n0 来讲,n1 可称为或节点,n4、n5 可称为与节点。 ;3 与或图搜索;定义:不能解节点的递归定义为: 1.没有后裔的非终节点是不能解的节点; 2.若非终节点有 “或” 子节点时,当且仅当所有子节点均不能解时,该非终节点才不能解; 3.若非终节点有 “与” 子节点时,当至少有一子节点不能解时,该非终节点才不能解.;是由能解节点构成的一个子图,是包含一节点(n)到目的(终)节点集合(N)的、连通的能解节点的子图. 在一个与或图 G 中,从节点 n 到节点集 N 的解图记为 G?, G? 是 G 的子图. 1.若 n 是N的一个元素,则G?由单个节点n组成; 2.若 n 有一个指向节点集 {n1…,nk} 的外向连接符 K,使得从每一个节点 ni 到 N 有一个解图 (i=1,…,k),则 G?由节点 n,连接符 K,以及 {n1 ,…,nk}中的每一个节点到 N 的解图所组成; 3.否则 n 到 N 不存在解图. 如果 n=s 为初始节点,则解图为所求解问题的解图.;若解图的耗散值记为 k(n, N),则可递归计算如下: 若 n 是 N 的一个元素,则 k(n, N)=0; 若 n 有一个外向连接符指向其后继节点集合{n1…,ni},并设该连接符的耗散值为 Cn(一般k-连接符的耗散值=k ),则 k(n, N)= Cn+ k(n1, N)+…+ k(ni, N) 具有最小耗散值的解图称为最佳解图,其值也用 h*(n) 标记。;例:从节点 n 开始,正确选择一个外向连接符,一直进行下去直到产生的每一个后继节点成为集合N中的一个元素为止。下图给出了 n0 →{n7,n8}的三个解图(耗散值分别为 8,7,5).;与或图搜索与状态空间图搜索的区别:;4 与或图启发式搜索算法 AO*;7 S:={n}; 建立含 n 的节点集合S.(已扩展待修正) 8 Until S为空, do: 9 Begin (m为S中任一节点) 10 REMOVE(m, S),当 mc?{S};(m→mc ,从底层开始修正) 11 ? 修改 m 的耗散值 q(m): 对 m 指向节点集 (n1i,n2i, … nki) 的每一个连接符 i 分别计算qi, qi(m)=Ci+q(n1i)+…+q(nki), 并取 q(m):= min qi (m); ? 加(或修正)指针到 min qi (m) 的连接符上. IF M(nji, SOLVED) THEN M(m, SOLVED);(j=1,2,…,k)若该连接符的所有子节点都是能解的,则m也能解. 12 IF M(m, SOLVED) ? (q(m) ? q0(m)) THEN ADD(ma, S); m 能解或修正的耗散值与原先估算q0不同,则把m的所有先辈节点ma添加到S中. (能解或修正向上传递) 13 end (与8匹配) 14 ?end (与2匹配);两个过程的重复: 自上而下的图生长过程(4-6步): 先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终节点进行扩展,并对其后继节点赋估计耗散值和加能解标记. 自下而上的估价函数值的修正、连接符的标记和SOLVED的标注过程(7-12): 耗散值的修正从刚被扩展的节点n开始,其修正耗散值q(n)取所有估计值中最小的一个,然后根据耗散值递归计算公式逐级向上修正其先辈节点的耗散值.只有下层节点耗散值修正后,才可能影响到上一层节点的耗散值,如此一直修正到初始节点.; 例: 各节点启发值如图,k-连接符的耗散值= k, 求最佳解图. 应用 AO* 算法,经四个循环,可找到解图. 在第一次循环扩展节点 n0;然后,依次扩展节点 n1、n5、n4。 在节点 n4 被扩展之后,节点 n0 便被标注SOLVED,此时,通过向下跟踪有标记的连接符,便获得了解图. ;主要步骤 第4步(G’) 第5步(n) 第6步 第7步(S) 第11步 第12步 ;n0;不带括号的数是启发函数h(n)值,带括号数是估价函数q(n)的修正值;短箭头用来标记连接符,标明侯选局部解图;已经标注SOLVED的节点用黑心圆来表示。 ;讨论;与A*算法的区别;5 博弈树的搜索;1) Grundy 博弈;(5,1,1,MIN);搜索策略分析(以MAX方的角度) 对 MAX 节点(MIN控制), MAX 必须都能够获胜,即MAX必须考虑应付MIN的所有招法,故它为与节点. 对 MIN 节点(MAX控制), MAX 只需证明有一步能走赢就可以,即MAX只要考虑有一步棋使MIN无法招架就成,故它为或节点. 因此,对弈过程的搜索图就呈现出与或图表示的形式,从图可见,MAX方存在完全取胜的策略. 于是,寻找MAX方取胜的策略便和求与或图的解图(能解→能胜)一致起来,即MAX要获胜,在各层必须对所有与节点取胜,但只需对一个或节点取胜.;2) 博弈树的极大极小搜索法;选步的过程:;当用端节点的静态估计函数值求倒推值时,针对两位选手的控制力应采用不同的策略,从下往上逐层交替使用极大和极小的选值方法,故称为极大极小过程.;极大极小过程 MIN-MAX: 1. T:=(s, MAX),OPEN:=(s),CLOSED:=( ); 开始时树由初始节点构成,OPEN表只含有s. 2. LOOP1: IF OPEN =( ) THEN GO LOOP2; 3. n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED); 将n放到CLOSED表的前面,使第5步操作时深度大的节点优先被取出.(OPEN表先进先出, CLOSED表后进先出) 4. IF n 可直接判定为赢, 输或平局 THEN f(n):= ??-??0,GO LOOP1 ELSE EXPAND(n)?{ni}, ADD ({ni} ,T) IF d{ni}? k THEN ADD({ni}, OPEN) ,GO LOOP1 ELSE 计算 f(ni) GO LOOP1 ; ni达到深度k,计算端节点f值.;5. LOOP2:IF CLOSED=NIL,THEN GO LOOP3 ELSE nd=FIRST(CLOSED); 6.IF(nd ?MAX)? (f(nci? MIN)有值) THEN f(nd):=max{f(nci)},REMOVE(nd,CLOSED); 若MAX所有子节点均有值,则该MAX取其极大值. ELSE IF(nd ?MIN)? (f(nci? MAX)有值) THEN f(nd):=min{f(nci)},REMOVE(nd,CLOSED); 若MIN所有子节点均有值,则该MIN取其极小值. 7. GO LOOP2; 8. LOOP3:IF f(s)≠NIL THEN EXIT(END ? M(Move,T)) ; s有值,或则结束或标记走步.;例:在九宫格棋盘上,甲乙(MAX和MIN)二人轮流在空格中放入自己的棋子(一次一枚),谁先使自己的三子成一线就获胜,设甲先走用(?)表示,乙用( )表示,p表示某种格局,f (p)表示对格局的评价值。 赢线定义: 将棋盘的整行、整列或整条对角线称为赢线。如,一条赢线上只有?(或 )方的棋子或为空,而没有对方的棋子,那么这条赢线就称为?(或 )方的赢线。 f (p)定义: 1)MAX胜,f (p)=+? 2)MIN胜,f (p)=-? 3)若 p 不是可定胜负的格局,则 f (p) = fMAX(p) - fMIN(p);考虑走两步的搜索过程,并兼顾棋盘对称性条件 第一次调用算法产生的搜索树如下图所示,图中端节点下面是计算的f (p)值,非端节点的倒推值标记在圆圈内. 结论: 第1步的最好走法是把棋子下到中央位置. (为了使初始节点具有最大的倒推值);一字棋第1阶段的搜索树;一字棋第2阶段的搜索树 ;一字棋第3阶段的搜索树 ;3) ?-?搜索过程;改进思路: 若两个过程同时进行,再依一定的条件判断,有可能尽早剪掉一些无用的分支,那么就可能减少搜索量,这是?-?搜索的思想. 例:生成节点A后,马上进行静态估值,得知f(A)=-?后,便可断定再生成其余节点并进行估值计算是多余的,故可马上对MIN节点赋倒推值-?,不会影响MAX的最好优先走步的选择. 实现方法: 采用有界深度优先策略进行搜索,这样当生成达到规定深度的节点时,就立即计算其静态估值函数,而一旦某个非端节点有条件确定其倒推值时就立即计算赋值.;一字棋第1阶段?-?剪枝方法;在搜索过程中,通过记录并比较倒推值的上、下界并进行比较,就可以实现修剪操作,这种技术统称为?-?剪枝技术. 在实际修剪中,?、?的值可以随时修正,但满足如下条件: 极大值层的倒推值下界值?永不下降,实际的倒推值取其后继节点最终确定的倒推值中最大的一个倒推值. 极小值层的倒推值上界值?永不上??,其倒推值取其后继节点最终确定的倒推值中最小的一个倒推值.;在一个分支上进行?-?剪枝的判断规则: ?剪枝:若任一极小值层节点的?值小于或等于它任一先辈极大值层节点的?值,即 ?(先辈层)≥?(后继层),则可终止该MIN层中这个MIN节点以下的搜索,并设置这个MIN节点的最终的倒推值为?.(位置:MIN层的剪枝) ?剪枝:若任一极大值层节点的?值大于或等于它任一先辈极小值层节点的?值,即 ?(后继层)≥?(先辈层),则可终止该MAX层中这个MAX节点以下的搜索,并设置这个MAX节点的最终倒推值为?.(位置:MAX层的剪枝);?-?过程:保存?和?值,且满足条件时便进行剪枝,当初始节点的全部后继节点的最终倒推值都给出时,过程即结束,而最好的优先走步就是走向具有最高倒推值的那个后继节点.;比较是在极大值层节点和极小值层节点间进行的(非直系). 比较时是与先辈层节点(已经有了值的那些节点),不仅限于父辈. 只有一个节点的值固定以后,其值才能够向其父节点传递. ?-?剪枝搜索得到的最佳走步与极大极小方法得到的结果一致,但效率会提高. 生成搜索图和剪枝过程同时进行.;⑴;小结;改进策略;第四章 与或图搜索

本文链接:http://mzi-ads.com/boyishusousuo/666.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top