人工智能导论第二章与或图搜索问题.ppt

人工智能导论第二章与或图搜索问题.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能导论第二章与或图搜索问题,人工智能导论第二章与或图搜索问题PPT

第二章 与或图搜索问题 2.1 与或图的搜索 与或图是一个超图,节点间通过连接符连接。 K-连接符: 耗散值的计算 解图的耗散值记为k(n,N) ①若n是N的一个元素,则k(n,N)=0; ②若n是一个外向连接符指向后继节点{n1,…,ni},并设该连接符的耗散值为Cn,则 k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值 能解节点 终节点是能解节点(因为它们与本原问题相关连) 若非终节点有“或”子节点时,当且仅当其子节点至少有一能解时,该非终节点才能解。 若非终节点有“与”子节点时,当且仅当其子节点均能解时,该非终节点才能解。 不能解节点 没有后裔的非终节点是不能解节点。 若非终节点有“或”子节点,当且仅当所有子节点均不能解时,该非终节点才不能解。 若非终节点有“与”子节点时,当至少有一个子节点不能解时,该非终节点才不能解。 普通图的情况 f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路径的评价 与或图: 对局部图的评价 两个过程 图生成过程,即扩展节点 从最优的局部图中选择一个节点扩展 计算耗散值的过程 对当前的局部图从新计算耗散值 2.2与或图的启发式搜索算法AO*    在 算法中,对当前搜索图的"前沿"(即在OPEN表中的节点)节点进行评价,选取f值最小的节点进行扩展。回想一下,f是如何定义的? f(n) = g(n) + h(n)   其中g(n)表示的是已经求得的从初始节点到当前节点n的路径耗散值,h(n)表示的是从n到目标节点的最优路径耗散值的估计值。所以对节点n的评价,实际上是对"初始节点--节点n--目标节点"这一条路径的评价。   在与或图搜索中,由于"与"节点的存在,单纯对一个节点的评价已经不能反映解图的全面情况。与或图中的解图相当于普通图中的解路径。从上边所分析的,"对节点n的评价,实际上是对'初始节点--节点n--目标节点'这一条路径的评价"这一思路出发,我们可以很容易的想到,能否通过对局部解图进行评价,来达到类似于普通图中A*搜索的目的。AO*算法,正是这样的一种适用于与或图的搜索算法。 启发式的与或图搜索过程和普通图类似,也是通过评价函数f(n)来引导搜索过程。    对于与或图来说,由于局部图中有多个叶节点,不能像普通图搜索那样,通过对某一个节点的评价来实现对整个局部图的评价。在普通图搜索中,f(n)=g(n)+h(n),表面上是对n的评价,实际上是对通过n的这条路径的评价。因此对于与或图搜索来说,就是通过对局部图的评价来选择待扩展的节点。 下面首先讨论 算法本身,然后再通过示例说明搜索过程以及与 算法的某些差别。 1. 算法 算法可以划分为两个阶段。 第一阶段:图生成过程,即扩展节点。 对于每一个已经扩展了的节点, 算法都有一个指针,指向该节点的后继节点中,耗散值小的那个连接符。图生成过程,就是从初始节点出发,按照该指针向下搜索,一直到找到一个未扩展的节点为止。然后扩展该节点。从下面的讨论可以知道,这实际上扩展的是一个耗散值最小的局部图。 第二阶段:耗散值计算过程。 这是一个逆向的计算过程。设n为最新被扩展的节点,该节点有m个外向连接符连接n的所有后继节点。则根据耗散值的计算公式,可以计算出节点n相对于每一个外向连接符的耗散值。从中选择一个最小值作为n的耗散值。并标记一个指针指向产生最小耗散值的外向连接符。对于n的父节点,进行同样的计算。重复这一过程,直到初始节点s为止。这时,从s出发,选择那些指针所指向的连接符得到的局部图,为当前耗散值最小的局部图。 当连接符全部为1-连接符时,局部图就是一个路径,选择一个耗散值最小的局部图扩展,与第二章中从OPEN表中选择一个f值最小的节点扩展是一致的。 过程 : 1、建立一个搜索图G,G:=s,计算q(s)=h(s),IF GOAL(s)THEN M(s,SOLVED);开始时图G只包括s,耗散值估计为h(s),若s是终节点,则标记上能解。 2、Until s已标记上SOLVED,do: 3、begin 4、G′:=FIND(G);根据连接符标记(指针)找出一个待扩展的局部解图G′。 5、n:=G′中的任一非终节点;选一个非终节点作为当前节点。 6、EXPAND(n),生成子节点集{nj},计算q(nj)=h(nj),其中nj G,G:=ADD({nj},G),IF GOAL(nj) THEN M(nj, SOLVED);对G中未 出现的子节点计算耗散值,若有终节点则加能解标记,然后把n的子节点添加到G中。 7、S:={n};建立含n的单一节点集合S。 8、Until S为空,do: 9、begin 10、REMOVE(m,S), ;这个

文档评论(0)

netball + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档