人工智能原理复习--确定性推理

文章目录

  • 上一篇
  • 推理概述
  • 自然演绎推理
    • 合适公式
  • 归结演绎推理
    • 归结原理
    • 归结反演
  • 提升归结效率
  • 下一篇

上一篇

人工智能原理复习–知识表示(二)

推理概述

推理就是按某种策略由已知判断推出另一判断的思维过程

分类:

  1. 演绎推理、归纳推理、默认推理
  2. 确定推理、不确定推理
  3. 单调推理、非单调推理

冲突消解策略:

  1. 按就近原则排序
  2. 按已知事实的新鲜度排序
  3. 按匹配度排序
  4. 按领域问题特点排序
  5. 按上下文限制排序
  6. 按条件个数排序
  7. 按规则的次序排序

自然演绎推理

自然演绎推理是指从一组已知的事实出发,直接运用命题逻辑或谓词逻辑中的推理规则推出结论的过程。
推理规则:

  1. P规则:在推理的任何步骤上都可引入前提,继续进行推理
  2. T规则:推理时,如果前面步骤中有一个或多个公式永真蕴含公式S,则可把S引入推理过程中。
  3. 反证法: P → Q P \rightarrow Q PQ当且仅当前真后假的时候时不可满足的
  4. 假言推理:如果P为真, P → Q P \rightarrow Q PQ,则Q为真
  5. 拒取式推理:如果Q为假, P → Q P \rightarrow Q PQ,则P也为假

注意:避免产生的两类错误:

  1. 如果Q为真,那么 P → Q P \rightarrow Q PQ, 不能推出P的真值
  2. 如果P为假,那么 P → Q P \rightarrow Q PQ, 不能推出Q的真假

合适公式

遵从下列递归定义的是合适公式
单一谓词公式是合适公式,使用 ¬ 、 ∧ 、 ∨ 、 → 、 ↔ 、 ∃ 、 ∀ \lnot、\land、\lor、\rightarrow、\leftrightarrow、\exist、\forall ¬后仍是合适公式

合适公式的性质
重点:

  1. P → Q ⇔ ¬ P ∨ Q P \rightarrow Q \Leftrightarrow \lnot P \lor Q PQ¬PQ
  2. 逆否: P → Q ⇔ ¬ Q → ¬ P P \rightarrow Q \Leftrightarrow \lnot Q \rightarrow \lnot P PQ¬Q¬P
  3. 摩根定律: ( ¬ P ∨ ¬ Q ) ⇔ ¬ ( P ∧ Q ) (\neg P \lor \neg Q) \Leftrightarrow \neg (P \land Q) (¬P¬Q)¬(PQ)
  4. 量词否定: ¬ ( ∃ x ) P ( x ) ⇔ ( ∀ x ) ( ¬ P ( x ) ) \lnot (\exist x)P(x) \Leftrightarrow (\forall x)(\lnot P(x)) ¬(x)P(x)(x)(¬P(x))任意存在互换同理
  5. 量词分配:可以将量词分配到括号里

合适公式的标准化

  1. 首先要以量词前束范式来表示合适公式,前束范式就是在前面将变量量词罗列出来,后面括号里没有任何量词的谓词公式。
  2. Skolem标准型,在前束范式的基础上,消除存在量词,而拿来保证公式的永假性的函数称为Skolem函数,无参时称为Skolem常量,从一阶逻辑公式变换到Skolem标准型不是等值变换,但是保持永假性。
  3. 要求母式(即后面的公式化为合取范式)
    • 消去多余的量词
    • 消去蕴含符号
    • 减少否定的辖域(内移否定符号)
    • 变量标准化(变量换名)(名字相同,辖域不同需要换成不同的名字)
    • 消去存在量词(Skolem变换)
    • 全称量词前束化
    • 消去全称量词
    • 把母式转化为合取范式

消去存在量词方法:

  1. 如果 ∃ \exist ∀ \forall 的辖域内
    ( ∀ z ) ( ∃ w ) [ ¬ Q ( x , z ) ∧ P ( z , w ) ] (\forall z)(\exists w)[\lnot Q(x, z) \land P(z, w)] (z)(w)[¬Q(x,z)P(z,w)]
    如果w依赖于z则可以用w = g(z)来定义这种依赖关系,用g(z)来取代约束变量w,消去存在量词 ∃ w \exist w w
    ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , g ( z ) ) ] (\forall z)[\lnot Q(x,z) \lor P(z, g(z))] (z)[¬Q(x,z)P(z,g(z))]
  2. 如果 ∃ \exist 在多个 ∀ \forall 的辖域内
    ( ∀ x ) ( ∀ y ) ( ∀ z ) ( ∃ w ) P ( x , y , z , w ) (\forall x)(\forall y)(\forall z)(\exist w)P(x, y, z, w) (x)(y)(z)(w)P(x,y,z,w)
    则用多元函数g(x, y, z)来取代w
    ( ∀ x ) ( ∀ y ) ( ∀ z ) ( ∃ w ) P ( x , y , z , g ( x , y , z ) ) (\forall x)(\forall y)(\forall z)(\exist w)P(x, y, z, g(x, y, z)) (x)(y)(z)(w)P(x,y,z,g(x,y,z))
  3. 如果 ∃ \exist ∀ \forall 的辖域外
    ( ∃ w ) ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , w ) ] (\exist w)(\forall z)[\lnot Q(x,z) \lor P(z, w)] (w)(z)[¬Q(x,z)P(z,w)]
    则用任意的常量来取代w
    ( ∃ w ) ( ∀ z ) [ ¬ Q ( x , z ) ∨ P ( z , A ) ] (\exist w)(\forall z)[\lnot Q(x,z) \lor P(z, A)] (w)(z)[¬Q(x,z)P(z,A)]

实质就是找个已知的东西将存在量词的变量取代掉,在 ∀ \forall 辖域内就是Skolem函数,之外就是常量,但是使用的函数不允许重名,同时常量符号也不允许重名。

合取范式就是用合取( ∧ \land )连接,括号内用只能是析取

人工智能原理复习--确定性推理_第1张图片

归结演绎推理

自动定理证明:
一般形式: F 1 ∧ F 2 ∧ F n ⇒ W F_1 \land F_2 \land F_n \Rightarrow W F1F2FnW

反证法:将证明永真改为证明 F 1 ∧ F 2 ∧ F n ∧ ¬ W F_1 \land F_2 \land F_n \land \lnot W F1F2Fn¬W永假

子句就是仅有析取( ∨ \lor )构成的合适公式
合取范式可定义为子句的合取( ∧ \land )
人工智能原理复习--确定性推理_第2张图片
人工智能原理复习--确定性推理_第3张图片
合适公式 → 合取范式 → 子句集 S 合适公式 \rightarrow 合取范式 \rightarrow 子句集S 合适公式合取范式子句集S
其中一个重要的性质: 子句集 S 的不可满足性 ↔ 合适公式永假 子句集S的不可满足性 \leftrightarrow 合适公式永假 子句集S的不可满足性合适公式永假

归结原理

人工智能原理复习--确定性推理_第4张图片
而加入归结式的子句集 S ′ S' S与原来子句集在不可满足性上式等价的
人工智能原理复习--确定性推理_第5张图片
对子句集的消解规则:

  1. 假言推理 P , ¬ P ∨ Q ⇒ Q P, \lnot P \lor Q \Rightarrow Q P,¬PQQ
  2. 合并 P ∨ Q , ¬ P ∨ Q ⇒ Q P \lor Q, \lnot P \lor Q \Rightarrow Q PQ,¬PQQ
  3. 重言式 P ∨ Q , ¬ P ∨ ¬ Q ⇒ Q ∨ ¬ Q 或者 ( P ∨ ¬ P ) P \lor Q, \lnot P \lor \lnot Q \Rightarrow Q \lor \lnot Q 或者(P \lor \lnot P) PQ,¬P¬QQ¬Q或者(P¬P)注意并不是空
  4. 空子句 P , ¬ P ⇒ N I L P, \lnot P \Rightarrow NIL P,¬PNIL只用一个符号是才为空

子句中的文字知识原子命题公式或其取反,不带变量,这样易于判别那些子句对包含互补文字
人工智能原理复习--确定性推理_第6张图片

子句中含有变量,不能直接发现和消去互补文字,需要对潜在的互补文字先做变量置换和合一处理。
置换项可以是常量、变量或函数 t / v (置换项后 / 源变量) ,置换就是为了让谓词公式的文字同一确定互补性。

人工智能原理复习--确定性推理_第7张图片
人工智能原理复习--确定性推理_第8张图片
人工智能原理复习--确定性推理_第9张图片
但是如果子句集是永真,可满足的那么归结原理将永无休止的进行下去,得不到任何结果

归结反演

将结论取反与公式集合取,然后将这个 F ∧ ¬ W F \land \lnot W F¬W标准为子句,并合并为子句集S
人工智能原理复习--确定性推理_第10张图片
人工智能原理复习--确定性推理_第11张图片

归结反演也可根据归结树的结果提取有效信息
人工智能原理复习--确定性推理_第12张图片

归结反演可实现提取问题回答
回答问题时,目标公式往往受存在量词约束,这是回答提取,就是给出使W(x)为真的x的某个值。
方法就是建立目标子句G(G是要回答问题的取反)的重言式(永真式) G ∨ ¬ G G \lor \lnot G G¬G,将这个重言式加入归结演绎过程取代原来的G,这时生成的树是修改证明树,此时树根不再是空子句,而是 ¬ G \lnot G ¬G, G被置换项取代,实现问题回答,这个取代的结果就是回答的结果。

但是重言式中的 ¬ G \lnot G ¬G (而这个 ¬ G 就和要回答问题的含义相同 \lnot G就和要回答问题的含义相同 ¬G就和要回答问题的含义相同)并不真正参与归结演绎,只是G中的变量在置换时会跟着置换, 所以为了避免在归结反演的过程中误用 ¬ G \lnot G ¬G就用特殊的符号将它代替掉如 Answer( x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn),其中 x i x_i xi ¬ G \lnot G ¬G中的变量。

人工智能原理复习--确定性推理_第13张图片
特殊情况:

  1. 目标公式也可能会有更复杂的形式,当目标公示取反后的G中有多个合取时,这是将子句分开分别建立重言式寻求答案。
  2. 当目标公式中含有全程量词时,取反后G中就有存在量词需要用Skolmn函数,常量消除存在量词。

人工智能原理复习--确定性推理_第14张图片
人工智能原理复习--确定性推理_第15张图片

提升归结效率

为了快速产生空子句有一下策略:

  1. 宽度优先搜索
    会归结出许多无用的子句,既浪费时间又浪费空间,但是当问题有解时能找到最短归结路径,他是一种完备的归结策略。对大问题会组合爆炸,但对小问题是较好的归结策略。

  2. 支持集策略
    要求每次归结都要有目标公式的否定所得到的子句或它们的后裔,完备的归结策略,虽然会限制子句集元素的剧增,但是会增加空子句所在的深度

  3. 删除策略
    在归结过程中把子句集中无用的子句删除掉

    • 纯文字:如果子句集中不存在与其互补的文字可以将这整个子句删掉
      例如 S = { P ∨ Q ∨ R , ¬ Q ∨ R , Q , ¬ R } S = \{ P \lor Q \lor R, \lnot Q \lor R, Q, \lnot R\} S={PQR,¬QR,Q,¬R}其中P没有与其互补的可以将 P ∨ Q ∨ R P \lor Q \lor R PQR删掉
    • 包孕:对于子句C1和C2 如果C1经过置换是C2的子集,就说C1包孕于C2. 将C1删掉对整个子句集的不可满足性没有影响
    • 重言式:如果子句中含有重言式就可以删掉重言式。

    按照这个规则删除的是完备的。

  4. 单文字子句策略
    单文字就是子句中只有一个文字,要求每次参与归结至少有一个是单文字,单文字可以有效减少文字数,所以有较高的归结效率,但是这个策略是不完备的,当子句集是不可满足时,不一定可以归结出空子句。

  5. 线性输入策略
    要求每次参与归结至少应该有一个是初始子句集的子句,可以提高效率,但是是不完备的。

下一篇

未完待续

你可能感兴趣的:(人工智能)