目录
本章内容
3.1 图搜索策略
3.2 盲目搜索
3.2.1 搜索策略的对比
3.2.2 深度优先搜索-有限深度+迭代深度
3.3 启发式搜索
3.3.1 启发式搜索策略和估价函数
3.3.2 有序搜索
1、A算法
2、A*算法
3.4 消解原理
3.4.1 子句集的求取
3.4.2 消解推理规则
3.4.3 含有变量的消解式
3.4.4 消解反演求解过程
3.5 规则演绎系统
3.6 产生式系统
3.6.1 产生式系统的组成
3.6.2 产生式系统的推理
3.7 非单调推理
掌握图搜索的基本概念
掌握盲目搜索和启发式搜索的区别
掌握消解原理的含义及实际问题解决过程
了解规则演绎系统的基本知识
了解产生式系统的基本知识
了解非单调推理的基本知识
图搜索控制策略:一种在图中寻找路径的方法。
图中每个节点对应一个状态,每条连线对应一个操作符。这些节点和连线又分别由产生式系统的数据库和规则来标记。求得把一个数据库变换为另一数据库的规则序列问题就等价于求得图中的一条路径问题
图搜索过程:
OPEN表(记录还没有扩展的表)
CLOSED表(记录已经扩展的点)
每个状态的节点结构中必须有指向父节点的指针
评价搜索算法性能的4种途径:
完备性、最优性、时间复杂度、空间复杂性
图的一般搜索策略:
无信息搜索(盲目搜索):宽度优先搜索、深度优先搜索
有信息搜索(启发式搜索):A算法、A*算法
分类:宽度优先搜索、深度优先搜索、等代价搜索
特点:(1)搜索过程中不适用与问题又算的经验信息
(2)不需要重排OPEN表
(3)搜索效率低
(4)不适合大空间的实际问题求解
假设每个状态有 b 个后继,目标节点所在深度为d:
优先深度: 深度搜索的最大深度为l,等价于深度为l 的节点没有后继节点,解决了深度优先搜索的无限路径问题。如果 l< d 那么结果不完整,如果 l > d 那么过程不是最优的
迭代加深:每次改变限制深度,多次调用深度有限搜索算法,求最优深度极限 l 的一般策略,结合了DFS与BFS的优点
特点:重排OPEN表,选择最优希望的节点加以拓展,
种类:有序搜索、A*算法等
启发式信息:用来加速搜索过程的有关问题领域的特征信息。
启发式搜索:利用启发信息的搜索方法。
估价函数:为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确定哪个节点最有可能在通向目标的最佳路径上
f(n)——表示节点n的估价函数值
一个节点的希望程度越大,其f值就越小
三类搜索问题:最优路径,较优路径,一条路径(唯一路径)
1964年,尼尔逊提出A1算法,1967年拉斐尔改进了A1算法,称为A2算法
实质:选择OPEN表上具有最小f值的节点作为下一个要扩展的节点
特征:估价函数 f (n) = g (n) + h (n)
性能:不完备,不最优
1968年,彼得·哈特对A算法进行了很小的改进,并证明了当估价函数满足一定的限制条件时,算法一定可以找到最优解。
A*算法的限制条件:f (x) = g (x) + h (x) (g(x)>0,h(x)不大于x到目标的实际代价h*(x))
消解只能在仅含否定和析取联接词的公式(子句)间进行
必须先把公式化成规范的形式(范式,子句集)
方法:不断求子句的消解式,直到得到空子句为止
相关概念
文字:一个原子公式及其否定
子句:由文字的析取组成的合式公式
消解:对谓词演算公式进行分解和花间,消去一些符号,以求得导出子句
例如:将下列谓词演算公式化为一个子句集
1、消去蕴含符号
只应用∨和~符号,以~A∨B替换A→B。
2、减少否定符号的辖域
将 ~ 内移,每个否定符号~最多只用到一个谓词符号上,并反复应用狄·摩根定律。
3、变量标准化
不同的量词使用不同的变量名,对哑元(虚构变量)改名,以保证每个量词有其自己唯一的哑元
4、去掉存在量词
两种情况:
①“” 在某些 “”的作用域内,例如:
②“” 不在 “”的作用域内,直接去掉存在量词,将对应的变量写成一个常量表达式
5、化为前束形
将所有的“” 移到公式的最前面,并使每个量词的辖域包括这个量词后面公式的整个部分
6、把母式写成合取范式的形式
任何母式都可写成由一些谓词公式和(或)谓词公式的否定的析取的有限集组成的合取。
7、去掉全称量词
所有余下的量词均被全称量词量化了。消去前缀,即消去明显出现的全称量词。
8、消去合取词 ∧
用{A,B}代替(A∧B),消去符号∧。最后得到一个有限集,其中每个公式是文字的析取
9、更换变量名称
使相同的变元不会出现在不同的子句中
命题逻辑的消解:设有 {λ} ∨ C1 和 {Ø λ} ∨ C2, 其中 C1 , C2 是子句,λ 是原子, 则可推出C12 =C1 ∨ C2 , C12称为C1 , C2的resolvent(消解式,归结式), 这个过程称为消解resolution。
谓词逻辑的消解:假设 C1 和C2 是子句, 如果C1中有文字L1,C2中有文字L2 ,且L1 与 Ø L2 有最一般合一者σ,则这两个子句有消解式 C12: C12=(C1σ - {L1σ})∪(C2σ - {L2σ})
消解式的定义:令L1,L2为两任意原子公式;L1和L2具有相同的谓词符号,但一般具有不同的变量。已知两子句L1∨α和~L2∨β,如果L1和L2具有最一般合一σ,那么通过消解可以从这两个父辈子句推导出一个新子句(α∨β)σ。这个新子句叫做消解式。
消解式的例子:
(1)假言推理
(2)合并
(3)重言式
(4)空子句(矛盾)
(5)链式(三段论)
要把消解推理规则推广到含有变量的子句,必须找到一个作用于亲本子句的置换,使亲本子句含有互补文字。
当子句之间可以找到一个项对变量的置换使其变成相同的形式时,就称这些子句是可合一的。
例如:
注意: 所有的 父辈都要进行置换
置换的目的:使用置换使得原子公式能够变得一致
置换的复合:
S = {u1/s1,..,um/sm} T = {t1/v1,...,tn/vn}
他们的复合仍是一个置换,ST = {u1T /s1,..,umT /sm , t1/v1,...,tn/vn}
置换的复合运算时做结合的,不满足交换律
例如:
合一:寻找项对变量的置换,以使两表达式一致的过程。合一者不唯一
例如:
最一般合一者:给定公式集S, 设S的最一般合一者为θ, 则对S的所有其他合一者 , 都存在一个置换 使得
1、采用消解反演从已知条件集合S证明结论G的步骤
①将 S 化为子句集
②将G的否定~G化为子句集
③将通过步骤1和2得到的子句合并成一个集合T.
④不断进行消解,并将得到的消解式加入T中,直到产生一个空子句NIL为止
2、反演求解过程:
①把由目标公式的否定产生的每个子句添加到目标公式否定之否定的子句中去。
②按照反演树,执行和以前相同的消解,直至在根部得到某个子句止。
③用根部的子句作为一个回答语句。
正向规则演绎系统是从事实到目标进行操作的,即从状况条件到动作进行推理的,也就是从if到then的方向进行推理的。
逆向规则演绎系统是从then向if进行推理的,即从目标或动作向事实或状况条件进行推理的。
双向规则演绎:此组合系统的总数据库由表示目标和表示事实的两个与或图结构组成。这些与或图结构分别用正向系统的F规则和逆向系统的B规则来修正。
定义:用来描述若干个不同的以一个基本概念为基础的系统。这个基本概念就是产生式规则或产生式条件和操作对的概念。
实质:在产生式系统中,论域的知识分为两部分:用事实表示静态知识,如事物、事件和它们之间的关系;用产生式规则表示推理过程和行为。由于这类系统的知识库主要用于存储规则,因此又把此类系统称为基于规则的系统
总数据库、产生式规则、控制策略
选择规则到执行操作的步骤:
1、匹配:把当前数据库与规则的条件部分相匹配
2、冲突解决:当有一条以上规则的条件部分和当前数据库相匹配时,就需要决定首先使用哪一条规则,这称为冲突解决。
3、操作:就是执行规则的操作部分
正向推理、逆向推理、双向推理
单调推理:建立在谓词逻辑基础上的传统系统是单调的,即已知为真的命题数目随时间而严格增加。因为:新的命题可加入系统,新的定理可被证明,but:这种加入和被证明决不会导致前面已知为真或已被证明的命题变成无效。缺点:不能很好处理三类情况:不完全信息、不断变化情况,求解复杂问题过程中产生假设。
缺省推理:当缺乏信息时,只要不出现相反的证据,就可以作一些有益的猜想
真值维持系统:用以协助其它推理程序维持系统的正确性,所以它的作用不是生成新的推理,而是在其它程序所产生的命题之间保持相容性。一旦发现某个不相容,它就调出自己的推理机制,面向从属关系的回溯,并通过修改最小的信念集来消除不相容