1 / 37

SAT: Propositional Satisfiability

SAT: Propositional Satisfiability. A tutorial. What is SAT?. Given a propositional formula in CNF, find an assignment to Boolean variables that makes the formula true:.  1 = (x 2  x 3 )  2 = (  x 1  x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1}.

sakina
Télécharger la présentation

SAT: Propositional Satisfiability

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. SAT: Propositional Satisfiability A tutorial

  2. What is SAT? Given a propositional formula in CNF, find an assignment to Boolean variables that makes the formula true: 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) A = {x1=0, x2=1, x3=0, x4=1} SATisfying assignment!

  3. Why SAT? • Fundamental problem from theoretical point of view • Cook theorem, 1971: the first NP-complete problem. • Numerous applications: • Solving any NP problem... • Verification: Model Checking, theorem-proving, ... • AI: Planning, automated deduction, ... • Design and analysis: CAD, VLSI • Physics: statistical mechanics (models for spin-glass material)

  4. SAT made some progress…

  5. CNF-SAT • Conjunctive Normal Form: Conjunction of disjunction of literals. Example:(:x1Ç:x2) Æ (x2Ç x4Ç: x1) Æ ... • Experience shows that CNF-SAT solving is faster than solving a general propositional formula. • There exists a polynomial transformation of a general propositional formula  to CNF, with addition of || variables.

  6. (CNF) SAT basic definitions: literals • A literal is a variable or its negation. • Var(l) is the variable associated with a literal l. • A literal is called negative if it is a negated variable, and positive otherwise.

  7. SAT basic definitions: literals • If var(l) is unassigned, then l is unresolved. • Otherwise, l is satisfied by an assignment  if (var(l)) = 1 and l is positive, or (var(l)) = 0 and l is negative, and unsatisfied otherwise.

  8. SAT basic definitions: clauses • The state of an n-literal clause C under a partial assignment  is: • Satisfied if at least one of C’s literals is satisfied, • Conflicting if all of C’s literals are unsatisfied, • Unit if n-1 literals in C are unsatisfied and 1 literal is unresolved, and • Unresolved otherwise.

  9. SAT basic definitions: clauses • Example

  10. SAT basic definitions: the unit clause rule • The unit clause rule: in a unit clause the unresolved literal must be satisfied.

  11. X  X X X X A Basic SAT algorithm Given  in CNF: (x,y,z),(-x,y),(-y,z),(-x,-y,-z) Decide() Deduce() Resolve_Conflict()

  12. Basic Backtracking Search • Organize the search in the form of a decision tree • Each node corresponds to a decision • Depth of the node in the decision tree is called the decision level • Notation:x=v@dxis assigned v2 {0,1} at decision level d

  13. x1 x1 = 0@1 x2 x2 = 0@2 Backtracking Search in Action 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) x1 = 1@1  x4 = 0@1  x2 = 0@1  x3 = 1@1  x3 = 1@2 {(x1,1), (x2,0), (x3,1) , (x4,0)} {(x1,0), (x2,0), (x3,1)} No backtrack in this example, regardless of the decision!

  14. x1 x1 = 0@1 x1 = 1@1 x2 x2 = 0@2  x3 = 1@2 {(x1,0), (x2,0), (x3,1)} Backtracking Search in Action Add a clause 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) 4 = (x1  x2  x3)  x4 = 0@1  x2 = 0@1  x3 = 1@1 conflict

  15. A Basic SAT algorithm(DPLL-based) Choose the next variable and value. Return False if all variables are assigned While (true) { if (!Decide()) return (SAT); while (!Deduce()) if (!Resolve_Conflict()) return (UNSAT); } Apply unit clause rule. Return False if reached a conflict Backtrack until no conflict. Return False if impossible

  16. Decision heuristicsDLIS (Dynamic Largest Individual Sum) • Maintain a counter for each literal: in how many unresolved clauses it appears ? • Decide on the literal with the largest counter. • Requires O(#literals) queries for each decision.

  17. Decision heuristicsMOM (Maximum Occurrence of clauses of Minimum size). • Let f*(x) be the # of unresolved shortest clauses containing x. Choose x that maximizes: ((f*(x) + f*(!x)) * 2k + f*(x) * f*(!x) • k is chosen heuristically. • The idea: • Give preference to satisfying small clauses. • Among those, give preference to balanced variables (e.g. f*(x) = 3, f*(!x) = 3 is better than f*(x) = 1, f*(!x) = 5).

  18. 4 x2=1@6 x5=1@6 1 4 3 6 x4=1@6  conflict 6 3 2 5 2 5 x6=1@6 x3=1@6 Implication graphs and learning Current truth assignment: {x9=0@1 ,x10=0@3, x11=0@3, x12=1@2, x13=1@2} Current decision assignment: {x1=1@6} x10=0@3 1 = (x1  x2) 2 = (x1  x3  x9) 3 = (x2  x3  x4) 4 = (x4  x5  x10) 5 = (x4  x6  x11) 6 = (x5   x6) 7 = (x1  x7  x12) 8 = (x1 x8) 9 = (x7  x8   x13) x1=1@6 x9=0@1 x11=0@3 We learn the conflict clause10 : (: x1Ç x9Ç x11Ç x10) and backtrack to the highest (deepest) dec. level in this clause (6).

  19. x13=1@2 x8=1@6 9 8 9 ’ 9 7 x7=1@6 7 x12=1@2 Implication graph, flipped assignment 1 = (x1  x2) 2 = (x1  x3  x9) 3 = (x2  x3  x4) 4 = (x4  x5  x10) 5 = (x4  x6  x11) 6 = (x5  x6) 7 = (x1  x7  x12) 8 = (x1 x8) 9 = (x7  x8   x13) 10 : (: x1Ç x9Ç x11Ç x10) x9=0@1 10 x10=0@3 x1=0@6 10 10 x11=0@3 Due to theconflict clause We learn the conflict clause11 : (:x13Ç x9Ç x10Ç x11 Ç :x12) and backtrack to the highest (deepest) dec. level in this clause (3).

  20. Non-chronological backtracking Which assignments caused the conflicts ? x9= 0@1 x10= 0@3 x11= 0@3 x12= 1@2 x13= 1@2 Backtrack to decision level 3 3 Decision level 4 5 These assignments are sufficient for causing a conflict. x1 6  ’ Non-chronological backtracking

  21. Non-chronological backtracking (option #1) • So the rule is: backtrack to the largest decision level in the conflict clause. • Q: What if the flipped assignment works ? A: continue to the next decision level, leaving the current one without a decision variable. • Backtracking back to this level will lead to another conflict and further backtracking.

  22. Non-chronological Backtracking x1 = 0 x2 = 0 x3 = 1 x3 = 0 x4 = 0 x6 = 0 ... x5 = 0 x5 = 1 x7 = 1 x9 = 1 x9 = 0

  23. 4 x2=1@6 x5=1@6 1 4 2 3 6 1 x4=1@6  conflict 6 3 2 5 2 5 x6=1@6 x3=1@6 3 More Conflict Clauses • Def: A Conflict Clause is any clause implied by the formula • Let L be a set of literals labeling nodes that form a cut in the implication graph, separating the conflict node from the roots. • Claim: Çl2L:l is a Conflict Clause. 1. (x10Ç:x1Ç x9Ç x11) x10=0@3 2. (x10Ç:x4Ç x11) 3. (x10Ç:x2Ç:x3Ç x11) x1=1@6   x9=0@1 x11=0@3

  24. Conflict clauses • How many clauses should we add ? • If not all, then which ones ? • Shorter ones ? • Check their influence on the backtracking level ? • The most “influential” ? • The answer requires two definitions: • Asserting clauses • Unique Implication points (UIP’s)

  25. Asserting clauses • Def: An Asserting Clause is a Conflict Clause with a single literal from the current decision level. Backtracking (to the right level) makes it a Unit clause. • Modern solvers only consider Asserting Clauses.

  26. Previous method: backtrack to highest decision level in conflict clause (and erase it). A better method (empirically): backtrack to the second highest decision level in the clause, without erasing it. The asserted literal is implied at that level. In our example: (x10Ç:x4Çx11) Previously we backtracked to decision level 6. Now we backtrack to decision level 3. x4 = 0@3 is implied. Conflict-driven backtracking (option #2) 3 6 3

  27. Conflict-driven Backtracking x1 = 0 x2 = 0 x5 = 1 x3 = 1 x7 = 1 x9 = 1 x4 = 0 x3 = 1 x6 = 0 ... x5 = 0 x9 = 0

  28. Conflict-Driven Backtracking • So the rule is: backtrack to the second highest decision level dl, but do not erase it. • If the conflict clause has a single literal, backtrack to decision level 0. • Q: It seems to waste work, since it erases assignments in decision levels higher than dl, unrelated to the conflict. • A: indeed. But allows the SAT solver to redirect itself with the new information.

  29. Progress of a SAT solver work invested in refutingx=1 (some of it seems wasted) C x=1 Refutation of x=1 C5 C2 Decision Level C1 C4 BCP C3 Decision Time Conflict

  30. Conflict clauses and Resolution The Resolution is a sound inference rule: Example:

  31. Conflict clauses and resolution • Consider the following example: • Conflict clause: c5: (x2 Ç:x4Çx10)

  32. Conflict clauses and resolution • Conflict clause: c5: (x2 Ç:x4Çx10) • Resolution order: x4,x5,x6,x7 • T1 = Resolve(c4,c3,x7) = (:x5Ç:x6) • T2 = Resolve(T1, c2, x6) = (:x4Ç:x5 Ç X10 ) • T3 = Resolve(T2,c1,x5) = (x2Ç:x4Ç x10 )

  33. Finding the conflict clause: cl is asserting the first UIP Applied to our example:

  34. GSAT: stochastic SAT solving Given a CNF formula , choose max_tries and max_flips for i = 1 to max_tries { T := randomly generated truth assignment for j = 1 to max_flips { if T satisfies  return TRUE choose v s.t. flipping v’s value gives largest increase in the # of satisfied clauses (break ties randomly). T := T with v’s assignment flipped. } } Many alternative heuristics

  35. Numerous progressing heuristics • Hill-climbing • Tabu-list • Simulated-annealing • Random-Walk • Min-conflicts • ...

  36. Formulation of problems as SAT: k-Coloring The K-Coloring problem: Given an undirected graph G(V,E) and a natural number k, is there an assignment color:

  37. Formulation of problems as SAT: k-Coloring xi,j= node i is assigned the ‘color’ j (1 in, 1 jk) Constraints: i) At least one color to each node: (x1,1  x1,2 … x1,k …) ii) At most one color to each node: iii) Coloring constraints: for each i,j such that (i,j) 2 E:

More Related