1 / 46

Gábor Kusper University of Linz RISC Austria

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.

harley
Download Presentation

Gábor Kusper University of Linz RISC Austria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Proving by Assignment Trees that SAT Solvers are Non-Polynomialin UnitPropagation Frameworkwith 1 Selection and Cache GáborKusper University of Linz RISC Austria 2004

  2. Outline • Representations of SAT • Unit Propagation and Resolution • DPLL and GUS • Unit Propagation Framework

  3. Motivation • Theorema, http://www.theorema.org/ • A1, ..., An G. • A1, ..., An, G is unsatisfiable.

  4. 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.

  5. Pozitive Literal Negative Literal Clause Conjunctive Normal Form (CNF) F = ( a c )  ( b c )  (¬a ¬b ¬c )

  6. 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

  7. ClauseClassification x - + x x x x-x + - + 2-Clause EmptyClause Unit Clause ClearClause

  8. Clause Set Classification x - + x x x x-x + - + Unsatisfiable Clause Set Empty Clause Set, Satisfiable

  9. Simplifying SAT Resolution Unit Propagation

  10. 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}.

  11. 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}.

  12. SAT Solvers DPLL GUS

  13. x - + x- x x - + -- x +xx + ++ UP by +xx UP by x-x BCP • Boolean Constraint Propagation (BCP): Iterated application of unit propagation.

  14. 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

  15. + x x x + x - x x Example - - x x + + - x - - - x x + + - x - + x x - - x x + + - x - - x x x + + x + x

  16. 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.

  17. 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

  18. + + + 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.

  19. 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}.

  20. 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

  21. + - 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

  22. Unit Propagation Framework Unit Propagation Framework with 1 Selection and Cache Limitation Lemma

  23. 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.

  24. + + + + + 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

  25. 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

  26. + + + + + x x x - x x x C T + x x x +x x x C T Example x x x x C T

  27. 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

  28. + + + + - - - + - - + x - + x x + x x x C T + x x x + x x x C T Example x x x x C T

  29. 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 AT do • if ( UPFw1S( HUP(S, A), STF ) ) then return True; • od • return False; • End

  30. 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

  31. 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

  32. + + 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

  33. 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 -

  34. HUP by + HUP by + DPLL and GUS on [2] [2] [1] DPLL: UP steps: 1 + - [2] [1] GUS: UP steps: 1 + -

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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+

  40. 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+

  41. 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+

  42. 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.

  43. 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.

  44. 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.

  45. 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.

  46. Thank you for your attention! Download:http://www.risc.uni-linz.ac.at/people/gkusper/UPF.ppt

More Related