第三章 确定性推理(1)
第三章 确定性推理

第三章 ห้องสมุดไป่ตู้定性推理方法
3.1.2 推理的方法及其分类
所谓枚举归纳推理是指在进行归纳时, 如果已知某类事物的有限可数个具体事 物都具有某种属性,则可推出该类事物都具有此种属性。 例如,设 a1 , a2 , , an 是 某类事物A中的 n 个具体事物,若 a1 , a2 , , an 都具有某种属性B,并没有发现反例, n 那么当 足够大时,就可得出“A中的所有事物都具有属性B”这一结论。所谓类比 推理是指在两个或两类事物有许多属性都相同或相似的基础上, 推出他们在其他属 性上也相同或相似的一种归纳推理。例如,设A、B分别是两类事物的集合:
第三章 确定性推理方法
3.1.2 推理的方法及其分类
演绎推理与归纳推理是两种完全不同的推理。 演绎推理是在已知领域内的一 般性知识的前提下,通过演绎求解一个具体问题或者证明一个结论的正确性。 它 所得出的结论实际上早已蕴涵在一般性知识的前提中,演绎推理只不过是将已有 事实揭示出来,因此它不能增殖新的知识。 而归纳推理所推出的结论并没有包含 在前提内容中,它是一个由个别事物或现象推出一般性知识的过程,这种过程能 够导致新知识的产生。所以,从人工智能的知识获取要求这一角度看,归纳推理 应当比演绎推理重要。 本章后面重点介绍的归结推理也即是归纳推理。然而,在 现实世界中,当人们运用逻辑推理解决问题时,往往是归纳推理与演绎推理并用, 两种推理过程是相辅相成的。 例如,一位发动机维修员,当他刚开始从事这项工 作时,只有书本知识,而无实际经验,这时按照书中的知识修机器往往修不好, 因为书中所介绍的故障现象与实际中有些差别。当当他经过一段时间的工作实践 后,就会通过大量维修实例积累起来一些经验,这些经验就是由一个个实例归纳 出来的一般性知识,采用的是归纳推理方式。当他掌握了这些一般性知识后,就 可以运用这些知识去修理更多的机器,这时为修理某一台机器运用了他前面积累 总结出一般性知识,这一过程实际是一个演义推理过程。
人工智能教程习题及答案第3章习题参考解答

第三章确定性推理方法习题参考解答3.1 练习题3.1 什么是命题?请写出3个真值为T 及真值为F 的命题。
3.2 什么是谓词?什么是谓词个体及个体域?函数与谓词的区别是什么?3.3 谓词逻辑和命题逻辑的关系如何?有何异同?3.4 什么是谓词的项?什么是谓词的阶?请写出谓词的一般形式。
3.5 什么是谓词公式?什么是谓词公式的解释?设D= {1,2} ,试给出谓词公式( x)( y)(P(x,y) Q(x,y))的所有解释,并且对每一种解释指出该谓词公式的真值。
3.6对下列谓词公式分别指出哪些是约束变元?哪些是自由变元?并指出各量词的辖域。
(1)( x)(P(x, y) ( y)(Q(x, y) R(x, y)))(2)( z)( y)(P(z, y) Q(z, x)) R(u, v)(3)( x)(~ P( x, f (x )) ( z)(Q(x,z) ~ R(x,z)))(4)( z)(( y)(( t)(P(z, t) Q(y, t)) R(z, y))(5)( z)( y)(P(z, y) ( z)(( y)(P(z, y) Q(z, y) ( z)Q(z, y))))什么是谓词公式的永真性、永假性、可满足性、等价性及永真蕴含?3.7什么是置换?什么是合一?什么是最一般的合一?3.8判断以下公式对是否可合一;若可合一,则求出最一般的合一:3.9(1)P(a,b) ,P(x, y)(2)P(f(z),b) ,P(y, x)(3)P(f(x), y) ,P(y, f(a))(4)P(f(y), y,x) ,P(x, f(a), f(b))(5)P(x, y) ,P(y, x)什么是范式?请写出前束型范式与SKOLEM 范式的形式。
3.10什么是子句?什么是子句集?请写出求谓词公式子句集的步骤。
3.113.12谓词公式与它的子句集等值吗?在什么情况下它们才会等价?3.13 把下列谓词公式分别化为相应的子句集:(1)( z)( y)(P(z, y) Q(z, y))(2)( x)( y)(P(x, y) Q(x, y))(3)( x)( y)(P(x, y) (Q(x, y) R(x, y)))(4)( x)( y)( z)(P(x, y) Q(x, y) R(x, z))(5)( x)( y)( z)( u)( v)( w)(P(x, y,z,u,v,w) (Q(x, y, z,u, v, w) ~R(x, z, w)))3.14 判断下列子句集中哪些是不可满足的:(1)S {~ P Q,~ Q,P,~ P}(2)S {P Q,~ P Q,P ~ Q,~ P ~ Q}(3)S {P(y) Q(y), ~ P(f(x)) R(a)}(4)S {~ P(x) Q(x), ~ P(y) R(y), P(a),S(a),~ S(z) ~ R(z)}(5)S {~ P(x) ~ Q(y) ~ L(x, y), P(a), ~ R(z) L(a, z), R(b), Q(b)}(6)S {~ P(x) Q(f(x), a), ~ P(h(y)) Q(f(h(y)), a) ~ P(z)}(7)S {P(x) Q(x) R(x),~ P(y) R(y),~Q(a),~ R(b)}(8)S {P(x) Q(x),~ Q(y) R(y), ~ P(z) Q(z),~ R(u)}3.15 为什么要引入Herbrand 理论?什么是H 域?如何求子句集的H 域?3.16 什么是原子集?如何求子句集的原子集?3.17 什么是H 域解释?如何用域D 上的一个解释I 构造H 域上的解释I *呢?3.18 假设子句集S={P(z) ∨Q(z),R(f(t))} ,S 中不出现个体常量符号。
第三章-推理技术PPT课件

.
34
举例如下:
目标表达式被化成与或形:
~P(f(y))∨{Q(f(y),y)∧[~P(f(y))∨~S(y)]}
式中,f(y)为一Skolem函数。
对目标的主要析取式中的变量分离标准化可得:
~P(f(z))∨{Q(f(y),y)∧[~P(f(y))∨~S(y)]}
应注意不能对析取的子表达式内的变量y改名
将下列谓词演算公式化为一个子句集
( x){P(x)→{( y)[P(y)→P(f(x,y))]∧~( y)[Q(x,y)→P(y)]}}
.
9
3.1.2 消解推理规则
1、消解式 已知两子句L1∨α和~L2∨β,如果L1和L2具有
最一般合一者σ,那么通过消解可以从这两个父辈 子句推导出一个新子句α∨β。这个新子句叫做消 解式。它是由取这两个子句的析取,然后消去互补
可见目标子句是文字的合取,而这些子句的析取 是目标公式的子句形。
2.与或图的B规则变换 B规则:即逆向推理规则。 B规则是建立在确定的蕴涵式基础上的,我们把B 规则限制为:
W→L
其中,W为任一与或形公式,L为文字,
把B规则限制为这种形式的蕴涵式还可以简化匹配,
可以把像W→ (L1∧L2)这样的蕴涵式化为两个规则
W→L1和W→L2。
.
37
3.作为终止条件的事实节点的一致解图 逆向系统中的事实表达式均限制为文字合取
形,它可以表示为一个文字集。当一个事实文字 和标在该图文字节点上的文字相匹配时,就可把 相应的后裔事实节点添加到该与或图中去。这个 事实节点通过标有mgu的匹配弧与匹配的子目标文 字节点连接起来。
而使每个析取式具有不同的变量。
.
35
与或形的目标公式也可以表示为与或图。不过,与 事实表达式的与或图不同的是,对于目标表达式, 与或图中的k线连接符用来分开合取关系的子表达 式。上例所用的目标公式的与或图如下所示:
《逻辑学》3第三章 判断(一)

“有的昆虫不是哺乳动物”为真。
3、矛盾关系A——O、E——I
特点:既不能同真也不能同假 推理方向:既可以由真推假也可以由假推真。 例:1.已知:“所有金属都是导电体”为真
2、简单判断和复合判断
直言判断
简单判断 关系判断
模态判断
判断
联言判断
复合判断 选言判断
假言判断
负判断
第二节 直言判断
一、什么是直言判断 二、直言判断的种类 三、直言判断主项、谓项的周延性 四、素材相同的直言判断之间的真假关系 五、关于正确使用直言判断的问题
一、什么是直言判断
直言判断是直接的无条件地断定对象具 有或不具有某种性质的判断。
在某此税务检查后,四个工商管理人员各有如下 结论: 甲:所有个体户都没纳税。 乙:服装个体户陈老板没纳税 丙:个体户不都没纳税 丁:有的个体户没纳税 如果四个人中只有一人断定属实,那么下面哪项是真 的? A.甲断定属实,陈老板没有纳税 B.丙断定属实,陈老板纳税了 C.丙断定属实,陈老板没有纳税 D.丁断定属实,陈老板没有纳税 E.丁断定属实,陈老板纳税了
4、表达判断的语句要恰当,不要产生歧义,要 避免自相矛盾。
例:我国有世界上任何国家所没有的万里长城。
某公司财务部共有包括主任在内的八名职员。 有关这8名职员,以下三个断定中只有一个是真的: Ⅰ.有人是广东人。 Ⅱ.有人不是广东人。 Ⅲ.主任不是广东人 以下哪项为真? A.八名职员都是广东人 B.八名职员都不是广东人 C.只有一个不是广东人 D.只有一个是广东人 E.无法确定该部广东人等人数
一、什么是判断
第03章 判断与演绎推理(一)

③亚洲有矿藏, 非洲有矿藏, 欧洲有矿藏, 南美洲有矿藏, 北美洲有矿藏, 大洋洲有矿藏, 南极洲有矿藏, 所以,地球上所有的大洲都有矿藏。 可见,推理都是由判断构成的,由已知 的判断和推出的新判断构成。我们把已知的 判断叫做推理的前提,推出的新判断叫做推 理的结论 。 一个推理主要是由前提和结论两部分构成 的。此外,还有一个推理联项,就是把前提和 结论联结起来的概念,如上例中的“所以”。
三、性质判断变形推理
性质判断的结构: 量项 主项 联项 谓项
全称 单称 特称 肯定 否定
变形推理是通过改变性质判断联项的性质或 主、谓项的位置,从一个已知的性质判断推出一个 新的性质判断为结论的直接推理 。 这种推理主要有三种形式:换质法、换位法、 换质和换位连用法。
(一)换质推理 先看几个例子: ① 有些学生是共青团员, 有些学生 不是 非 共青团员 ② 所有犯罪行为都是违法行为 所有犯罪行为都 不是 非 违法行为 换质推理也称换质法,是以一个性质判断为前 提,通过改变作为前提的性质判断的联项的性 质,并将其谓项换成它的矛盾关系概念,从而 推出一个新的性质判断为结论的推理。
①I假推O真: SIP → SOP ②O假推I真: SOP → SIP 。
(三)根据矛盾关系进行的推理 矛盾关系推理的规则也有两条: ①由一个判断为真可以确定另一个判断为假; ②由一个判断为假可以确定另一个判断为真。 根据规则,矛盾关系推理有八种有效式:
①A真推O假:SAP → SOP ; ②O真推A假:SOP → SAP ; ③E真推I假: SEP → SIP ; ④I真推E假: SIP → SEP ; ⑤A假推O真: SAP → SOP; ⑥O假推A真: SOP → SAP;
陈述 句 句子 类型
第三章 确定性推理

首先,扩展最深的节点使得搜索从起始节点沿某条单一路 径进行下去;只有当搜索到达一个没有后裔的状态时,才考虑 最近的另一条替代的路径。替代路径与前面已经试过的路径不 同之处仅仅在于:改变最后n步,而且保持n尽可能小。
对于许多问题,其状态空间搜索树的深度可能为无限深, 或者可能至少要比某个可接受的解答序列的已知深度上限还要 深。为了防止搜索过程沿着无益的路径扩展下去,往往给出一 个节点扩展的最大深度——深度界限。任何节点如果达到了深 度界限,那么都将把它们作为没有后继节点处理。值得说明的 是,即使应用了深度界限的规定,所求得的解答路径并不一定 就是最短的路径。
3、宽度优先搜索方法分析:
宽度优先搜索是图搜索一般过程的特殊情况, 将图搜索一般过程中的第8步具体化为本算法中的 第5步,这就是将OPEN表作为“先进先出”的队列 进行操作。
宽度优先搜索的缺点:搜索方向盲目性较大, 当目标节点距离初始节点较远时,将会产生大量的 无用节点,搜索效率低。
但是,只要问题有解,用宽度优先搜索总可以 找到它的解,而且是搜索树中从初始节点到目标节 点路径最短的解(不考虑每条弧线的长度、代价、 扩展节点数等,只考虑经历的步数)。因此,宽度 优先搜索策略是完备的。搜索树能提供所有存在的 路径(如果没有路径存在,对有限图来说,就以失 败退出;对于无限图来说,则永远不会终止)。
宽度优先搜索示意图
2、宽度优先搜索算法如下:
(1) 把起始节点放到OPEN表中(如果该起始节 点为一目标节点,则求得一个解答)。
(2) 如果OPEN表是个空表,则没有解,失败退 出;否则继续。
(3) 把第一个节点(节点n)从OPEN表移出,并 把它放入CLOSED扩展节点表中。
第三章 判断和推理概述

如果p, 那么q P 所以,q 中的命题变项p,q做不同的代入,可得到下面两个不同的推理 例: 如果小强感冒,则小强会发烧; 小强确实感冒了, 所以,小强会发烧. 例: 如果冬天来了,春天不再遥远; 冬天确实来了, 所以,春天不再遥远.
• 在各种能力性质考试如GRE, GMAT, LAST, MBA中,都要考到逻辑,其中有一类 “比较 型”考题, 它要求比较几个不同推理在结构 中的相同或者不同,这要通过抽象出(至少是 识别出)它们共同的形式结构来实现,即用命 题变项表示其中的单个命题,或用词项变项 表示直言命题中的词项,每一个推理中相同 的命题或词项用相同的变项表示,不同的命 题或词项用不同的变项表示.例如:
考考你的逻辑思维
一名数学教师给三个非常聪明的学生出了一道 题,教师在每个同学脑门上贴了一纸条并告诉他 们,每个人的纸条上都写了一个正整数,且某两 个数的和等于第三个!(每个人可以看见另两个 数,但看不见自己的) 老师问第一个学生:你能猜出自己的数吗?回答: 不能;问第二个,回答:不能;问到第三个,回答:我 猜出来了,是144!老师很满意地笑了.请问您能 猜出另外两个人的数吗?
• 例: 网络作家蔡智恒在其成名作《第一次亲密接触》的开头写道: “如果我有一千万,我就能买一座房子。 我有一千万吗?没有。 所以我仍然没有房子。 如果我有翅膀,我就能飞。 我有翅膀吗?没有。 所以我也没办法飞。 如果把整个太平洋的水倒出,也浇不熄我对你爱情的火焰。 整个太平洋的水能够倒出吗?不行。 所以我并不爱你。” 下列哪一个选项,其句子结构与上面诗句中的类似?
1、欧洲中世纪有人问神学家们:“您说上帝万能,那么 我请问您:上帝能不能创造一块他自己举不起来的石 头?”并进行了这样的推理:如果上帝能够创造一块他 自己举不起来的石头,那么他不是万能的,因为有一块 石头他举不起来;如果上帝不能创造这样一块石头,那 么他不是万能的,因为有一块石头他不能创造;上帝或 者能创造这样一块石头或者不能,所以上帝不是万能的。 2、当普罗泰哥拉准备告欧提勒士时,欧提勒士对他说, 我是您的学生,您的那一套咱也会:如果输了,根据合同,我不应该给您另一半 学费;这场官司我或者打赢了或者打输了;总之,我不 应该给您另一半学费。
人工智能原理及应用第3章 确定性推理方法

3.1 推理概述
3.1.2 推理的方法
1.演绎推理: 例:有如下三个判断: ①计算机系的学生都会编程序;(一般性知识) ②程强是计算机系的一位学生;(具体情况) ③因此程强会编程序。(结论)
这是一个三段论推理。其中:“①计算机系的学生都会编程序” 是大前提,“②程强是计算机系的一位学生”是小前提,那么“③ 程强会编程序”是经演绎推出来的结论。其结论蕴含在大前提中, 这就是典型的演绎推理三段论。
N
Y Y
以正向推理结果为假设
输入进行反向推理
N
输出结果
Y
成功退出
需要进行正向推理吗?
3.1 推理概述
3.1.4 推理中的冲突
在推理过程中,系统要不断地用数据库中的事实与知识库中的 规则进行匹配,当有一个以上规则的条件部分和当前数据库相匹配 时,就需要有一种策略来决定首先使用哪一条规则,这就是冲突解 决策略。冲突解决策略实际上就是确定规则的启用顺序。
33演绎推理方法332演绎推理的特点正向演绎推理逆向演绎推理问题求解的描述事实文字与或形事实文字合取式规则lw规则wl目标文字析取形目标文字与或形初始与或图相应于事实表达式事实表达式的与或树相应于目标公式事实表达式的与或树演绎推理f规则事实目标b规则目标事实结束条件包含所有目标节点的一致解图以事实节点作为所有终节点的一致解图34归结推理方法341子句集及其化简342herbrand海伯伦定理343robinson鲁宾逊归结原理344利用归结推理进行定理证明345应用归结原理进行问题求解在谓词演算中利用前面列出的等价式和永真蕴含式可以从已知的一些公式推导出新的公式这个导出的公式叫做定理在推导过程中使用的推理规则序列就成了该定理的一个证明而这种推导就是归结推理方法
形成可用知识集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章确定性推理按所用知识的确定性,推理可以确定性和不确定性推理。
所谓确定性推理指的是推理所用的知识都是精确的,推出的结论也是精确的。
比如一个事件是否为真,其推理的结果只能是真或者假,绝对不可能出现第三种可能性。
确定性推理的方法有很多,具体有图搜索策略、盲目搜索、启发式搜索、消解原理、规则演绎系统、产生式系统等等第一节图搜索策略●搜索的基本概念➢搜索分为盲目搜索和启发式搜索⏹盲目搜索:无信息搜索,在搜索过程中只按预先规定的搜索控制策略进行搜索,而没有任何中间信息来改变这些控制策略,效率不高,只适合求解简单问题⏹启发式搜索:有信息搜索,在搜索求解问题的过程中,根据问题本身的特性或搜索过程中产生的一些信息来不断地改变或调整搜索的方向,使搜索朝着最有希望的方向前进,加速问题的求解,并找到最优解●图搜索策略在人工智能中,搜索问题一般包括两个重要的问题:➢搜索什么:搜索什么通常指的就是目标。
➢在哪里搜索:在哪里搜索就是“搜索空间”。
搜索空间通常是指一系列状态的汇集,因此称为状态空间。
所以,人工智能中的搜索可以分成两个阶段:➢状态空间的生成阶段➢在该状态空间中对所求问题状态的搜索一般图搜索(状态空间搜索)的基本思想1.问题状态用图数据结构的结点表示;2.从初始状态(结点)开始,对选定的结点选择满足条件的操作符,操作符作用后产生新的结点(状态);3.检查新产生的子结点中是否有目标结点:有则找到了问题的解;4.否则重复上述过程直至产生目标结点,或全部结点处理完无解。
状态空间搜索的基本思想➢节点扩展的概念⏹扩展:就是用合适的算符对某个节点进行操作生成一组后继节点,扩展过程实际上就是求后继节点的过程⏹已扩展节点:对状态空间图中的某个节点,如果求出了它的后继节点,则此节点为已扩展的节点⏹未扩展节点:对状态空间图中的某个节点,如果尚未求出它的后继节点,则此节点称为未扩展节点在对状态空间图搜索求解时,将为扩展的节点存于一个名为OPEN的表中,而将已扩展的节点存于一个名为CLOSED的表中搜索的目的是为了寻找初始节点到目标节点的路径,所以在搜索过程中就得随时记录搜索轨迹。
我们用一个称为CLOSED表的动态数据结构来专门记录考察过的节点(已扩展的节点)。
CLOSED表中存储的是一棵不断成长的搜索树。
另一方面,还得不断地把待考察的节点(为扩展的节点)组织在一起,并做某种排列,以便控制搜索的方向和顺序。
我们采用一个称为OPEN表的动态数据结构,来专门登记当前待考察的节点图搜索(graph search)一般过程➢搜索过程中的指针修改节点n扩展后的子节点分为3类:(i)全新节点(ii)已出现在OPEN表中的节点(iii)已出现的CLOSE表中的节点指针标记和修改的方法:(i)类节点:加入OPEN表,建立从子节点到父节点n的指针(ii)类节点、 (iii)类节点比较经由老父节点、新父节点n到达初始状态节点的路径代价经由新父节点n的代价比较小,则将原子节点指向老父节点的指针,修改为指向新父节点n (iii)类节点还得从CLOSE表中移出,重新加入OPEN表。
第二节盲目搜索盲目搜索按预定的控制策略进行搜索,搜索过程中获得的中间信息不用来改变搜索策略。
搜索总是按预定的路线进行,不考虑问题本身的特性,这种搜索有盲目性,效率不高,不利于求解复杂问题。
分类➢宽度优先搜索Breadth-first search➢深度优先搜索Depth-first search➢等代价搜索Uniform-cost search特点➢搜索过程中不使用与问题有关的经验信息➢不需要重排OPEN表➢搜索效率低➢不适合大空间的实际问题求解●宽度优先搜索策略宽度优先搜索(breadth-first search)的定义:➢如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索(breadth-first search)➢这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点➢宽度优先——扩展当前节点后生成的子节点总是置于OPEN表的后端,即OPEN 表作为队列,先进先出,使搜索优先向横向方向发展。
➢由近及远逐层访问图中顶点(典型的层次遍历)。
宽度优先搜索策略算法⑴把初始节点S。
放入OPEN表;⑵如果OPEN表为空,则问题无解,退出;⑶把OPEN表的第一个节点(记为n)取出放入CLOSED表;⑷考察节点n是否为目标节点。
若是,则求得了问题的解,退出;⑸若节点n不可扩展,则转第⑵步;⑹扩展节点n,将其子节点放入OPEN表的末端,并为每一个子节点都配置指向父节点的指针,然后转第⑵步;宽度优先搜索的性质➢当问题有解时,一定能找到解➢当问题为单位代价时,且问题有解时,一定能找到最优解➢方法与问题无关,具有通用性➢效率较低➢属于图搜索方法宽度优先搜索的优点和缺点➢宽度优先搜索优点:目标节点如果存在,用宽度优先搜索算法总可以找到该目标节点,而且是最小(即最短路径)的节点。
➢宽度优先搜索缺点:⏹宽度优先搜索是一种盲目搜索,时间和空间复杂度都比较高,当目标节点距离初始节点较远时会产生许多无用的节点,搜索效率低。
⏹宽度优先搜索中,时间需求是一个很大的问题,特别是当搜索的深度比较大时,尤为严重,但是空间需求是比执行时间更严重的问题。
●深度优先搜索定义➢首先扩展最新产生的(即最深的)节点。
➢深度相等的节点可以任意排列。
特点➢首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的首先路径从起始节点向下进行下去;➢仅当搜索到达一个没有后裔的状态时,才考虑另一条替代的路径。
➢深度优先——扩展当前节点后生成的子节点总是置于OPEN表的前端,即OPEN 表作为栈,后进先出,使搜索优先向纵深方向发展。
算法:➢防止搜索过程沿着无益的路径扩展下去,往往给出一个节点扩展最大深度——深度界限。
任何节点如果达到了深度界限,那么都将把它们作为没有后继节点来处理。
➢定义-节点的深度:⏹起始节点的深度为0。
⏹任何其他节点的深度等于其父辈节点的深度加1。
⏹与宽度优先搜索算法最根本的不同:将扩展的后继节点放在OPEN表的前端。
算法的具体过程1.把起始节点 S放到未扩展节点 OPEN表中。
如果此节点为一目标节点,则得到一个解。
2.如果 OPEN为一空表,则失败退出。
3.把第一个节点(节点n)从 OPEN表移到CLOSED表。
4.如果节点 n的深度等于最大深度,则转向(2)5.扩展节点n,产生其全部后裔,并把它们放入OPEN表的前端,如果没有后裔,则转向(2)6.如果后继节点中有任一个为目标节点,则求得一个解,成功退出,否则,转向(2)深度优先搜索的性质➢一般不能保证找到最优解➢当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制➢最坏情况时,搜索空间等同于穷举➢是一个通用的与问题无关的方法深度优先搜索的优点➢深度优先搜索的优点是比宽度优先搜索算法需要较少的空间,该算法只需要保存搜索树的一部分,它由当前正在搜索的路径和该路径上还没有完全展开的节点标志所组成。
➢深度优先搜索的存储器要求是深度约束的线性函数。
深度优先搜索的缺点➢既不是完备的,也不是最优的。
主要问题是可能搜索到了错误的路径上。
很多问题可能具有很深甚至是无限的搜索树,如果不幸选择了一个错误的路径,则深度优先搜索会一直搜索下去,而不会回到正确的路径上。
这样一来对于这些问题,深度优先搜索要么陷入无限的循环而不能给出一个答案,要么最后找到一个答案,但路径很长而且不是最优的答案。
有界深度搜索和迭代加深搜索有界深度优先搜索过程总体上按深度优先算法方法进行,但对搜索深度需要给出一个深度限制dm,当深度达到了dm的时候,如果还没有找到解答,就停止对该分支的搜索,换到另外一个分支进行搜索。
➢策略说明:(1)深度限制dm很重要。
当问题有解,且解的路径长度小于或等于dm时,则搜索过程一定能够找到解,但是和深度优先搜索一样这并不能保证最先找到的是最优解。
但是当dm取得太小,解的路径长度大于dm时,则搜索过程中就找不到解,即这时搜索过程甚至是不完备的。
(2)深度限制dm不能太大。
当dm太大时,搜索过程会产生过多的无用节点,既浪费了计算机资源,又降低了搜索效率。
(3)有界深度搜索的主要问题是深度限制值dm的选取。
➢改进方法:(迭代加深搜索)⏹先任意给定一个较小的数作为dm,然后按有界深度算法搜索,若在此深度限制内找到了解,则算法结束;如在此限制内没有找到问题的解,则增大深度限制dm,继续搜索。
⏹迭代加深搜索,试图尝试所有可能的深度限制:✓首先深度为0,✓然后深度为1,✓然后为2,等等。
⏹如果初始深度为0,则该算法只生成根节点,并检测它。
⏹如果根节点不是目标,则深度加1,通过典型的深度优先算法,生成深度为1的树。
⏹当深度限制为m时,树的深度为m。
⏹迭代加深搜索看起来会很浪费,因为很多节点都可能扩展多次。
⏹然而对于很多问题,这种多次的扩展负担实际上很小,直觉上可以想象,如果一棵树的分支系数很大,几乎所有的节点都在最底层上,则对于上面各层节点扩展多次对整个系统来说影响不是很大。
表注:b是分支系数,d是解答的深度,m是搜索树的最大深度,l是深度限制。
➢宽度优先搜索、深度优先搜索和迭代加深搜索都可以用于生成和测试算法。
➢宽度优先搜索需要指数数量的空间,深度优先搜索的空间复杂度和最大搜索深度呈线性关系。
➢迭代加深搜索对一棵深度受控的树采用深度优先的搜索。
它结合了宽度优先和深度优先搜索的优点。
➢和宽度优先搜索一样,它是最优的,也是完备的。
但对空间要求和深度优先搜索一样是适中的。