Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
How a CDCL SAT  Solver works       Masahiro Sakai  Twitter: @masahiro_sakai
Abstract• Demonstrating how a modern SAT  solver works on a small example.• Target Algorithm • Conflict-Driven Clause Learn...
An Example Problem• ω1: ¬x1   ¬x4   x5   • ω6: ¬x8   ¬x9• ω2: ¬x4   x6         • ω7: ¬x8   x9• ω3: ¬x5   ¬x6   x7• ω4: ¬x7...
Decide               Implication GraphClause DB   • ω1: ¬x1   ¬x4    x5   • ω6: ¬x8   ¬x9   • ω2: ¬x4   x6          • ω7: ...
Decide                Implication Graphx1                 x1@1Clause DB     • ω1: ¬x1   ¬x4    x5   • ω6: ¬x8   ¬x9     • ...
Decide                Implication Graphx1x2                                 x2@2                 x1@1Clause DB     • ω1: ¬...
Decide                Implication Graphx1               x3@3x2                                 x2@2                 x1@1x3...
Decide                Implication Graphx1               x3@3x2                                 x2@2                 x1@1x3...
Deduce                Implication Graphx1               x3@3x2                                 x2@2                 x1@1x3...
Deduce                Implication Graphx1               x3@3x2                      ω1          x2@2                 x1@1 ...
Deduce                Implication Graphx1               x3@3x2                      ω1          x2@2                 x1@1 ...
Deduce                Implication Graphx1               x3@3x2                      ω1               x2@2                 ...
Deduce                Implication Graphx1               x3@3x2                      ω1               x2@2                 ...
Deduce                Implication Graphx1               x3@3x2                      ω1               x2@2   ω5            ...
Deduce                Implication Graphx1               x3@3x2                      ω1               x2@2   ω5            ...
Deduce                Implication Graphx1               x3@3x2                      ω1               x2@2   ω5            ...
Diagnose                      Implication Graph                x3@3                       ω1               x2@2   ω5      ...
Diagnose                            Implication Graph                             Reason  ω6:                 x3@3    Side...
Diagnose                          Implication Graph                           Reason  ω6:    ω4:        x3@3    Side¬x8 ¬x...
Diagnose                          Implication Graph                           Reason  ω6:    ω4:        x3@3    Side¬x8 ¬x...
Diagnose                            Implication Graph                             Reason  ω6:    ω4:          x3@3    Side...
Diagnose                             Implication Graph                              Reason  ω6:    ω4:           x3@3    S...
Diagnose                             Implication Graph                              Reason  ω6:    ω4:           x3@3    S...
Diagnose                             Implication Graph                              Reason  ω6:    ω4:           x3@3    S...
Diagnose                                   Implication Graph                                    Reason  ω6:    ω4:        ...
Diagnose                                   Implication Graph                                    Reason  ω6:    ω4:        ...
Backtrack                   Implication Graph  Learnt clause:    ¬x2 ¬x7               x3@3                               ...
Backtrack             Implication Graphx1               x3@3x2                      ω1               x2@2   ω5            ...
Backtrack             Implication Graphx1               x3@3x2                      ω1               x2@2   ω5            ...
Backtrack             Implication Graphx1               x3@3x2                      ω1               x2@2                 ...
Backtrack             Implication Graphx1               x3@3x2                      ω1               x2@2                 ...
Backtrack             Implication Graphx1               x3@3x2                      ω1          x2@2                 x1@1 ...
Backtrack             Implication Graphx1               x3@3x2                      ω1          x2@2                 x1@1 ...
Backtrack             Implication Graphx1               x3@3x2                                 x2@2                 x1@1x3...
Backtrack             Implication Graphx1               x3@3x2                                 x2@2                 x1@1x3...
Backtrack             Implication Graphx1x2                                 x2@2                 x1@1x3x4Clause DB     • ω...
Deduce                Implication Graphx1x2                                 x2@2                 x1@1x3x4Clause DB     • ω...
Deduce                Implication Graphx1                                          ω8x2                                 x2...
Decide                Implication Graphx1                                          ω8x2                                 x2...
Decide                   Implication Graphx1                  x3@3                                             ω8x2       ...
Decide                   Implication Graphx1                  x3@3                                             ω8x2       ...
Deduce                   Implication Graphx1                  x3@3                                             ω8x2       ...
Deduce                   Implication Graphx1                  x3@3                                              ω8x2      ...
Deduce                   Implication Graphx1                  x3@3                                              ω8x2      ...
Deduce                   Implication Graphx1                  x3@3                                                   ω8x2 ...
Deduce                   Implication Graphx1                  x3@3                                                   ω8x2 ...
Diagnose                      Implication Graph                x3@3                                               ω8      ...
Diagnose                          Implication Graph                           Reason   ω3:              x3@3    Side¬x5 ¬x...
Diagnose                          Implication Graph                           Reason   ω3:      ω2:     x3@3    Side¬x5 ¬x...
Diagnose                          Implication Graph                           Reason   ω3:      ω2:     x3@3    Side¬x5 ¬x...
Diagnose                          Implication Graph                           Reason   ω3:      ω2:     x3@3    Side¬x5 ¬x...
Diagnose                            Implication Graph                             Reason   ω3:      ω2:       x3@3    Side...
Diagnose                            Implication Graph                             Reason   ω3:      ω2:       x3@3    Side...
Diagnose                            Implication Graph                             Reason   ω3:      ω2:       x3@3    Side...
Diagnose                                   Implication Graph                                    Reason   ω3:      ω2:     ...
Diagnose                                   Implication Graph                                    Reason   ω3:      ω2:     ...
Backtrack                   Implication Graph  Learnt clause:  ¬x1 ¬x4 x7              x3@3                               ...
Backtrack                Implication Graphx1                  x3@3                                                   ω8x2 ...
Backtrack                Implication Graphx1                                             ω8x2                             ...
Deduce               Implication Graphx1                                             ω8x2                                 ...
Deduce               Implication Graphx1                                                ω8x2                              ...
Decide               Implication Graphx1                                                ω8x2                              ...
Decide               Implication Graphx1                  x3@3                                                ω8x2        ...
Decide              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Decide              Implication Graphx1                 x3@3                                               ω8x2           ...
Decide              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Deduce              Implication Graphx1                 x3@3                                               ω8x2           ...
Diagnose                      Implication Graph                x3@3                                            ω8         ...
Diagnose                              Implication Graph ω7:                 x3@3¬x8 x9                                    ...
Diagnose                            Implication Graph ω7:     ω6:       x3@3¬x8 x9 ¬x8 ¬x9                                ...
Diagnose                            Implication Graph ω7:     ω6:       x3@3¬x8 x9 ¬x8 ¬x9                                ...
Diagnose                               Implication Graph ω7:     ω6:          x3@3¬x8 x9 ¬x8 ¬x9                          ...
Diagnose                                     Implication Graph ω7:     ω6:                x3@3¬x8 x9 ¬x8 ¬x9              ...
Diagnose                                     Implication Graph ω7:     ω6:                x3@3¬x8 x9 ¬x8 ¬x9              ...
Backtrack                   Implication Graph  Learnt clause:       ¬x8                x3@3                               ...
Backtrack             Implication Graphx1               x3@3                                             ω8x2             ...
Backtrack             Implication Graphx1x2x3 x3 x3x4 x4 x5      x8Clause DB     • ω1: ¬x1   ¬x4    x5   • ω6: ¬x8    ¬x9 ...
Deduce              Implication Graphx1x2x3 x3 x3x4 x4 x5        x8Clause DB       • ω1: ¬x1   ¬x4    x5   • ω6: ¬x8    ¬x...
Deduce              Implication Graphx1x2x3 x3 x3x4 x4 x5           ¬x8@0        x8Clause DB       • ω1: ¬x1   ¬x4     x5 ...
Decide              Implication Graphx1x2x3 x3 x3x4 x4 x5           ¬x8@0        x8Clause DB       • ω1: ¬x1   ¬x4     x5 ...
Decide              Implication Graphx1            x1x2                 x1@1x3 x3 x3x4 x4 x5           ¬x8@0        x8Clau...
Decide              Implication Graphx1            x1x2            x2                      x2@2                   x1@1x3 x...
Deduce              Implication Graphx1           x1x2           x2                       x2@2                   x1@1x3 x3...
Deduce              Implication Graphx1           x1                                             ω8x2           x2        ...
Deduce              Implication Graphx1           x1                                                ω8x2           x2     ...
Decide              Implication Graphx1            x1                                                ω8x2            x2   ...
Decide              Implication Graphx1            x1   x3@3                                                ω8x2          ...
Decide              Implication Graphx1            x1   x3@3                                                ω8x2          ...
Deduce              Implication Graphx1           x1    x3@3                                                ω8x2          ...
Deduce              Implication Graphx1           x1    x3@3                                                ω8x2          ...
Decide              Implication Graphx1            x1   x3@3                                                ω8x2          ...
Decide              Implication Graphx1            x1   x3@3                                                ω8x2          ...
Implication Graphx1       x1      x3@3                                              ω8x2       x2                         ...
Implication Graphx1        x1         x3@3                                                  ω8x2        x2                ...
Implication Graphx1       x1      x3@3                                              ω8x2       x2                         ...
Implication Graphx1       x1      x3@3                                              ω8x2       x2                         ...
Implication Graphx1       x1      x3@3                                              ω8x2       x2                         ...
Implication GraphFound a model                  x3@3                                               ω8     M=              ...
fin.
References• J. P. Marques-Silva and K. A. Sakallah,  "GRASP: a search algorithm for  propositional satisfiability," Compute...
Nächste SlideShare
Wird geladen in …5
×

How a CDCL SAT solver works

26.854 Aufrufe

Veröffentlicht am

Demonstration of CDCL SAT solver working on a small example problem.

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

How a CDCL SAT solver works

  1. 1. How a CDCL SAT Solver works Masahiro Sakai Twitter: @masahiro_sakai
  2. 2. Abstract• Demonstrating how a modern SAT solver works on a small example.• Target Algorithm • Conflict-Driven Clause Learning (CDCL) • 1-UIP learning + far-backtracking • details are omitted efficient data (decision heuristics, structure, etc.,)
  3. 3. An Example Problem• ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9• ω2: ¬x4 x6 • ω7: ¬x8 x9• ω3: ¬x5 ¬x6 x7• ω4: ¬x7 x8• ω5: ¬x2 ¬x7 x9
  4. 4. Decide Implication GraphClause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  5. 5. Decide Implication Graphx1 x1@1Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  6. 6. Decide Implication Graphx1x2 x2@2 x1@1Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  7. 7. Decide Implication Graphx1 x3@3x2 x2@2 x1@1x3Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  8. 8. Decide Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  9. 9. Deduce Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  10. 10. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  11. 11. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  12. 12. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  13. 13. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  14. 14. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  15. 15. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  16. 16. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  17. 17. Diagnose Implication Graph x3@3 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  18. 18. Diagnose Implication Graph Reason ω6: x3@3 Side¬x8 ¬x9 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  19. 19. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  20. 20. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  21. 21. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  22. 22. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  23. 23. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  24. 24. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  25. 25. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 It contains one literal in the current ω3 ω6 ω2 ω4 decision level (i.e. 4). x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  26. 26. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 It contains one literal in the current ω3 ω6 ω2 ω4 decision level (i.e. 4). x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9 New clause is learnt !
  27. 27. Backtrack Implication Graph Learnt clause: ¬x2 ¬x7 x3@3 ω1 x2@2 ω5x2 was set at level 2 x1@1x7 was set at level 4 x5@4 x9@4 ω3 ω5 ω6Assertion level of thisclause (which is the ω1second highest level) x4@4 x7@4is 2. ω6 ω2 ω3 ω4 Backtrack to level 2! x6@4 x8@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  28. 28. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  29. 29. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  30. 30. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  31. 31. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  32. 32. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  33. 33. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  34. 34. Backtrack Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  35. 35. Backtrack Implication Graphx1 x3@3x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  36. 36. Backtrack Implication Graphx1x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  37. 37. Deduce Implication Graphx1x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  38. 38. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  39. 39. Decide Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  40. 40. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  41. 41. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  42. 42. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  43. 43. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω1 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  44. 44. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω1 x4@4x4 x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  45. 45. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  46. 46. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  47. 47. Diagnose Implication Graph x3@3 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  48. 48. Diagnose Implication Graph Reason ω3: x3@3 Side¬x5 ¬x6 x7 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  49. 49. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  50. 50. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  51. 51. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  52. 52. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  53. 53. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  54. 54. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  55. 55. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 It contains one literal in the current ω3 decision level (i.e. 4). ω2 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
  56. 56. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 It contains one literal in the current ω3 decision level (i.e. 4). ω2 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 New clause is learnt !
  57. 57. Backtrack Implication Graph Learnt clause: ¬x1 ¬x4 x7 x3@3 ω8 ω1 x2@2 ¬x7@2x1 was set at level 1 x1@1x4 was set at level 4 x5@4x7 was set at level 2 ω3 ω3 ω1Assertion level of this x4@4clause is 2. ω2 ω3 Backtrack to level 2! x6@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  58. 58. Backtrack Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  59. 59. Backtrack Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  60. 60. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  61. 61. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  62. 62. Decide Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  63. 63. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  64. 64. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  65. 65. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  66. 66. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 ω3 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  67. 67. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 ω3 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  68. 68. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x8@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  69. 69. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x8@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  70. 70. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  71. 71. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  72. 72. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  73. 73. Diagnose Implication Graph x3@3 ω8 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  74. 74. Diagnose Implication Graph ω7: x3@3¬x8 x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  75. 75. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  76. 76. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  77. 77. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  78. 78. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2It contains one literal ω6 ¬x6@4 in the current x8@5 ¬x9@5 ω3 decision level (i.e. 5). ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
  79. 79. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2It contains one literal ω6 ¬x6@4 in the current x8@5 ¬x9@5 ω3 decision level (i.e. 5). ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 •New ¬x2 ¬x7 learnt ! ω8: clause is • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  80. 80. Backtrack Implication Graph Learnt clause: ¬x8 x3@3 ω8 x2@2 ¬x7@2x8 was set at level 5 x1@1 ω9 ω9 ω3Assertion level of this ¬x4@2clause (which is thesecond highest level) ω6 ¬x6@4is 0 by convention. x8@5 ¬x9@5 ω3 Backtrack to level 0 ω7 ω7 x5@4 (root level) Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  81. 81. Backtrack Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  82. 82. Backtrack Implication Graphx1x2x3 x3 x3x4 x4 x5 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  83. 83. Deduce Implication Graphx1x2x3 x3 x3x4 x4 x5 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  84. 84. Deduce Implication Graphx1x2x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  85. 85. Decide Implication Graphx1x2x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  86. 86. Decide Implication Graphx1 x1x2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  87. 87. Decide Implication Graphx1 x1x2 x2 x2@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  88. 88. Deduce Implication Graphx1 x1x2 x2 x2@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  89. 89. Deduce Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  90. 90. Deduce Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  91. 91. Decide Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  92. 92. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  93. 93. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 x5 ¬x8@0 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  94. 94. Deduce Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 x5 ¬x8@0 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  95. 95. Deduce Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  96. 96. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  97. 97. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  98. 98. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  99. 99. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 All variables are ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4assigned withoutClause DB • ω1: •¬x1 ¬x4 x5 ω6: ¬x8 ¬x9 • • conflict ω2: ω3: • • ¬x4 ¬x5 x6 ¬x6 x7 ω7: ¬x8 ω8: ¬x2 x9 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  100. 100. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  101. 101. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB Satisfiable • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  102. 102. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  103. 103. Implication GraphFound a model x3@3 ω8 M= x2@2 ¬x7@2 x1@1 ω9 { x1, x2, x3, ω9 ω3 ¬x4@2 ¬x4, x5, ¬x6 ¬x6@4 ¬x8@0 ω3¬x7, ¬x8, x9 } x9@5 x5@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
  104. 104. fin.
  105. 105. References• J. P. Marques-Silva and K. A. Sakallah, "GRASP: a search algorithm for propositional satisfiability," Computers, IEEE Transactions on, vol. 48, no. 5, pp. 506-521, May 1999.• Handbook of Satisfiability, A. Biere, M. Heule, H. Van Maaren, and T. Walsh, Eds. IOS Press, Feb. 2009.

×