Download
sat genealogy n.
Skip this Video
Loading SlideShow in 5 Seconds..
SAT Genealogy PowerPoint Presentation
Download Presentation
SAT Genealogy

SAT Genealogy

126 Vues Download Presentation
Télécharger la présentation

SAT Genealogy

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. SAT Genealogy Alexander Nadel, Intel, Haifa, Israel The Technion, Haifa, Israel July, 3 2012

  2. Agenda • Introduction • Early Days of SAT Solving • Core SAT Solving • Conflict Analysis and Learning • Boolean Constraint Propagation • Decision Heuristics • Restart Strategies • Inprocessing • Extensions to SAT • Incremental SAT Solving under Assumptions • Simultaneous Satisfiability (SSAT) • Diverse Solutions Generation • High-level (group-oriented) MUC Extraction

  3. Agenda • Introduction • Early Days of SAT Solving • Core SAT Solving • Conflict Analysis and Learning • Boolean Constraint Propagation • Decision Heuristics • Restart Strategies • Inprocessing • Extensions to SAT • Incremental SAT Solving under Assumptions • Simultaneous Satisfiability (SSAT) • Diverse Solutions Generation • High-level (group-oriented) MUC Extraction We won’t use implication graphs for explanation, but: Duality between search and resolution

  4. What is SAT? • Find a variable assignment (AKA solution or model) that satisfies a propositional formula or prove that there are no solutions • SAT solvers operate on CNF formulas: • Any formula can be reduced to a CNF CNF Formula: F = ( a + c ) ( b + c ) (a’ + b’+ c’ ) negative literal clause positive literal

  5. SAT: Theory and Practice • Theory: • SAT is the first known NP-complete problem • Stephen Cook, 1971 • One can check a solution in polynomial time • Can one find a solution in polynomial time? • The P=NP question… • Practice: • Amazingly, nowadays SAT solvers can solve industrial problems having millions of clauses and variables • SAT has numerous applications in formal verification, planning, bioinformatics, combinatorics, …

  6. Approaches to SAT Solving • Backtrack search: DFS search for a solution • The baseline approach for industrial-strength solvers. In focus today. • Look-ahead: BFS search for a solution • Helpful for certain classes of formulas • Recently, there were attempts of combining it with backtrack search • Local search • Helpful mostly for randomly generated formulas

  7. Early Days of SAT Solving Agenda • Resolution • Backtrack Search

  8. a + b + c’ + f g + h’ + c + f a + b + g + h’ a + b + g + h’ + f Resolution: a Way to Derive New Valid Clauses • Resolution over a pair of clauses with exactly one pivot variable: a variable appearing in different polarities: • Known to be invented by Davis&Putnam, 1960 • Had been invented independently by Lowenheim in early 1900’s (as well as the DP algorithm, presented next) • According to Chvatal&Szemeredy, 1988 (JACM) - The resolvent clause is a logical consequence of the two source clauses

  9. (a + b + c) (b + c’ + f’) (b’ + e) (a + b) (a + b’) (a’ + c) (a’ + c’) (a + c + e) (c’ + e + f) (a) (a’ + c) (a’ + c’) (c) (c’) (a + e + f) ( ) DP Algorithm: Davis&Putnam, 1960 Remove the variables one-by-one by resolution over all the clauses containing that variable DP is sound and complete SAT UNSAT

  10. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b b’ + c b’ + c’ a’ + b

  11. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c b’ + c’ a’ + b

  12. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ Decision level1 b’ + c b’ + c’ a’ + b a is the decision variable; a’ is the decision literal

  13. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c b’ + c’ b’ a’ + b Decision level 2

  14. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c b’ + c’ b’ a’ + b a + b A conflict.A blocking clause – a clause, falsified by the current assignment – is encountered.

  15. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c b’ + c’ b’ b Backtrack and flip a’ + b a + b

  16. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c Decision level 1 b’ + c’ b’ b a’ + b a + b c’ Decision level 2 b’ + c

  17. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ b’ + c b’ + c’ b’ b Decision level 1 a’ + b a + b c’ c b’ + c b’ + c’

  18. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ a b’ + c b’ + c’ b’ b a’ + b a + b c’ c b’ + c b’ + c’

  19. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ a b’ + c b’ + c’ b’ b a’ + b a + b b c’ c b’ + c b’ + c’

  20. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ a b’ + c b’ + c’ b’ b a’ + b a + b b c’ c b’ + c b’ + c’ c’ b’ + c

  21. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ a b’ + c b’ + c’ b’ b a’ + b a + b b c’ c b’ + c b’ + c’ c’ c b’ + c b’ + c’

  22. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 a + b a’ a b’ + c b’ + c’ b’ b a’ + b b’ a + b b c’ c a’ + b b’ + c b’ + c’ c’ c b’ + c b’ + c’

  23. Backtrack Search or DLL: Davis-Logemann-Loveland, 1962 UNSAT! a + b a’ a b’ + c b’ + c’ b’ b a’ + b b’ a + b b c’ c a’ + b b’ + c b’ + c’ c’ c b’ + c b’ + c’

  24. Core SAT Solving: the Principles • DLL could solve problems with <2000 clauses • How can modern SAT solvers solve problems with millions of clauses and variables? • The major principles: • Learning and pruning • Block already explored paths • Locality and dynamicity • Focus the search on the relevant data • Well-engineered data structures • Extremely fast propagation

  25. Agenda • Introduction • Early Days of SAT Solving • Core SAT Solving • Conflict Analysis and Learning • Boolean Constraint Propagation • Decision Heuristics • Restart Strategies • Inprocessing • Extensions to SAT • Incremental SAT Solving under Assumptions • Simultaneous Satisfiability (SSAT) • Diverse Solutions Generation • High-level (group-oriented) MUC Extraction

  26. Duality between Basic Backtrack Search and Resolution One can associate a resolution derivation with every invocation of DLL over an unsatisfiable formula

  27. Duality between Basic Backtrack Search and Resolution a + b b’ + c b’ + c’ a’ + b

  28. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ a’ + b

  29. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ b’ a’ + b a + b

  30. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ b’ b a’ + b a + b • A parent clause P(x) is associated with every flip operation for variable x. It contains: • The flipped literal • A subset of previously assigned falsified literals • The parent clause justifies the flip: its existence proves that the explored subspace has no solutions

  31. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ b’ b a’ + b a + b c’ b’ + c

  32. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ b’ b a’ + b a + b c’ c b’ + c

  33. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c b’ + c’ b’ b a’ + b a + b c’ c b’ + c b’ + c’

  34. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c • Backtracking over a flipped variable x can be associated with a resolution operation: • P = P(x)  P • P is to become the parent clause for the upcoming flip • P is initialized with the last blocking clause b’ + c’ b’ b Pnew a’ + b a + b b’ c’ c P(c) Pold b’ + c b’ + c’

  35. Duality between Basic Backtrack Search and Resolution a + b a’ b’ + c Pnew a • Backtracking over a flipped variable x can be associated with a resolution operation: • P = P(x)  P • P is to become the parent clause for the upcoming flip • P is initialized with the last blocking clause b’ + c’ b’ b P(b) Pold a’ + b a + b b’ c’ c b’ + c b’ + c’

  36. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c (a) a b’ + c’ b’ b a’ + b a + b b’ c’ c b’ + c b’ + c’ • The parent clause P(a) is derived by resolution. • The resolution proof (a) of the parent clause is called parent resolution

  37. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b a + b b’ b c’ c b’ + c b’ + c’

  38. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b a + b b’ b c’ c b’ + c b’ + c’ c’ b’ + c

  39. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b a + b b’ b c’ c b’ + c b’ + c’ c’ c P(c) b’ + c

  40. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b a + b b’ b c’ c b’ + c b’ + c’ c’ c b’ + c b’ + c’

  41. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b a + b b’ b c’ c Pnew b’ b’ + c b’ + c’ c’ c P(c) Pold b’ + c b’ + c’

  42. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b b’ a + b b’ b c’ c (b) b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  43. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c a b’ + c’ b’ b a’ + b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  44. Duality between Basic Backtrack Search and Resolution a + b a’ a b’ + c Pnew a a’ b’ + c’ b’ b a’ + b b’ a + b b’ b c’ c P(b) Pold a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  45. Duality between Basic Backtrack Search and Resolution Pnew a + b  a’ a P(a) b’ + c Pold a a’ b’ + c’ b’ b a’ + b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  46. Duality between Basic Backtrack Search and Resolution a + b  a’ a b’ + c a a’ b’ + c’ b’ b a’ + b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  47. Duality between Basic Backtrack Search and Resolution • The final trace of DLL is both a decision tree(top-down view) and a resolution refutation (bottom-up view) • Variables associated with the edges are both decision variables in the tree and pivot variables for the resolution • A forest of parent resolutions is maintained • The forest converges to one resolution refutation in the end (for an UNSAT formula)  a’ a a a’ b’ b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  48. Conflict Clause Recording • The idea: update the instance with conflict clauses, that is some of the clauses generated by resolution • Introduced in SAT by Bayardo&Schrag, 1997 (rel_sat)  a’ a a a’ b’ b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  49. Conflict Clause Recording • Assume the brown clause below was recorded  a’ a a a’ b’ b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’

  50. Conflict Clause Recording • Assume the brown clause below was recorded • The violet part would not have been explored • It is redundant  a’ a a a’ b’ b b’ a + b b’ b c’ c a’ + b b’ b’ + c b’ + c’ c’ c b’ + c b’ + c’