一、基础概念
1.逻辑系统
(1)一个逻辑系统是定义语言和它的含义方法。逻辑系统中的一个逻辑理论是该逻辑的语言的一个语句集合。
- 逻辑符号集合:所有在该逻辑系统的逻辑理论中出现的符号
- 非逻辑符号集合:不同的逻辑理论中出现的不同的符号
- 语句规则:定义符号串的含义
- 证明:证明符号串的合理性
- 语义规则:定义符号串的语义
(2)语义
- 语言的解释是在某个论域(domain)中定义非逻辑符号。语句的语义是在解释下定义出语言的真假值。
- 如果I是ℒ的一个解释,且φ在I中为真,则记为I⊨φ,称作I满足φ,或者I是φ的一个模型。
- 给定一个语句Ψ和一个语句φ,如果对每个解释I,有I⊨Ψ蕴含I⊨φ,【即,如果I是Ψ的一个模型则I也是φ的一个模型,则记为Ψ⊨φ】,称φ为Ψ的一个逻辑结果。
(3)可靠性:一个逻辑是可靠的,如果对任何语句集合Ψ和语句φ,Ψ⊢φ蕴含Ψ⊨φ。
(4)完备性:一个逻辑是完备的,对任何语句集合Ψ和语句φ,Ψ⊨φ蕴含Ψ⊢φ。如果一个逻辑是完备的,则该逻辑的证明系统已强到可以推出任何永真式。一阶逻辑是完备的。
(5)可判定性:如果存在一个算法对一个逻辑中的任意公式A,可确定⊢A是否成立,则称逻辑是可判定的(decidable)。否则,称为是不可判定的(undecidable)。如果上述算法虽不一定存在,却有一个过程可对该系统的定理做出肯定的判断,但对非定理的共识过程未必终止,因而未必能作出判断。这时称逻辑是半可判定的。
2.命题逻辑基础
(1)基础定义
符号 true 的赋值总是 T ,符号 false 的赋值总是 F ;p 、q 是任意命题符号
- 非式 ¬p :如果对p的赋值为T,那么对¬p的赋值是F;如果对¬p的赋值为T,那么对p的赋值是F。
- 合取式 p∧q :仅当两个合取项的真值都是T时,合取∧的真值是T,否则是F。
- 析取式 p∨q :仅当两个合取项的真值都是F时,析取∨的真值是F,否则是T。
- 蕴含式 p→q :仅当蕴含的前提项(前项)是T而且结论项(后项)是F时,蕴含→的真值是F,否则是T。
- 等价式 p≡q :仅当等价≡两边表达式对于所有可能解释都有相同真值时,等价≡的真值是T,否则是F。
- 若p无成假赋值,则称p为重言式或永真式。
- 若p无成真赋值,则称p为矛盾式或永假式。
- 简单合取A:A形如B~1~∧...∧B~n~使得B~1~,...,B_n_都是分子公式。
- 简单析取A:A形如B~1~∨...∨B~n~使得B~1~,...,B~n~都是分子公式。
- 合取范式A:A形如B~1~∧...∧B~n~使得B~1~,...,B~n~都是简单析取。
- 析取范式A:A形如B~1~∨...∨B~n~使得B~1~,...,B~n~都是简单合取。
- 双重合取范式A:A形如B~1~∧...∧B~n~使得B~1~,...,B~n~都是简单合取的否定。
- 双重析取范式A:A形如B~1~∨...∨B~n~使得B~1~,...,B~n~都是简单析取的否定。
(2)基本等值式
- ¬(¬p)≡p
- (p∨q)≡(¬p→q)
- 换质换位定律:(p→q)≡(¬q→¬p)
- 摩根定律:¬(p∨q)≡(¬p∧¬q) 和 ¬(p∧q)≡(¬p∨¬q)
- 交换律:(p∧q)≡(q∧p) 和 (p∨q)≡(q∨p)
- 结合律:((p∨q)∨r)≡(p∨(q∨r)) 和 ((p∧q)∧r)≡(p∧(q∧r))
- 分配律:p∨(q∧r)≡(p∨q)∧(p∨r) 和 p∧(q∨r)≡(p∧q)∨(p∧r)
(3)自然演绎推理:从一组已知为真的事实出发,直接运用经典逻辑推理的推理规则推出结论的过程。
- P规则:在推理的任何步骤上都可以引入前提。
- T规则:在推理时,如果前面步骤有一个或多个公式永真蕴含公式S,则可以把S引入推理。
- 假言推理:若P,P→Q为真,则Q为真。
- 拒取式:若P→Q,¬Q为真,则P为假。
- 析取三段论:若¬P,P∨Q为真,则Q为真。
3.谓词逻辑基础
(1)基础定义
- 命题:表达对世界的陈述的语句。对一个命题的解释就是为命题符号赋真值(T或F)。
- 谓词逻辑:用谓词来表示命题
- 谓词:表示个体词的性质或多个个体词之间的关系的词(带参量的命题叫谓词)。
- 原子语句:是谓词演算语言中的最基本单位。它是元数为n(有n个个体词)的谓词P(x~1~,x~2~,...),也称为n元谓词。
- 函数表达式:表示从个体域到另一个体域的映射。由元数为n的一个函数常量,后面用括号包围并用逗号分隔的n个参数项t~1~,...,t~n~组成的。
- 量词:对个体词数量上的限制,只讨论全称量词∀和存在量词∃
- 联结词:联结各简单谓词公式构成复合谓词公式的词。有∧∨¬→≡
(2)合式公式:单个谓词是合式公式,称为原子谓词公式
- 若A是合式公式,则¬A也是合式公式
- 若A,B是合式公式,则A∧B,A∨B,A→B,A≡B也是合式公式
- 若A是合式公式,x是任一个体变元,则(∀x)A和(∃x)A也是合式公式
(3)谓词公式的等价式
- 交换律:(P∧Q)⇔(Q∧P) 和 (P∨Q)⇔(Q∨P)
- 分配律:P∨(Q∧R)⇔(P∨Q)∧(P∨R) 和 P∧(Q∨R)⇔(P∧Q)∨(P∧R)
- 狄摩根律:¬(P∨Q)⇔(¬P∧¬Q) 和 ¬(P∧Q)⇔(¬P∨¬Q)
- 双重否定律:¬(¬P)⇔P
- 联结词化归律:(P→Q)⇔(¬P∨Q) (P⟷Q)⟺((P∧Q)∨(¬P∧¬Q))
- 量词转化律:¬(∀x)P⇔(∃x)(¬P) 和 ¬(∃x)P⇔(∀x)(¬P)
- 量词分配:(∀x)(P∧Q)⇔(∀x)P∧(∀x)Q 和 (∃x)(P∨Q)⇔(∃x)P∨(∃x)Q
- 消去量词(设个体域为有穷集合{a~1~,a~2~,...,a~n~}):(∀x)P(x)⇔P(a~1~)∧P(a~2~)∧...∧P(a~n~) 和 (∃x)P(x)⇔P(a~1~)∨P(a~2~)∨...∨P(a~n~)
- 量词辖域收缩与扩张:
(4)谓词逻辑(一阶谓词逻辑)
- 规范表达式:P(x~1~,x~2~,...),P是谓词,x~i~是主体与客体。
- 谓词逻辑的应用:引入谓词→引入算子(状态转移函数)→问题描述
- 定理:对任意公式,都有与之等值的合取范式和析取范式。可按下述程序将一个公式化为合取范式或析取范式
①使用等价式中的连接词化规律消去公式中的连接词⟷⟶
②反复使用双重否定定律和德摩根律将¬移到原子语句之前
③反复使用分配律和其他定律得出一个标准型
(5)模式匹配(置换与合一):对两个知识模式(谓词公式、框架片段、语义网络片段等)的比较与耦合。【即,检查这两个知识模式是否完全一致或近似一致】。模式匹配有确定性匹配与不确定性匹配。
- 合一:一个表达式(公式)的项可以是常量、变量或函数。合一就是寻找项对变量的置换而使得表达式(公式)一致的过程。一般来说,一个公式集的合一不是唯一的。
- 置换:令B是A的子公式且A[B/C]是用公式C置换A中B的一个或多个出现得到的公式,则 B≈C ⇒ A≈A[B/C] 。有序对的集合S={t~1~/x~1~,t~2~/x~2~,...t~n~/x~n~}表示置换,其中t~i~/x~i~,表示在公式中用t~i~代替x~i~。
- 置换的复合:
- 可合一:设有公式集合F={F~1~,F~2~,...,F~n~},若存在一个置换λ使得F~1~λ=F~2~λ=...=F~n~λ,则称公式集F是可合一的,称λ为公式集F的一个合一。
- 最一般合一(Most General Unifier,mgu):设σ是公式集F的一个合一,如果对任一个合一θ都存在一个置换λ,使得 θ=σ°λ ,则称σ是一个最一般的合一。
二、归结原理
1.SKOLEM标准型
(1)前束范式
- 定义:若公式A的一切量词都位于该公式的最左边(不含否定词)且这些量词的辖域都延伸到公式的末端。【即,把所有量词都提到前面去,然后消去所有量词】前束范式A的一般形式为 其中Q~i~为量词∀或∃(i=1,...,n),M称作公式A的母式(基式),M中不再有量词。
- 约束变项换名规则
(2)量词消去原则
- 基本的量词推理公式
- 全称量词消去规则:∀xP(x)≡P(y)【其中y是论域中任意个体;需限制y不在P(x)中约束出现】
- 全称量词引入规则:P(y)≡∀xP(x)【任一个体y(自由变项)都具有性质P;需限制x不在P(y)中约束出现】
- 存在量词消去规则:∃xQ(x)≡Q(c)(c为常量)【c是论域中使Q为真的某个个体常项;需限制(∃x)Q(x)中没有自由个体出现;需限制Q(x)中不含有c】
- 存在量词引入规则:Q(c)≡∃xQ(x)【c是论域中使Q为真的一个特定个体常项;需限制x不出现在Q(c)中】
- 有限域量词消去规则:设有限个体域为D∈d~1~,d~2~,...,d~n~
(3)skolem定理:谓词逻辑的任意公式都可以化为与之等值的前束范式,但其前束范式不唯一。
(4)skolem标准型定义:消去量词后的谓词公式
2.子句集
(1)文字:不含任何连接词的命题(谓词公式)及其否定
(2)子句:任何文字的析取式(谓词的和)
(3)空子句:不含任何文字的子句
(4)空子句的不可满足性:由于空子句不含任何文字,它不能被任何解释满足,所以空子句是永假的、不可满足的。
(5)子句集:由子句构成的集合。在谓词逻辑中,任何一个谓词公式都可以化成一个子句集。
3.命题逻辑的归结法
(1)命题逻辑中的归结原理:在定理证明系统中,已知一公式集F~1~,F~2~,...,F~n~,要证明W(定理)是否成立,即要证明W是公式集的逻辑结果,有两种方法:
- 证明F~1~∧F~2~∧...∧F~n~→W为永真式
- (反证法)证明F~1~∧F~2~∧...∧F~n~∧¬W永假,即要证明对应子句集永假(不可满足)
(2)互补文字:若P是原子谓词公式,则称P与¬P为互补文字(互补对)。
(3)命题逻辑的归结:设有子句C~1~, C~2~,如果C~1~中的文字L~1~与C~2~中的文字L~2~互补,则消除互补对,余下部分析取求得新子句 →得到归结式C~12~ 。
C~1~ | C~2~ | C~12~ | |
P | ¬P∨Q | Q | 假言推理 |
P∨Q | ¬P∨Q | Q∨Q=Q | 合并 |
P∨Q | ¬P∨¬Q | Q∨¬Q | 重言式 |
P∨Q | ¬P∨¬Q | P∨¬P | |
P | ¬P | ∅或NIL | 空子句 |
¬P∨Q | ¬Q∨R | ¬P∨R | 三段论 |
(4)归结式性质
- 定理:两个子句C~1~和C~2~的归结式C~12~是C~1~和C~2~的逻辑推论,即C~1~∧C~2~⇒C~12~(在任一个使子句C~1~和C~2~为真的解释I下,必有归结式C~12~为真)
- 推论1:子句集S中的子句C~1~和C~2~的归结式为C~12~,若用C~12~替代C~1~和C~2~后的到新的子句集S~1~,则S~1~不可满足性⇒S的不可满足性
- 推论2:子句集S中子句C~1~和C~2~的归结式为C~12~,若把C~12~加入S得到新的子句集S~2~,则S~2~不可满足性⟺S的不可满足性
4.归结过程
谓词逻辑的归结(含有变量子句的归结)
设有两个没有相同变元的子句C~1~,C~2~,L~1~是C~1~中的文字 与 L~2~是C~2~中的文字,若σ是L~1~和¬L~2~的mgu,则称C~12~=(C~1~σ-{L~1~σ})∨(C~2~σ-{L~2~σ})为子句C~1~,C~2~的二元归结式。
(1)将命题写成合取范式:写出谓词关系公式F(前提)和Q(目标、结论)
(2)用反演法写出谓词表达式:否定目标Q加入公式集F,写出谓词表达式{F,¬Q}
(3)求出子句集:谓词公式化为子句集步骤
①消去蕴含符号:利用等价谓词关系消去谓词公式中的蕴含符‘⟶’和双条件符‘⟷’
②减少否定符号的辖域:利用等价关系把否定符号‘¬’移到紧靠谓词的位置上
③变量标准化:重新命名变元名,使不同量词约束的变元有不同名字
④消去存在量词:
- 存在量词不出现在全称量词的辖域内,此时只要用一个新的个体常量替换该存在量词的约束变元可消去存在量词
- 存在量词位于一个或多个全称量词的辖域内,则使用Skolem函数替换存在量词约束的变元,如
⑤化为前束形:把全称量词移到公式左边,并使每个量词的辖域包含这个量词后面的整个部分,所得的公式称为前束形
⑥化前束形为SKOLEM标准形:利用等价关系把公式化为SKOLEM标准型
⑦消去全称量词与合取词
⑧更改变量名:对变元更名有时称为变量分离标准化,使不同句子中的变元不同名
(4)对子句集中可归结的子句使用归结推理规则进行归结
- 经过变换的SKOLEM标准型(子句集S)与谓词公式G并不等值
- 若G是给定的公式,而S是响应的子句集,则G不可满足⇔S不可满足,即G永假是S永假的充分必要条件。【G真不一定S真,而S真必有G真。】
(5)归结式作为新子句反复归结过程
(6)归结式为空子句,S是不可满足的【矛盾】,原命题成立
5.归结原理
(1)实质:
- 归结法是仅有一条推理规则的推理方法
- 归结的过程是一个语义数倒塌的过程
(2)问题:子句中有等号或不等号时,完备性不成立
(3)主要思想:目标公式被否定并化为子句集,添加到命题公式集中,用归结反演应用于联合集,并力图推导出一个空子句(∅或NIL)表示产生一个矛盾,定理得证。【通过归结方法不断扩充待判定的子句集,并设法使其包含进指示矛盾的空子句。】
(4)归结策略的主要思想:归结过程在寻找可归结子句时,子句集中的子句越多,需要付出的代价就会越大。如果在归结时能把子句集中无用的子句删除掉,就会缩小搜索范围,减少比较次数,从而提高归结效率。
6.注意事项
(1)谓词的一致性,P()与Q()【不可以】
(2)常量的一致性,P(a,...)与P(b,...)【不可以】;P(a...)与P(x,...)【可以】
(3)变量和函数不能重名,P(a,x,...)与P(x,f(x),...)【不可以】;P(a,z,...)与P(x,f(y),...)【可以】
(4)不能同时消去两个互补对,P∨Q与¬P∨¬Q【不可以同时消去】
7.归结反演求解问题答案
(1)基于归结法的问答系统要解决的问题形式有二种类型
- 直接问答:求证当x=A时,G(A)成立。【真假证明】
- 间接问答:求证当x=?时,G(x)成立。【求值证明】需采用构造方法
(2)解决问题的方法
①由目标公式的否定与目标公式的析取构成重言式(¬P∨P)将其加入到公式集中,取代原来公式集中目标公式的否定式。
②依据反演树的构造方法进行归结,直到得到某个子句为止
③以该子句作为对问题的回答
(3)求解过程
①写出谓词关系公式F(已知前提)
②求SKOLEM标准形,化为子句集S
③写出待求解问题的谓词公式,然后把它否定并与形式谓词ANSWER构成析取式(变元一致)
④把该析取式化为子句集并入到S中,得到子句集S’
⑤对S’中可归结的子句做归结
⑥归结式仍放入S中,反复归结过程
⑦得到归结式ANSWER ,则答案就在ANSWER中。
⑧问题得到解。
8.归结过程的控制策略过程
(1)要解决的问题:归结方法的知识爆炸
(2)控制策略的目的:归结点尽量少
(3)控制策略的原则:给出控制策略,以使仅对选择合适的子句间方可做归结。
(4)策略:
- 删除策略
- 限制策略:支持集策略,线性归结策略,输入归结策略,单元归结策略,祖先过滤形策略......
三、归结原理的应用(谓词演算)
1.计算机实现归结原理的一般算法
(1)将子句S置入CLAUSES表
(2)若空子句NIL在CLAUSES中,则归结成功,结束
(3)若CLAUSES中存在可归结子句对,则归结之,并将归结式放入CLAUSES中
(4)归结失败,退出
2.归结策略的完备性
(1)删除策略⇒完备【不完备】
(2)支持集策略⟺完备
(3)语义归结策略⟺完备
(4)线性归结策略⟺完备
(5)单元归结策略⇒完备【不完备】
(6)输入归结策略⇒完备【不完备】
3.Horn子句与Prolog程序设计
(1)Horn子句
- 定义
- 蕴含型Horn子句的三种类型
- 蕴含型Horn子句的归结
(2)Prolog程序设计
①Prolog程序的语句均是Horn子句
- 事实——无条件子句
- 规则——条件子句
- 问题——目标子句
②Prolog程序的运行机制(SLD归结)
- 从目标子句开始进行归结
- 归结顺序是从左到右
- 控制策略是深度优先
- 有回溯机制
四、Herbrand定理(略)
整理自:
1.《人工智能:复杂问题求解的结构和策略》 作者:(美国)卢格尔 (Luger.G.F)
3.《人工智能逻辑讲义》 作者:李小五
6.逻辑符号
https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E7%AC%A6%E5%8F%B7/6020383?fr=aladdin#2
8.https://wenku.baidu.com/view/5aac2679dc36a32d7375a417866fb84ae45cc33d.html
9.https://wenku.baidu.com/view/a492053467ec102de2bd89ca.html