Reputation:
We know DPLL
algorithm is backtracking + unit propagation + pure literal rule.
I have an example. There is one example to solve following Satisfiability problem with DPLL. if assign of "0" to variables is prior to assign "1" to variables, Which of Unit Clause (UC)
or Pure Literal (PL)
is used to solve this specific example?
{~A \/ B \/ C}, {A \/ ~B \/ C}, {A \/ B \/ ~C}, {A \/ B \/ C}
In this example wrote by using two of them (PL and UC
). why two of them is selected? any idea?
Upvotes: 2
Views: 2323
Reputation: 12908
Here is how DPLL could be used to solve your example formula:
A
.
A=0
and propagate. This will result in{1 \/ B \/ C}, {0 \/ ~B \/ C}, {0 \/ B \/ ~C}, {0 \/ B \/ C}
{~B \/ C}, {B \/ ~C}, {B \/ C}
B
.
B=0
and propagate:{1 \/ C}, {0 \/ ~C}, {0 \/ C}
{~C}, {C}
{}
so we backtrack.B=1
and propagate.
{0 \/ C}, {1 \/ ~C}, {1 \/ C}
{C}
Which of Unit Clause (UC) or Pure Literal (PL) is used to solve this specific example?
Unit Clause propagation is used to solve this example. And due to symmetry of the formula, choosing splitting literals in different order will lead to the same result.
Upvotes: 4