人工智能之经典逻辑推理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31456593/article/details/78622682

人工智能之经典逻辑推理


人工智能课程复习笔记专题
人工智能绪论
人工智能之知识表示
人工智能之搜索方法
人工智能之经典逻辑推理
人工智能之专家系统
人工智能之不确定推理方法
人工智能之机器学习

一、推理的基本概念

1、推理方式及分类

按推理逻辑基础分类:
演绎推理:
演绎推理是从已知的一般性知识出发,去推出蕴含在这些已知知识中的适合于某种个别情况的结论。是一种由一般到个别的推理方法,其核心是三段论,

归纳推理:
是一种由个别到一般的推理方法。从足够多的事例中归纳出一般性结论的推理过程。

默认推理:
默认推理又称为缺省推理,它是在知识不完全的情况下假设某些条件已经具备所进行的推理。

按推理时所用知识的确定性
确定性推理:
确定性推理是指推理时所用的知识都是精确的,推出的结论也是确定的,其真值或者为真,或者为假,没有第三种情况出现。

不确定性推理
不确定性推理是指推理时所用的知识不都是精确的,推出的结论也不完全是肯定的,其真值位于真与假之间。

按推理过程中的单调性
单调推理
推出的结论呈单调增加的趋势,并且越来越接近最终目标。

非单调推理
由于新知识的加入,不仅没有加强已推出的结论,反而要否定它。

2.推理的控制策略

推理方向:正、反向
搜索策略
求解策略:一个解、所有解、最优解
冲突消解:正对象排序、匹配度排序
限制策略:深度、宽度、时间、空间

3.模式匹配及其变量代换

模式匹配是指两个知识模式(如两个谓词公式、两个框架片断等)的比较,检查这两个知识模式是否完全一致或近似一致。如果两者完全一致,或者虽不完全一致但其相似程度落在指定的限度内,就称它们是可匹配的,否则为不可匹配。

确定性匹配:两个知识模式完全一致,或经过变量代换后完全一致
不确定性匹配:两个知识模式不完全一致,但总体看来,他们的相似度又落在规定的限度内。

代换(置换)
{t1/x1,t2/x2,…,tn/xn}
的有限集合。其中,t1,t2,…,tn是项;x1,x2,…,xn是互不相同的变元;ti/xi表示用ti替换xi。并且要求ti与xi不能相同,xi不能循环地出现在另一个ti中。

置换的复合
θ={t1/x1,t2/x2,…,tn/xn}
λ={ u1/y1, u2/y2, … , um/ym }
是两个置换。则θ与λ的复合(合成)也是一个置换,记作θ°λ。它是从集合
{ t1λ/x1, t2λ/x2, … , tnλ/xn, u1/y1, u2/y2, … , um/ym }
中删去以下两种元素
① 当tiλ=xi时, 删去tiλ/xi (i=1, 2 ,…, n);
② 当yj∈{ x1, x2 ,…, xn }时, 删去uj/yj (j=1, 2 ,…, m)
最后剩下的元素所构成的集合。

合一

寻找项对变量的置换,使得两个谓词公式一致。

设有公式集F={F1, F2,…,Fn},若存在一个置换θ,可使
F1θ=F2θ=…=Fnθ,
则称θ是F的一个合一。称F1,F2,…,Fn是可合一的。
例如,设有公式集F={P(x,y,f(y)), P(a,g(x),z)},则
λ={a/x, g(a)/y, f(g(a))/z}

合一是一种置换

最一般合一
设σ是公式集F的一个合一,如果对F的任一个合一θ都存在一个置换λ,使得θ=σ°λ,则称σ是一个最一般合一。
是它的一个合一。

差异集
设有如下两个谓词公式:
F1:P(x, y, z)
F2:P (x, f (A), h(B) )
分别从F1与F2的第一个符号开始,逐个向右比较,此时发现F1与F2构差异集:
D1={y, f (A)}, D2={z, h(B)}

求最一般合一算法

例   设有公式集
F={P(A, x, f  (g (y))),  P(z, f (z), f (u)) }
求其最一般合一。
    解:初始化,令k=0,σ0=ε,
      F0=F={ P (A, x, f (g (y))),  P(z, f (z),  f (u)) }
Loop 1:F0={ P (A, x, f (g (y))),  P(z, f (z),  f (u)) }
含有2个表达式,故σ0不是最一般合一。
    F0的差异集D0={A,z},可有代换A/z,
σ10  ° {A/z}={A/z}
    F1=F0{A/z}={ P(A, x,  f (g (y))),  P(A,  f (A),  f (u)) } 

Loop 3:
    F2={ P(A,  f (A), f (g (y))),P(A,  f (A), f (u))}含有2个表达式,故σ2不是最一般合一
    F2的差异集D2={g (y),u},可有代换
    {g (y)/u},
    σ32 °{g (y)/u}={ A/z,  f (A)/x } °{g (y)/u}={A/z,  f (A)/x,  g (y)/u}
    F3=F2{g (y)/u}={ P(A,  f (A),  f (g (y))), P(A,  f (A),  f (g(y))) }= { P(A,  f (A),  f (g (y))) } 

Loop 4:F3中只含有一个表达式,故算法成功终止,σ3 ={A/z, f (A)/x, g (y)/u},即为公式集F的最一般合一。

二、自然演绎推理

从一组已知为真的事实出发,直接运用经典逻辑中的推理规则推出结论的过程称为自然演绎推理。

设已知如下事实:
(1) 只要是需要编程序的课,王程都喜欢。
(2) 所有的程序设计语言课都是需要编程序的课。
(3) C是一门程序设计语言课。
求证:王程喜欢C这门课。
证明:首先定义谓词
Prog(x) x是需要编程序的课。
Like(x, y) x喜欢y。
Lang(x) x是一门程序设计语言课
把已知事实及待求解问题用谓词公式表示如下:
Prog(x)→Like(Wang , x)
(∀x)( Lang(x)→Prog(x))
Lang(C)
应用推理规则进行推理:
Lang(y)→Prog(y) 全称固化
Lang(C),Lang(y)→Prog(y) ⇒ Prog(C) 假言推理 {C/y}
Prog(C), Prog(x)→Like(Wang , x) ⇒ Like(Wang , C) 假言推理 {C/x}
因此,王程喜欢C这门课。

三、归结演绎推理

1、谓词公式化为子句集

原子谓词公式及其否定统称为文字。
例如,P(x)、Q(x)、﹁ P(x)、 ﹁ Q(x)等都是文字。
任何文字的析取式称为子句。
例如,P(x)∨Q(x),P(x,f(x))∨Q(x,g(x))都是子句。
不含任何文字的子句称为空子句NIL。
由子句或空子句所构成的集合称为子句集。

谓词公式化成子句集的步骤
(1) 消去连接词“→”和“↔”
反复使用如下等价公式:
P→Q ⇔﹁ P∨Q
P↔Q ⇔ (P∧Q)∨(﹁P∧﹁Q)
(2) 将否定符号“﹁”移到仅靠谓词的位置
反复使用双重否定率
﹁(﹁P) ⇔ P
摩根定律
﹁(P∧Q) ⇔﹁P∨﹁Q
﹁(P∨Q) ⇔﹁P∧﹁Q
量词转换率
﹁ (∀x)P(x) ⇔ (∃x) ﹁P(x)
﹁ (∃x)P(x) ⇔ (∀x)¬P(x)
(3) 对变元标准化
在一个量词的辖域内,把谓词公式中受该量词约束的变元全部用另外一个没有出现过的任意变元代替,使不同量词约束的变元有不同的名字。
例如,上式(∀x)((∃y)﹁P(x,y)∨(∃y)( Q(x,y) ∧﹁R(x,y)))经变换后为
(∀x)((∃y)﹁P(x,y)∨(∃z)( Q(x,z) ∧﹁R(x,z)))

(4) 化为前束范式
化为前束范式的方法:把所有量词都移到公式的左边,并且在移动时不能改变其相对顺序。
例如,上式化为前束范式后为
(∀x)(∃y) (∃z)(﹁P(x,y)∨( Q(x,z) ∧﹁R(x,z)))

(5) 消去存在量词
消去存在量词时,需要区分以下两种情况:
若存在量词不出现在全称量词的辖域内
(即它的左边没有全称量词),只要用一个新的个体常量替换受该存在量词约束的变元,就可消去该存在量词。
若存在量词位于一个或多个全称量词的辖域内
例如
(∀x1)…(∀xn) (∃y)P(x1,x2 ,…, xn ,y)
则需要用Skolem函数f(x1,x2 ,…, xn)替换受该存在量词约束的变元y,然后再消去该存在量词。
例如,上步所得公式中存在量词(∃y)和(∃z)都位于(∀x)的辖域内,因此都需要用Skolem函数来替换。设替换y和z的Skolem函数分别是f(x)和g(x),则替换后的式子为
(∀x)(﹁P(x,f(x))∨ (Q(x,g(x))∧﹁ R(x,g(x)) ) )

(6) 化为Skolem标准形
Skolem标准形的一般形式为
(∀x1)…(∀xn) M(x1,x2,……,xn)
其中, M(x1,x2,……,xn)是Skolem标准形的母式,它由子句的合取所构成。把谓词公式化为Skolem标准形需要使用以下等价关系
P∨(Q∧R) ⇔ (P∨Q)∧(P∨R)
例如,前面的公式化为Skolem标准形后为
(∀x)((﹁P(x,f(x))∨Q(x,g(x))∧(﹁P(x,f(x))∨﹁R(x,g(x))))
(7) 消去全称量词
由于母式中的全部变元均受全称量词的约束,并且全称量词的次序已无关紧要,因此可以省掉全称量词。但剩下的母式,仍假设其变元是被全称量词量化的。
例如,上式消去全称量词后为
(﹁P(x,f(x))∨Q(x,g(x)) ∧(﹁P(x,f(x))∨﹁R(x,g(x)))

(8) 消去合取词
在母式中消去所有合取词,把母式用子句集的形式表示出来。
例如,上式的子句集中包含以下两个子句
﹁P(x,f(x))∨Q(x,g(x))
﹁P(x,f(x))∨﹁R(x,g(x))
(9) 更换变量名称
对子句集中的某些变量重新命名,使任意两个子句中不出现相同的变量名。
例如,对前面的公式,可把第二个子句集中的变元名x更换为y,得到如下子句集
﹁P(x,f(x))∨Q(x,g(x))
﹁P(y,f(y))∨﹁R(y,g(y))

定理 设有谓词公式F,其标准子句集为S,则F为不可满足的充要条件是S为不可满足的。
由此定理可知,为要证明一个谓词公式是不可满足的,只要证明相应的子句集是不可满足的就可以了。

2、归结原理

首先把欲证明问题的结论否定,并加入子句集,得到一个扩充的子句集S’。然后设法检验子句集S’是否含有空子句,若含有空子句,则表明S’是不可满足的;
若不含有空子句,则继续使用归结法,在子句集中选择合适的子句进行归结,直至导出空子句或不能继续归结为止。

归结就是不断对子句求合取的过程

命题逻辑的归结原理

子句集S是不可满足的,当且仅当存在一个从S到空子句的归结过程。

谓词逻辑的归结原理
在谓词逻辑中,由于子句集中的谓词一般都含有变元,因此不能象命题逻辑那样直接消去互补文字。而需要先用一个最一般合一对变元进行代换,然后才能进行归结。

3、基于归结反演的问题求解

归结原理出了可用于定理证明外,还可用来求取问题答案,其思想与定理证明相似。其一般步骤为:
①把已知前提用谓词公式表示出来,并且化为相应的子句集S;
②把待求解的问题也用谓词公式表示出来,然后把它的否定式与谓词ANSWER构成一个析取式,ANSWER是一个为了求解问题而专设的谓词,其变元数量和变元名必须与问题公式的变元完全一致;
③把此析取式化为子句集,并且把该子句集并入到子句集S中,得到子句集S;
④对S应用归结原理进行归结;
⑤若在归结树的根节点中仅得到归结式ANSWER,则答案就在ANSWER中。

四、与或型演绎推理

将领域知识和已知事实分别用蕴含式和与/或形表示,然后运用蕴含式进行演绎推理,从而证明某个目标公式。
与或型正向演绎推理
从已知事实出发,正向使用蕴含式(F规则)进行演绎推理。
与或型反向演绎推理
从目标公式的与或树出发,反向使用规则(B规则),直至得出所有含有事实节点。

猜你喜欢

转载自blog.csdn.net/qq_31456593/article/details/78622682