prepocessing
play

Prepocessing Marijn J.H. Heule The University of Texas at Austin - PowerPoint PPT Presentation

Prepocessing Marijn J.H. Heule The University of Texas at Austin July 5, 2013 M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 1 / 42 Interaction between different solving approaches Translator reencoding encoding Simplifier


  1. Prepocessing Marijn J.H. Heule The University of Texas at Austin July 5, 2013 M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 1 / 42

  2. Interaction between different solving approaches Translator reencoding encoding Simplifier inprocessing preprocessing Clause Learner M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 2 / 42

  3. Interaction between different solving approaches Translator reencoding encoding Simplifier inprocessing preprocessing Clause Learner It all comes down to adding and removing redundant clauses M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 2 / 42

  4. Redundant clauses A clause is redundant w.r.t. a formula if adding it to the formula preserves satisfiability. For unsatisfiable formulas, all clauses can be added, including the empty clause ( ) . M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 3 / 42

  5. Redundant clauses A clause is redundant w.r.t. 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 w.r.t. a formula if removing it from the formula preserves unsatisfiability. For satisfiable formulas, all clauses can be removed. M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 3 / 42

  6. Redundant clauses A clause is redundant w.r.t. 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 w.r.t. 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 M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 3 / 42

  7. Outline 1 Subsumption 2 Variable Elimination 3 Bounded Variable Addition 4 Blocked Clause Elimination 5 Hyper Binary Resolution 6 Unhiding Redundancy M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 4 / 42

  8. Subsumption Subsumption M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 5 / 42

  9. Subsumption Tautologies and Subsumption Definition (Tautology) A clause C is a tautology if its contains two complementary literals l , ¯ l . 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 ). M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 6 / 42

  10. Subsumption Self-Subsuming Resolution Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 7 / 42

  11. Subsumption Self-Subsuming Resolution Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l Example assume a CNF contains both antecedents . . . ( a ∨ b ∨ l )( a ∨ b ∨ c ∨ ¯ l ) · · · if D is added then D ∨ ¯ l can be removed ⇓ which in essence removes ¯ l from D ∨ ¯ l . . . ( a ∨ b ∨ l )( a ∨ b ∨ c ) . . . initially in the SATeLite preprocessor [EenBiere’07] now common in many SAT solvers M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 7 / 42

  12. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l 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 ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  13. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l 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 ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  14. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l 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 ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  15. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l 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 ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  16. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ∨ b ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ ) ∧ ( ¯ d ) ∧ b c ∨ ¯ ( a ∨ ¯ c ∨ d ) ∧ ( a ∨ ¯ d ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  17. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ a ∨ b ) ∧ ( a ∨ c ) ∧ a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ ) ∧ ( ¯ d ) ∧ b c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  18. Subsumption Self-Subsuming Example Self-Subsuming Resolution D ∨ ¯ ( a ∨ b ∨ c ∨ ¯ C ∨ l l ( a ∨ b ∨ l ) l ) C ⊆ D D ( a ∨ b ∨ c ) resolvent D subsumes second antecedent D ∨ ¯ l Example: Remove literals using self-subsumption ( b ∨ c ) ∧ ( ¯ a ∨ b ∨ c ) ∧ (¯ ) ∧ ( a ∨ c ) ∧ a a ∨ ¯ a ∨ ¯ b ∨ ¯ (¯ ) ∧ ( ¯ d ) ∧ b c ∨ ¯ ( a ∨ ¯ c ) ∧ ( a ∨ ¯ d ) M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 8 / 42

  19. Subsumption Implementing Subsumtion 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 M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 9 / 42

  20. Subsumption Implementing Subsumtion 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 M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 9 / 42

  21. Subsumption Implementing Subsumtion 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 l in C remove all clauses D in F l that are subsumed by C M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 9 / 42

  22. Variable Elimination Variable Elimination M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 10 / 42

  23. Variable Elimination 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 . M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 11 / 42

  24. Variable Elimination 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 . Definition (Variable elimination (VE)) Given a CNF formula F , variable elimination (or DP resolution) removes a variable x by replacing F x and F ¯ x by F x ⊗ x F ¯ x M.J.H. Heule (UT Austin) Prepocessing July 5, 2013 11 / 42

Recommend


More recommend