Using Interval Constraint Propagation for Pseudo- Boolean Constraint Solving Albert-Ludwigs-Universität Freiburg Karsten Scheibler, Bernd Becker Chair of Computer Architecture FMCAD 2014
PB Constraints PB Constraints: 2 x 1 + 4 x 2 + x 3 < 5 ∑ i c i x i ∼ C c i and C integer coefficients, x i boolean variables ∼∈ { <, ≤ , ≥ ,> } FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 2 / 23
ATPG for Open-Faults ( O good ⇔ ¬ (( I 1 ∨ I good ) ⊕ I good ⊕ I 3 )) ∧ 1 2 2 ⇔ ( 60 · I 1 + 15 · I 3 + 5 · O good ( I bad ≥ 45 )) ∧ 2 1 ⊕ I 3 )) ∧ ( O good ( O bad ⇔ ¬ (( I 1 ∨ I bad ) ⊕ I bad ⊕ O bad ) 1 2 2 1 1 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 3 / 23
ATPG for Open-Faults ( O good ⇔ ¬ (( I 1 ∨ I good ) ⊕ I good ⊕ I 3 )) ∧ 1 2 2 ⇔ ( 60 · I 1 + 15 · I 3 + 5 · O good ( I bad ≥ 45 )) ∧ 2 1 ⊕ I 3 )) ∧ ( O good ( O bad ⇔ ¬ (( I 1 ∨ I bad ) ⊕ I bad ⊕ O bad ) 1 2 2 1 1 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 4 / 23
ATPG for Open-Faults ( O good ⇔ ¬ (( I 1 ∨ I good ) ⊕ I good ⊕ I 3 )) ∧ 1 2 2 ⇔ ( 60 · I 1 + 15 · I 3 + 5 · O good ( I bad ≥ 45 )) ∧ 2 1 ⊕ I 3 )) ∧ ( O good ( O bad ⇔ ¬ (( I 1 ∨ I bad ) ⊕ I bad ⊕ O bad ) 1 2 2 1 1 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 5 / 23
ATPG for Open-Faults ( O good ⇔ ¬ (( I 1 ∨ I good ) ⊕ I good ⊕ I 3 )) ∧ 1 2 2 ⇔ ( 60 · I 1 + 15 · I 3 + 5 · O good ( I bad ≥ 45 )) ∧ 2 1 ⊕ I 3 )) ∧ ( O good ( O bad ⇔ ¬ (( I 1 ∨ I bad ) ⊕ I bad ⊕ O bad ) 1 2 2 1 1 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 6 / 23
SAT Solvers, SMT Solvers SAT solvers: e.g. (( a ⊕ b ) ∨ ( a ∧¬ c )) SMT solvers: SMT = SAT Modulo Theories e.g. ( ¬ (( x + y < 7 ) ∨ ( z 4 < 1 )) ⊕ ( sin ( x ) · z 2 = 3 )) � SMT solver iSAT3 worked very well FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 7 / 23
SMT Solver iSAT3 decomposing input formula into: simple bounds, e.g. ( h 1 < 7 ) primitive constraints, e.g. ( h 5 = h 3 · h 4 ) ( ¬ (( x + y < 7 ) ∨ ( z 4 < 1 )) ⊕ ( sin ( x ) · z 2 = 3 )) ( ¬ (( h 1 < 7 ) ∨ ( h 2 < 1 )) ⊕ (( h 5 ≥ 3 ) ∧ ( h 5 ≤ 3 ))) ∧ ( h 1 = x + y ) ∧ ( h 2 = z 4 ) ∧ ( h 3 = sin ( x )) ∧ ( h 4 = z 2 ) ∧ ( h 5 = h 3 · h 4 ) FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 8 / 23
SMT Solver iSAT3 h 4 = z 2 , z ∈ [ 3 , 7 ] , h 4 ∈ [ − 2 , 25 ] 49 25 9 9 − 2 3 7 3 5 7 z ∈ [ 3 , 7 ] � h 4 ≥ 9 h 4 ∈ [ 9 , 25 ] � z ≤ 5 ✶ ✶ h 4 ∈ [ 9 , 25 ] z ∈ [ 3 , 5 ] � � FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 9 / 23
Two Questions 1 Performance of other PB Solvers on our problem class? Minisatp SAT4JPB Clasp 2 How well does iSAT3 perform on other PB benchmarks? Benchmarks from PB competition 2012 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 10 / 23
The Answer PB competition 2012: DEC-BIGINT-LIN = DBL, 14 benchmarks DEC-SMALLINT-LIN = DSL, 355 benchmarks DEC-SMALLINT-NLC = DSN, 30 benchmarks ATPG for Open-Faults = OF10, 321 benchmarks Solver DBL DSL DSN OF10 ∑ (14) (355) (30) (321) Minisatp 9 229 - 8 243 SAT4JPB 9 219 [10] 233 461 [471] Clasp 5 234 [13] 287 526 [539] iSAT3 2 155 [20] 313 470 [490] FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 11 / 23
Translation to SAT A good translation 1 has small size 2 maintains GAC (3 · x 1 + 2 · x 2 + x 3 < 4 x 3 ⇒ ¬ x 1 ) GAC size BDDs ++ - Sorting networks + + Adder cicuits – ++ FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 12 / 23
Translation to SAT with BDDs 3 · x 1 + 2 · x 2 + x 3 < 4 1 0 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 13 / 23
Translation to SAT with BDDs 3 · x 1 + 2 · x 2 + x 3 < 4 x 1 1 0 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 14 / 23
Translation to SAT with BDDs 3 · x 1 + 2 · x 2 + x 3 < 4 x 1 x 2 1 0 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 15 / 23
Translation to SAT with BDDs 3 · x 1 + 2 · x 2 + x 3 < 4 x 1 x 2 x 3 1 0 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 16 / 23
Translation to SAT with BDDs 3 · x 1 + 2 · x 2 + x 3 < 4 ¬ x 1 ∨ ( x 1 ∧¬ x 2 ∧¬ x 3 ) � x 1 x 2 x 3 1 0 FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 17 / 23
Symbolic Gaussian Elimination Basic idea: generate new lemmas from existing tautologies ( y ≥ 2 . 00001 · x + 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( y ≤ 2 · x ) ( h 1 = y − 2 . 00001 · x ) ∧ ( h 1 ≥ 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( h 2 = y − 2 · x ) ∧ ( h 2 ≤ 0 ) y − 2 . 00001 · x − h 1 = 0 y − 2 · x − h 2 = 0 replace y 0 . 00001 · x + h 1 − h 2 = 0 (add to formula) � FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 18 / 23
Symbolic Gaussian Elimination Basic idea: generate new lemmas from existing tautologies ( y ≥ 2 . 00001 · x + 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( y ≤ 2 · x ) ( h 1 = y − 2 . 00001 · x ) ∧ ( h 1 ≥ 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( h 2 = y − 2 · x ) ∧ ( h 2 ≤ 0 ) y − 2 . 00001 · x − h 1 = 0 y − 2 · x − h 2 = 0 replace y 0 . 00001 · x + h 1 − h 2 = 0 (add to formula) � FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 19 / 23
Symbolic Gaussian Elimination Basic idea: generate new lemmas from existing tautologies ( y ≥ 2 . 00001 · x + 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( y ≤ 2 · x ) ( h 1 = y − 2 . 00001 · x ) ∧ ( h 1 ≥ 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( h 2 = y − 2 · x ) ∧ ( h 2 ≤ 0 ) y − 2 . 00001 · x − h 1 = 0 y − 2 · x − h 2 = 0 replace y 0 . 00001 · x + h 1 − h 2 = 0 (add to formula) � FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 20 / 23
Symbolic Gaussian Elimination Basic idea: generate new lemmas from existing tautologies ( y ≥ 2 . 00001 · x + 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( y ≤ 2 · x ) ( h 1 = y − 2 . 00001 · x ) ∧ ( h 1 ≥ 0 . 25 ) ∧ x , y ∈ [ 0 , 1000000 ] ( h 2 = y − 2 · x ) ∧ ( h 2 ≤ 0 ) y − 2 . 00001 · x − h 1 = 0 y − 2 · x − h 2 = 0 replace y 0 . 00001 · x + h 1 − h 2 = 0 (add to formula) � FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 21 / 23
Results DEC-BIGINT-LIN = DBL, 14 benchmarks DEC-SMALLINT-LIN = DSL, 355 benchmarks DEC-SMALLINT-NLC = DSN, 30 benchmarks OPENFAULTS-DIV10 = OF10, 321 benchmarks Solver DBL DSL DSN OF10 ∑ (14) (355) (30) (321) Minisatp 9 229 - 8 243 SAT4JPB 9 219 [10] 233 461 [471] Clasp 5 234 [13] 287 526 [539] iSAT3 2 155 [20] 313 470 [490] iSAT3 + BDD 14 208 [20] 315 537 [557] iSAT3 + BDD + SGE 14 238 [20] 315 567 [587] FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 22 / 23
Conclusion & Outlook Conclusion: SAT-Translations of large PB Constraints may perform poor Advantageous to have an arithmetic reasoning mechanism as fall-back Outlook: Generating lemmas during solving FMCAD 2014 Karsten Scheibler – Using ICP for PB Solving 23 / 23
Recommend
More recommend