- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--
--
--
第三章 搜索推理技术
什么是图搜索过程?其中,重排 OPEN 表意味着什么,重排的原则是什么?
图搜索的一般过程如下:
建立一个搜索图G(初始只含有起始节点S),把S 放到未扩展节点表中(OPEN 表)中。
建立一个已扩展节点表(CLOSED 表),其初始为空表。
LOOP:若OPEN 表是空表,则失败退出。
选择OPEN 表上的第一个节点,把它从OPEN 表移出并放进CLOSED 表中。称此节点为节点 n,它是CLOSED 表中节点的编号
若 n 为一目标节点,则有解并成功退出。此解是追踪图 G 中沿着指针从n 到 S 这条路径而得到的(指针将在第 7 步中设置)
扩展节点n,生成不是n 的祖先的那些后继节点的集合M。将M 添入图G 中。
对那些未曾在G 中出现过的(既未曾在OPEN 表上或CLOSED 表上出现过的)M 成员设置一个通向n 的指针,并将它们加进OPEN 表。
对已经在OPEN 或 CLOSED 表上的每个M 成员,确定是否需要更改通到n 的指针方向。对已在 CLOSED 表上的每个M 成员,确定是否需要更改图G 中通向它的每个后裔节点的指针方向。
按某一任意方式或按某个探试值,重排OPEN 表。
GO LOOP。
重排 OPEN 表意味着,在第(6)步中,将优先扩展哪个节点,不同的排序标准对应着不同的搜索策略。
重排的原则当视具体需求而定,不同的原则对应着不同的搜索策略,如果想尽快地找到一个解,则应当将最有可能达到目标节点的那些节点排在 OPEN 表的前面部分,如果想找到代价最小的解,则应当按代价从小到大的顺序重排OPEN 表。
试举例比较各种搜索方法的效率。
1-]cn-丕--http:ffcai. csu. edu.2 一]回 区
1
-
]
cn-
丕
--
http:ffcai. csu. edu.
2 一
]回 区l
`
一
t 3
巨
夏
i c
--
把 放 入 OPEN 表
()P吓 为空表
()P吓 为空表?
把第一个节点(n) 从
OPEN移至CLOSF.D 表
"力目标节点?
心
把
把n的后悠节点放 入0[P的 表 的
太站,拔供返回节丸n的指tt
修改抚针方向
. 重排or胚表
.
图 3, 2 图搜索进程框图
包 完毕 I? I n-t.er n 吐
..?.
--
宽度优先搜索
把起始节点放到OPEN 表中(如果该起始节点为一目标节点,则求得一个解答)。
如果OPEN 是个空表,则没有解,失败退出;否则继续。
把第一个节点(节点n)从 OPEN 表移出,并把它放入CLOSED 扩展节点表中。
扩展节点n。如果没有后继节点,则转向上述第(2)步。
把 n 的所有后继节点放到OPEN 表的末端,并提供从这些后继节点回到n 的指针。
如果 n 的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2) 步。
--
--
有界深度优先搜索
把起始节点S 放到未扩展节点OPEN 表中。如果此节点为一目标节点,则得到一个解。
如果OPEN 为一空表,则失败退出。
把第一个节点(节点n)从 OPEN 表移到CLOSED 表。
如果节点n 的深度等于最大深度,则转向(2)。
扩展节点 n,产生其全部后裔,并把它们放入 OPEN 表的前头。如果没有后裔,则转向(2)。
如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。
--
--
等代价搜索方法以g(i)的递增顺序扩展其节点,其算法如下:
把起始节点S 放到未扩展节点表OPEN 中。如果此起始节点为一目标节点,则求得一个解;否则令g(S)=0。
如果OPEN 是个空表,则没有解而失败退出。
从 OPEN 表中选择一个节点i,使其 g(i)为最小。如果有几个节点都合格,那么就要选择一个目标节点作为节点i(要是有目标节点的话);否则,就从中选一个作为节点i。把节点i 从 OPEN 表移至扩展节点表CLOSED 中。
如果节点i 为目标节点,则求得一个解。
扩展节点i。如果没有后继节点,则转向第(2)步。
对于节点i 的每个后继节点j,计算 g(j)=g(i)+c(i,j),并把所有后继节点 j 放进OPEN 表。提供回到节点i 的指针。
转向第(2)步。
化为子句形有哪些步骤?请结合例子说明之。
--
--
任一谓词演算公式可以化成一个子句集。其变换过程由下列九个步骤组成:
消去蕴涵符号
将蕴涵符号化为析取和否定符号
减少否定符号的辖域
每个否定符号最多只用到一个谓词符号上,并反复应用狄·摩根定律
对变量标准化
对哑元改名以保证每个量词有其自己唯一的哑元
消去存在量词
引入 Skolem 函数,消去存在量词
如果要消去的存在量词不在任何一个全称量词的辖域内,那么我们就用不含变
文档评论(0)