pseudo boolean solving by incremental translation to sat
play

Pseudo-Boolean Solving by Incremental Translation to SAT Pete - PowerPoint PPT Presentation

Pseudo-Boolean Solving by Incremental Translation to SAT Pete Manolios Vasilis Papavasileiou Northeastern University {pete,vpap}@ccs.neu.edu October 31, 2011 How to connect, integrate, assemble thousands of components in an aerospace


  1. Pseudo-Boolean Solving by Incremental Translation to SAT Pete Manolios Vasilis Papavasileiou Northeastern University {pete,vpap}@ccs.neu.edu October 31, 2011

  2. How to connect, integrate, assemble thousands of components in an aerospace design, subject to global requirements ? Motivation: Industrial Design Problems 1 Photo by Luis Argerich, CC-by-2.0

  3. Motivation: Industrial Design Problems How to connect, integrate, assemble thousands of components in an aerospace design, subject to global requirements ? 1 Photo by Luis Argerich, CC-by-2.0

  4. The core of the problem is pseudo-Boolean constraints! Solution: Synthesizing Architectures 1 1 CAV 2011

  5. Solution: Synthesizing Architectures 1 The core of the problem is pseudo-Boolean constraints! 1 CAV 2011

  6. variables x i integer coefficients c i generalization of clauses can be encoded as CNF 1 Pseudo-Boolean Problem Conjunction of PB constraints Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  7. integer coefficients c i generalization of clauses can be encoded as CNF 1 Pseudo-Boolean Problem Conjunction of PB constraints Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ ◮ variables x i ∈ { 0 , 1 } 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  8. generalization of clauses can be encoded as CNF 1 Pseudo-Boolean Problem Conjunction of PB constraints Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ ◮ variables x i ∈ { 0 , 1 } ◮ integer coefficients c i 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  9. can be encoded as CNF 1 Pseudo-Boolean Problem Conjunction of PB constraints Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ ◮ variables x i ∈ { 0 , 1 } ◮ integer coefficients c i ◮ generalization of clauses 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  10. Pseudo-Boolean Problem Conjunction of PB constraints Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ ◮ variables x i ∈ { 0 , 1 } ◮ integer coefficients c i ◮ generalization of clauses ◮ can be encoded as CNF 1 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  11. Pseudo-Boolean (PB) Constraints Pseudo-Boolean Constraint Constraint of the form c 1 x 1 + c 2 x 2 + · · · + c n x n � r ◮ � is one of < , ≤ , = , > , or ≥ ◮ variables x i ∈ { 0 , 1 } ◮ integer coefficients c i ◮ generalization of clauses ◮ can be encoded as CNF 1 Pseudo-Boolean Problem Conjunction of PB constraints 1 Een and Sorensson, JSAT, 2006 (MiniSat+)

  12. Goal: improve SAT-based PB solving! Impressive performance improvements Flexibility, well-engineered interfaces Open source, easy to experiment with Works well for almost propositional instances Two Families of Solvers . . SAT and ILP solvers and techniques can be applied!

  13. Two Families of Solvers . . SAT and ILP solvers and techniques can be applied! Goal: improve SAT-based PB solving! ◮ Impressive performance improvements ◮ Flexibility, well-engineered interfaces ◮ Open source, easy to experiment with ◮ Works well for almost propositional instances

  14. Satisfiable Formulas Just enough constraints to find satisfying assignment Unsatisfiable Formulas We may hit an unsatisfiable core quickly Incremental Translation to SAT We do not have to encode all the constraints

  15. Unsatisfiable Formulas We may hit an unsatisfiable core quickly Incremental Translation to SAT We do not have to encode all the constraints Satisfiable Formulas Just enough constraints to find satisfying assignment

  16. Incremental Translation to SAT We do not have to encode all the constraints Satisfiable Formulas Just enough constraints to find satisfying assignment Unsatisfiable Formulas We may hit an unsatisfiable core quickly

  17. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  18. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  19. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  20. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do returns a partial assignment A , U ← sat ( C ) ( A ) and a set of units ( U ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ . .

  21. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  22. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  23. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  24. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  25. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  26. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′ .

  27. x x x x x x x x x x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2

  28. x x x x x x x x x x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2

  29. x x x x x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2

  30. x x x x x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2

  31. x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 x 3 + x 4 ≥ 2 ¬ x 1 x 2

  32. x x x x Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 x 3 + x 4 ≥ 2 ¬ x 1 x 2

  33. Simplification 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 2 x 2 + x 3 + x 4 ≥ 4 ¬ x 1 x 2 x 3 + x 4 ≥ 2 ¬ x 1 x 2 ¬ x 1 x 2 x 3 x 4

  34. Algorithm procedure pb-sat( P ) C ← { c ∈ P : c is a PB-clause } P ← { p ∈ P : p is not a PB-clause } while true do A , U ← sat ( C ) if A = UNSAT then return UNSAT P ← simplify ( P , U ) if A satisfies P then return A P ′ ← { p ∈ P : p falsified by A } if P ′ = ∅ then P ′ ← select ( P ) for all p ∈ P ′ do C ← C ∧ translate ( p ) P ← P \ P ′

Recommend


More recommend