在命题逻辑中我们讨论了归结与逆归结,这里我们将其推广到一阶逻辑中
一阶逻辑的归结、逆归结通常用到“置换”和“合一”操作
逆结归的特点之一就是能自动发明新谓词,但新谓词的语义需要领域知识进行理解
逆归结
在命题逻辑中我们讨论了归结与逆归结,这里我们将其推广到一阶逻辑中,
逆归结操作定义了四种【西瓜书式(15.10) ∼ \,\thicksim ∼(15.13)】,分别是吸收、辨识、内构和互构。 其中,小写字母表示逻辑文字,大写字母表示合取式的逻辑子句,“分数” X Y \frac{X}{Y} YX的意义同图~\ref{fig:fig15-7}(但不是真正分数),特点:
- “分子” X X X中的子句,要么是“分母” Y Y Y的归结项,要么是 Y Y Y的某子句的等价项。
- “分母” Y Y Y中的子句,是由“分子” X X X中的子句逆归结出来的知识,记为 X ⊢ Y X\vdash Y X⊢Y( X X X推出 Y Y Y),而出现的新逻辑文字(如,互构中的 r r r),则看作学到的新命题。
这些操作的推导要用到逻辑代数知识,这里以“吸收”操作为例,进行推导示例:
观察【西瓜书式(15.10)】,只须求出图15.9 中的
C
2
C_2
C2为
p
←
(
B
∧
q
)
p\leftarrow (B\land q)
p←(B∧q)即可。
C = p ← A ∧ B = p ∨ ( ¬ ( A ∧ B ) ) (由式(15.14)) = p ∨ ( ( ¬ A ) ∨ ( ¬ B ) ) ) = p ∨ ¬ A ∨ ¬ B C 1 = q ← A = q ∨ ( ¬ A ) (由式(15.14)) = q ∨ ¬ A \begin{align} C & =p\leftarrow A\land B\notag \\ & =p\lor(\lnot (A\land B)) \text{(由式(15.14))}\notag \\ & =p\lor((\lnot A)\lor (\lnot B)))\notag \\ & =p\lor\lnot A\lor \lnot B \tag{15.27} \\ C_1 & =q\leftarrow A\notag \\ & =q\lor(\lnot A) \text{(由式(15.14))}\notag \\ & =q\lor\lnot A \tag{15.28} \end{align} CC1=p←A∧B=p∨(¬(A∧B))(由式(15.14))=p∨((¬A)∨(¬B)))=p∨¬A∨¬B=q←A=q∨(¬A)(由式(15.14))=q∨¬A(15.27)(15.28)
视
L
=
q
L=q
L=q,并将式(15.27)、式(15.28)代入式(15.13)有
C
2
=
(
C
−
(
C
1
−
{
L
}
)
)
∨
{
¬
L
}
=
(
(
p
∨
¬
A
∨
¬
B
)
−
(
(
q
∨
¬
A
)
−
{
q
}
)
)
∨
{
¬
q
}
=
(
p
∨
(
¬
A
)
∨
(
¬
B
)
)
−
(
¬
A
)
)
∨
{
¬
q
}
=
p
∨
(
¬
B
)
)
∨
{
¬
q
}
=
p
∨
(
¬
(
B
∧
q
)
)
=
p
←
(
B
∧
q
)
(由式(15.14))
\begin{align} C_2 & =(C-(C_1-\{L \}))\lor \{\lnot L \}\notag \\ & =((p\lor\lnot A\lor \lnot B)-((q\lor\lnot A)-\{q \}))\lor \{\lnot q \}\notag \\ & =(p\lor(\lnot A)\lor (\lnot B))-(\lnot A))\lor \{\lnot q \}\notag \\ & =p\lor (\lnot B))\lor \{\lnot q \}\notag \\ & =p\lor( \lnot (B\land q))\notag \\ & =p\leftarrow (B\land q) \text{(由式(15.14))} \tag{15.29} \end{align}
C2=(C−(C1−{L}))∨{¬L}=((p∨¬A∨¬B)−((q∨¬A)−{q}))∨{¬q}=(p∨(¬A)∨(¬B))−(¬A))∨{¬q}=p∨(¬B))∨{¬q}=p∨(¬(B∧q))=p←(B∧q)(由式(15.14))(15.29)
即得证。
上述逆归结写成输入(“分子”)和输出(“分母”)的形式,即为图15.10 【西瓜书式(15.10)】。
一阶逻辑的归结、逆归结通常用到“置换”和“合一”操作:
(i) 置换
- 用“分子”置换“分母”,记为 { X Y } \{\frac{X}{Y}\} {YX}:“分数”中“分子”比“分母”更具体,置换可视为进行具体化,如, 人 动物 \frac{\text{人}}{\text{动物}} 动物人,则用“人”去置换“动物”,即: 某命题对“动物”成立,置换后,该命题对“人”也成立。
- 与代数中的置换类似,可以定义复合置换和逆置换等。
(ii) 合一
{
A
=
色泽更深
(
1
,
X
)
B
=
色泽更深
(
Y
,
2
)
⟹
θ
C
=
色泽更深
(
1
,
2
)
\begin{align} \begin{cases} A=\text{色泽更深}(1,X) \\ B=\text{色泽更深}(Y,2) \end{cases} \mathop{\Longrightarrow }\limits^\theta C=\text{色泽更深}(1,2) \tag{15.30} \end{align}
{A=色泽更深(1,X)B=色泽更深(Y,2)⟹θC=色泽更深(1,2)(15.30)
即找一个置换
θ
\theta
θ,使得
A
,
B
A,B
A,B能“合一”成
C
C
C。
比较 A A A与 C C C,应有置换 { 2 X } \{\frac{2}{X}\} {X2},比较 B B B与 C C C,应有置换 { 1 Y } \{\frac{1}{Y}\} {Y1},而这两置换不矛盾,故可取 θ = { f r a c 2 X , 1 Y } \theta =\{frac{2}{X},\frac{1}{Y}\} θ={frac2X,Y1}。 在置换 θ \theta θ的作用下, A θ = B θ = C A\theta=B\theta=C Aθ=Bθ=C,称置换 θ \theta θ为 A A A和 B B B的“合一化子”。
对于一组一阶逻辑表达式 W W W,可能有多个“合一化子”,这时,可定义其中“最厉害”(替换的常量越少越好,泛化越广越好)的为“最一般合一化子”,记为MGU。
由15.3 归结与逆归结图 15.1,有
{
C
1
=
A
∨
L
C
2
=
B
∨
¬
L
\begin{align} \begin{cases} C_1=A \lor L \\ C_2=B \lor \lnot L \\ \end{cases} \tag{15.31} \end{align}
{C1=A∨LC2=B∨¬L(15.31)
然而,通常不易直接发现互补项(
L
L
L与
¬
L
\lnot L
¬L),我们求其次。 假定
{
C
1
=
A
∨
L
1
C
2
=
B
∨
L
2
\begin{align} \begin{cases} C_1=A \lor L_1 \\ C_2=B \lor L_2 \\ \end{cases} \tag{15.32} \end{align}
{C1=A∨L1C2=B∨L2(15.32)
看能否有合一化子
θ
\theta
θ,使得
L
1
θ
=
¬
L
2
θ
L_1\theta=\lnot L_2\theta
L1θ=¬L2θ,若有,则也可进行归结,归结为
C
=
(
C
1
−
L
1
)
θ
∨
(
C
2
−
L
2
)
θ
\begin{align} C & =(C_1- L_1)\theta \lor (C_2- L_2)\theta \tag{15.33} \end{align}
C=(C1−L1)θ∨(C2−L2)θ(15.33)
这即【西瓜书式(15.14)】,它是【西瓜书式(15.7)】的推广。
证明:将
θ
\theta
θ作用于
C
1
,
C
2
C_1,C_2
C1,C2,即
{
C
1
θ
=
(
A
∨
L
1
)
θ
=
A
θ
∨
L
1
θ
C
2
θ
=
(
B
∨
L
2
)
θ
=
B
θ
∨
L
2
θ
\begin{align} \begin{cases} C_1\theta=(A \lor L_1)\theta=A\theta \lor L_1\theta \\ C_2\theta=(B \lor L_2)\theta=B\theta \lor L_2\theta \\ \end{cases} \tag{e15.34} \end{align}
{C1θ=(A∨L1)θ=Aθ∨L1θC2θ=(B∨L2)θ=Bθ∨L2θ(e15.34)
由
L
1
θ
=
¬
L
2
θ
L_1\theta=\lnot L_2\theta
L1θ=¬L2θ,设其为
L
L
L,则式(15.32)变为
{
C
1
θ
=
A
θ
∨
L
C
2
θ
=
B
θ
∨
¬
L
\begin{align} \begin{cases} C_1\theta=A\theta \lor L \\ C_2\theta=B\theta \lor \lnot L \\ \end{cases} \tag{15.35} \end{align}
{C1θ=Aθ∨LC2θ=Bθ∨¬L(15.35)
对式(15.35)应用归结原理式(15.9),则
C
=
C
1
θ
⋅
C
2
θ
=
A
θ
∨
B
θ
\begin{align} C & =C_1\theta\cdot C_2\theta\notag \\ & =A\theta \lor B\theta \tag{15.36} \end{align}
C=C1θ⋅C2θ=Aθ∨Bθ(15.36)
式(15.34)变形为
{
A
θ
=
(
C
1
−
L
1
)
θ
B
θ
=
(
C
2
−
L
2
)
θ
\begin{align} \begin{cases} A\theta =(C_1- L_1)\theta \\ B\theta =(C_2- L_2)\theta \\ \end{cases} \tag{15.37} \end{align}
{Aθ=(C1−L1)θBθ=(C2−L2)θ(15.37)
将式(15.37)代入式(15.36),则得式(15.33),证毕。
该归结表明:将寻找满足式(15.31)互补的 L L L与 ¬ L \lnot L ¬L,转变为针对式(15.32)而寻找满足 L 1 θ = ¬ L 2 θ L_1\theta=\lnot L_2\theta L1θ=¬L2θ的合一化子 θ \theta θ,然后,应用式(15.33)。 即归结由【西瓜书式(15.7)】扩展为【西瓜书式(15.14)】。
一阶逻辑中,已知: C C C与 C 1 C_1 C1,且 C = C 1 ⋅ C 2 C=C_1\cdot C_2 C=C1⋅C2,求 C 2 C_2 C2。 我们曾推出过式(15.13)即命题逆归结【西瓜书式(15.9)】,这里我们再作推广,即推导一阶逆归结【西瓜书式(15.16)】:
由已知条件即可知 C 1 C_1 C1中哪些文字在归结中消除了,设 L 1 ∈ C 1 L_1\in C_1 L1∈C1归结后消除,即 L 1 ∉ C L_1\notin C L1∈/C,注:前述 L L L(文字)有时写为 { L } \{L\} {L},有时写为 L L L,本书并不作区别,这里对 L 1 L_1 L1与 L 2 L_2 L2也如此。
则有
C
1
=
A
∨
{
L
1
}
\begin{align} C_1=A \lor \{L_1\} \tag{15.38} \end{align}
C1=A∨{L1}(15.38)
设
L
2
∈
C
2
,
L
2
∉
C
L_2\in C_2,\, L_2\notin C
L2∈C2,L2∈/C,即归结时消去了
L
2
L_2
L2,则
C
2
=
B
∨
{
L
2
}
\begin{align} C_2=B \lor \{L_2\} \tag{15.39} \end{align}
C2=B∨{L2}(15.39)
假定我们找到了
θ
1
,
θ
2
\theta _1 ,\, \theta _2
θ1,θ2使得
(
¬
{
L
1
}
)
θ
1
∘
θ
2
=
{
L
2
}
θ
1
∘
θ
2
\begin{align} (\lnot \{L_1\})\theta _1 \circ \theta _2=\{L_2\}\theta _1 \circ \theta _2 \tag{15.40} \end{align}
(¬{L1})θ1∘θ2={L2}θ1∘θ2(15.40)
并且它俩的作用域不同:
θ
1
\theta _1
θ1对
{
L
2
}
\{L_2\}
{L2}不起作用;
θ
2
\theta _2
θ2对
¬
{
L
1
}
)
\lnot \{L_1\})
¬{L1})不起作用,即
{
(
¬
{
L
1
}
)
θ
1
∘
θ
2
=
(
¬
{
L
1
}
)
θ
1
{
L
2
}
θ
1
∘
θ
2
=
{
L
2
}
θ
2
\begin{align} \begin{cases} (\lnot \{L_1\})\theta _1 \circ \theta _2=(\lnot \{L_1\})\theta _1 \\ \{L_2\}\theta _1 \circ \theta _2=\{L_2\}\theta _2 \\ \end{cases} \tag{15.41} \end{align}
{(¬{L1})θ1∘θ2=(¬{L1})θ1{L2}θ1∘θ2={L2}θ2(15.41)
由式(15.40)、式(15.41)有
{
(
¬
{
L
1
}
)
θ
1
=
{
L
2
}
θ
2
\begin{align} \begin{cases} (\lnot \{L_1\})\theta _1=\{L_2\}\theta _2 \\ \end{cases} \tag{15.42} \end{align}
{(¬{L1})θ1={L2}θ2(15.42)
在此条件下,式(15.38)、式(15.39)组成式(15.32),式(15.40)说明
θ
1
∘
θ
2
\theta _1 \circ \theta _2
θ1∘θ2为合一化子,故可应用式(15.33)归结,即
C
=
(
C
1
−
{
L
1
}
)
θ
1
∘
θ
2
∨
(
C
2
−
{
L
2
}
)
θ
1
∘
θ
2
\begin{align} C & =(C_1- \{L_1\})\theta _1 \circ \theta _2 \lor (C_2- \{L_2\})\theta _1 \circ \theta _2 \tag{15.43} \end{align}
C=(C1−{L1})θ1∘θ2∨(C2−{L2})θ1∘θ2(15.43)
增加
θ
1
,
θ
2
\theta _1 , \theta _2
θ1,θ2作用域的需求:
θ
1
\theta _1
θ1对
C
2
C_2
C2不起作用;
θ
2
\theta _2
θ2对
C
1
C_1
C1不起作用,即
{
(
C
1
)
θ
1
∘
θ
2
=
(
C
1
)
θ
1
(
C
2
)
θ
1
∘
θ
2
=
(
C
2
)
θ
2
\begin{align} \begin{cases} (C_1)\theta _1 \circ \theta _2=(C_1)\theta _1 \\ (C_2)\theta _1 \circ \theta _2=(C_2)\theta _2 \\ \end{cases} \tag{15.44} \end{align}
{(C1)θ1∘θ2=(C1)θ1(C2)θ1∘θ2=(C2)θ2(15.44)
由式(15.42)、式(15.44)
{
(
C
1
−
{
L
1
}
)
θ
1
∘
θ
2
=
(
C
1
−
{
L
1
}
)
θ
1
(
C
2
−
{
L
2
}
)
θ
1
∘
θ
2
=
(
C
2
−
{
L
2
}
)
θ
2
\begin{align} \begin{cases} (C_1- \{L_1\})\theta _1 \circ \theta _2=(C_1- \{L_1\})\theta _1 \\ (C_2- \{L_2\})\theta _1 \circ \theta _2=(C_2- \{L_2\})\theta _2 \\ \end{cases} \tag{15.45} \end{align}
{(C1−{L1})θ1∘θ2=(C1−{L1})θ1(C2−{L2})θ1∘θ2=(C2−{L2})θ2(15.45)
由式(15.43)、式(15.45)有
C
=
(
C
1
−
{
L
1
}
)
θ
1
∨
(
C
2
−
{
L
2
}
)
θ
2
\begin{align} C & =(C_1- \{L_1\})\theta _1 \lor (C_2- \{L_2\})\theta _2 \tag{15.46} \end{align}
C=(C1−{L1})θ1∨(C2−{L2})θ2(15.46)
故
C
2
θ
2
=
(
C
−
(
C
1
−
{
L
1
}
)
θ
1
)
∨
{
L
2
}
θ
2
=
(
C
−
(
C
1
−
{
L
1
}
)
θ
1
)
∨
(
¬
{
L
1
}
)
θ
1
(由式(15.42))
\begin{align} C_2\theta _2 & =(C-(C_1-\{L_1\})\theta _1 ) \lor \{L_2\}\theta _2\notag \\ & =(C-(C_1-\{L_1\})\theta _1 ) \lor (\lnot \{L_1\})\theta _1 \text{(由式(15.42))} \tag{15.47} \end{align}
C2θ2=(C−(C1−{L1})θ1)∨{L2}θ2=(C−(C1−{L1})θ1)∨(¬{L1})θ1(由式(15.42))(15.47)
两边以逆置换作用,即
C
2
=
(
(
C
−
(
C
1
−
{
L
1
}
)
θ
1
)
∨
{
¬
L
1
}
θ
1
)
θ
2
−
1
\begin{align} C_2=((C-(C_1-\{L_1\})\theta _1 ) \lor \{\lnot L_1\}\theta _1)\theta _2^{-1} \tag{15.48} \end{align}
C2=((C−(C1−{L1})θ1)∨{¬L1}θ1)θ2−1(15.48)
这即是扩展后的逆归结式,即由【西瓜书式(15.9)】扩展成【西瓜书式(15.16)】。
现在回过头来,看看如何找到满足式(15.40)、式(15.41)、式(15.44)的 θ 1 , θ 2 \theta _1 , \theta _2 θ1,θ2。
比较已知的
C
C
C与
C
1
C_1
C1,二者间相同的文字分别记为
C
′
C'
C′与
C
1
′
C'_1
C1′(可能变量不一样,设合一化子为
ϕ
1
\phi _1
ϕ1),则有
{
C
=
C
′
∨
C
′
′
C
1
=
C
1
′
∨
L
1
C
1
′
ϕ
1
=
C
′
\begin{align} \begin{cases} C=C'\lor C'' \\ C_1=C'_1\lor L_1 \\ C'_1\phi _1=C' \\ \end{cases} \tag{15.49} \end{align}
⎩
⎨
⎧C=C′∨C′′C1=C1′∨L1C1′ϕ1=C′(15.49)
故有
{
L
1
∈
C
1
,
L
1
∉
C
(
C
1
−
L
1
)
ϕ
1
=
C
′
ϕ
1
作用域为:
v
a
r
s
(
C
1
−
L
1
)
\begin{align} \begin{cases} L_1 \in C_1,\, L_1\notin C \\ (C_1- L_1)\phi _1=C' \\ \phi _1\text{作用域为: }\mathrm{vars}(C_1- L_1) \end{cases} \tag{15.50} \end{align}
⎩
⎨
⎧L1∈C1,L1∈/C(C1−L1)ϕ1=C′ϕ1作用域为: vars(C1−L1)(15.50)
考察
¬
L
1
ϕ
1
\lnot L_1\phi _1
¬L1ϕ1,以它的文字构造出一个
L
2
L_2
L2(文字相同,但设定变量不在
v
a
r
s
(
C
1
)
\mathrm{vars}(C_1)
vars(C1)范围中),文字相同故可以合一(如,式(15.30)),即可构造置换
ϕ
2
\phi _2
ϕ2和
θ
2
\theta _2
θ2使其合一化
{
¬
L
1
ϕ
1
∘
ϕ
2
=
L
2
θ
2
ϕ
2
作用域为:
v
a
r
s
(
C
1
)
−
v
a
r
s
(
C
1
−
L
1
)
θ
2
作用域为:
v
a
r
s
(
L
2
)
v
a
r
s
(
L
2
)
∩
v
a
r
s
(
C
1
)
=
∅
\begin{align} \begin{cases} \lnot L_1\phi _1\circ \phi _2=L_2\theta _2 \\ \phi _2\text{作用域为: }\mathrm{vars}(C_1)-\mathrm{vars}(C_1- L_1) \\ \theta _2\text{作用域为: }\mathrm{vars}(L_2) \\ \mathrm{vars}(L_2)\cap \mathrm{vars}(C_1)=\varnothing \end{cases} \tag{15.51} \end{align}
⎩
⎨
⎧¬L1ϕ1∘ϕ2=L2θ2ϕ2作用域为: vars(C1)−vars(C1−L1)θ2作用域为: vars(L2)vars(L2)∩vars(C1)=∅(15.51)
令
θ
1
=
ϕ
1
∘
ϕ
2
\theta _1=\phi _1\circ \phi _2
θ1=ϕ1∘ϕ2,由式(15.50)、式(15.51),其作用域:
{
v
a
r
s
(
C
1
−
L
1
)
}
∪
{
v
a
r
s
(
C
1
)
−
v
a
r
s
(
C
1
−
L
1
)
}
=
v
a
r
s
(
C
1
)
\begin{align} \{\mathrm{vars}(C_1- L_1)\}\cup\{\mathrm{vars}(C_1)-\mathrm{vars}(C_1- L_1)\}=\mathrm{vars}(C_1) \tag{15.52} \end{align}
{vars(C1−L1)}∪{vars(C1)−vars(C1−L1)}=vars(C1)(15.52)
由式(15.51)、式(15.52),有
{
θ
1
作用域为:
v
a
r
s
(
C
1
)
θ
2
作用域为:
v
a
r
s
(
L
2
)
v
a
r
s
(
L
2
)
∩
v
a
r
s
(
C
1
)
=
∅
\begin{align} \begin{cases} \theta _1\text{作用域为: }\mathrm{vars}(C_1) \\ \theta _2\text{作用域为: }\mathrm{vars}(L_2) \\ \mathrm{vars}(L_2)\cap \mathrm{vars}(C_1)=\varnothing \\ \end{cases} \tag{15.53} \end{align}
⎩
⎨
⎧θ1作用域为: vars(C1)θ2作用域为: vars(L2)vars(L2)∩vars(C1)=∅(15.53)
由式(15.53)有
{
¬
L
1
ϕ
1
∘
ϕ
2
=
¬
L
1
θ
1
=
¬
L
1
θ
1
∘
θ
2
L
2
θ
2
=
L
2
θ
1
∘
θ
2
\begin{align} \begin{cases} \lnot L_1\phi _1\circ \phi _2=\lnot L_1\theta _1=\lnot L_1\theta _1\circ \theta _2 \\ L_2\theta _2=L_2\theta _1\circ \theta _2 \end{cases} \tag{15.54} \end{align}
{¬L1ϕ1∘ϕ2=¬L1θ1=¬L1θ1∘θ2L2θ2=L2θ1∘θ2(15.54)
代入式(15.51)第一式,得
¬
L
1
θ
1
∘
θ
2
=
L
2
θ
1
∘
θ
2
\begin{align} \lnot L_1\theta _1\circ \theta _2=L_2\theta _1\circ \theta _2 \tag{15.55} \end{align}
¬L1θ1∘θ2=L2θ1∘θ2(15.55)
其中,设
θ
1
∘
θ
2
\theta _1\circ \theta _2
θ1∘θ2已简化为最一般合一化子(MGU),这即是式(15.40)。 作用域也满足式(15.44)的要求。
显然,上述 L 2 , θ 1 , θ 2 L_2,\theta _1 ,\theta _2 L2,θ1,θ2的选择不唯一(但 L 1 L_1 L1是唯一的,由式(15.49)确定),故需要一些判断标准来取舍,常用的工具有: 覆盖率、准确率和信息熵等。
逆结归的特点之一就是能自动发明新谓词,但新谓词的语义需要领域知识进行理解,【西瓜书p.363】得出了
{
q
(
1
,
S
)
←
纹理更清
(
1
,
S
)
q
(
1
,
T
)
←
敲声更沉
(
1
,
T
)
\begin{align} \begin{cases} q(1,S)\leftarrow \text{纹理更清}(1,S) \\ q(1,T)\leftarrow \text{敲声更沉}(1,T) \\ \end{cases} \tag{15.56} \end{align}
{q(1,S)←纹理更清(1,S)q(1,T)←敲声更沉(1,T)(15.56)
其中,新谓词
q
q
q是什么含义不得而知:更甜?更新鲜?
⋯
\cdots
⋯
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:15.9 归纳逻辑程序设计之最小一般泛化
下一篇:15.11 基于逆归结的机器证明