- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 与或图搜索问题 华北电力大学 计算机系 刘丽 学习目标 了解一般的与或图搜索问题 掌握与或图的启发式搜索算法AO* 了解博弈树搜索问题 掌握博弈树搜索中的 极小极大方法 α-β剪枝搜索方法 知识点 与或图搜索问题 状态空间搜索问题 一个节点的后继节点之间是“或”的关系 与或图搜索问题 一个节点其部分或全部后继节点是“与”的关系 博弈树的搜索 简单的与或图例子 2.1 基本概念 与或图是一个超图,节点间通过连接符连接 K-连接符:从一个父节点指向一组k个后继节点的节点集 基本概念 解图 与或图中某一个节点n到节点集N的一个解图类似于普通图中的一条解路径 解图的求法: 从节点n开始,正确选择一个外向连接符,再从该连接符所指的每一个后继节点出发,继续选一个外向连接符,如此进行下去直到由此产生的每一个后继节点成为集合N中的一个元素为止 图2.2给出n0→{n7,n8}的三个解图 基本概念 基本概念 解图的递归定义 一个与或图G中,从节点n到节点集N的解图记为G’, G’是G的子图 若n是N的一个元素,则由单一节点组成 若n有一个指向节点{n1,…,nk}的外向连接符K,使得从每一个ni到N有一个解图(i=1,…,k),则由节点n,连接符K,及{n1,…,nk}中的每一个节点到N的解图所组成 否则n到N不存在解图 在搜索解图的过程中,还须要进行耗散值的计算 解图耗散值的计算 若解图的耗散值记为k(n,N),则可递归计算如下: 若n是N的一个元素,则k(n,N)=0 若n是一个外向连接符指向后继节点{n1,…,ni},并设该连接符的耗散值为Cn,则 k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为目标节点集 例:k-连接符的耗散为k 基本概念 局部图: 单一节点是一个局部图 对于一个局部图的任意叶节点n,选择一个n的外向连接符K,则该局部图、外向连接符K,以及K所连接的n的后继节点一起组成的图,仍然组成一个局部图 局部图的耗散值k(n,N),则: 若n是局部图的一个叶节点,则k(n,N)=h(n) 若n是一个外向连接符指向后继节点{n1,…,ni},并设该连接符的耗散值为Cn,则 k(n,N)=Cn+ k(n1,N) + … + k(ni,N) 能解节点(Solved) 终节点是能解节点 若非终节点有“或”子节点时,当且仅当其子节点至少有一能解时,该非终节点才能解 若非终节点有“与”子节点时,当且仅当其子节点均能解时,该非终节点才能解 在与/或图上执行搜索过程,其目的在于表明起始结点是有解的 不能解节点(Unsolved) 没有后裔的非终节点是不能解节点 若非终节点有“或”子节点,当且仅当所有子节点均不能解时,该非终节点才不能解 若非终节点有“与”子节点时,当至少有一个子节点不能解时,该非终节点才不能解 普通图搜索的情况 f(n) = g(n) + h(n) 对n的评价实际是对通过n的这条路径的评价 与或图: 对局部图的评价 AO及AO*搜索算法 目的:在问题的完整的隐含图中扩展生成出包含初始结点和目的结点集合的连通的明显子图 方法:必须对当前已生成出的与或图中的所有结点实施是否为可解结点的标注过程,如果起始结点被标注为可解的,则搜索过程可成功地结束;如果起始结点还不能被标注为可解的,则应当继续扩展生成结点(尽可能地记录,所有生成的结点中,哪些结点被标注了可解的,以便减少下一次标注过程的工作量) 同样地,对不可解结点也同样如此 AO及AO*搜索算法 利用结点的可解/不可解性质,能从搜索图中删去可解结点的任何不可解结点的子结点;同样地,能删去不可解结点的所有的子结点 搜索这些被删除的结点是没有意义的,而只会降低搜索效率 与普通图搜索算法相类似,与/或图搜索算法有盲目搜索,如广度优先搜索法、深度优先搜索法等;也有启发式搜索,如AO及AO*搜索法 AO*算法——两个过程1 图生成过程,即扩展节点 对于每一个已经扩展了的节点,AO*算法都有一个指针,指向该节点的后继节点中,耗散值小的那个连接符 从最优的局部图中选择一个节点扩展 图生成过程,就是从初始节点出发,按照该指针向下搜索,一直到找到一个未扩展的节点为止。然后扩展该节点。并对其后继节点赋估计耗散值和加能解标记 …… AO*算法——两个过程2 计算耗散值的过程 对当前的局部图重新计算耗散值,是逆向的计算过程 计算出节点n相对于每一个外向连接符的耗散值,从中选择一个最小值作为n的耗散值。并标记一个指针指向产生最小耗散值的外向连接符 对于n的父节点,进行同样的计算,重复这一过程,直到初始节点s为止 这时,从s出发,选择那些指针所指向的连接符得到的局部图,为
文档评论(0)