(7) GA(Lao,Xiao) [(4),(6),{Lao/u,Xiao/v}]
所以上述人员中,老李是小李的祖父。
2、假设张被盗,公安局派出5个人去调查。案情分析时,贞察员A说:“赵与钱中至少有一个人作案”,贞察员B说:“钱与孙中至少有一个人作案”,贞察员C说:“孙与李中至少有一个人作案”,贞察员D说:“赵与孙中至少有一个人与此案无关”,贞察员E说:“钱与李中至少有一个人与此案无关”。如果这5个侦察员的话都是可信的,使用归结演绎推理求出谁是盗窃犯。
解:设谓词P(x)表示x是盗窃犯.则题意可表述为如下的谓词公式: F1:P(zhao) ?P(qian) F2: P(qian) ?P(sun) F3: P(sun) ?P(li)
F4: ?P(zhao) ??P(sun) F5: ?P(qian) ??P(li) 求证的公式为: ?xP(x)
子句集如下:
①P(zhao) ? P(qian) ②P(qian) ? P(sun) ③P(sun) ? P(li)
④? P(zhao) ? ? P(sun) ⑤? P(qian) ? ? P(li) ⑥? P(x)? GA(x)
⑦P(qian)? ? P(sun) [①,④] ⑧P(sun) ? ? P(li) [②,⑤] ⑨P(sun) [③,⑧]
⑩GA(sun) [⑥,⑨,{sun/x}] ?P(qian) [⑦,⑨] ?GA(qian) [⑥,?,{qian/x}
3、设A、B、C中有人从来不说真话,也有人从来不说谎话,某人向这三人分别同时提出一个问题:谁是说谎者?A答:“B和C都是说谎者”;B答:“A和C都是说谎者”;C答:“A和B中至少有一个人说谎”。用归结原理求谁是老实人,谁是说谎者? 解:用T(x)表示x说真话
如果A说的是真话则有:T(A) ?(?T(B) ∧ ?T(C)) 如果A说的是假话则有: ? T(A) ? (T(B) ∨ T(C)) 对B和C所说的话做相同的处理,可得: T(B) ? (?T(A) ∧?T (C) ) ?T(B) ?(T(A) ∨ T(C))
T(C) ?(?T(A) ∨ ?T(B)) ? T(C) ?(T(A) ∧ T(B))
将上面的公式化为子句集,得到S: (1)? T(A) ∨?T(B) (2)? T(A) ∨ ?T(C )
(3)T(A) ∨ T(B ) ∨ T(C )
(4)? T(B) ∨?T(C )
(5)? T(A) ∨?T(B ) ∨?T(C ) (6)T(C) ∨ T(A) (7)T(C) ∨ T(B)
首先求谁是老实人。把? T(x) ∨ANS(x)并入S
中,得到子句集S 1,即S 1比S中多了一个子句: (8) ? T(x) ∨ANS(x) 子句集S1:
(1)? T(A) ∨?T(B) (2)? T(A) ∨ ?T(C )
(3)T(A) ∨ T(B ) ∨ T(C ) (4)? T(B) ∨?T(C )
(5)? T(A) ∨?T(B ) ∨?T(C ) (6)T(C) ∨ T(A) (7)T(C) ∨ T(B) (8) ? T(x) ∨ANS(x)
下面来证明B和A不是老实人,设A不是老实人,则有? T(A) , 将其否定并入S中,得到子句集S2,即S2比S多了一个子句: (8) ’? (? T(A) )即T(A)
利用归结原理对进行归结:
(9)’ ?T(A) ∨ T(C) [(1),(7)]
(10)’ T(C) [(6),(9)’] (11)’ T(A) ∨ T(C) [(8)’,(10)’]
(12)’ NIL [(2),(11)’]
七、产生式系统
1、猴子摘香蕉问题
一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为a,箱子位置为b,香蕉位置为c),如何行动可摘取到香蕉。 1、综合数据库 定义5元组(M, B, Box, On, H)
M:猴子的位置 B:香蕉的位置 Box:箱子的位置 On=0:猴子在地板上 On=1:猴子在箱子上 H=0:猴子没有抓到香蕉 H=1:猴子抓到了香蕉
2、量水问题
对量水问题给出产生式系统描述,并画出状态空间图。 有两个无刻度标志的水壶,分别可装5升和2升的水。设另有一水缸,可用来向水壶灌水或倒出水,两个水壶之间,水也可以相互倾灌。已知5升壶为满壶,2升壶为空壶,问如何通过倒水或灌水操作,使能在2升的壶中量出一升的水来。