preprocessing techniques
play

Preprocessing Techniques Marijn J.H. Heule - PowerPoint PPT Presentation

Preprocessing Techniques Marijn J.H. Heule http://www.cs.cmu.edu/~mheule/15816-f19/ Automated Reasoning and Satisfiability, September 19, 2019 1 / 47 Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause


  1. Preprocessing Techniques Marijn J.H. Heule http://www.cs.cmu.edu/~mheule/15816-f19/ Automated Reasoning and Satisfiability, September 19, 2019 1 / 47

  2. Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause Elimination Hyper Binary Resolution Unhiding Redundancy Concluding Remarks 2 / 47

  3. Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause Elimination Hyper Binary Resolution Unhiding Redundancy Concluding Remarks 3 / 47

  4. Interaction between different solving approaches Translator reencoding encoding Simplifier inprocessing preprocessing Clause Learner 4 / 47

  5. Interaction between different solving approaches Translator reencoding encoding Simplifier inprocessing preprocessing Clause Learner It all comes down to adding and removing redundant clauses 4 / 47

  6. Redundant clauses A clause is redundant with respect to a formula if adding it to the formula preserves satisfiability. For unsatisfiable formulas, all clauses can be added, including the empty clause ⊥ . 5 / 47

  7. Redundant clauses A clause is redundant with respect to a formula if adding it to the formula preserves satisfiability. For unsatisfiable formulas, all clauses can be added, including the empty clause ⊥ . A clause is redundant with respect to a formula if removing it from the formula preserves unsatisfiability. For satisfiable formulas, all clauses can be removed. 5 / 47

  8. Redundant clauses A clause is redundant with respect to a formula if adding it to the formula preserves satisfiability. For unsatisfiable formulas, all clauses can be added, including the empty clause ⊥ . A clause is redundant with respect to a formula if removing it from the formula preserves unsatisfiability. For satisfiable formulas, all clauses can be removed. Challenge regarding redundant clauses: How to check redundancy in polynomial time? Ideally find redundant clauses in linear time 5 / 47

  9. Preprocessing and Inprocessing in Practice 5000 4500 pre- & inprocessing disabled only clause elimination enabled 4000 base line without clause elimination Lingeling version aqw (base line) 3500 Runtime (sec) 3000 2500 2000 1500 1000 500 0 0 50 100 150 200 250 Number of solved application benchmarks of SAT Competition 2013 6 / 47

  10. Outline Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause Elimination Hyper Binary Resolution Unhiding Redundancy Concluding Remarks 7 / 47

  11. Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause Elimination Hyper Binary Resolution Unhiding Redundancy Concluding Remarks 8 / 47

  12. Tautologies and Subsumption Definition (Tautology) A clause C is a tautology if its contains two complementary literals x and ¯ x . Example The clause ( a ∨ b ∨ ¯ b ) is a tautology. Definition (Subsumption) Clause C subsumes clause D if and only if C ⊂ D . Example The clause ( a ∨ b ) subsumes clause ( a ∨ b ∨ ¯ c ) . 9 / 47

  13. Self-Subsuming Resolution Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x 10 / 47

  14. Self-Subsuming Resolution Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example Assume a CNF contains both antecedents . . . ( a ∨ b ∨ x )( a ∨ b ∨ c ∨ ¯ x ) . . . If D is added, then D ∨ ¯ x can be removed which in essence removes ¯ x from D ∨ ¯ x . . . ( a ∨ b ∨ x )( a ∨ b ∨ c ) . . . Initially in the SATeLite preprocessor, [EenBiere’07] now common in most solvers (i.e., as pre- and inprocessing) 10 / 47

  15. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( a ∨ b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ c ) ∧ ( a ∨ ¯ (¯ a ∨ b ∨ ¯ b ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ∨ d ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) 11 / 47

  16. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ c ) ∧ ( a ∨ ¯ (¯ a ∨ b ∨ ¯ b ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ∨ d ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) 11 / 47

  17. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ ) ∧ ( a ∨ ¯ (¯ a ∨ b b ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ∨ d ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) 11 / 47

  18. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ∨ b ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ∨ d ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) 11 / 47

  19. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ∨ b ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) 11 / 47

  20. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ∨ b ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) 11 / 47

  21. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) 11 / 47

  22. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ) ∧ ( a ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) 11 / 47

  23. Self-Subsuming Example Self-Subsuming Resolution C ∨ x D ∨ ¯ x ( a ∨ b ∨ x ) ( a ∨ b ∨ c ∨ ¯ x ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ x Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ ( ) ∧ ( a ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ b ) ∧ ( ¯ d ) ∧ c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) 11 / 47

  24. Implementing Subsumption Definition (Subsumption) Clause C subsumes clause D if and only if C ⊂ D . Example The clause ( a ∨ b ) subsumes clause ( a ∨ b ∨ ¯ c ) . Forward Subsumption for each clause C in formula F do if C is subsumed by a clause D in F \ C then remove C from F 12 / 47

  25. Implementing Subsumption Definition (Subsumption) Clause C subsumes clause D if and only if C ⊂ D . Example The clause ( a ∨ b ) subsumes clause ( a ∨ b ∨ ¯ c ) . Forward Subsumption for each clause C in formula F do if C is subsumed by a clause D in F \ C then remove C from F Backward Subsumption for each clause C in formula F do remove all clauses D in F that are subsumed by C 12 / 47

  26. Implementing Subsumption Definition (Subsumption) Clause C subsumes clause D if and only if C ⊂ D . Example The clause ( a ∨ b ) subsumes clause ( a ∨ b ∨ ¯ c ) . Forward Subsumption for each clause C in formula F do if C is subsumed by a clause D in F \ C then remove C from F Backward Subsumption for each clause C in formula F do pick a literal x in C remove all clauses D in F x that are subsumed by C 12 / 47

  27. Motivation Subsumption Variable Elimination Bounded Variable Addition Blocked Clause Elimination Hyper Binary Resolution Unhiding Redundancy Concluding Remarks 13 / 47

  28. Variable Elimination [DavisPutnam’60] Definition (Resolution) Given two clauses C = ( x ∨ a 1 ∨ · · · ∨ a i ) and D = (¯ x ∨ b 1 ∨ · · · ∨ b j ), the resolvent of C and D on variable x (denoted by C ⊗ x D ) is ( a 1 ∨ · · · ∨ a i ∨ b 1 ∨ · · · ∨ b j ) Resolution on sets of clauses F x and F ¯ x (denoted by F x ⊗ x F ¯ x ) generates all non-tautological resolvents of C ∈ F x and D ∈ F ¯ x . 14 / 47

Recommend


More recommend