introduction What we know Community Structure and LBD Conclusion - - PowerPoint PPT Presentation

introduction what we know community structure and lbd
SMART_READER_LITE
LIVE PREVIEW

introduction What we know Community Structure and LBD Conclusion - - PowerPoint PPT Presentation

introduction What we know Community Structure and LBD Conclusion S T solvers: why are they working so well? Laurent Simon Labri, Bordeaux, France some common work with Gilles Audemard CRIL, Lens, France George


slide-1
SLIDE 1

introduction What we know Community Structure and LBD Conclusion

ST solvers: why are they working so well?

 Laurent Simon

 Labri, Bordeaux, France some common work with

 Gilles Audemard

 CRIL, Lens, France

 George Katsirelos

 INRA, Toulouse, France

 (Beyond NP, Paris)  2017, May, 10th  1/41

slide-2
SLIDE 2

introduction What we know Community Structure and LBD Conclusion

Today’s Itinerary

Introduction What we know Community Structure and LBD Conclusion

 (Beyond NP, Paris)  2017, May, 10th  2/41

slide-3
SLIDE 3

introduction What we know Community Structure and LBD Conclusion

Today’s Itinerary

Introduction

 Preliminaries  DP-60  DPLL-62  SAT ingredients  Literal Block Distance and glucose

What we know Community Structure and LBD Conclusion

 (Beyond NP, Paris)  2017, May, 10th  3/41

slide-4
SLIDE 4

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2002

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-5
SLIDE 5

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2003

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-6
SLIDE 6

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2005

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-7
SLIDE 7

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2007

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-8
SLIDE 8

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2009

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-9
SLIDE 9

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2011

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-10
SLIDE 10

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2014

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-11
SLIDE 11

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • 2016

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-12
SLIDE 12

introduction What we know Community Structure and LBD Conclusion

Performances of SAT Solvers, after 2001

  • the winners

 (Beyond NP, Paris)  2017, May, 10th  4/41

slide-13
SLIDE 13

introduction What we know Community Structure and LBD Conclusion

The firsts SAT steps

1958: Hilary Putnam and Martin Davis look for funding their research around propositional logic « What we’re interested in is good algorithms for propositional calculus » (NSA) Before that, only inefficient methods (truth tables, . . . ) First papers Computational Methods in The Propositional calculus [Davis Putnam 1958]1 A Computing Procedure for Quantification Theory [Davis Putnam 1960]

1Rapport interne NSA

 (Beyond NP, Paris)  2017, May, 10th  5/41

slide-14
SLIDE 14

introduction What we know Community Structure and LBD Conclusion

1960, already a first (kind of) competition!

« The superiority of the present procedure (i.e. DP) over those previously available is indicated in part by the fact that a formula on which Gilmores routine for the IBM 704 causes the machine to compute for 21 minutes without obtaining a result was worked successfully by hand computation using the present method in 30 minutes » [Davis et Putnam 1960], page 202. One of the reasons of the success of SAT is its competitions

 (Beyond NP, Paris)  2017, May, 10th  6/41

slide-15
SLIDE 15

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1. x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x1 ∨ x5 ∨ x9 x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-16
SLIDE 16

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1. x1 ∨ x4 x1 ∨ x8 ∨ x12 x1 ∨ x5 ∨ x9 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-17
SLIDE 17

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1. x1 ∨   x4 x8 ∨ x12 x5 ∨ x9   x1 ∨ ( x4 ∨ x14 x3 ∨ x8 ) x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-18
SLIDE 18

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1.   x4 x8 ∨ x12 x5 ∨ x9   ∨ ( x4 ∨ x14 x3 ∨ x8 ) x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-19
SLIDE 19

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1. x4 ∨ x14 x4 ∨ x3 ∨ x8 x8 ∨ x12 ∨ x4 ∨ x14 x5 ∨ x9 ∨ x4 ∨ x14 x5 ∨ x9 ∨ x3 ∨ x8 x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-20
SLIDE 20

introduction What we know Community Structure and LBD Conclusion

Principles of DP-60

DP-60: forgets variables one after the other Example : forgets x1. x4 ∨ x14 x4 ∨ x3 ∨ x8 x8 ∨ x12 ∨ x4 ∨ x14 x5 ∨ x9 ∨ x4 ∨ x14 x5 ∨ x9 ∨ x3 ∨ x8 x2 ∨ x11 x3 ∨ x7 ∨ x13 x3 ∨ x7 ∨ x13 ∨ x9 x8 ∨ x7 ∨ x9

 (Beyond NP, Paris)  2017, May, 10th  7/41

slide-21
SLIDE 21

introduction What we know Community Structure and LBD Conclusion

Untractable Space Problems

1 6 11 16 21 26 31 36 41 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10

4

Cut Number (|ψ|=43) Number of Clauses 3−CNF with 180 Clauses, 43 Variables; 1000 trials

Max.

  • Std. Dev.

Mean Min.

Combinatorial explosion, even on very small problems! But possible on some very special cases (SAT pre-processing)

 (Beyond NP, Paris)  2017, May, 10th  8/41

slide-22
SLIDE 22

introduction What we know Community Structure and LBD Conclusion

Untractable Space Problems

1 6 11 16 21 26 31 36 41 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10

4

Cut Number (|ψ|=43) Number of Clauses 3−CNF with 180 Clauses, 43 Variables; 1000 trials

Max.

  • Std. Dev.

Mean Min.

Combinatorial explosion, even on very small problems! But possible on some very special cases (SAT pre-processing)

 (Beyond NP, Paris)  2017, May, 10th  8/41

slide-23
SLIDE 23

introduction What we know Community Structure and LBD Conclusion

1962-2001: DPLL rules the world

Systematically explore the space of partial models (backtrack) Choose a literal Try to find a solution with this literal set to True If it is not possible: Finds a solution with this literal set to False Backtrack search on partial models Systematic (ordered) exploration ensures completeness

 (Beyond NP, Paris)  2017, May, 10th  9/41

slide-24
SLIDE 24

introduction What we know Community Structure and LBD Conclusion

1962-2001: DPLL rules the world

Systematically explore the space of partial models (backtrack) Choose a literal Try to find a solution with this literal set to True If it is not possible: Finds a solution with this literal set to False Backtrack search on partial models Systematic (ordered) exploration ensures completeness

 (Beyond NP, Paris)  2017, May, 10th  9/41

slide-25
SLIDE 25

introduction What we know Community Structure and LBD Conclusion

Backtrack search

f fx fx,¬y fx,¬y,¬z ¬z fx,¬y,z z ¬y fx,y fx,y,m m y x f¬x f¬x,z f¬x,z,¬t ¬t f¬x,z,t t z ¬x How to choose the right literal to branch on? First search for a model or a contradiction?

 (Beyond NP, Paris)  2017, May, 10th  10/41

slide-26
SLIDE 26

introduction What we know Community Structure and LBD Conclusion

Backtrack search

f fx fx,¬y fx,¬y,¬z ¬z fx,¬y,z z ¬y fx,y fx,y,m m y x f¬x f¬x,z f¬x,z,¬t ¬t f¬x,z,t t z ¬x How to choose the right literal to branch on? First search for a model or a contradiction?

 (Beyond NP, Paris)  2017, May, 10th  10/41

slide-27
SLIDE 27

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

x1 appears in 4 clauses and 1 binary clause

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-28
SLIDE 28

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d) x4 appears in 1 unary clause

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-29
SLIDE 29

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 x3 appears in 3 clauses incl. 1 (new) binary clause

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-30
SLIDE 30

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 2 x3 (d) x8 appears in one unary clause

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-31
SLIDE 31

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 2 x3 (d)

+

x8 x12 appears in 1 unary clause

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-32
SLIDE 32

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 2 x3 (d)

+

x8

+

x12 x13, x7 appear in unary clauses

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-33
SLIDE 33

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 2 x3 (d)

+

x8

+

x12

+

x13 x7, x7 appear in unary clauses

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-34
SLIDE 34

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4 2 x3 (d)

+

x8

+

x12

+

x13

+

x7 Conflict! Undo everything until last decision

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-35
SLIDE 35

introduction What we know Community Structure and LBD Conclusion

An example of DPLL

Formule x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Simplified Formula x1 ∨ x4 x1 ∨ x4 ∨ x14 x1 ∨ x3 ∨ x8 x1 ∨ x8 ∨ x12 x2 ∨ x12 x3 ∨ x12 ∨ x13 x3 ∨ x7 ∨ x13 x8 ∨ x7 ∨ x12 Partial Model

  • Lev. Lit. Back?

1 x1 (d)

+

x4

*

x3 Now, x3 is not a decision

 (Beyond NP, Paris)  2017, May, 10th  11/41

slide-36
SLIDE 36

introduction What we know Community Structure and LBD Conclusion

From LookAhead to Lookback

All solvers are now turned to lazily detect Unit Propagation No way to maintain counters for “smart” branching Look ahead heuristics were “easy” to understand Look back heuristics are very hard to study

 (Beyond NP, Paris)  2017, May, 10th  12/41

slide-37
SLIDE 37

introduction What we know Community Structure and LBD Conclusion

Ingredients of an efficient SAT solver

Preprocessing (and inprocessing) Restarting Branching Conflict Analysis Clause Database Cleaning

 (Beyond NP, Paris)  2017, May, 10th  13/41

slide-38
SLIDE 38

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x2 ¬x3 1 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-39
SLIDE 39

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 x2 ¬x3 ¬x5 x6 1 2 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-40
SLIDE 40

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 x2 ¬x3 ¬x5 x6 ¬x8 x9 1 2 3 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-41
SLIDE 41

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-42
SLIDE 42

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-43
SLIDE 43

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-44
SLIDE 44

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-45
SLIDE 45

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 x13 ∨ ¬x14 ∨ ¬x15 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-46
SLIDE 46

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 x13 ∨ ¬x14 ∨ ¬x15 ¬x6 ∨ x7 ∨ x12 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-47
SLIDE 47

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 x13 ∨ ¬x14 ∨ ¬x15 ¬x6 ∨ x7 ∨ x12 Coupure « FUIP » 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-48
SLIDE 48

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 x13 ∨ ¬x14 ∨ ¬x15 ¬x6 ∨ x7 ∨ x12 Coupure « FUIP » ¬x6 ∨ x7 ∨ x8 ∨ ¬x11 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-49
SLIDE 49

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 “reason” side x16 ¬x16 “conflict” side x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 ¬x16 ∨ x16 x13 ∨ ¬x14 ∨ ¬x15 ¬x6 ∨ x7 ∨ x12 Coupure « FUIP » ¬x6 ∨ x7 ∨ x8 ∨ ¬x11 x1 ∨ ¬x4 ∨ x7 ∨ x10 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-50
SLIDE 50

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-51
SLIDE 51

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-52
SLIDE 52

introduction What we know Community Structure and LBD Conclusion

CDCL Principles

¬x1 x4 ¬x7 ¬x10 x16 ¬x16 x2 ¬x3 ¬x5 x6 ¬x8 x9 x11 ¬x12 x15 x14 ¬x13 1 2 3 4 x1 ∨ x2 ¬x2 ∨ ¬x3 ¬x2 ∨ ¬x4 ∨ ¬x5 x3 ∨ x5 ∨ x6 x7 ∨ ¬x6 ∨ ¬x8 ¬x4 ∨ x8 ∨ x9 x10 ∨ ¬x9 ∨ x11 ¬x11 ∨ x8 ∨ ¬x12 x12 ∨ ¬x13 x7 ∨ x12 ∨ x14 ¬x6 ∨ x12 ∨ x15 x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

 (Beyond NP, Paris)  2017, May, 10th  14/41

slide-53
SLIDE 53

introduction What we know Community Structure and LBD Conclusion

CDCL solvers are complex systems

We have a lot of open problems around these questions:

 Understand what we have implemented 

It’s ok if we don’t fully “understand” our code Very fast and unpredictable Work well on real-world instances, but how to define such a structure? All components are tightly connected, side effects are everywhere There is no “one-simple reason” explaining their performance (supposition) At least we know that we don’t know Idea behind glucose A real experimental study of CDCL solvers

 (Beyond NP, Paris)  2017, May, 10th  15/41

slide-54
SLIDE 54

introduction What we know Community Structure and LBD Conclusion

CDCL solvers are complex systems – Illustration

Example of a real conflict analysis: Many resolutions at each conflict Very reactive VSIDS (1/10s lifetime) But: A clear structure behind!

Let’s search for structure aware mechanisms in CDCL solvers!

 (Beyond NP, Paris)  2017, May, 10th  16/41

slide-55
SLIDE 55

introduction What we know Community Structure and LBD Conclusion

High dynamicity of the heuristics

Exponential Increasing of Heuristics Bumps

  • After each conflict, the increment is multipled by 1/v (v = 0.95)

 (Beyond NP, Paris)  2017, May, 10th  17/41

slide-56
SLIDE 56

introduction What we know Community Structure and LBD Conclusion

Number of decisions before reaching a conflict

een-pico-prop05-50 – UNSAT – 13,000 vars and 65,000 clauses

een-pico-prop05-50 – UNSAT – 13,000 vars and 65,000 clauses

Experimental observation behind glucose (2009): A good CDCL learns clauses that reduces the number of decisions to make  This observation is also true for most SAT instances!

 (Beyond NP, Paris)  2017, May, 10th  18/41

slide-57
SLIDE 57

introduction What we know Community Structure and LBD Conclusion

Number of decisions before reaching a conflict

grieu-vmpc-s05-25 – sat – 625 vars and 76,000 clauses

grieu-vmpc-s05-25 – SAT – 625 vars and 76,000 clauses

Experimental observation behind glucose (2009): A good CDCL learns clauses that reduces the number of decisions to make  This observation is also true for most SAT instances!

 (Beyond NP, Paris)  2017, May, 10th  18/41

slide-58
SLIDE 58

introduction What we know Community Structure and LBD Conclusion

Number of decisions before reaching a conflict

grieu-vmpc-s05-25 – sat – 625 vars and 76,000 clauses

grieu-vmpc-s05-25 – SAT – 625 vars and 76,000 clauses

Experimental observation behind glucose (2009): A good CDCL learns clauses that reduces the number of decisions to make  This observation is also true for most SAT instances!

 (Beyond NP, Paris)  2017, May, 10th  18/41

slide-59
SLIDE 59

introduction What we know Community Structure and LBD Conclusion

Literal Block Distance (LBD) – initial idea (2009)

One decision often creates a lot of propagated literals (“blocks”)  Those variables will probably be propagated together again and again Reducing decisions? Adds dependencies between independent blocks How? Add the strongest possible constraints between them LBD of a learnt clause: number of prop. blocks of literals Small LBD scores are better The importance of “Glue Clauses” (LBD=2)

Only one literal from the last decision level (the assertive

  • ne)

This literal will be glued to the other block Kept forever in glucose

The restart policy is based on LBD too

 (Beyond NP, Paris)  2017, May, 10th  19/41

slide-60
SLIDE 60

introduction What we know Community Structure and LBD Conclusion

Why are they working so well?

We know how to build an efficient (single engine) SAT solver, but: CDCL is not DPLL  because of ultra-rapid restarts and agressive clause DB cleaning Learning can be bad  we’ll see that keeping all clauses is not a winning strategy Restarting is not restarting  directly go to the same search space, by an another path Luby-based restarts are dangerous  rare but very large windows are following a fixed restart strategy What is the phase?  good to reach a solution or a contradiction? “good” variables: top or bottom of the tree?  splitting on top, resolving on bottom variables The completeness of glucose is really theoretical!  Too many restarts and forgetting

 (Beyond NP, Paris)  2017, May, 10th  20/41

slide-61
SLIDE 61

introduction What we know Community Structure and LBD Conclusion

Today’s Itinerary

Introduction What we know

 Community Structure of Industrial Problems  Centrality of Industrial Instances  Experimental Evidences

Community Structure and LBD Conclusion

 (Beyond NP, Paris)  2017, May, 10th  21/41

slide-62
SLIDE 62

introduction What we know Community Structure and LBD Conclusion

Community Structure

Central idea: Dense internal connections inside a group Sparser connections between groups

Work of [Ansótegui, Girádez-Cru, Levy’12]: Industrial instances do have strong communities (with high confidence) Learning does preserve them in many cases

 (Beyond NP, Paris)  2017, May, 10th  22/41

slide-63
SLIDE 63

introduction What we know Community Structure and LBD Conclusion

Community Structure

Central idea: Dense internal connections inside a group Sparser connections between groups

Work of [Ansótegui, Girádez-Cru, Levy’12]: Industrial instances do have strong communities (with high confidence) Learning does preserve them in many cases

 (Beyond NP, Paris)  2017, May, 10th  22/41

slide-64
SLIDE 64

introduction What we know Community Structure and LBD Conclusion

Community Structure

Central idea: Dense internal connections inside a group Sparser connections between groups

Work of [Ansótegui, Girádez-Cru, Levy’12]: Industrial instances do have strong communities (with high confidence) Learning does preserve them in many cases

 (Beyond NP, Paris)  2017, May, 10th  22/41

slide-65
SLIDE 65

introduction What we know Community Structure and LBD Conclusion

The Direct Graphical Model

As done in [Katsirelos, Simon ’12]

A bipartite, directed graph Nodes are literals and clauses Outgoing edge from Clause c to Literal l iff l ∈ c Outgoing edge from Literal l to Clause c iff ¬l ∈ c (¬1 ∨ 53 ∨ 2) ∧ (¬1 ∨ ¬2 ∨ ¬57) A conflict graph is a subgraph of the DGM A path in this graph has a also meaning: it tries to assign literals that satisfy clauses.

 (Beyond NP, Paris)  2017, May, 10th  23/41

slide-66
SLIDE 66

introduction What we know Community Structure and LBD Conclusion

Eigenvector Centrality and CDCL

[Katsirelos, Simon ’12] also studied the graphical representation of CNFs. The (Eigenvector) centrality: “importance” of a node (see pagerank algorithm)

 (Beyond NP, Paris)  2017, May, 10th  24/41

slide-67
SLIDE 67

introduction What we know Community Structure and LBD Conclusion

Eigenvector Centrality and CDCL

[Katsirelos, Simon ’12] also studied the graphical representation of CNFs. The (Eigenvector) centrality: “importance” of a node (see pagerank algorithm)

 (Beyond NP, Paris)  2017, May, 10th  24/41

slide-68
SLIDE 68

introduction What we know Community Structure and LBD Conclusion

Centrality and communities

Work of [Katsirelos, Simon’12]: Measure the (initial) centrality of each variable Observe (during run time) solvers choices w.r.t. centrality Try to see if general tendencies can be observed Relationship between centrality and communities Central nodes: the ones that you want to remove to partition the graph Central nodes: likely to be on the frontiere of clusters (communities) Non-Central nodes: inside clusters (communities)

 (Beyond NP, Paris)  2017, May, 10th  25/41

slide-69
SLIDE 69

introduction What we know Community Structure and LBD Conclusion

Computing the centrality of huge graphs

The PageRank algorithm (Google) An efficient iterative algorithm approximating the stationary distribution of a random walk on a graph Centrality of literals is computed once, in an off-line run. Each analysis can take up to 20-30 min On beeing central, or not On the web, central pages are the most important ones In a CNF, central nodes are likely to be on a fringe between clusters Decomposition can be performed by removing central nodes first

 (Beyond NP, Paris)  2017, May, 10th  26/41

slide-70
SLIDE 70

introduction What we know Community Structure and LBD Conclusion

First Experimental Protocol

We want to detect some correlation between: The centrality (computed only once on the initial, preprocessed, formula) And observations/measures made during the CDCL run The 2012 Protocol, at a glance We used glucose as an archetype CDCL solver We tested all 658 benchmarks from SatRace 2008, SatCompetion 2009 and 2011, in the Application category We fixed a cutoff of 5 Million conflicts, but placed no bound on CPU time

 (Beyond NP, Paris)  2017, May, 10th  27/41

slide-71
SLIDE 71

introduction What we know Community Structure and LBD Conclusion

Picked Variables are central

Picture from [Katsirelos, Simon ’12]

1E-07 1E-06 1E-05 1E-04 1E-03 1E-02 1E-07 1E-06 1E-05 1E-04 1E-03 1E-02 Average Centrality of all Variables Average Centrality of all Picked Variables y=x

 (Beyond NP, Paris)  2017, May, 10th  28/41

slide-72
SLIDE 72

introduction What we know Community Structure and LBD Conclusion

Learning unit clauses is essential

A typical run of a CDCL will “produce” top-level implied literals during the run but the frequency of produced literals will decrease In practice A unit clause is learnt, and the literal is added at the top level This assignment will often produce immediatly other top-level propagated literals Of course, on some problems, no unit-clause are learnt.

 (Beyond NP, Paris)  2017, May, 10th  29/41

slide-73
SLIDE 73

introduction What we know Community Structure and LBD Conclusion

Measuring how the solver progresses

Picture from [Katsirelos, Simon ’12] 1E-07 1E-06 1E-05 1E-04 1E-03 1E-07 1E-06 1E-05 1E-04 1E-03 Average Centrality of all learnt literals Average Centrality of first quartile learnt literals y=x Linear Regression

 (Beyond NP, Paris)  2017, May, 10th  30/41

slide-74
SLIDE 74

introduction What we know Community Structure and LBD Conclusion

Centrality of Conflict Clauses vs Learnt Clauses

Picture from [Katsirelos, Simon ’12] 1E-07 1E-06 1E-05 1E-04 1E-03 1E-02 1E-07 1E-06 1E-05 1E-04 1E-03 1E-02 Average Centrality of Learnt Clause Average Centrality of Conflict Clauses y=x

 (Beyond NP, Paris)  2017, May, 10th  31/41

slide-75
SLIDE 75

introduction What we know Community Structure and LBD Conclusion

Today’s Itinerary

Introduction What we know Community Structure and LBD

 Experiment parameters and Goals  Experiments with Communities  It’s hard to study so many different problems

Conclusion

 (Beyond NP, Paris)  2017, May, 10th  32/41

slide-76
SLIDE 76

introduction What we know Community Structure and LBD Conclusion

Making connections between LBD and communities 

Initial Goal of the experiment:

 Do we observe a relationship between LBD and communities? 

How we built the experiment: We partitioned the variables into communities on the initial (preprocessed) formulas. We were able to compute the communities for 189 benchmarks of the SAT’13 competition (over 300 benchmarks, with 5000s time out) At each conflict, we observe the differences between the

The number of communities in the clause The number of decision levels (LBD) in the clause

  • And. . . We cross our fingers!

 (Beyond NP, Paris)  2017, May, 10th  33/41

slide-77
SLIDE 77

introduction What we know Community Structure and LBD Conclusion

A good example

Benchmarks dated-5-13-u Nb Variables 138808 Nb Clauses 626501 Max conflicts 20000 Q 0.907721 Nb Partitions 97775

 (Beyond NP, Paris)  2017, May, 10th  34/41

slide-78
SLIDE 78

introduction What we know Community Structure and LBD Conclusion

Another good example (there are many)

Benchmarks gss-17-s100 Nb Variables 31318 Nb Clauses 94116 Max conflicts 20000 Q 0.923977 Nb Partitions 17801

 (Beyond NP, Paris)  2017, May, 10th  35/41

slide-79
SLIDE 79

introduction What we know Community Structure and LBD Conclusion

A bad example (there are some)

Benchmarks rbcl_xits_14_SAT Nb Variables 2220 Nb Clauses 148488 Max conflicts 20000 Q 0.531783 Nb Partitions 725

 (Beyond NP, Paris)  2017, May, 10th  36/41

slide-80
SLIDE 80

introduction What we know Community Structure and LBD Conclusion

Outliers everywhere!

We try to understand CDCL solvers but all problems are distincts! Number of decisions

  • stats after 10,000 conflicts on 1164 “not easy” problems from all previous

contests

 (Beyond NP, Paris)  2017, May, 10th  37/41

slide-81
SLIDE 81

introduction What we know Community Structure and LBD Conclusion

Outliers everywhere!

We try to understand CDCL solvers but all problems are distincts! Decisions per conflicts

  • stats after 10,000 conflicts on 1164 “not easy” problems from all previous

contests

 (Beyond NP, Paris)  2017, May, 10th  37/41

slide-82
SLIDE 82

introduction What we know Community Structure and LBD Conclusion

Outliers everywhere!

We try to understand CDCL solvers but all problems are distincts! “True” (non binary) glue clauses

  • stats after 10,000 conflicts on 1164 “not easy” problems from all previous

contests

 (Beyond NP, Paris)  2017, May, 10th  37/41

slide-83
SLIDE 83

introduction What we know Community Structure and LBD Conclusion

Outliers everywhere!

We try to understand CDCL solvers but all problems are distincts! Successive conflicts

  • stats after 10,000 conflicts on 1164 “not easy” problems from all previous

contests

 (Beyond NP, Paris)  2017, May, 10th  37/41

slide-84
SLIDE 84

introduction What we know Community Structure and LBD Conclusion

Outliers everywhere!

We try to understand CDCL solvers but all problems are distincts! Propagations

  • stats after 10,000 conflicts on 1164 “not easy” problems from all previous

contests

 (Beyond NP, Paris)  2017, May, 10th  37/41

slide-85
SLIDE 85

introduction What we know Community Structure and LBD Conclusion

When experimenting suggests that CDCL solvers are inefficient

Most of solver’s time is spent in unit propagation But, on UNSAT instances: Only 50% of generated clauses are useful for deriving the final contradiction Only 20% of unit propagation are used during conflict analysis Only 10% of solver’s time is useful for deriving the contradiction!

 (Beyond NP, Paris)  2017, May, 10th  38/41

slide-86
SLIDE 86

introduction What we know Community Structure and LBD Conclusion

Today’s Itinerary

Introduction What we know Community Structure and LBD Conclusion

 A (Possible) Illustration of learnt clause mechanism  Conclusion

 (Beyond NP, Paris)  2017, May, 10th  39/41

slide-87
SLIDE 87

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-88
SLIDE 88

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-89
SLIDE 89

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-90
SLIDE 90

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-91
SLIDE 91

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-92
SLIDE 92

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-93
SLIDE 93

introduction What we know Community Structure and LBD Conclusion

(Possible) Illustration of learnt clause mechanism

InCluster Variable! Frontiere Variable! Propagated Variable! Conflict Variable! Learnt Clause Variable

 (Beyond NP, Paris)  2017, May, 10th  40/41

slide-94
SLIDE 94

introduction What we know Community Structure and LBD Conclusion

Conclusion – Deep Solving with SAT

SAT solvers are limited by Resolution Experimenting is essential now in SAT research Why are they so efficient? Beeing fast is beeing smart CDCL solvers are exploring and thinking at the same time They are not solving hard examples by applying methods we use on toy examples We don’t (fully) understand them, but we are working on it Incremental SAT Solving is (also) an incredible driving force of the field

 (Beyond NP, Paris)  2017, May, 10th  41/41