2016-02-20 29 views
3

我們知道DPLL算法是回溯+單位傳播+純文字規則。DPLL和可滿足性示例?

我舉個例子。用DPLL解決以下可滿足性問題有一個例子。如果將變量「0」賦值給變量之前,將Unit Clause (UC)Pure Literal (PL)中的哪一個用於解決這個特定示例?

{~A \/ B \/ C}, {A \/ ~B \/ C}, {A \/ B \/ ~C}, {A \/ B \/ C} 

在這個例子中使用其中兩個(PL and UC)寫道。爲什麼選擇其中兩個?任何想法?

+0

你知道涉及回溯。如果剩下的只是UP和PL,並且沒有什麼可以回溯,因爲它不會做出任何可能錯誤的選擇。 – harold

+0

@harold您可以使用PL或UC。你可以使用其中之一。 – user4249446

+0

@ user4249446當然你可以,但你不能*只能*使用它們,一般來說。 – harold

回答

4

下面是如何DPLL可用於幫助解決例如式:

  • 單位傳播是不可能的,因爲沒有單元條款。
  • 純正文規則不適用,因爲沒有文字只出現正面或負面的情況。
  • 要應用拆分規則請選擇一些文字,例如A
    • 設置A=0並傳播。這將導致
      {1 \/ B \/ C}, {0 \/ ~B \/ C}, {0 \/ B \/ ~C}, {0 \/ B \/ C}
      == {~B \/ C}, {B \/ ~C}, {B \/ C}
    • 單位傳播純文字仍然不適用。
    • 應用拆分規則爲下一文字B
      • B=0和傳播:
        {1 \/ C}, {0 \/ ~C}, {0 \/ C}
        == {~C}, {C}
      • 此公式由兩個單元子句所以它可以應用單元傳播,這導致{}所以我們原路返回。
      • 設置B=1並傳播。 {0 \/ C}, {1 \/ ~C}, {1 \/ C}
        == {C}
      • 再次,單元傳播是適用的,但現在將導致空式是平凡可滿足的。

哪個單位條款(UC)或純文字(PL)被用來解決這個具體的例子?

單位子句傳播用於解決這個例子。由於公式的對稱性,選擇不同順序的分割文字將導致相同的結果。

+0

我確定PL和UC可以解決這個例子:)但是你很專業 –

+0

PL&UC是不夠的,因爲在事先不改變公式的情況下應用它們是不可能的。只有在存在某種特殊的子句/文字時,它們才起作用。 –

+0

Okey,改變你說UC解決之後。這意味着PL不能適用? –