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

归结演绎推理是基于逻辑反证法的定理证明方法,通过将永真性证明转为不可满足性证明。它涉及谓词公式的永真性、可满足性、范式,以及子句集、鲁滨逊归结原理和归结反演。这种推理在证明定理和求解问题中具有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是归结演绎推理

  • 归结演绎推理是一种基于逻辑“反证法”的机械化定理证明方法。其基本思想是把永真性的证明转化为不可满足性的证明。即要证明 P → Q P→Q PQ 永真,只要能够证明 P ∧ ﹁ Q P∧﹁Q PQ 为不可满足即可。

  • 谓词公式不可满足的充要条件是其子句集不可满足。因此,要把谓词公式转换为子句集,再用鲁滨逊归结原理求解子句集是否不可满足。如果子句集不可满足,则 P → Q P→Q PQ 永真


逻辑学基础

(1)谓词公式的永真性

如果谓词公式P对非空个体域D上的任一解释都取得真值T,则称P在D上是永真的;如果P在任何非空个体域上均是永真的,则称P永真。

(2)谓词公式的可满足性

对于谓词公式P,如果至少存在D上的一个解释,使公式P在此解释下的真值为T,则称公式P在D上是可满足的。

(3)谓词公式的范式

范式是公式的标准形式,公式往往需要变换为同它等价的范式,以便对它们进行一般性的处理。在谓词逻辑中,根据量词在公式中出现的情况,可将谓词公式的范式分为以下两种。

前束范式

  • 任一含有量词的谓词公式均可化为与其对应的前束范式

Skolem 范式

  • 任一含有量词的谓词公式均可化为与其对应的Skolem范式

子句和子句集


谓词公式化为子句集


鲁滨逊归结原理(消解原理)

基本思想:

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

(1)命题逻辑中的归结原理:

C 1 C_1 C1 C 2 C_2 C2 是子句集中的任意两个子句,如果 C 1 C_1 C1 中的文字 L 1 L_1 L1 C 2 C_2 C2 中的文字 L 2 L_2 L2 互补,那么从 C 1 C_1 C1 C 2 C_2 C2 中分别消去 L 1 L_1 L1 L 2 L_2 L2 ,并将二个子句中余下的部分析取,构成一个新子句 C 12 C_{12} C12 。其中, C 12 C_{12} C12 称为 C 1 C_1 C1 C 2 C_2 C2 的归结式, C 1 C_1 C1 C 2 C_2 C2 称为 C 12 C_{12} C12 的亲本子句。

(2)谓词逻辑中的归结原理:

C 1 C_1 C1 C 2 C_2 C2 是两个没有公共变元的子句, L 1 L_1 L1 L 2 L_2 L2 分别是 C 1 C_1 C1 C 2 C_2 C2 中的文字。如果 L 1 L_1 L1 L 2 L_2 L2 存在最一般合一 σ σ σ,则称 C 12 = ( C 1 σ − L 1 σ ) U ( C 2 σ − L 2 σ ) C_{12}=({C_1σ}-{L_1σ})U({C_2σ}-{L_2σ}) C12=(C1σL1σUC2σL2σ) C 1 C_1 C1 C 2 C_2 C2 的二元归结式,而 L 1 L_1 L1 L 2 L_2 L2 为归结式上的文字。


归结反演

(1)归结反演证明定理:

步骤:

(1)将已知前提表示为谓词公式 F F F

(2)将待证明的结论表示为谓词公式 Q Q Q,并否定得到 ﹁ Q ﹁Q Q

(3)把谓词公式集 { F , ﹁ Q } \{F,﹁Q\} {F,Q} 化为子句集 S S S

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

(2)归结反演求解问题:

步骤:

(1)已知前提 F F F 用谓词公式表示;

(2)把待求解的问题 Q Q Q 用谓词公式表示,并否定 Q Q Q ,再与 A N S W E R ANSWER ANSWER 构成析取式 ( ﹁ Q ∨ A N S W E R ) (﹁Q ∨ANSWER) QANSWER

(3)把谓词公式集 { F , ( ﹁ Q ∨ A N S W E R ) } \{F,(﹁Q ∨ANSWER)\} {F,QANSWER} 化为子句集 S S S

(4)对 S S S 应用归结原理进行归结;

(5)若得到归结式 A N S W E R ANSWER ANSWER ,则答案就在 A N S W E R ANSWER ANSWER 中。


归结演绎推理的应用

(1)归结反演证明定理:

(2)归结反演求解问题:

爬虫Python学习是指学习如何使用Python编程语言来进行网络爬取和数据提取的过程。Python是一种简单易学且功能强大的编程语言,因此被广泛用于爬虫开发。爬虫是指通过编写程序自动抓取网页上的信息,可以用于数据采集、数据分析、网站监测等多个领域。 对于想要学习爬虫的新手来说,Python是一个很好的入门语言。Python的语法简洁易懂,而且有丰富的第三方库和工具,如BeautifulSoup、Scrapy等,可以帮助开发者更轻松地进行网页解析和数据提取。此外,Python还有很多优秀的教程和学习资源可供选择,可以帮助新手快速入门并掌握爬虫技能。 如果你对Python编程有一定的基础,那么学习爬虫并不难。你可以通过观看教学视频、阅读教程、参与在线课程等方式来学习。网络上有很多免费和付费的学习资源可供选择,你可以根据自己的需求和学习风格选择适合自己的学习材料。 总之,学习爬虫Python需要一定的编程基础,但并不难。通过选择合适的学习资源和不断实践,你可以逐步掌握爬虫的技能,并在实际项目中应用它们。 #### 引用[.reference_title] - *1* *3* [如何自学Python爬虫? 零基础入门教程](https://blog.csdn.net/zihong523/article/details/122001612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [新手小白必看 Python爬虫学习路线全面指导](https://blog.csdn.net/weixin_67991858/article/details/128370135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值