跳轉到內容

計算機科學家邏輯/命題邏輯/Horn 子句

來自華夏公益教科書,開放的書籍,開放的世界

Horn 子句

[編輯 | 編輯原始碼]

在本節中,我們將介紹一類特殊的公式,它們對邏輯程式設計特別感興趣。此外,事實證明,這些公式允許對可滿足性進行有效的測試。

如果公式是 CNF 且每個析取最多包含一個正文字,則該公式為 Horn 公式。Horn 子句是最多包含一個正文字的子句。

         

         

               

       

其中 是重言式,而 是不可滿足的公式。

用子句形式可以寫成

在邏輯程式設計的語境下,這寫成


  


         


對於 Horn 公式,存在一種有效的演算法來測試公式  的可滿足性。


判定 Horn 公式的可滿足性


  1. 如果存在一種形式的子公式 ,則標記 的每個出現。
  2. 應用以下規則,直到沒有規則適用為止
    • 如果 是一個子公式,並且 都已標記,而 未標記,則標記 的每個出現。
    • 如果 是一個子公式,並且 都已標記,則 **停止:不可滿足**
  3. **停止:可滿足** 賦值 當且僅當 已標記,是一個模型。

定理 6

[edit | edit source]

上述演算法是正確的,並在 步之後停止,其中 是公式中原子數量。

作為直接結果,我們看到,如果一個 Horn 公式沒有形式為 的子公式,則它是可滿足的。

Horn 公式允許唯一的最小模型,即 的唯一最小模型,如果對於每個模型 和 F 中的每個原子 B 成立:如果 ,那麼 。注意,這種唯一的最小模型性質不適用於非 Horn 公式:例如, 顯然是非 Horn 的。 是一個最小模型,並且 也是,因此我們有兩個最小模型。

問題 20(命題邏輯)

[編輯 | 編輯原始碼]

為一個命題邏輯公式, 中出現的原子公式的子集。令 為將 中所有出現的原子公式 替換為 所得的公式。例如:。證明或反駁:存在一個 使得

  1. ,使得 等價於一個 Horn 公式 (即 )。

問題 21(命題邏輯)

[edit | edit source]

將標記演算法應用於以下公式 F。

哪個是最小模型?




問題 22(命題邏輯)

[編輯 | 編輯原始碼]

判斷哪些 CNF 是 Horn 公式,並將它們轉換為蘊含式的合取形式



華夏公益教科書