?F(x,y)∨?F(y,z)∨GF(x,z) ?GF(v,u)
{x/v,z/u}
?F(x,y)∨?F(y,z) ?P(r)∨F(s,r)
{x/s,y/r} ?F(y,z)∨?P(y) ?P(r)∨F(s,r)
{y/s,z/r} ?P(y)∨?P(z
{y/z} P(u) ?P(y)
{y/u} NIL
10、计算及简答
1、 已知产生式系统中具有下面的规则
R1:IF (X 身上有毛) Then (X 是哺乳动物) R2:IF (X喂奶)Then (X 是哺乳动物)
R3:IF (X 会飞)and (X 产卵)Then (X是鸟类) R4:IF (X有翅膀) and(X 不是企鹅)Then (X会飞)
R5:IF (X 是哺乳动物)and (X吃肉)Then (X 是食肉动物)
R6: IF (X 是哺乳动物)and (X有尖锐的牙齿)and (X有锋利的爪子)
Then(X 是食肉动物)
R7:IF(X 是哺乳动物)and (X 有蹄子)Then (X是有蹄动物)
R8:IF(X 是食肉动物)and (X的身体是黄褐色)and (X有黑色条纹)
Then (X是老虎)
R9:IF(X 是食肉动物)and (X的身体是黄褐色)and (X有黑色斑点)
Then (X是猎豹) 事实集合为: D1:(阿郎身上有毛) D2:(阿郎有尖锐的牙齿) D3:(阿郎有锋利的爪子) D4:(阿郎身体的颜色是黄褐色) D5:(阿郎身上有黑色斑点) 控制策略的考虑顺序为
C1:把已经执行过得一组规则从冲突集合中去掉 C2:选择具有更新数据的一组规则
C3:选择规则条件部分文字最多的一组规则 C4:选择任意一组规则 试问用前向推理如何运作?
解: 事实 D1 D6、D2、D3 D7、D4、D5
规则 R1 消去 R6 消去 消去 R9 冲突集合 {R1,{D1}} {R1,{D1}} 策略 C2 C1 更新数据库 D6:阿郎是哺乳动物 D7:阿郎是食肉动物 D8:阿郎是猎豹 {R6,{D2、D3、C3 D6}} {R1,{D1}} C1 {R6,{D2、D3、C1 D6}} {R9,{D4、D5、C3 D7}
11、论述产生式系统求解问题的基本过程。
答:产生式系统问题求解的基本过程为:
① 初始化综合数据库,把欲解决问题的已知事实送入综合数据库中。
② 检查规则库中是否存在尚未使用过的规则,若有则执行③;否则转⑦。
③ 检查规则库的未使用规则中是否存在有其前提可与综合数据库中已知事实相匹配的规则,若有则从中选择一个;否则转⑥。
④ 执行当前选中规则,并对该规则作上标记,把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作。
⑤ 检查综合数据库中是否包含了该问题的解,若已包含,则说明已求出解,问题求解过程结束;否则,转②。
⑥ 当规则库中还有未使用规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转②;否则,说明该问题无解,终止问题求解过程。
⑦ 若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。
12、设个体域D?{1,2},求公式G?(?x)(?y)P(x,y)在D上的解释,并指出每一种解释下公式
G的真值
解:谓词公式的解释主要是对公式中的个体常量、函数、谓词按如下规则赋值: (1) 为每一个个体常量指派D中的一个元素 (2) 为每个n元函数指派一个映射、
由于公式G中没有包含个体常量和函数,直接为谓词指派真值 如果指派真值如下表所示: P(1,1) T P(1,2) F P(2,1) T P(2,2) F 则公式G?(?x)(?y)P(x,y)根据上表的解释,其真值为T 但若指派真值如下表所示: P(1,1) T P(1,2) T P(2,1) F P(2,2) F 则公式G?(?x)(?y)P(x,y)根据上表的解释,其真值为F
13、 考虑下面的句子: (1)每个程序都存在BUG
(2)含有BUG的程序无法工作 (3)P是一个程序
问题:
(1) 采用一介谓词逻辑表示上述知识
(2) 使用归结原理和自然演绎推理两种方式证明P不能工作 解:(1) 定义谓词
BUG(X)——X 存在BUG Program(X)——X 是程序 Work(X)——X 能工作 事实及规则的表示
R1:(?x)(Program(x)?BUG(x)) R2:(?y)(BUG(x)??Work(x)) F1:Program(P) (2) A、
利用归结原理证明P不能工作
结论取反:Work(P)) (公式1) R1化简字句为:?Program(x)?BUG(x) (公式2) R2化简字句为:?BUG(y)??Work(y) (公式3) F1化简字句为:Program(P) (公式4) 归结过程如下:
公式(2)和公式(4)归结为:
BUG(P) 其中{Px} 公式(5)
公式(5)和公式(3)归结为:
?Work(P)其中{Py} 公式(6)
公式(6)和公式(1)归结为:
NIL 公式(7)
结论得证:P不能工作 B、 自然演绎证明P不能工作 过程如下:
已知Program(P)
规则R1:(?x)(Program(x)?BUG(x))
利用三段论可得:BUG(P)
利用规则R2:(?y)(BUG(x)??Work(x)) 利用三段论可得:?Work(P) 结论得证
14、按“师生框架”、“教师框架”、“学生框架”的形式写出一个框架系统的描述。
解:师生框架
Frame
Name:Unit(Last-name,First-name) Sex:Area(male,female) Default:male Age:Unit(Years)
Telephone:Home Unit(Number)
Mobile Unit(Number)
教师框架
Frame
AKO
Project :Area(National,Provincial,Other) Default:Provincial
Paper:Area(SCI,EI,Core,General) Default:Core
学生框架
Frame
AKO< Teachers-Students > Major:Unit(Major-Name) Classes:Unit(Classes-Name)
Degree:Area(doctor,mastor, bachelor) Default:bachelor
15、假设张被盗,公安局派出5个人去调查。案情分析时,贞察员A说:“赵与钱中至少有一个人作案”,贞察员B说:“钱与孙中至少有一个人作案”,贞察员C说:“孙与李中至少有一个人作案”,贞察员D说:“赵与孙中至少有一个人与此案无关”,贞察员E说:“钱与李中至少有一个人与此案无关”。如果这5个侦察员的话都是可信的,使用归结演绎推理求出谁是盗窃犯。 解:(1) 先定义谓词和常量
设C(x)表示x作案,Z表示赵,Q表示钱,S表示孙,L表示李 (2) 将已知事实用谓词公式表示出来
赵与钱中至少有一个人作案:C(Z)∨C(Q) 钱与孙中至少有一个人作案:C(Q)∨C(S) 孙与李中至少有一个人作案:C(S)∨C(L)
赵与孙中至少有一个人与此案无关:? (C (Z)∧C(S)),即 ?C (Z) ∨?C(S) 钱与李中至少有一个人与此案无关:? (C (Q)∧C(L)),即 ?C (Q) ∨?C(L) (3) 将所要求的问题用谓词公式表示出来,并与其否定取析取。 设作案者为u,则要求的结论是C(u)。将其与其否)取析取,得:
? C(u) ∨C(u)
(4) 对上述扩充的子句集,按归结原理进行归结,其修改的证明树如下:
C(Z)∨C(Q) ?C (Z) ∨?C(S)
C(Q)∨?C(S) C(Q)∨C(S)
?C(u)∨C(uC(Q) {Q/u} C(Q)
因此,钱是盗窃犯。实际上,本案的盗窃犯不止一人。根据归结原理还可以得出:
C(S)∨C(L) ?C (Q) ∨?C(L)
C(S)∨?C(Q) C(Q)∨C(S)
?C(u)∨C(uC(S) {S/u} C(S)
因此,孙也是盗窃犯。