確定性推理

Blackteaxx發表於2024-06-03

Ch3 確定性推理

是指按照某種策略已知事實出發去推出結論的過程。

  • 推理策略
    主要解決推理方向、衝突消解等問題,如推理方向控制策略、求解策略、限制策略、衝突消解策略等
  • 搜尋策略
    主要解決推理線路、推理效果、推理效率等問題。

推理的邏輯基礎

  • 解釋:對於謂詞公式\(P\),如果對其中的常元指派一個元素,變元指派一個集合,每一個 n 元函式指派一個對映,一個 n 元謂詞指派一個對映,則稱為謂詞公式的解釋

    可以看出,一個謂詞公式有很多種解釋,而每種解釋都對應一個真值。

  • 永真:如果一個謂詞公式對非空個體域\(D\)所有解釋下都為真,則稱為永真。

  • 可滿足:如果一個謂詞公式對某個非空個體域\(D\)某個解釋下為真,則稱為可滿足。謂詞公式的可滿足性也稱為相容性

  • 等價:如果兩個謂詞公式在某個個體域\(D\)的所有解釋下都有相同的真值,則稱為等價。

  • 前束正規化:如果一個謂詞公式的量詞部分均非否定地只出現在公式的最前面,則稱為前束正規化。

    例: \(\forall x \exists y P(x,y) \land Q(x)\) 是前束正規化

  • Skolem 正規化:如果一個謂詞公式的量詞部分均非否定地只出現在公式的最前面,且所有的存在量詞都在全稱量詞之前,則稱為 Skolem 正規化。

    例: \(\exist y \forall x P(x,y) \land Q(x)\)

  • 置換: 可以簡單理解為在一個謂詞公式中使用置換項替換變元。是形如${ t_1/x_1, \dots, t_n/x_n } $的有限集合,其中 \(t_i\) 是項,\(x_i\) 是互不相同的變元。要求 \(t_i\) 中不包含 \(x_i\)\(x_i\) 也不在 \(t_j\) 中出現。

    例如:\(P(x,y) \land Q(x) \{ a/x, b/y \} = P(a,b) \land Q(a)\)
    置換的得到的新的公式可以被稱作例示,是原公式的邏輯結論

  • 置換的合成:假設我們有兩個置換 (\sigma) 和 (\tau),它們分別將某些變數對映到某些項。置換 (\sigma) 和 (\tau) 的合成記作 (\sigma \circ \tau),表示先應用置換 (\tau),然後再應用置換 (\sigma)。

    如果 (\sigma = {x_1 \mapsto t_1, x_2 \mapsto t_2, \ldots, x_n \mapsto t_n}) 和 (\tau = {y_1 \mapsto s_1, y_2 \mapsto s_2, \ldots, y_m \mapsto s_m}),那麼合成置換 (\sigma \circ \tau) 是一個新的置換,它將每個變數 (x) 對映到 (\sigma(\tau(x)))。

    示例

    假設有兩個置換:

    • (\sigma = {x \mapsto a, z \mapsto b})
    • (\tau = {y \mapsto x, z \mapsto f(x)})

    將這兩個置換合成得到 (\sigma \circ \tau):

    1. 先應用 (\tau):對於任意變數 (v),將其替換為 (\tau(v))
    • (y) 被替換為 (x)
    • (z) 被替換為 (f(x))
    1. 再應用 (\sigma):將 (\tau(v)) 中的變數繼續替換為 (\sigma) 中對應的值
    • (x) 被替換為 (a)
    • (f(x)) 中的 (x) 被替換為 (a),得到 (f(a))

    因此,合成置換 (\sigma \circ \tau = {y \mapsto a, z \mapsto f(a)})。

  • 合一: 是指兩個項之間的一種特殊的置換,使得這兩個項在這個置換下相等。合一是一種特殊的置換,它將兩個項對映到相同的值。

    例如,假設有兩個項 (f(x, y)) 和 (f(a, b))。這兩個項可以透過合一 ({x \mapsto a, y \mapsto b}) 相等。

    示例

    假設有兩個項 (f(x, y)) 和 (f(a, b))。這兩個項可以透過合一 ({x \mapsto a, y \mapsto b}) 相等。

    合一的另一個示例是 (f(x, g(y))) 和 (f(a, g(b)))。這兩個項可以透過合一 ({x \mapsto a, y \mapsto b}) 相等。

自然演繹推理

從一組已知為真的事實出發,直接運用經典邏輯中的推理規 則推出結論的過程稱為自然演繹推理

歸結演繹推理

在人工智慧中,幾乎所有的問題都可以轉化為一個定理證明問題。定理證明的實質,就是要對前提 P 和結論 Q,證明 P→Q 永真。

證明永真非常困難,因此我們通常採用反證法,即證明 \(P \land \lnot Q\)不可滿足。這樣,我們就可以透過歸結演繹推理來證明 \(P \to Q\)

子句和子句集

  • 子句:是一個或多個文字的析取,其中每個文字都是一個謂詞符號或其否定。

    例如,\(P(x) \lor Q(y)\) 是一個子句,\(P(x) \lor Q(y) \lor R(z)\) 也是一個子句。

  • 空子句:不包含任何文字的子句,通常用符號 \(\square\) 表示。

  • 子句集:子句的集合

子句集的化簡

對每一個子句,我們要將其化為所有全是全稱量詞的前束正規化,隨後消去全稱量詞。

如果有存在量詞被全稱量詞約束,我們可以使用 Skolem 函式將其消去。

同時要消去全稱量詞,由於母式中的全部變元均受全稱量詞的約束,並且全稱量詞的次序已無關緊要,因此可以省掉全稱量詞。但剩下的母式,仍假設其變元是被全稱量詞量化的

隨後將合取正規化中的每一個子句拆分,得到一個子句集。

魯濱遜歸結原理

由於在消去存在量詞時所用的 Skolem 函式可以不同,因此化簡後的標準子句集是不唯一的

但當原謂詞公式為永假(或不可滿足)時,其標準子句集則一定是永假的,即 Skolem 化並不影響原謂詞公式的永假性


定理 3.1 設有謂詞公式 F,其標準子句集為 S,則 F 為不可滿足的充要條件是 S 為不可滿足的


兩個關鍵:

  • 第一,子句集中的子句之間是合取關係。因此,子句集中只要有一個子句為不可滿足,則整個子句集就是不可滿足的;
  • 第二,規定空子句是不可滿足的。因此,一個子句集中如果包含有空子句,則此子句集就一定是不可滿足的。

歸結式:設 C1 和 C2 是子句集中的任意兩個子句,如果 C1 中的文字 L1 與 C2 中的文字 L2 互補,那麼可從 C1 和 C2 中分別消去 L1 和 L2,並將 C1 和 C2 中餘下的部分按析取關係構成一個新的子句 C12

定理 3.2 歸結式 C12 是其親本子句 C1 和 C2 的邏輯結論, 即如果 C1, C2 關於解釋 I 為真,則 C12 也為真

推論 1:設 C1 和 C2 是子句集 S 中的兩個子句,C12 是 C1 和 C2 的歸結式,若用 C12 代替 C1 和 C2 後得到新的子句集 S1,則由 S1 的不可滿足性可以推出原子句集 S 的不可滿足性。即:S1 的不可滿足性 ⇒ S 的不可滿足性

推論 2:設 C1 和 C2 是子句集 S 中的兩個子句,C12 是 C1 和 C2 的歸結式,若把 C12 加入 S 中得到新的子句集 S2,則 S 與 S2 的不可滿足性是等價的。即:S2 的不可滿足性 ⇔S 的不可滿足性


定理 3.3 子句集 S 是不可滿足的,當且僅當存在一個從 S 到空子句的歸結過程


有了上述定理,我們可以將結論的否定加入子句集,然後透過歸結過程來證明蘊含式的正確性。

在謂詞邏輯中,由於子句集中的謂詞一般都含有變元,因此不能象命題邏輯那樣直接消去互補文字。而需要先用一個最一般合一對變元進行代換,然後才能進行歸結。

人話:就是將全稱量詞置換到同一個符號,然後再進行歸結。

檢測題:
已知
• F: (∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))
• G: ﹁(∃x)C(x)→(∀x)(∀y)(A(x, y)→﹁B(y))
求證 G 是 F 的邏輯結論。

解決複雜問題

某記者到一孤島採訪,遇到了一個難題,即島上有許多人說假話,因而難以保證新聞報導的正確性,不過有一點他是清楚的,這個島上的人有一特點:說假話的人從來不說真話,說真話的人也從來不說假話。一次記者遇到了孤島上的三個人,為了弄清楚誰說真話,誰說假話,他向這三個人中的每一個都提了一個同樣的問題,即 “誰是說謊者?”
結果 A 答“B 和 C 都是說謊者”,
B 答“A 和 C 都是說謊者”,
C 答“A 和 B 中至少有一個 是說謊者”

歸結策略

歸結策略是指在歸結過程中,如何選擇兩個子句進行歸結。歸結策略的選擇直接影響到歸結的效率。

  1. 廣度優先策略

(1)從 S0 出發,對 S0 中的全部子句作所有可能的歸結,得到第一層歸結式,把這些歸結式的集合記為 S1;
(2) 用 S0 中的子句與 S1 中的子句進行所有可能的歸結,得到第二層歸結式,把這些歸結式的集合記為 S2;
(3) 用 S0 和 S1 中的子句與 S2 中的子句進行所有可能的歸
結,得到第三層歸結式,把這些歸結式的集合記為 S3;
如此繼續,直到得出空子句或不能再繼續歸結為止

當問題有解時,能夠保證找到最短的歸結路徑與解,但是會產生組合爆炸的問題。

  1. 支援集策略

相關文章