maxsat and related optimization problems
play

MaxSAT and Related Optimization Problems Joao Marques-Silva 1 , 2 1 - PowerPoint PPT Presentation

MaxSAT and Related Optimization Problems Joao Marques-Silva 1 , 2 1 University College Dublin, Ireland 2 IST/INESC-ID, Lisbon, Portugal SAT/SMT Summer School 2012 FBK, Trento, Italy Example Problem: Minimum Vertex Cover The problem: Graph


  1. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Results, Conclusions & Research Directions

  2. Design Debugging [SMVLS’07] Correct circuit Faulty circuit r r y AND y AND s s z AND OR z Input stimuli: � r , s � = � 0 , 1 � Input stimuli: � r , s � = � 0 , 1 � Valid output: � y , z � = � 0 , 0 � Invalid output: � y , z � = � 0 , 0 � • The model: – Hard clauses: Input and output values – Soft clauses: CNF representation of circuit • The problem: – Maximize number of satisfied clauses (i.e. circuit gates)

  3. Software Package Upgrades with MaxSAT [MBCV’06,TSJL’07,AL’08,ALMS’09,ALBL’10] • Universe of software packages: { p 1 , . . . , p n } • Associate x i with p i : x i = 1 iff p i is installed • Constraints associated with package p i : ( p i , D i , C i ) – D i : dependencies (required packages) for installing p i – C i : conflicts (disallowed packages) for installing p i • Example problem: Maximum Installability – Maximum number of packages that can be installed – Package constraints represent hard clauses – Soft clauses: ( x i ) Package constraints: ( p 1 , { p 2 ∨ p 3 } , { p 4 } ) ( p 2 , { p 3 } , { p 4 } ) ( p 3 , { p 2 } , ∅ ) ( p 4 , { p 2 , p 3 } , ∅ )

  4. Software Package Upgrades with MaxSAT [MBCV’06,TSJL’07,AL’08,ALMS’09,ALBL’10] • Universe of software packages: { p 1 , . . . , p n } • Associate x i with p i : x i = 1 iff p i is installed • Constraints associated with package p i : ( p i , D i , C i ) – D i : dependencies (required packages) for installing p i – C i : conflicts (disallowed packages) for installing p i • Example problem: Maximum Installability – Maximum number of packages that can be installed – Package constraints represent hard clauses – Soft clauses: ( x i ) Package constraints: MaxSAT formulation: = { ( ¬ x 1 ∨ x 2 ∨ x 3 ) , ( ¬ x 1 ∨ ¬ x 4 ) , ( p 1 , { p 2 ∨ p 3 } , { p 4 } ) ϕ H ( ¬ x 2 ∨ x 3 ) , ( ¬ x 2 ∨ ¬ x 4 ) , ( ¬ x 3 ∨ x 2 ) , ( p 2 , { p 3 } , { p 4 } ) ( ¬ x 4 ∨ x 2 ) , ( ¬ x 4 ∨ x 3 ) } ( p 3 , { p 2 } , ∅ ) = { ( x 1 ) , ( x 2 ) , ( x 3 ) , ( x 4 ) } ( p 4 , { p 2 , p 3 } , ∅ ) ϕ S

  5. Key Engine for MUS Enumeration • MUS: irreducible unsatisfiable set of clauses – MCS: irreducible set of clauses such that complement is satisfiable – MSS: subset maximal satisfiable set of clauses

  6. Key Engine for MUS Enumeration • MUS: irreducible unsatisfiable set of clauses – MCS: irreducible set of clauses such that complement is satisfiable – MSS: subset maximal satisfiable set of clauses • Enumeration of MUSes finds many applications: – Model checking with CEGAR, type inference & checking, etc. [ALS’08,BSW’03]

  7. Key Engine for MUS Enumeration • MUS: irreducible unsatisfiable set of clauses – MCS: irreducible set of clauses such that complement is satisfiable – MSS: subset maximal satisfiable set of clauses • Enumeration of MUSes finds many applications: – Model checking with CEGAR, type inference & checking, etc. [ALS’08,BSW’03] • How to enumerate MUSes? [E.g. LS’08] – Use hitting set duality between MUSes and MCSes [E.g. R’87,BL’03] ◮ An MUS is an irreducible hitting set of a formula’s MCSes ◮ An MCS is an irreducible hitting set of a formula’s MUSes – Can enumerate MCSes and then use them to compute MUSes

  8. Key Engine for MUS Enumeration • MUS: irreducible unsatisfiable set of clauses – MCS: irreducible set of clauses such that complement is satisfiable – MSS: subset maximal satisfiable set of clauses • Enumeration of MUSes finds many applications: – Model checking with CEGAR, type inference & checking, etc. [ALS’08,BSW’03] • How to enumerate MUSes? [E.g. LS’08] – Use hitting set duality between MUSes and MCSes [E.g. R’87,BL’03] ◮ An MUS is an irreducible hitting set of a formula’s MCSes ◮ An MCS is an irreducible hitting set of a formula’s MUSes – Can enumerate MCSes and then use them to compute MUSes – Use MaxSAT enumeration for computing all MSSes

  9. Many Other Applications • Error localization in C code [JM’11] • Haplotyping with pedigrees [GLMSO’10] • Course timetabling [AN’10] • Combinatorial auctions [HLGS’08] • Minimizing Disclosure of Private Information in Credential-Based Interactions [AVFPS’10] • Reasoning over Biological Networks [GL’12] • Binate/unate covering – Haplotype inference [GMSLO’11] – Digital filter design [ACFM’08] – FSM synthesis [e.g. HS’96] – Logic minimization [e.g. HS’96] – ... • ...

  10. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Results, Conclusions & Research Directions

  11. Main Techniques • Unit propagation – For computing lower bounds in B&B MaxSAT • Stochastic Local Search – For computing upper bounds (e.g. B&B MaxSAT) • Unsatisfiable subformulas (or cores) – Used in core-guided MaxSAT algorithms • CNF encodings – Cardinality constraints – PB constraints

  12. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Cardinality Constraints Pseudo-Boolean Constraints Practical Algorithms Results, Conclusions & Research Directions

  13. Cardinality Constraints • How to handle cardinality constraints, � n j =1 x j ≤ k ? – How to handle AtMost1 constraints, � n j =1 x j ≤ 1 ? – General form: � n ⊳ ∈ { <, ≤ , = , ≥ , > } j =1 x j ⊲ ⊳ k , with ⊲ • Solution #1: – Use PB solver – Difficult to keep up with advances in SAT technology – For SAT/UNSAT, best solvers already encode to CNF ◮ E.g. Minisat+, but also QMaxSat, MSUnCore, (W)PM2

  14. Cardinality Constraints • How to handle cardinality constraints, � n j =1 x j ≤ k ? – How to handle AtMost1 constraints, � n j =1 x j ≤ 1 ? – General form: � n ⊳ ∈ { <, ≤ , = , ≥ , > } j =1 x j ⊲ ⊳ k , with ⊲ • Solution #1: – Use PB solver – Difficult to keep up with advances in SAT technology – For SAT/UNSAT, best solvers already encode to CNF ◮ E.g. Minisat+, but also QMaxSat, MSUnCore, (W)PM2 • Solution #2: – Encode cardinality constraints to CNF – Use SAT solver

  15. Equals1, AtLeast1 & AtMost1 Constraints • � n j =1 x j = 1: encode with ( � n j =1 x j ≤ 1) ∧ ( � n j =1 x j ≥ 1) • � n j =1 x j ≥ 1: encode with ( x 1 ∨ x 2 ∨ . . . ∨ x n ) • � n j =1 x j ≤ 1 encode with: – Pairwise encoding ◮ Clauses: O ( n 2 ) ; No auxiliary variables – Sequential counter [S’05] ◮ Clauses: O ( n ) ; Auxiliary variables: O ( n ) – Bitwise encoding [P’07,FP’01] ◮ Clauses: O ( n log n ) ; Auxiliary variables: O (log n ) – ...

  16. Bitwise Encoding • Encode � n j =1 x j ≤ 1 with bitwise encoding: • An example: x 1 + x 2 + x 3 ≤ 1

  17. Bitwise Encoding • Encode � n j =1 x j ≤ 1 with bitwise encoding: r = ⌈ log n ⌉ (with n > 1) – Auxiliary variables v 0 , . . . , v r − 1 ; – If x j = 1, then v 0 . . . v j − 1 = b 0 . . . b j − 1 , the binary encoding j − 1 x j → ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 ) ⇔ ( ¬ x j ∨ ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 )) • An example: x 1 + x 2 + x 3 ≤ 1 j − 1 v 1 v 0 x 1 0 00 x 2 1 01 x 3 2 10

  18. Bitwise Encoding • Encode � n j =1 x j ≤ 1 with bitwise encoding: r = ⌈ log n ⌉ (with n > 1) – Auxiliary variables v 0 , . . . , v r − 1 ; – If x j = 1, then v 0 . . . v j − 1 = b 0 . . . b j − 1 , the binary encoding j − 1 x j → ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 ) ⇔ ( ¬ x j ∨ ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 )) – Clauses ( ¬ x j ∨ ( v i ↔ b i )) = ( ¬ x j ∨ l i ), i = 0 , . . . , r − 1, where ◮ l i ≡ v i , if b i = 1 ◮ l i ≡ ¬ v i , otherwise • An example: x 1 + x 2 + x 3 ≤ 1 j − 1 v 1 v 0 ( ¬ x 1 ∨ ¬ v 1 ) ∧ ( ¬ x 1 ∨ ¬ v 0 ) x 1 0 00 ( ¬ x 2 ∨ ¬ v 1 ) ∧ ( ¬ x 2 ∨ v 0 ) x 2 1 01 ( ¬ x 3 ∨ v 1 ) ∧ ( ¬ x 3 ∨ ¬ v 0 ) x 3 2 10

  19. Bitwise Encoding • Encode � n j =1 x j ≤ 1 with bitwise encoding: r = ⌈ log n ⌉ (with n > 1) – Auxiliary variables v 0 , . . . , v r − 1 ; – If x j = 1, then v 0 . . . v j − 1 = b 0 . . . b j − 1 , the binary encoding j − 1 x j → ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 ) ⇔ ( ¬ x j ∨ ( v 0 = b 0 ) ∧ . . . ∧ ( v j − 1 = b j − 1 )) – Clauses ( ¬ x j ∨ ( v i ↔ b i )) = ( ¬ x j ∨ l i ), i = 0 , . . . , r − 1, where ◮ l i ≡ v i , if b i = 1 ◮ l i ≡ ¬ v i , otherwise – If x j = 1, assignment to v i variables must encode j − 1 ◮ All other x variables must take value 0 – If all x j = 0, any assignment to v i variables is consistent – O ( n log n ) clauses ; O (log n ) auxiliary variables • An example: x 1 + x 2 + x 3 ≤ 1 j − 1 v 1 v 0 ( ¬ x 1 ∨ ¬ v 1 ) ∧ ( ¬ x 1 ∨ ¬ v 0 ) x 1 0 00 ( ¬ x 2 ∨ ¬ v 1 ) ∧ ( ¬ x 2 ∨ v 0 ) x 2 1 01 ( ¬ x 3 ∨ v 1 ) ∧ ( ¬ x 3 ∨ ¬ v 0 ) x 3 2 10

  20. General Cardinality Constraints • General form: � n j =1 x j ≤ k (or � n j =1 x j ≥ k ) – Sequential counters [S’05] ◮ Clauses/Variables: O ( n k ) – BDDs [ES’06] ◮ Clauses/Variables: O ( n k ) – Sorting networks [ES’06] ◮ Clauses/Variables: O ( n log 2 n ) – Cardinality Networks: [ANORC’09,ANORC’11a] ◮ Clauses/Variables: O ( n log 2 k ) – Pairwise Cardinality Networks: [CZI’10] – ...

  21. Sequential Counter • Encode � n j =1 x j ≤ k with sequential counter: x 1 x 2 x n s 1 , 1 s n − 1 , 1 s 2 , 1 s 1 , 2 s 2 , 2 s n − 1 , 2 s 1 ,k s 2 ,k s n − 1 ,k v 1 v 2 v n • Equations for each block 1 < i < n , 1 < j < k : s i = � i s i , 1 = s i − 1 , 1 ∨ x i j =1 x j s i , j = s i − 1 , j ∨ s i − 1 , j − 1 ∧ x i s i represented in unary v i = ( s i − 1 , k ∧ x i ) = 0

  22. Sequential Counter • CNF formula for � n j =1 x j ≤ k : – Assume: k > 0 ∧ n > 1 – Indeces: 1 < i < n , 1 < j ≤ k ( ¬ x 1 ∨ x 1 , 1 ) ( ¬ s 1 , j ) ( ¬ x i ∨ s i , 1 ) ( ¬ s i − 1 , 1 ∨ s i , 1 ) ( ¬ x i ∨ ¬ s i − 1 , j − 1 ∨ s i , j ) ( ¬ s i − 1 , j ∨ s i , j ) ( ¬ x i ∨ ¬ s i − 1 , k ) ( ¬ x n ∨ ¬ s n − 1 , k ) • O ( n k ) clauses & variables

  23. Sorting Networks I • Encode � n j =1 x j ≤ k with sorting network: – Unary representation – Use odd-even merging networks [B’68,ES’06,ANORC’09] – Recursive definition of merging networks

  24. Sorting Networks I • Encode � n j =1 x j ≤ k with sorting network: – Unary representation – Use odd-even merging networks [B’68,ES’06,ANORC’09] – Recursive definition of merging networks ◮ Base Case: Merge( a 1 , b 1 ) � ( � c 1 , c 2 � , { c 2 = min( a 1 , b 1 ) , c 1 = max( a 1 , b 1 ) }

  25. Sorting Networks I • Encode � n j =1 x j ≤ k with sorting network: – Unary representation – Use odd-even merging networks [B’68,ES’06,ANORC’09] – Recursive definition of merging networks ◮ Base Case: Merge( a 1 , b 1 ) � ( � c 1 , c 2 � , { c 2 = min( a 1 , b 1 ) , c 1 = max( a 1 , b 1 ) } ◮ Let: Merge( � a 1 , a 3 , . . . , a n − 1 � , � b 1 , b 3 , . . . , b n − 1 � ) � ( � d 1 , . . . , d n � , S odd ) Merge( � a 2 , a 4 , . . . , a n � , � b 2 , b 4 , . . . , b n � ) � ( � e 1 , . . . , e n � , S even )

  26. Sorting Networks I • Encode � n j =1 x j ≤ k with sorting network: – Unary representation – Use odd-even merging networks [B’68,ES’06,ANORC’09] – Recursive definition of merging networks ◮ Base Case: Merge( a 1 , b 1 ) � ( � c 1 , c 2 � , { c 2 = min( a 1 , b 1 ) , c 1 = max( a 1 , b 1 ) } ◮ Let: Merge( � a 1 , a 3 , . . . , a n − 1 � , � b 1 , b 3 , . . . , b n − 1 � ) � ( � d 1 , . . . , d n � , S odd ) Merge( � a 2 , a 4 , . . . , a n � , � b 2 , b 4 , . . . , b n � ) � ( � e 1 , . . . , e n � , S even ) ◮ Then: Merge( � a 1 , a 2 , . . . , a n � , � b 1 , b 2 , . . . , b n � ) � ( � d 1 , c 1 , . . . , c 2 n − 1 , e n � , S odd ∪ S even ∪ S mrg ) ◮ Where: S mrg = � n − 1 i =1 { c 2 i +1 = min( d i +1 , e i ) , c 2 i = max ( d i +1 , e i ) }

  27. Sorting Networks I • Encode � n j =1 x j ≤ k with sorting network: – Unary representation – Use odd-even merging networks [B’68,ES’06,ANORC’09] – Recursive definition of merging networks ◮ Base Case: Merge( a 1 , b 1 ) � ( � c 1 , c 2 � , { c 2 = min( a 1 , b 1 ) , c 1 = max( a 1 , b 1 ) } ◮ Let: Merge( � a 1 , a 3 , . . . , a n − 1 � , � b 1 , b 3 , . . . , b n − 1 � ) � ( � d 1 , . . . , d n � , S odd ) Merge( � a 2 , a 4 , . . . , a n � , � b 2 , b 4 , . . . , b n � ) � ( � e 1 , . . . , e n � , S even ) ◮ Then: Merge( � a 1 , a 2 , . . . , a n � , � b 1 , b 2 , . . . , b n � ) � ( � d 1 , c 1 , . . . , c 2 n − 1 , e n � , S odd ∪ S even ∪ S mrg ) ◮ Where: S mrg = � n − 1 i =1 { c 2 i +1 = min( d i +1 , e i ) , c 2 i = max ( d i +1 , e i ) } – Note: min ≡ AND and max ≡ OR

  28. Sorting Networks II • Recursive definition of sorting networks – Base Case (2 n = 2): Sort( a 1 , b 1 ) � Merge ( a 1 , b 1 )

  29. Sorting Networks II • Recursive definition of sorting networks – Base Case (2 n = 2): Sort( a 1 , b 1 ) � Merge ( a 1 , b 1 ) – Inductive Step (2 n > 2): ◮ Let, � Sort( a 1 , . . . , a n ) ( � d 1 , . . . , d n � , S D ) � ( � d ′ 1 , . . . , d ′ n � , S ′ Sort( a n +1 , . . . , a 2 n ) D ) � Merge( � d 1 , . . . , d n � , � d ′ 1 , . . . , d ′ n � ) ( � c 1 , . . . , c 2 n � , S M )

  30. Sorting Networks II • Recursive definition of sorting networks – Base Case (2 n = 2): Sort( a 1 , b 1 ) � Merge ( a 1 , b 1 ) – Inductive Step (2 n > 2): ◮ Let, � Sort( a 1 , . . . , a n ) ( � d 1 , . . . , d n � , S D ) � ( � d ′ 1 , . . . , d ′ n � , S ′ Sort( a n +1 , . . . , a 2 n ) D ) � Merge( � d 1 , . . . , d n � , � d ′ 1 , . . . , d ′ n � ) ( � c 1 , . . . , c 2 n � , S M ) ◮ Then, Sort( � a 1 , , . . . , a 2 n � ) � ( � c 1 , . . . , c 2 n � , S D ∪ S ′ D ∪ S M )

  31. Sorting Networks II • Recursive definition of sorting networks – Base Case (2 n = 2): Sort( a 1 , b 1 ) � Merge ( a 1 , b 1 ) – Inductive Step (2 n > 2): ◮ Let, � Sort( a 1 , . . . , a n ) ( � d 1 , . . . , d n � , S D ) � ( � d ′ 1 , . . . , d ′ n � , S ′ Sort( a n +1 , . . . , a 2 n ) D ) � Merge( � d 1 , . . . , d n � , � d ′ 1 , . . . , d ′ n � ) ( � c 1 , . . . , c 2 n � , S M ) ◮ Then, Sort( � a 1 , , . . . , a 2 n � ) � ( � c 1 , . . . , c 2 n � , S D ∪ S ′ D ∪ S M ) – Let � z 1 , . . . , z n � be the sorted output. The output constraint is: z i = 0 , i > k

  32. Sorting Networks III • Sort � a 1 , a 2 , a 3 , a 4 � : c 1 a 1 Merge Merge a 2 c 2 Merge c 3 a 3 Merge Merge c 4 a 4 where each Merge block contains 1 min (AND) and 1 max (OR) operators

  33. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Cardinality Constraints Pseudo-Boolean Constraints Practical Algorithms Results, Conclusions & Research Directions

  34. Pseudo-Boolean Constraints • General form: � n j =1 a j x j ≤ b – Operational encoding [W’98] ◮ Clauses/Variables: O ( n ) ◮ Does not guarantee arc-consistency – BDDs [ES’06] ◮ Worst-case exponential number of clauses – Polynomial watchdog encoding [BBR’09] ◮ Let ν ( n ) = log( n ) log( a max ) ◮ Clauses: O ( n 3 ν ( n )) ; Aux variables: O ( n 2 ν ( n )) – Improved polynomial watchdog encoding [ANORC’11b] ◮ Clauses & aux variables: O ( n 3 log( a max )) – ...

  35. Encoding PB Constraints with BDDs I • Encode 3 x 1 + 3 x 2 + x 3 ≤ 3 • Construct BDD – E.g. analyze variables by decreasing coefficients • Extract ITE-based circuit from BDD x 1 1 0 x 2 x 2 1 0 1 0 x 3 x 3 0 1 1 0 1 0 0 1 0 1

  36. Encoding PB Constraints with BDDs I • Encode 3 x 1 + 3 x 2 + x 3 ≤ 3 • Construct BDD – E.g. analyze variables by decreasing coefficients • Extract ITE-based circuit from BDD 1 z x 1 s x 1 ITE 1 0 1 0 a b x 2 x 2 1 0 1 0 z z s s ITE ITE x 3 x 3 x 2 x 2 0 1 0 1 0 1 1 0 1 0 a b a b 0 1 z z 0 1 0 1 s s x 3 ITE x 3 ITE 0 1 0 1 a b a b 1 0 1 0

  37. Encoding PB Constraints with BDDs II • Encode 3 x 1 + 3 x 2 + x 3 ≤ 3 • Extract ITE-based circuit from BDD • Simplify and create final circuit: 1 z s x 1 ITE 1 0 a b NAND NOR x 2 x 3 x 3 x 2

  38. More on PB Constraints • How about � n j =1 a j x j = k ?

  39. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint)

  40. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) ◮ Cannot find all consequences in polynomial time [S’03,FS’02,T’03]

  41. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) ◮ Cannot find all consequences in polynomial time [S’03,FS’02,T’03] • Example: 4 x 1 + 3 x 2 + 2 x 3 = 5

  42. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) ◮ Cannot find all consequences in polynomial time [S’03,FS’02,T’03] • Example: 4 x 1 + 3 x 2 + 2 x 3 = 5 – Replace by (4 x 1 + 3 x 2 + 2 x 3 ≥ 5) ∧ (4 x 1 + 3 x 2 + 2 x 3 ≤ 5)

  43. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) ◮ Cannot find all consequences in polynomial time [S’03,FS’02,T’03] • Example: 4 x 1 + 3 x 2 + 2 x 3 = 5 – Replace by (4 x 1 + 3 x 2 + 2 x 3 ≥ 5) ∧ (4 x 1 + 3 x 2 + 2 x 3 ≤ 5) – Let x 2 = 0

  44. More on PB Constraints • How about � n j =1 a j x j = k ? – Can use ( � n j =1 a j x j ≥ k ) ∧ ( � n j =1 a j x j ≤ k ), but... ◮ � n j =1 a j x j = k is a subset-sum constraint (special case of a knapsack constraint) ◮ Cannot find all consequences in polynomial time [S’03,FS’02,T’03] • Example: 4 x 1 + 3 x 2 + 2 x 3 = 5 – Replace by (4 x 1 + 3 x 2 + 2 x 3 ≥ 5) ∧ (4 x 1 + 3 x 2 + 2 x 3 ≤ 5) – Let x 2 = 0 – Either constraint can still be satisfied, but not both

  45. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Results, Conclusions & Research Directions

  46. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Notation B&B Search for MaxSAT & PBO Iterative SAT Solving Core-Guided Algorithms Results, Conclusions & Research Directions

  47. Definitions • Cost of assignment: – Sum of weights of unsatisfied clauses • Optimum solution (OPT): – Assignment with minimum cost • Upper Bound (UB): – Assignment with cost not less than OPT – E.g. � c i ∈ ϕ w i + 1; hard clauses may be inconsistent • Lower Bound (LB): – No assignment with cost no larger than LB – E.g. − 1; it may be possible to satisfy all soft clauses

  48. Definitions • Cost of assignment: – Sum of weights of unsatisfied clauses • Optimum solution (OPT): – Assignment with minimum cost • Upper Bound (UB): – Assignment with cost not less than OPT – E.g. � c i ∈ ϕ w i + 1; hard clauses may be inconsistent • Lower Bound (LB): – No assignment with cost no larger than LB – E.g. − 1; it may be possible to satisfy all soft clauses OPT LB UB

  49. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Notation B&B Search for MaxSAT & PBO Iterative SAT Solving Core-Guided Algorithms Results, Conclusions & Research Directions

  50. Branch-and-Bound Search for MaxSAT • Unit propagation is unsound for MaxSAT [e.g. BLM’07] {{ x 1 } , {¬ x 1 , ¬ x 2 } , {¬ x 1 , ¬ x 3 } , { x 2 } , { x 3 }}

  51. Branch-and-Bound Search for MaxSAT • Unit propagation is unsound for MaxSAT [e.g. BLM’07] {{ x 1 } , {¬ x 1 , ¬ x 2 } , {¬ x 1 , ¬ x 3 } , { x 2 } , { x 3 }} • Standard B&B search [LMP’07,HLO’08,LHG’08] – No unit propagation ◮ No conflict-driven clause learning

  52. Branch-and-Bound Search for MaxSAT • Unit propagation is unsound for MaxSAT [e.g. BLM’07] {{ x 1 } , {¬ x 1 , ¬ x 2 } , {¬ x 1 , ¬ x 3 } , { x 2 } , { x 3 }} • Standard B&B search [LMP’07,HLO’08,LHG’08] – No unit propagation ◮ No conflict-driven clause learning • Refine UBs on number of empty clauses • Estimate LBs – Unit propagation provides LBs – Bound search when LB ≥ UB • Inference rules to prune search [HL’06,LMP’07] • Optionally: use stochastic local search to identify UBs [HLO’08]

  53. Branch-and-Bound Search for PBO minimize � w j · x j j ∈ N a ij l j ≥ b i , subject to � j ∈ N x j } , x j ∈ { 0 , 1 } , a ij , b i , w j ∈ N + l j ∈ { x j , ¯ 0 • Standard B&B search [MMS’02,MMS’04,MMS’06,SS’06,NO’06] • Refine UBs on value of cost function – Any model for the constraints refines UB • Estimate LBs – Standard techniques: LP relaxations; MIS; etc. – Bound search when LB ≥ UB • Native handling of PB constraints (optional)

  54. Branch-and-Bound Search for PBO minimize � w j · x j j ∈ N a ij l j ≥ b i , subject to � j ∈ N x j } , x j ∈ { 0 , 1 } , a ij , b i , w j ∈ N + l j ∈ { x j , ¯ 0 • Standard B&B search [MMS’02,MMS’04,MMS’06,SS’06,NO’06] • Refine UBs on value of cost function – Any model for the constraints refines UB • Estimate LBs – Standard techniques: LP relaxations; MIS; etc. – Bound search when LB ≥ UB • Native handling of PB constraints (optional) • Integrate SAT techniques – Unit propagation; Clause learning; Restarts; VSIDS; etc.

  55. Outline Boolean-Based Optimization Example Applications Fundamental Techniques Practical Algorithms Notation B&B Search for MaxSAT & PBO Iterative SAT Solving Core-Guided Algorithms Results, Conclusions & Research Directions

  56. Iterative SAT Solving OPT LB UB • Iteratively refine upper bound (UB) until UB = OPT – Linear search SAT-UNSAT (or strengthening)

  57. Iterative SAT Solving OPT LB UB • Iteratively refine upper bound (UB) until UB = OPT – Linear search SAT-UNSAT (or strengthening) • Iteratively refine lower bound (LB) until LB = OPT – Linear search UNSAT-SAT

  58. Iterative SAT Solving OPT LB UB • Iteratively refine upper bound (UB) until UB = OPT – Linear search SAT-UNSAT (or strengthening) • Iteratively refine lower bound (LB) until LB = OPT – Linear search UNSAT-SAT • Iteratively refine lower & upper bounds until LB k = UB k − 1 – Linear search by refining LB&UB – Binary search on cost of unsatisfied clauses

  59. Iterative SAT Solving OPT LB UB • Iteratively refine upper bound (UB) until UB = OPT – Linear search SAT-UNSAT (or strengthening) • Iteratively refine lower bound (LB) until LB = OPT – Linear search UNSAT-SAT • Iteratively refine lower & upper bounds until LB k = UB k − 1 – Linear search by refining LB&UB – Binary search on cost of unsatisfied clauses • By default: – All soft clauses relaxed: replace c i with c i ∪ { r i } – Cardinality/PB constraints to represent LBs & UBs

  60. Iterative SAT Solving OPT LB UB • Iteratively refine upper bound (UB) until UB = OPT – Linear search SAT-UNSAT (or strengthening) • Iteratively refine lower bound (LB) until LB = OPT – Linear search UNSAT-SAT • Iteratively refine lower & upper bounds until LB k = UB k − 1 – Linear search by refining LB&UB – Binary search on cost of unsatisfied clauses • By default: Not for core-guided approaches ! – All soft clauses relaxed: replace c i with c i ∪ { r i } – Cardinality/PB constraints to represent LBs & UBs

  61. Iterative SAT Solving – Refine UB OPT LB UB 0 • Require � w i r i ≤ UB 0 − 1

  62. Iterative SAT Solving – Refine UB OPT LB UB 1 UB 0 • Require � w i r i ≤ UB 0 − 1 • While SAT, refine UB – New UB given by cost of unsatisfied clauses, i.e. � w i r i

  63. Iterative SAT Solving – Refine UB OPT LB UB 2 UB 0 • Require � w i r i ≤ UB 0 − 1 • While SAT, refine UB – New UB given by cost of unsatisfied clauses, i.e. � w i r i

  64. Iterative SAT Solving – Refine UB OPT LB UB k UB 0 • Require � w i r i ≤ UB 0 − 1 • While SAT, refine UB – New UB given by cost of unsatisfied clauses, i.e. � w i r i • Repeat until constraint � w i r i ≤ UB k − 1 becomes UNSAT – UB k denotes the optimum value

  65. Iterative SAT Solving – Refine UB OPT LB UB k UB 0 • Require � w i r i ≤ UB 0 − 1 • While SAT, refine UB – New UB given by cost of unsatisfied clauses, i.e. � w i r i • Repeat until constraint � w i r i ≤ UB k − 1 becomes UNSAT – UB k denotes the optimum value • Worst-case # of iterations exponential on instance size

  66. Iterative SAT Solving – Refine UB OPT LB UB k UB 0 • Require � w i r i ≤ UB 0 − 1 • While SAT, refine UB – New UB given by cost of unsatisfied clauses, i.e. � w i r i • Repeat until constraint � w i r i ≤ UB k − 1 becomes UNSAT – UB k denotes the optimum value • Worst-case # of iterations exponential on instance size • Example tools: – Minisat+: CNF encoding of constraints [ES’06] – SAT4J: native handling of constraints [LBP’10] – QMaxSat: CNF encoding of constraints – ...

  67. Iterative SAT Solving – Refine LB OPT LB 0 UB • Require � w i r i ≤ LB 0 + 1

  68. Iterative SAT Solving – Refine LB OPT LB 0 LB 1 UB • Require � w i r i ≤ LB 0 + 1 • While UNSAT, refine LB, i.e. LB k ← LB k − 1 + 1

  69. Iterative SAT Solving – Refine LB OPT LB 0 LB 2 UB • Require � w i r i ≤ LB 0 + 1 • While UNSAT, refine LB, i.e. LB k ← LB k − 1 + 1

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend