人工智能——归结演绎推理

1. 子句

1) 文字原子谓词及其否定

定义1:任何文字析取式称为子句

定义2:不包含任何文字的子句称为空子句,子句是永假的

 

2) 由子句构成的集合称为子句集,谓词公式成子句集的步骤

a) 利用等价关系消去谓词公式中的clip_image002clip_image004


clip_image006

clip_image008

 

b) 利用下列等价关系把“clip_image010”移到紧靠谓词的位置上


clip_image012

clip_image014

clip_image016

clip_image018

 

c) 重新命名变元名,使不同量词约束的变元有不同的名字

d) 消去存在量词

e) 把全称量词移到公式左边

f) 利用等价关系

g) 消去全称量词

h) 对变元更名

i) 消去合取词

 

2. Robinson归结定理(消解原理)

1) 基本思想

检查子句集S中是否包含空子句,若包含则S不可满足;若不包含,就在子句集中选择合适的子句进行归结,一旦通过归结推出空子句,就说明子句集S是不可满足的。

定义:若p是原子谓词公式,则称clip_image020clip_image022互补文字

 

2) 命题逻辑中的归结原理

定义:设C1与C2是子句集中的任意两个子句,如果C1中的文字L1与C2中的文字L2互补,那么从C1和C2中分别消去L1和L2,并将两个子句中余下的部分析取构成一个新子句C12,则称这个过程为归结,称C12为C1和C2的归结式,称C1和C2为C12的亲本子句。

 

3) 谓词逻辑中的归结原理

首先对变元进行代换,然后才能进行归结。

 

4) 归结反演

应用归结原理证明定理的过程称为归结反演。设F为已知前提的公式集,Q为目标公式(结论),用归结反演证明Q为真的步骤是:

a) 否定Q得到clip_image010[1]Q

b) 把clip_image010[2]Q并入到公式集中,得{F,clip_image010[3]Q }

c) 把公式集{F,clip_image010[4]Q }化为子句集S

d) 应用归结原理对子句集S中的子句进行归结,并把每次归结得到的归结式都并入S中,反复进行,若出现了空子句,则停止归结,此时证明了Q为真。

 

归结反演例示

A,B,C三人中有人从来不说真话,也有人从来不说假话,某人向这三人分别提出一个问题:谁是说谎者?A答:“B和C都是说谎者”;B答:“A和C都是说谎者”;C答:“A和B中至少有一个说谎者”求谁是老实人,谁是说谎者。

设用T(X)表示X说真话,已知前提用谓词表示

如果A说的是真话clip_image025

如果A说的是假话clip_image027

如果B说的是真话clip_image029

如果B说的是假话clip_image031

如果C说的是真话clip_image033

如果C说的是假话clip_image035

化成子句集,得到S:

(1)clip_image037

(2)clip_image039

(3)clip_image041

(4)clip_image043

(5)clip_image045

(6)clip_image047

(7)clip_image049

(8)clip_image051

(9)clip_image053     (1)与(7)

(10)clip_image055               (6)与(9)

(11)clip_image057    (8)与(10)

  

3. 归结策略

1) 归结的一般过程

设有子句集S={C1,C2,C3,C4}

(1)从子句C1开始,逐个与C2,C3,C4进行比较,归结。然后用C2与C3和C4进行比较,归结。最后用C3和C4比较,归结。得到第一级归结式。

再从C1开始,用S中的子句分别与第一级归结式中的子句逐个地进行比较,归结,得到第二级归结式。

(2)仍然从C1开始,用S中的子句及第一级归结式中的子句逐个地与第二级归结式中的子句进行比较归结,得到第三级归结式。

(3)继续直到出现空子句或者不能再继续归结为止。

 

2) 删除策略

(1)纯文字删除法

如果某文字L在子句集中不存在可与之互补的文字clip_image010[5]L,则称该文字为纯文字。

(2)重言式删除法

如果一个子句中同时包含互补文字对,则称该子句为重言式。

(3)包孕删除法

设有子句C1和C2,如果存在一个代换clip_image060,使得C1clip_image060[1]clip_image062 C2,则称C1包孕于C2。

 

3) 支持集策略

每一次归结时,亲本子句中至少应有一个是由目标公式的否定所得到的子句,或者是它们的后裔。

 

4) 线性输入策略

参加归结的两个子句中必须至少有一个是初始子句集中的子句。

 

5) 单文字子句策略

一个子句只包含一个文字,要求参加归结的两个子句中必须至少有一个是单文字子句。

 

6) 祖先过滤策略

(1)C1和C2至少有一个是初始子句集中的子句。

(2)如果两个子句都不是初始子句集中的子句,则一个应是另一个的祖先,C2是由C1与别的子句归结后得到的归结式。

 

参考文献:

[1] 王永庆. 人工智能原理与方法. 西安: 西安交通大学出版社

[2] 尹朝庆. 人工智能方法与应用. 武汉: 华中科技大学出版社, 2007.

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2010/08/19/1803231.html

你可能感兴趣的:(人工智能,c/c++,python)