460 likes | 584 Views
Proving by Assignment Trees that SAT Solvers are Non-Polynomial in Unit Propagation Framework with 1 Selection and Cache. Gábor Kusper University of Linz RISC Austria. 200 4. Outline. Representations of SAT Unit Propagation and Resolution DPLL and GUS Unit Propagation Framework.
E N D
Proving by Assignment Trees that SAT Solvers are Non-Polynomialin UnitPropagation Frameworkwith 1 Selection and Cache GáborKusper University of Linz RISC Austria 2004
Outline • Representations of SAT • Unit Propagation and Resolution • DPLL and GUS • Unit Propagation Framework
Motivation • Theorema, http://www.theorema.org/ • A1, ..., An G. • A1, ..., An, G is unsatisfiable.
Boolean Satisfiability (SAT) • Identify truth assignment that satisfies boolean formula or prove it does not exist. • SAT: Boolean Satisfiability if the boolean formula is in CNF form. • Well-known NP-complete problem.
Pozitive Literal Negative Literal Clause Conjunctive Normal Form (CNF) F = ( a c ) ( b c ) (¬a ¬b ¬c )
Representations F = ( a c ) ( b c ) (¬a ¬b ¬c ) S = {{ a,c }, { b,c }, {¬a,¬b, ¬c }} + x + M = x + + - - - True True True b c a False False False
ClauseClassification x - + x x x x-x + - + 2-Clause EmptyClause Unit Clause ClearClause
Clause Set Classification x - + x x x x-x + - + Unsatisfiable Clause Set Empty Clause Set, Satisfiable
Simplifying SAT Resolution Unit Propagation
A - + + x + + x + x + + + B res(A, B, a) a Resolution • if A, B are clauses and a is a literal, then • res(A, B, a) := A B \ {a, ¬a}.
x - + x- x x - + -- x +xx + ++ UP by +xx Unit Clause Unit Propagation (UP) • If S is a clause set and a is a literal, then • UP(S, {a}) := {C \{a} | C S a C}.
SAT Solvers DPLL GUS
x - + x- x x - + -- x +xx + ++ UP by +xx UP by x-x BCP • Boolean Constraint Propagation (BCP): Iterated application of unit propagation.
DPLL Procedure • Davis & Putnam & Logemann & Loveland Procedure • Function DPLL(S : Clause Set) : Boolean • Begin • S := BCP(S); • if S = then return True; • if S then return False; • Letabe a variablein S; • return DPLL( S {{a}} ) DPLL( S {{ ¬a}} ); • End
+ x x x + x - x x Example - - x x + + - x - - - x x + + - x - + x x - - x x + + - x - - x x x + + x + x
Assignment • We say for short • clause disjunctive set of literals. • assignment conjunctive set of literals. • The intended meaning of assignment { a, b } is that we assign true to a and false to b. • If C is a clause, then C is an assignment. • If A is an assignment, then A is a clause. • If S is a clause set, then S is an assignment set. • If T is an assignment set, then T is a clause set.
Hyper-Unit Propagation (HUP) • If S is a clause set and A is an assignment, then • HUP(S, A) := {C \A | C S C A = }. x x + xx x x - + -- x + ++ HUP by ++x x x + xx x x - + -- x + ++ x - + x- x UP by x+x UP by +xx
+ + + x -- + x C sm(C, c) c Sub-Model (sm) • If C is a clause and c is a literal in C, then • sm(C, c) := C \ { c } { c }. • sm(C, c) is an assignment. • (a b c) (a b) c.
Expansion Rule • If HUP(S, A) is unsat, then {A} S S. • If C S, c C and HUP(S, sm(C, c)) is unsat, then {sm(C, c)} S S, i.e., • {C \ {c}} S S, • because res(C, sm(C, c)) = C \ {c}.
GUS • General Unicorn-SAT(GUS) • FunctionGUS(S : Clause Set) : Boolean • Begin • if S = then return True; • Let C be a minimal clause in S; • For each c C do • If ( GUS( HUP(S, sm(C, c) ) ) ) then return True; • od • return False; • End
+ - x x x+ x x + - x x x- x Example - - x x + + - x - x x + x x - x x + - x - -x x x x x
Unit Propagation Framework Unit Propagation Framework with 1 Selection and Cache Limitation Lemma
Strategy Set & Function • If C is a clause and T is an assignment set, then • T is a strategy set generated by C, • if { C } T is unsatisfiable. • If C is a clause and F is a function, that has the type • “function F( C : clause) : assignment set”, and • F(C) is a strategy set generated by C, then • F is a strategy function.
+ + + + + x x x - x x x + + + + - - - + - - + x - + x x + x x x C C T T + x x x + x x x C T Example x x x x C T
Strategy Function of DPLL • Function DPLL_STF( C : Clause ) : Assignment Set • Begin • if ( C is empty ) then return ; • if ( C is unit ) then return { C }; • Let c be a literal in C; • return { { c }, { c } }; • End
+ + + + + x x x - x x x C T + x x x +x x x C T Example x x x x C T
Strategy Function of GUS • Function GUS_STF( C : Clause ) : Assignment Set • Begin • T := ; • While (C is not empty) do • Let c be a literal in C; • T := T { sm(C, c) }; • C := C \ { c }; • od • return T; • End
+ + + + - - - + - - + x - + x x + x x x C T + x x x + x x x C T Example x x x x C T
UPFw1S • Function UPFw1S(S : Clause Set, STF : Strategy Function) : Boolean • Begin • if ( S = ) then return True; • if ( S ) then return False; • Let C be a clause in S; // 1 Selection • T := STF ( C ); // T is a strategy set • For each AT do • if ( UPFw1S( HUP(S, A), STF ) ) then return True; • od • return False; • End
HUP by A1 HUP by A2 HUP by Ak UPFw1S is a SAT solver • We know that if T is a strategy set generated by C, • then { C } T is unsatisfiable. • Assume T = { A1, A2, ..., Ak } is strategy set generated by C S. S S1 C S2 A1 A2 Ak Sk
Simulated DPLL & GUS • Function Simulated_DPLL( S : Clause Set) : Assignment • Begin • return UPFw1S(S, DPLL_STF); • End • Function Simulated_GUS( S : Clause Set) : Assignment • Begin • return UPFw1S(S, GUS_STF); • End
+ + x [4]= + - x - + x - - x + x + [4]= + x - - x + - x - x + + [4]= x + - x - + x - - or or k-Clause Set • [2^k] := the set of all possible k-clauses on the same variables. • For all k : [2^k] is unsatisfiable. • Assume we have 3 variables. [1]= x x x
HUP by ++x HUP on k-Clause Set • HUP([2^k], A) = [2^(k-m)], where m = |A|. [2] [8] + + + + + - + - + [8]= + - - - + + - + - - - + - - - HUP by ++x x x + =[2] x x -
HUP by + HUP by + DPLL and GUS on [2] [2] [1] DPLL: UP steps: 1 + - [2] [1] GUS: UP steps: 1 + -
HUP by +x HUP by -x HUP by -+ HUP by +x DPLL and GUS on [4] 1 [2] [4] DPLL: ++ UP steps: 4 -x 1 [2] +x [1] [4] GUS: UP steps: 4 ++ +- 1 [2] -x
HUP by +xx HUP by -xx HUP by --+ HUP by -+x HUP by +xx DPLL and GUS on [8] 4 [4] [8] DPLL: +++ UPs: 10 -xx 4 [4] +xx [1] [8] GUS: +++ -1 UPs: 11 1 [2] ++- +-x 4 [4] -xx
Limit for Strategy Sets • If T is strategy set generated by C and C is a k-clause, then T subsumes at least 2^k – 1 k-clauses on the variables of C. • This holds, because { C } T is unsatisfiable. - - + - - + T = - + x = - + + - x x - + - + + + + + - + - + + - - + + + - - + - + x + x x C T
HUP by --+ HUP by -+x HUP by +xx Limit for Children • If we break down [2^k] by a strategy set to • [2^k1], [2^k2], ..., [2^km] then • 2^k1 + 2^k2 + ... + 2^km 2^k – 1. • This holds, because of Limit for Strategy Sets. [1] [8] +++ [2] ++- +-x [4] -xx
HUP by --+ HUP by -+x HUP by +xx Assignment Tree (A-tree) • A, Cs is an A-tree if A is an assignment and Cs is a set of A-trees. • We can represent a run of UPFw1S by an A-tree. xxx [1] [8] -+x --+ +xx +++ [2] ++- x+x x-+ xx+ +-x [4] -xx xx+
Unit Assignment Tree (a), Cs is a unit A-tree if Cs is a set of unit A-trees. (b)A, Cs is a unit A-tree if A is a unit and Cs is a set of unit A-trees. convert to unit A-tree xxx xxx -+x -xx --+ -xx +xx +xx x+x x+x x-+ x-x x-x xx+ x+x xx+ xx+ xx+ xx+ xx+
Cached Unit Assignment Tree xxx convert to cached unit A-tree -xx -xx +xx xxx x+x x-x x-x x+x -xx +xx xx+ xx+ xx+ xx+ x+x x-x x-x x+x xx+ xx+ xx+ xx+
Auxiliary Lemmas • The number of edges of a cached unit A-tree equals to the number of used UP steps in the run of UPFw1SC, if this cached unit A-tree corresponds to this run of the framework. • A well-know graph theory states that if a tree has N nodes, then it has N-1 edges.
Number of Nodes of a CUA-Tree • Let AT be a A-tree, which represent a run of UPFw1SC on [2^n], n > 0. • We convert AT to a cached unit A-tree. Let CUAT this cached unit A-tree. • Then CUAT has 2^n + 2^(n-1) – 1 nodes. • Proof by Induction: • For k = 1 is true, because [2] has 2 nodes. • Let us assume that it holds for k = n-1. • We show that it holds for k = n. We assume that n > 1. • The child nodes of root correspond to a run of UPFw1SC on [2^(n-1)]. • Since n > 1, the root has at least two child nodes. • Hence, it has at least 2 * (2^(n-1)+2^(n-2) – 1) + 1 nodes.
Limitation Lemma • There is no SAT solver algorithm in the Unit Propagation Framework with 1 Selection and Cache, which can show that [2^n] is unsatisfiable using fewer UP steps than 2^n + 2^(n-1) - 2. • It holds, because each cache unit A-tree, which correspond to a run of this framework on [2^n] has at least 2^n + 2^(n-1) – 1 nodes.
Hence • Therefore, each SAT solver in this framework uses at least 2^n + 2^(n-1) – 2 UP steps to show that [2^n] is unsatisfiable. • Hence, SAT solvers are non-polynomial in Unit Propagation Framework with 1 Selection and Cache.
Thank you for your attention! Download:http://www.risc.uni-linz.ac.at/people/gkusper/UPF.ppt