30
Enumerating Infeasibility: Finding Multiple MUSes Quickly Mark Liffiton and Ammar Malik Department of Computer Science Illinois Wesleyan University {mliffito,amalik}@iwu.edu http://www.iwu.edu/~mliffito/ CPAIOR — May 21, 2013 Yorktown Heights, NY

Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Enumerating Infeasibility:Finding Multiple MUSes Quickly

Mark Liffiton and Ammar Malik

Department of Computer ScienceIllinois Wesleyan University

{mliffito,amalik}@iwu.edu

http://www.iwu.edu/~mliffito/

CPAIOR — May 21, 2013Yorktown Heights, NY

Page 2: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Overview

ProblemAnalyzing infeasible constraint sets

“Constraint”= SAT, SMT, CP, LP, IP, MIP, . . .(Implemented/tested w/ SAT & SMT.)

“Analyzing”= Enumerating MUSes/IISes(“Explanations” of infeasibility.)

Contributions1 MARCO: Novel, efficient algorithm

for MUS/IIS enumeration.2 POLO: Framework for

analyzing/solving infeasibilityanalysis problems.

(Both constraint-agnostic.)

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 2 / 19

Page 3: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Overview

ProblemAnalyzing infeasible constraint sets

“Constraint”= SAT, SMT, CP, LP, IP, MIP, . . .(Implemented/tested w/ SAT & SMT.)

“Analyzing”= Enumerating MUSes/IISes(“Explanations” of infeasibility.)

Contributions1 MARCO: Novel, efficient algorithm

for MUS/IIS enumeration.2 POLO: Framework for

analyzing/solving infeasibilityanalysis problems.

(Both constraint-agnostic.)

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 2 / 19

Page 4: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Outline

1 BackgroundDefinitionsEarlier WorkGoals of This Work

2 MARCO / POLOPOLO FrameworkMARCO AlgorithmExperimental Results

3 Ongoing Work & Conclusion

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 3 / 19

Page 5: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Definitions

“Characteristic Subsets” of an infeasible constraint set CMUS Minimal Unsatisfiable Subset

aka Irreducible Inconsistent Subsystem (IIS).M ⊆ C s.t. M is UNSAT and ∀c ∈ M : M \ {c} is SAT

MSS Maximal Satisfiable Subseta generalization of MaxSAT / MaxFS.M ⊆ C s.t. M is SAT and ∀c ∈ C \M : M ∪ {c} is UNSAT

MCS Minimal Correction Setthe complement of some MSS;removal yields a satisfiable MSS (“corrects” the infeasibility).M ⊆ C s.t. C \M is SAT and ∀c ∈ M : (C \M)∪{c} is UNSAT

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 4 / 19

Page 6: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Definitions / Example

“Characteristic Subsets”MUS Minimal Unsatisfiable SubsetMSS Maximal Satisfiable SubsetMCS Minimal Correction Set

Example (Constraint set C , Boolean SAT)

C = { (a) , (¬a ∨ b) , (¬b) , (¬a) }1 2 3 4

MUSes{1, 2, 3}{1, 4}

MSSes MCSes{2, 3, 4} {1}{1, 3} {2, 4}{1, 2} {3, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 5 / 19

Page 7: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Example, Powerset VisualizationHasse diagram of powerset for:

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 6 / 19

Page 8: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Example, Powerset VisualizationHasse diagram of powerset for:

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 6 / 19

Page 9: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Earlier Work on MUS Enumeration

Dualize and Advance(DAA)

[Bailey & Stuckey, PADL 2005]

CAMUS[Liffiton & Sakallah, SAT 2005]

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 7 / 19

Page 10: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Goals of This Work

1 Constraint-agnostic2 None of the scaling / intractability issues of DAA or CAMUS3 As efficient as the best single-MUS algorithm4 Good anytime behavior

Ideal... like repeatedly applying the best-known single-MUS algorithm for a given constraint type...

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 8 / 19

Page 11: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Goals of This Work

1 Constraint-agnostic2 None of the scaling / intractability issues of DAA or CAMUS3 As efficient as the best single-MUS algorithm4 Good anytime behavior

Ideal... like repeatedly applying the best-known single-MUS algorithm for a given constraint type...

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 8 / 19

Page 12: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

MARCO POLO

Named after the Venetian explorer Marco Polo.MARCO: Mapping Regions of Constraint sets — the MUS enumeration algorithm.POLO: Powerset Logic — the general technique of maintaining a “map” of the powersetas a propositional logic formula.

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 9 / 19

Page 13: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = > ← formula storing unexplored subsets

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 14: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = > ← formula storing unexplored subsetsSeed: {1, 2, 3, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 15: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = > ← formula storing unexplored subsetsSeed: {1, 2, 3, 4}MUS: {1, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 16: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = (¬X1 ∨ ¬X4)Seed: {1, 2, 3, 4}MUS: {1, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 17: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = (¬X1 ∨ ¬X4)Seed: {}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 18: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = (¬X1 ∨ ¬X4)Seed: {}MSS: {2, 3, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 19: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = (¬X1 ∨ ¬X4) ∧ (X1)Seed: {}MSS: {2, 3, 4}

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 20: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

POLO Framework

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

Map = (¬X1 ∨ ¬X4) ∧ (X1)

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 10 / 19

Page 21: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

MARCO Algorithm: Pseudocodeinput: unsatisfiable constraint set C = {C1, C2, C3, . . . , Cn}output: MSSes and MUSes of C as they are discovered

1. Map ← BoolFormula(nvars = |C |) / Empty formula over |C | Boolean vars2. while Map is satisfiable:3. m← getModel(Map)4. seed ← {Ci ∈ C : m[xi ] = True} / Project the assignment m onto C5. if seed is satisfiable:6. MSS ← grow(seed , C)

7. yield MSS8. Map ← Map ∧ blockDown(MSS)9. else:10. MUS ← shrink(seed , C) / Using any single-MUS algorithm11. yield MUS12. Map ← Map ∧ blockUp(MUS)

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 11 / 19

Page 22: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Experimental Setup

Implementationshrink: MUSer2[Belov & Marques-Silva JSAT 2012]grow & Map: MiniSAT v2.2

Benchmarks300 Boolean CNF instances from 2011 SATCompetition, “MUS Track”246 instances for which any algorithm found atleast one MUSVars: min=26, max=686,767Clauses: min=70, max=2,058,906

ExperimentsCPU: AMD Phenom II X4 @ 3.4GHzRAM limit: 1800MBTime limit: 1hr / 3600sec

Instance Sizes

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 12 / 19

Page 23: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Experimental Results:MUSes Produced Within Resource Limits

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 13 / 19

Page 24: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Conclusion

Ongoing WorkMerging/comparing to eMUS [Previti & Marques-Silva, AAAI 2013]:same approach with slightly different seed generation.Improving MARCO w/ better guidance, increased integrationbetween Map and constraint solver.Applying POLO to other problems in infeasibility analysis.

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 14 / 19

Page 25: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Conclusion

Contributions1 MARCO Algorithm:

Returns MUSes more quickly than existing enumeration algorithmsAvoids scaling issues on previously-intractable instancesCan “plug in” any advances in single-MUS algorithms

2 POLO Framework:Constraint-agnosticIntuitive, flexible approach for analyzing infeasibility analysisRequirements: SAT solver + any constraint solver

Thank you.Source code: http://www.iwu.edu/~mliffito/marco/

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 15 / 19

Page 26: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Overview Background MARCO / POLO Ongoing Work & Conclusion

Conclusion

Contributions1 MARCO Algorithm:

Returns MUSes more quickly than existing enumeration algorithmsAvoids scaling issues on previously-intractable instancesCan “plug in” any advances in single-MUS algorithms

2 POLO Framework:Constraint-agnosticIntuitive, flexible approach for analyzing infeasibility analysisRequirements: SAT solver + any constraint solver

Thank you.Source code: http://www.iwu.edu/~mliffito/marco/

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 15 / 19

Page 27: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Additional Results

Experimental Results:Runtime for Complete Enumeration

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 16 / 19

Page 28: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Additional Results

Experimental Results:Pairwise Comparison: MARCO & CAMUS

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 17 / 19

Page 29: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Additional Results

Experimental Results:Pairwise Comparison: MARCO & DAA

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 18 / 19

Page 30: Enumerating Infeasibility: Finding Multiple MUSes Quicklysun.iwu.edu/.../cpaior13_liffiton_MARCO_presentation.pdf · 2013-06-09 · M.LiffitonandA.Malik (IWU) EnumeratingInfeasibility

Additional Results

Experimental Results:Anytime Traces, CAMUS & MARCO

M. Liffiton and A. Malik (IWU) Enumerating Infeasibility CPAIOR-2013 19 / 19