推理就是对已知判断进行分析和综合,再得出新的判断的过程。
人工智能中的推理是由推理机完成的。所谓推理机,是指系统中用来实现推理的那段程序。
按推理的逻辑基础分类:
- 演绎推理:从一般到个别。不能增加新知识
- 归纳推理:从大量特殊事例出发,归纳出一般性结论的推理过程。 即从个别到一般的推理过程。增加新知识。
按所用知识的确定性分类:
- 确定性推理:其真值或者为真或者为假,没有第三种情况出现。
- 不确定性推理:推理时所用的知识和证据不都是确定的,推出的结论也不确定的。
按推理中所用知识是否具有启发性分类 :
- 启发式推理:应用与问题有关的启发性知识,即解决问题的策略、技巧及经验,以加快推理过程,提高搜索效率。
- 非启发式推理:缺乏对求解问题的针对性,所以推理效率较低,容易出现“组合爆炸”问题。
产生式系统:
自然演绎推理
常用等价式
(1)双重否定律 ¬¬P ⇔P
(2) 交换律 (P∨Q) ⇔(Q∨P), ( P∧Q) ⇔( Q∧P)
(3) 结合律 (P∨Q)∨R ⇔P∨(Q∨R) (P∧Q)∧R ⇔P∧(Q∧R)
(4) 分配律 P∨(Q∧R) ⇔(P∨Q)∧(P∨R) P∧(Q∨R) ⇔(P∧Q)∨(P∧R)
(5) 狄摩根定律 ¬(P∨Q) ⇔¬P∧¬Q, ¬(P∧Q) ⇔¬P∨¬Q
(6) 吸收律 P∨(P∧Q) ⇔P, P∧(P∨Q) ⇔P
(7) 补余律 P∨¬P ⇔T, P∧¬P ⇔F
(8) 连词化归律 P→Q ⇔¬P∨Q P↔Q ⇔(P→Q)∧(Q→P) P↔Q ⇔(P∧Q)∨(¬Q∧¬ P)
(9) 量词转换律 ¬(∃x)P ⇔(∀x)( ¬ P), ¬(∀x)P ⇔(∃x) (¬ P)
(10) 量词分配律 (∀x) (P∧Q) ⇔(∀x)P∧(∀x)Q (∃x) (P∨Q) ⇔(∃x)P∨(∃x)Q
任意对应交,存在对应并
永真蕴含式
(1)化简式 P∧Q ⇒P, P∧Q ⇒Q
(2) 附加式 P ⇒P∨Q, Q ⇒P∨Q
(3) 析取三段论 ﹁P, P∨Q ⇒Q
(4) 假言推理 P, P→Q ⇒Q(前件为真,结论为真)
(5) 拒取式 ¬Q, P→Q ⇒¬P(后件为假,拒绝前件)
(6) 假言三段论 P→Q, Q→R ⇒P→R
(7) 二难推理 P∨Q, P→R, Q→R ⇒R
(8) 全称固化 (∀x)P(x) ⇒P(y) 其中y是个体域中的任一个体,依此可消去谓词公式中的全称量词。
(9) 存在固化 (∃x)P(x) ⇒P(y) 其中y是个体域中某一个可以使P(y)为真的个体,依此可消去谓词公式中的存在量词。
置换与合一
谓词名相同但其个体不同
寻找项对变元的置换,使谓词一致的过程叫做合一的过程。
置换可简单的理解为是在一个谓词公式中用置换项去替换变量。
置换是形如 {t1 /x1 ,t2 /x2 ,…,tn /xn } 的有限集合。其中,t1 ,t2 ,…,tn 是项;x1 ,x2 ,…,xn 是互不相同的变元;ti /xi 表示用ti 替换xi ,前面的是新值。要求:ti 与xi 不能相同,xi 不能循环地出现在另一个ti 中。
{a/x, c/y, f(b)/z} 是一个置换。 但 {g(z)/x, f(x)/z}不是一个置换。出现了循环置换。
置换(Substitution) : 表达式中用置换项置换变量.
如用项 A 替换函数表达式中的变量(x) 表达式E(Expression)用一个置换s(Substitution)而得到的表达式的置换,记为Es E(s1s2)=(Es1)s2
例:表达式E:P[x,f(y), B]. 置换: s1={z/x,w/y}, s2={A/y}, s3={q(z)/x,A/y}, s4={c/x,A/y}
解: Es1 = P[z,f(w),B]; Es2 = P[x,f(A),B]; Es3 = P[q(z),f(A),B]; Es4 = P[c,f(A),B]; Es1s2 = P[z,f(w),B]; Es2s1 = P[z,f(A),B]
思考: Es1s2=Es2s1?交换律不成立
自然演绎推理方法
最常用:
假言推理 P, P→Q ⇒Q(前件为真,结论为真)
拒取式 ¬Q, P→Q ⇒¬P(后件为假,拒绝前件)
假言三段论 P→Q, Q→R ⇒P→R
设已知如下事实: R, S, R→T, S∧T→P, P→Q 求证:Q为真。
R,R→T⇒T 假言推理
S,T⇒S∧T 引入合取词
S∧T,S∧T→P⇒P 假言推理
P,P→Q⇒Q 假言推理
归结演绎推理
基于逻辑的"反证法"。定理证明的实质, 就是对前提P、结论Q, 证明 P→Q 永真。
鲁滨逊归结原理------使用反证法:
即要证明P→Q永真, 只要能够证明﹁ (P→Q) 即P∧﹁Q是不可满足的即可。 因 : ﹁ (P→Q) ⇔ ﹁ (﹁ P∨Q) ⇔ P∧﹁ Q
所以,归结演绎推理:结论取否定,和前提进行归结。
子句是由文字的析取组成的公式。
消解: 对谓词演算公式进行分解、化简,消去一些符号, 求得导出子句,又称归结。
消解原理, 力图从子句集中推导出一个表示矛盾的空子句。空子句是永假的。
基本思想:
由谓词公式转化为子句集的方法可知,在子句集中子句之间是合取关系。只要有一个子句为不可满足,则整个子句集就是不可满足的。
(2) 空子句是不可满足的。一个子句集中如包含有空子句,则此子句集就一定是不可满足的。
(3) 首先把欲证明问题的结论否定,并加入子句集,得到一个扩充的子句集S’。
(4) 然后检验子句集S’是否含有空子句, 若含有空子句,则表明S’是不可满足的; 若不含有空子句,则继续使用归结法,在子句集中选择合适的子句进行归结,直至导出空子句或不能继续归结为止。
归结过程:
定义: 若P是原子谓词公式,则称P与﹁P为互补文字。
定义: 设C1和C2是子句集中的任意两个子句,如果C1中的文字L1与C2中的文字L2互补,那么可从C1和C2中分别消去L1和L2,并将C1和C2中余下的部分按析取关系构成一个新的子句C12,则称这一过程为归结,称C12为C1和C2的归结式,称C1和C2为C12的归结子句。 (归结原理,子句集之间是合取关系,所以互补的可以归结)
例: 设C1=P∨Q∨R,C2=﹁P∨S,求C1和C2的归结式C12。
解:这里L1=P,L2=﹁P,通过归结可以得到 C12= Q∨R∨S
例: 设C1=﹁Q,C2=Q,求C1和C2的归结式C12。
解:这里L1=﹁Q,L2=Q,通过归结可以得到 : C12= NIL
对谓词归结
统一变元:需要先用一个最一般合一对变元进行代换,使归结子句含互补文字后才能进行归结。
子句集的求取:
(1)消去蕴涵符号: 以~A∨B替换A → B。
(2)缩小否定符号的辖域: 每个否定符号~最多只用到一个谓词符号上, 并反复应用狄·摩根定律。
(3) 变量标准化:改名哑元(受量词约束的变元), 保证每个量词用唯一的哑元, 即不同量词约束的变元有不同的名字。
(4)消去存在量词 : (a)对全称量词辖域内的存在量词, 以Skolem 函数代替存在量词内的约束变量; (b) 对自由的存在量词, 以一个新常量替代
(5)化为前束形(注意不能改变其相对顺序) : 把所有全称量词移到公式的左边, 并使每个量词的辖域包括这个量词后面公式的整个部分。
(6)母式化为合取范式:
(7) 消去全称量词: 余下的量词均被全称量词量化了。消去前缀, 即消去明显出现的全称量词。
(8)消去连词符号∧: 用{A, B}代替(A∧B), 消去符号∧。最后得到一个有限子句集, 其中每个公式(子句)是文字的析取。
(9) 更换变量名称: 更换变量符号, 使一个变量符号只出现在一个子句中。
总结:
(1)消去蕴涵符号 (2)缩小否定符号的辖域(狄·摩根定律) (3)变量标准化(哑元唯一) (4)消去存在量词() (5)化为前束形 (6)化为合取范式(∧) (7)消去全称量词() (8)消去连词符号(∧) (9)更换变量名(同一变量名不出现在一个以上子句)
归结演绎推理方法:
(1) 给出{S}, L
(2) 否定L, 得~L;
(3) 把~L添加到S中去, 把新产生的集合{~L, S}化成子句集;
(4) 应用消解原理, 力图推出一个表示矛盾的空子句,则停止归结,此时就证明了L为真。
示例
前提:每个储蓄钱的人都获得利息。 结论:如没有利息, 那么就没有人去储蓄钱
归结演绎求解问题答案
把问题的已知条件用谓词公式表示出来,并化为相应的子句集;
(2) 把问题的目标的否定用谓词公式表示出来,并化为子句集;
(3) 对目标否定子句集中的每个子句,构造该子句的重言式(即把该目标否定子句和此目标否定子句的否定之间再进行析取所得到的子句), 用这些重言式代替相应的目标否定子句式,并把这些重言式加入到前提子句集中,得到一个新的子句集;
(4) 对这个新的子句集,应用归结原理求出其证明树,证明树的根子句不为空,称这个证明树为修改的证明树;
(5) 用修改证明树的根子句作为回答语句,则答案就在此根子句中。