归结与演绎

1、应用归结之前,wff(合式公式)必须是一个范式或标准形式。范式有三种主要类型:

1)合取范式。如:

(P1∨P2....)∧(Q1∨Q2...)∧(Z1∨Z2...)

2)子句。

全子句形式的表达式通常如下:(表示A1,A2,...An全真是,B1,。。。Bn中至少有一个为真)

A1,A2,...An->B1,B2,.....Bn

3)HORN子句子集。

PROLOG使用HORN子句,只允许一个头:

A1,A2,....An->B

用PROLOG可以写成:

B:A1,A2,...An

2、归结的基本目标是从两个称为根子句的子句推导出一个新的子句,即消解式。

1)A∨B

A∨~B

∴A

推导过程如下:

(A∨B)∧(A∨~B)≡A∨(B∧~B)≡A

3、归结系统和演绎

给定wff

A1,A2,....An

∴C

1)归结:

A1∧A2∧.....An->C≡~(A1∧A2∧......An)∨C≡~A1∨~A2∨...∨An∨C

2)反驳归结:(证明了如果1)为重言式,则下式为矛盾式,即证明否定式为矛盾式)

~(A1∧A2∧.....An->C)≡~(~(A1∧A2∧......An)∨C)≡A1∧A2∧...∧An∧~C

4、反驳归结树:

如:

A->B

B->C

C->D

∴A->D

得出否定式:

~(~A∨D)≡A∧~D

树如下,归结得到的根是空的,表示为假,否定式为矛盾式



 

 

5、反驳归结

设:

B=电池是好的 C=汽车能跑

E=有电F=火花塞能打火

G=有汽油R=发动机能工作

S=火花塞是好的 T=有好的轮胎

规则如下:

(1)(本条为结论规则,是一条定理,以下条为其它规则)B∧S∧G∧T->C

(2) B->E

(3) E∧S->F

(4)E∧G->R

(5)R∧T->C

首先,得出结论的否定式:

(1') ~(B∧S∧G∧T->C)=~(~B∨~S∨~G∨~T∨C)

接着,对其它规则进行变化:

(2') ~B∨E

(3') ~(E∧S)∨F=~E∨~S∨F

(4') ~(F∧G)∨R=~F∨~G∨R

(5') ~(R∧T)∨C=~R∨~T∨C

进行反驳归结,树如下:可以看到根为空,所以B∧S∧G∧T->C这个定理成立。

归结演绎推理是一种基于逻辑推理的方法,它通过使用归结规则将问题转化为逻辑公式,并使用逻辑推理方法来判断这些公式是否成立。在Python中实现归结演绎推理可以使用逻辑推理库,例如pyke、prolog或者logic等。 以下是一个使用pyke库实现归结演绎推理的示例代码: 首先,我们需要定义几个规则,例如: ``` rule: mortal(?x) and man(?x) --> human(?x) rule: not human(?x) or kind(?x) --> god(?x) ``` 这两条规则定义了如果一个人是人类并且是男性,那么他就是人类;如果一个人不是人类或者是善良的,那么他就是神。 接下来,我们可以使用pyke库来实现归结演绎推理。我们需要定义一个KnowledgeEngine并添加我们的规则。然后,我们可以向它提出一个问题,并通过推理来得出结论。 下面是一个简单的示例代码: ```python from pyke import knowledge_engine engine = knowledge_engine.engine(__file__) # 添加规则 engine.add_rules(""" rule: mortal(?x) and man(?x) --> human(?x) rule: not human(?x) or kind(?x) --> god(?x) """) # 提出问题 engine.activate('mortal("Socrates")') engine.prove_1_goal('god("Socrates")') ``` 在这个示例中,我们通过添加规则来定义归结演绎推理过程。然后,我们向引擎提出了一个问题,即“苏格拉底是否是神”。最后,我们使用prove_1_goal方法来进行推理,并得出结论。 需要注意的是,使用归结演绎推理需要定义好规则,并且需要对规则进行有效性验证。在实际应用中,需要根据具体的问题来定义规则,以便得到正确的结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值