From satisfaction to optimization, and beyond SAT-based guided - - PowerPoint PPT Presentation

from satisfaction to optimization and beyond
SMART_READER_LITE
LIVE PREVIEW

From satisfaction to optimization, and beyond SAT-based guided - - PowerPoint PPT Presentation

From satisfaction to optimization, and beyond SAT-based guided problem solving Daniel Le Berre joint work with Mutsunori Banbara, Tiago de Lima, Jean-Marie Lagniez, Valentin Montmirail, Stphanie Roussel, Naoyuki Tamura, Takehide Soh CNRS,


slide-1
SLIDE 1

From satisfaction to optimization, and beyond

SAT-based guided problem solving Daniel Le Berre

joint work with Mutsunori Banbara, Tiago de Lima, Jean-Marie Lagniez, Valentin Montmirail, Stéphanie Roussel, Naoyuki Tamura, Takehide Soh

CNRS, Université d’Artois, FRANCE {leberre}@cril.univ-artois.fr

SAT+SMT school, IIT Bombay, India, 10 December 2019

slide-2
SLIDE 2

Purpose of this talk 2

◮ Using SAT solvers are black boxes ◮ Importance of the interaction with the solver ◮ When encodings are too large

slide-3
SLIDE 3

The SAT problem: textbook definition 3

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : Is there an assignment of the n variables that satisfies all those clauses?

slide-4
SLIDE 4

The SAT problem: textbook definition 3

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : Is there an assignment of the n variables that satisfies all those clauses?

Example

C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a′ + b).(b′ + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, the answer is yes, for C2 the answer is no C1 |= ¬(a ∧ ¬c) = ¬a ∨ c

slide-5
SLIDE 5

The SAT problem solver: practical point of view 1/3 4

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else answer UNSAT.

slide-6
SLIDE 6

The SAT problem solver: practical point of view 1/3 4

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else answer UNSAT.

Example

C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a′ + b).(b′ + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, one answer is {a, b, c}, for C2 the answer is UNSAT.

slide-7
SLIDE 7

The SAT problem solver: practical point of view 1/3 4

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else answer UNSAT.

Example

C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a′ + b).(b′ + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, one answer is {a, b, c}, for C2 the answer is UNSAT. SAT answers can be checked: trusted model oracle

slide-8
SLIDE 8

The SAT problem solver: practical point of view 2/3 5

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else provide a subset

  • f C which cannot be satisfied.
slide-9
SLIDE 9

The SAT problem solver: practical point of view 2/3 5

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else provide a subset

  • f C which cannot be satisfied.

Example

C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a′ + b).(b′ + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, one answer is {a, b, c}, for C2 the answer is C2

slide-10
SLIDE 10

The SAT problem solver: practical point of view 2/3 5

Definition

Input : A set of clauses C built from a propositional language with n variables. Output : If there is an assignment of the n variables that satisfies all those clauses, provide such assignment, else provide a subset

  • f C which cannot be satisfied.

Example

C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a′ + b).(b′ + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, one answer is {a, b, c}, for C2 the answer is C2 UNSAT core may explain inconsistency if much smaller than C: informative UNSAT oracle

slide-11
SLIDE 11

The SAT problem solver: practical point of view 3/3 6

Definition

Allow the solver to decide the satisfiability of a formula with:

◮ increasing number of constraints ◮ provided some “assumptions" are satisfied

slide-12
SLIDE 12

The SAT problem solver: practical point of view 3/3 6

Definition

Allow the solver to decide the satisfiability of a formula with:

◮ increasing number of constraints ◮ provided some “assumptions" are satisfied Example

C = {s1 ∨ ¬a ∨ b, s1 ∨ ¬b ∨ c, s2 ∨ a, s2 ∨ ¬c} C1 ≡ C ∧ ¬s1 ∧ s2 C2 ≡ C ∧ ¬s1 ∧ ¬s2

slide-13
SLIDE 13

The SAT problem solver: practical point of view 3/3 6

Definition

Allow the solver to decide the satisfiability of a formula with:

◮ increasing number of constraints ◮ provided some “assumptions" are satisfied Example

C = {s1 ∨ ¬a ∨ b, s1 ∨ ¬b ∨ c, s2 ∨ a, s2 ∨ ¬c} C1 ≡ C ∧ ¬s1 ∧ s2 C2 ≡ C ∧ ¬s1 ∧ ¬s2 The solver is considered as a stateful system: as long as the constraints are satisfiable, learn clauses can be kept: incremental SAT oracle

slide-14
SLIDE 14

How to solve MaxSat MinUnsat with SAT? 7

◮ Associate to each clause a weight (penalty) wi taken into

account if the clause is violated: Soft clauses S.

◮ Special weight (∞) for clauses that cannot be violated: hard

clauses H

Definition (Partial Weighted MaxSat)

Find a model M of H that minimizes weight(M, S) such that:

◮ weight(M, (ci, wi)) = 0 if M satisfies ci, else wi. ◮ weight(M, S) =

wc∈S weight(M, wc)

Simply called MaxSAT if k = 1 and H = ∅

slide-15
SLIDE 15

How to solve MaxSat MinUnsat with SAT? 7

◮ Associate to each clause a weight (penalty) wi taken into

account if the clause is violated: Soft clauses S.

(¬a ∨ b, 6) ∧ (¬b ∨ c, 8) ◮ Special weight (∞) for clauses that cannot be violated: hard

clauses H

Definition (Partial Weighted MaxSat)

Find a model M of H that minimizes weight(M, S) such that:

◮ weight(M, (ci, wi)) = 0 if M satisfies ci, else wi. ◮ weight(M, S) =

wc∈S weight(M, wc)

Simply called MaxSAT if k = 1 and H = ∅

slide-16
SLIDE 16

How to solve MaxSat MinUnsat with SAT? 7

◮ Associate to each clause a weight (penalty) wi taken into

account if the clause is violated: Soft clauses S.

(¬a ∨ b, 6) ∧ (¬b ∨ c, 8) ◮ Special weight (∞) for clauses that cannot be violated: hard

clauses H

(a, ∞) ∧ (¬c, ∞) Definition (Partial Weighted MaxSat)

Find a model M of H that minimizes weight(M, S) such that:

◮ weight(M, (ci, wi)) = 0 if M satisfies ci, else wi. ◮ weight(M, S) =

wc∈S weight(M, wc)

Simply called MaxSAT if k = 1 and H = ∅

slide-17
SLIDE 17

How to solve MaxSat MinUnsat with SAT? 7

◮ Associate to each clause a weight (penalty) wi taken into

account if the clause is violated: Soft clauses S.

(¬a ∨ b, 6) ∧ (¬b ∨ c, 8) ◮ Special weight (∞) for clauses that cannot be violated: hard

clauses H

(a, ∞) ∧ (¬c, ∞) Definition (Partial Weighted MaxSat)

Find a model M of H that minimizes weight(M, S) such that:

◮ weight(M, (ci, wi)) = 0 if M satisfies ci, else wi. ◮ weight(M, S) =

wc∈S weight(M, wc) weight of {a, ¬b, ¬c} is

6 Simply called MaxSAT if k = 1 and H = ∅

slide-18
SLIDE 18

Linear Search for solving MaxSAT 8

x6, x2

¬x6, x2 ¬x2, x1 ¬x1 ¬x6, x8

x6, ¬x8 x2, x4

¬x4, x5

x7, x5

¬x7, x5 ¬x5, x3 ¬x3

Example CNF formula (k = 1 for each clause, not displayed)

slide-19
SLIDE 19

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6

Add selector or blocking variables bi

slide-20
SLIDE 20

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6

Formula is SAT; eg model M contains b1, ¬b2, b3, ¬b4, b5, ¬b7, ¬b8, ¬b9, b10, ¬b11, b12

slide-21
SLIDE 21

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 12

i=1 bi < 5

Bound the number of constraints to be relaxed: |M ∩ B| = 5

slide-22
SLIDE 22

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 12

i=1 bi < 5

Formula is (again) SAT; eg model contains b1, ¬b2, ¬b3, ¬b4, ¬b5, ¬b7, ¬b8, ¬b9, ¬b10, ¬b11, b12

slide-23
SLIDE 23

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 12

i=1 bi < 2

Bound the number of constraints to be relaxed |M ∩ B| = 2

slide-24
SLIDE 24

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 12

i=1 bi < 2

Instance is now UNSAT

slide-25
SLIDE 25

Linear Search for solving MaxSAT 8

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 12

i=1 bi < 2

MaxSAT solution is |ϕ| − |M ∩ B| = 12 − 2 = 10

slide-26
SLIDE 26

Note that ... 9

◮ No initial upper or lower bounds: the first model provides a

first upper bound.

◮ In practice, the objective function can be used to guide the

search

◮ The procedure follows a SAT, SAT, SAT, SAT, ..., UNSAT

pattern with linear search

◮ Binary search is possible but:

◮ SAT answer is usually faster than UNSAT ◮ the solver must be reset in case on unsatisfiability

◮ In lucky case, two calls to the SAT solver are sufficient (one

SAT + one UNSAT).

◮ Used in Sat4j since 2006, was state-of-the-art in 2009 ◮ Main issue: how to represent the bound constraint?

slide-27
SLIDE 27

From Unsat Core computation to MaxSat: MSU

  • Z. Fu and S. Malik, On solving the partial MAX-SAT problem, in International

Conference on Theory and Applications of Satisfiability Testing, August 2006, pp. 252-265.

10

Other SAT-based approaches in practical Max Sat solving rely on unsat core computation [Fu and Malik 2006]:

◮ Compute one unsat core C′ of the formula C ◮ Relax it by replacing C′ by { ri ∨ Ci|Ci ∈ C′} ◮ Add the constraint ri ≤ 1 to C ◮ Repeat until the formula is satisfiable ◮ If MinUnsat(C) = k, requires k + 1 loops.

Many improvement since then (PM1, PM2, MsUncore, etc): works for Weighted Max Sat, reduction of the number of relaxation variables, etc.

slide-28
SLIDE 28

Fu&Malik’s Algorithm: msu1.0 11

x6, x2

¬x6, x2 ¬x2, x1 ¬x1 ¬x6, x8

x6, ¬x8 x2, x4

¬x4, x5

x7, x5

¬x7, x5 ¬x5, x3 ¬x3

Example CNF formula

slide-29
SLIDE 29

Fu&Malik’s Algorithm: msu1.0 11

x6, x2

¬x6, x2 ¬x2, x1 ¬x1 ¬x6, x8

x6, ¬x8 x2, x4

¬x4, x5

x7, x5

¬x7, x5 ¬x5, x3 ¬x3

Formula is UNSAT; Get unsat core

slide-30
SLIDE 30

Fu&Malik’s Algorithm: msu1.0 11

x6, x2

¬x6, x2 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8

x6, ¬x8 x2, x4, b3

¬x4, x5, b4

x7, x5

¬x7, x5 ¬x5, x3, b5 ¬x3, b6 6

i=1 bi ≤ 1

Add blocking variables and AtMost1 constraint

slide-31
SLIDE 31

Fu&Malik’s Algorithm: msu1.0 11

x6, x2

¬x6, x2 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8

x6, ¬x8 x2, x4, b3

¬x4, x5, b4

x7, x5

¬x7, x5 ¬x5, x3, b5 ¬x3, b6 6

i=1 bi ≤ 1

Formula is (again) UNSAT; Get unsat core

slide-32
SLIDE 32

Fu&Malik’s Algorithm: msu1.0 11

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1, b9 ¬x1, b2, b10 ¬x6, x8

x6, ¬x8 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5, b13 ¬x3, b6, b14 6

i=1 bi ≤ 1

14

i=7 bi ≤ 1

Add new blocking variables and AtMost1 constraint

slide-33
SLIDE 33

Fu&Malik’s Algorithm: msu1.0 11

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1, b9 ¬x1, b2, b10 ¬x6, x8

x6, ¬x8 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5, b13 ¬x3, b6, b14 6

i=1 bi ≤ 1

14

i=7 bi ≤ 1

Instance is now SAT

slide-34
SLIDE 34

Fu&Malik’s Algorithm: msu1.0 11

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1, b9 ¬x1, b2, b10 ¬x6, x8

x6, ¬x8 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5, b13 ¬x3, b6, b14 6

i=1 bi ≤ 1

14

i=7 bi ≤ 1

MaxSAT solution is |ϕ| − I = 12 − 2 = 10

slide-35
SLIDE 35

Note that ... 12

◮ Unsat core may not be minimal ◮ Nice property: if k constraints must be relaxed, then the

procedure requires exactly k + 1 calls to the SAT solver.

◮ How to represent the cardinality constraints?

slide-36
SLIDE 36

MaxHS: SAT and MIP solver interplay

Jessica Davies, Fahiem Bacchus: Solving MAXSAT by Solving a Sequence of Simpler SAT

  • Instances. CP 2011: 225-239

13

◮ Core guided MAXSAT solver can be seen as a two step

procedure: ◮ Discover UNSAT cores of the formula ◮ Stop as soon as one minimal Hitting Set of the cores satisfies

the formula

◮ The size of the HS provides the number of constraints to relax ◮ May require to enumerate all MUS of a formula ◮ Or less if lucky

slide-37
SLIDE 37

MaxHS principle 14

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6

Cores = {} HS = ∅

slide-38
SLIDE 38

MaxHS principle 14

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 {{b1, b2, b3, b4, b5, b6}}

HS = {b4}

slide-39
SLIDE 39

MaxHS principle 14

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 {{b1, b2, b3, b4, b5, b6}, {b1, b2, b7, b8}}

HS = {b1}

slide-40
SLIDE 40

MaxHS principle 14

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6 {{b1, b2, b3, b4, b5, b6}, {b1, b2, b7, b8}, {b11, b12, b5, b6}}

HS = {b2, b5}

slide-41
SLIDE 41

MaxHS principle 14

x6, x2, b7

¬x6, x2, b8 ¬x2, x1, b1 ¬x1, b2 ¬x6, x8, b9

x6, ¬x8, b10 x2, x4, b3

¬x4, x5, b4

x7, x5, b11

¬x7, x5, b12 ¬x5, x3, b5 ¬x3, b6

Instance is SAT. MaxSAT solution is 12 − |{b2, b5}| = 10

slide-42
SLIDE 42

3 ways to solve the same [optimization] problem 15

◮ Take advantage of SAT solvers feedback: model or core ◮ No single approach outperforms the others ◮ Core-guided and MaxHS work best currently on "application"

benchmarks (not crafted ones) Linear Search or Core-Guided approaches require encoding cardinality constraints in CNF (or use native support for such constraints as found in Sat4j)

slide-43
SLIDE 43

Hamiltonian Cycle Problem SAT-encoding 16

Let G = (V, A) a digraph where V is a set of n vertices and A is a set of arcs. Let xij be Boolean variables such that xij = 1 ↔ (i, j) ∈ A belongs to a cycle.

  • (i,j)∈A

xij = 1 for each i = 1,. . . ,n (out-degree)

  • (i,j)∈A

xij = 1 for each j = 1,. . . ,n (in-degree)

  • (i,j)∈S

xij ≤ |S| − 1 S ⊂ V, 2 ≤ |S| ≤ n − 2 (connectivity)

◮ in/out-degree constraints ensure that in/out-degrees are

respectively exactly one for each node in solution cycles

◮ connectivity constraints prohibits sub-cycles

Encoding requires O(n3) clauses [Pre03]

slide-44
SLIDE 44

How to solve HCP efficiently with SAT? 17

◮ With only in/out-degree constraints, we have cycles but they

may not be connected (Case A)

◮ With all constraints, we can find a Hamiltonian cycle (Case B)

But the SAT solver may be lucky!

slide-45
SLIDE 45

Incremental SAT-based method with Native Boolean Cardinality Handling for the Hamiltonian Cycle Problem

  • T. Soh, D. Le Berre, S. Roussel, M. Banbara, and N. Tamura, JELIA’14, pages 684–693 18

◮ Do not encode cardinality constraints in CNF (Sat4j) ◮ Ask the SAT solver for a cycle ◮ We can get lucky and find an Hamiltonian Cycle quickly ◮ Else add new clauses to block the sub-cycles (connectivity

constraints generated lazily).

slide-46
SLIDE 46

Incremental SAT-based method with Native Boolean Cardinality Handling for the Hamiltonian Cycle Problem

  • T. Soh, D. Le Berre, S. Roussel, M. Banbara, and N. Tamura, JELIA’14, pages 684–693 18

◮ Do not encode cardinality constraints in CNF (Sat4j) ◮ Ask the SAT solver for a cycle ◮ We can get lucky and find an Hamiltonian Cycle quickly ◮ Else add new clauses to block the sub-cycles (connectivity

constraints generated lazily). This idea of going step by step and refining each step is called: CEGAR: CounterExample Guided Abstraction Refinement

slide-47
SLIDE 47

CounterExample Guided Abstraction Refinement 19

CEGAR: CounterExample Guided Abstraction Refinement

To solve a problem, we may need to consider only a small part of it [CGJ+03]

◮ To abstract problems: hoping it will be easier to solve ◮ Two variants of abstraction:

◮ Under-abstraction: abstraction has more solutions ◮ Over-abstraction: abstraction has less solutions

◮ CEGAR-over: CEGAR approach using over-abstractions ◮ CEGAR-under: CEGAR approach using under-abstractions

slide-48
SLIDE 48

CEGAR using under-abstractions 20

CEGAR-under

ψ ← ˇ φ cegar(φ) check(ψ) UNSAT λ |=? φ ψ ← refine(ψ) SAT unsat sat,λ yes no

Example

Hamiltonian cycle problem

slide-49
SLIDE 49

CEGAR using over-abstractions 21

CEGAR-over

cegar(φ) ψ ← ˆ φ check(ψ) SAT ψ ≡?

sat φ

UNSAT ψ ← refine(ψ) sat unsat yes unk.

Example

Planning problem, by increasing step by step the horizon; Bounded Model Checking

slide-50
SLIDE 50

CounterExample Guided Abstraction Refinement 22

Advantages ◮ If problem mainly satisfiable: CEGAR-over ◮ If problem mainly unsatisfiable: CEGAR-under ◮ When check improves, CEGAR improves ◮ Many applications already use CEGAR Drawbacks ◮ Not efficient when 50/50 chances of being SAT/UNSAT ◮ Not efficient when we need many refinement steps

slide-51
SLIDE 51

Recursive Explore and Check Abstraction Refinement 23

RECAR

recar(φ) ψ ← ˆ φ check(ψ) SAT ψ ← refine(ψ) ψ ≡?

sat φ

UNSAT RC(φ, ˇ φ) recar(ˇ φ) no sat unsat yes unk. yes unsat sat

slide-52
SLIDE 52

Recursive Explore and Check Abstraction Refinement 24

Recursive Explore and Check Abstraction Refinement

◮ Called RECAR [LLdLM17] ◮ Inspired by CEGAR [CGJ+03] ◮ Rely on 5 very important assumptions RECAR Assumptions

  • 1. Function ‘check’ is sound, complete and

terminates

  • 2. isSAT(ˆ

φ) implies isSAT(refine(ˆ φ))

  • 3. ∃.n ∈ N s.t. refinen(ˆ

φ) ≡?

sat φ.

  • 4. isUNSAT(ˇ

φ) implies isUNSAT(φ)

  • 5. ∃n ∈ N s.t. RC(undern(φ), undern+1(φ)) is false.
slide-53
SLIDE 53

Recursive Explore and Check Abstraction Refinement 25

∃n ∈ N s.t. RC(undern(φ), undern+1(φ)) is false. RC function ◮ ‘true’ if we can do a recursive call, ‘false’

  • therwise

◮ It compares underi(φ) and underi+1(φ) ◮ It checks if underi+1(φ) will be “easier to solve”

than underi(φ)

slide-54
SLIDE 54

Recursive Explore and Check Abstraction Refinement 26

RECAR ◮ 2 levels of abstractions

◮ One at the Oracle level (check(ψ)) ◮ One at the Domain level (recursive call)

◮ Efficient even when 50/50 chance of being SAT/UNSAT ◮ When check improves, RECAR improves ◮ The return of the recursive call can reduce the number of

refinements

◮ SAT and UNSAT shortcuts can be inverted if needed ◮ Totally generic, can change SAT solver by QBF/SMT/FO

solver

slide-55
SLIDE 55

RECAR: Instanciation for Modal Logic K 27

RECAR for Modal Logic K ◮ Modal Logic K is PSPACE-complete [Lad77, Hal95] ◮ What is Modal Logic K? ◮ How we over-approximate a formula φ? ◮ How we under-approximate a formula φ? ◮ Is it competitive against a CEGAR approach? ◮ Is it competitive against the state-of-the-art approaches?

slide-56
SLIDE 56

Preliminaries: Modal Logic 28

Modal Logic = Propositional Logic + and

Modal Logic ◮ φ means φ is necessarily true ◮ φ means φ is possibly true

φ ↔ ¬¬φ φ ↔ ¬¬φ

slide-57
SLIDE 57

Preliminaries: Kripke Structure 29

◮ P finite non-empty set of propositional variables Kripke Structure [Kri59]

M = W, R, V with:

◮ W, a non-empty set of possible worlds ◮ R, a binary relation on W ◮ V, a function that associate to each p ∈ P, the set of possible

worlds where p is true Pointed Kripke Structure: K, w

◮ K: Kripke Structure ◮ w: a possible world in W

slide-58
SLIDE 58

Preliminaries: Satisfaction Relation 30

Definition (Satisfaction Relation)

The relation |= between Kripke Structures and formulae is recursively defined as follows:

K, w |= p

iff w ∈ V(p)

K, w |= ¬φ

iff

K, w |= φ K, w |= φ1 ∧ φ2

iff

K, w |= φ1 and K, w |= φ2 K, w |= φ1 ∨ φ2

iff

K, w |= φ1 or K, w |= φ2 K, w |= φ

iff

(w, w′) ∈ R implies K, w′ |= φ K, w |= φ

iff

(w, w′) ∈ R and K, w′ |= φ K that satisfied a formula φ will be called “Kripke model of φ”

slide-59
SLIDE 59

Preliminaries: Example of a Kripke Structure 31

φ1 = ( ) φ2 = ( ) φ3 = ( ∧ ¬ ) φ4 = ( ∨ ∨ ) φ5 = ( ∧ ¬ )

w0 , w1 , w2 w3

Figure: Example K

slide-60
SLIDE 60

Preliminaries: Example of a Kripke Structure 31

φ1 = ( ) φ2 = ( ) φ3 = ( ∧ ¬ ) φ4 = ( ∨ ∨ ) φ5 = ( ∧ ¬ )

w0 , w1 , w2 w3

Figure: Example K

slide-61
SLIDE 61

MoSaiC 32

MoSaiC ◮ Modal Logic K solver ◮ Uses Glucose as internal SAT solver ◮ Uses a RECAR approach

slide-62
SLIDE 62

MoSaiC 32

MoSaiC ◮ Modal Logic K solver ◮ Uses Glucose as internal SAT solver ◮ Uses a RECAR approach RECAR Assumptions: Reminder

1 Function ‘check’ is sound, complete and terminates 2 isSAT(ˆ

φ) implies isSAT(refine(ˆ φ))

3 ∃.n ∈ N s.t. refinen(ˆ

φ) ≡?

sat φ

4 isUNSAT(ˇ

φ) implies isUNSAT(φ)

5 ∃n ∈ N s.t. RC(undern(φ), undern+1(φ)) is false

slide-63
SLIDE 63

MoSaiC: Over-Approximation (CNF level) 33

φ always in NNF and over(φ, i) in CNF using Tseitin’s translation

  • ver(φ, n) = over′(φ, 0, n)
  • ver′(pk, i, n) = pk,i
  • ver′(¬pk, i, n) = ¬pk,i
  • ver′(φ, i, n) =

n

  • j=0

(ri,j → over′(φ, j, n))

  • ver′(φ, i, n) =

n

  • j=0

(ri,j ∧ over′(φ, j, n)) ◮ pk,i means pk is true in the world wi ◮ ri,j means that there is a relation between worlds wi and wj ◮ n is a bound on the number of worlds to consider

slide-64
SLIDE 64

Upper Bound for Modal Logic K 34

◮ Are there known bounds on the number of worlds to consider?

slide-65
SLIDE 65

Upper Bound for Modal Logic K 34

◮ Are there known bounds on the number of worlds to consider? ◮ yes, but quite large: UB(φ) = Atom(φ)depth(φ) [SM97]

where Atom(φ) denotes the number of propositional variables and depth(φ) the modal depth of φ.

slide-66
SLIDE 66

MoSaiC 35

RECAR Assumptions: Reminder

1 Function ‘check’ is sound, complete and terminates 2 isSAT(ˆ

φ) implies isSAT(refine(ˆ φ))

3 ∃.n ∈ N s.t. refinen(ˆ

φ) ≡?

sat φ

4 isUNSAT(ˇ

φ) implies isUNSAT(φ)

5 ∃n ∈ N s.t. RC(undern(φ), undern+1(φ)) is false

slide-67
SLIDE 67

MoSaiC: Under-Approximation (modal logic level) 36

Let’s take an example, with χ huge but satisfiable...

  • p
  • ¬p

χ

Worst case for CEGAR using our ‘over’ function

slide-68
SLIDE 68

MoSaiC: Under-Approximation (modal logic level) 37

∧ ∨ ¬s1

  • p

∨ ¬s2

  • ¬p

∨ ¬s3 χ

Modern SAT solvers returns ‘the reason’ why a formula with n worlds is unsatisfiable (core = {s1, s2})

slide-69
SLIDE 69

MoSaiC: Under-Approximation (modal logic level) 38

We want to cut what is not part of the ‘unsatisfiability’ (si core)

∧ ∨ ¬s1

  • p

∨ ¬s2

  • ¬p

We just create ˇ

φ smaller than φ and easier to solve.

The function RC from RECAR just says here: did we cut something ?

slide-70
SLIDE 70

MoSaiC: Under-Approximation (modal logic level) 39

under(p, core) = p under(¬p, core) = ¬p under(φ, core) = (under(φ, core)) under(φ, core) = (under(φ, core)) under((φ ∧ ψ), core) = under(φ, core) ∧ under(ψ, core) under((ψ ∨ χ), core) =                    under(χ, core)

if ψ = ¬si, si ∈ core

if ψ = ¬si, si core

(under(ψ, core) ∨ under(χ, core))

  • therwise

the unsatisfiable-core obtained from the solver drives the under-approximation

slide-71
SLIDE 71

Behavior of RC predicate 40

◮ RC returns true iff the unsat core is strictly smaller than the

input formula

◮ eventually the inconsistency will become global ◮ thus the predicate will return false

slide-72
SLIDE 72

MoSaiC 41

RECAR Assumptions: Reminder

1 Function ‘check’ is sound, complete and terminates 2 isSAT(ˆ

φ) implies isSAT(refine(ˆ φ))

3 ∃.n ∈ N s.t. refinen(ˆ

φ) ≡?

sat φ

4 isUNSAT(ˇ

φ) implies isUNSAT(φ)

5 ∃n ∈ N s.t. RC(undern(φ), undern+1(φ)) is false

slide-73
SLIDE 73

MoSaiC: RECAR for Modal Logic K 42

MoSaiC(φ) n ← 1 ψ ← over(φ, n) glucose(ψ) SAT ψ ← over(φ, n) n > UB(φ) UNSAT ˇ φ ← under(φ, core) ˇ φ = φ n ← n + 1 | MoSaiC(ˇ φ) n ← max(|M|, n + 1) sat unsat yes no yes no unsat sat

slide-74
SLIDE 74

MoSaiC: RECAR for Modal Logic K 43

slide-75
SLIDE 75

MoSaiC: RECAR for Modal Logic K 44

slide-76
SLIDE 76

Explanation of the Cactus-Plot 45

slide-77
SLIDE 77

Some tweaks improve the results 46

slide-78
SLIDE 78

Take home message for RECAR 47

RECAR

◮ New generic approach to solve problems using decision

procedures

◮ Based on two levels of abstraction:

◮ Decision procedure level as in CEGAR ◮ Domain level for the recursive call

◮ Guided by the decision procedure ◮ Application to modal logic K satisfiability problem in MoSaiC

Current limitations:

◮ Both domain and decision procedure expertise needed to

design the abstractions

◮ Upper bound for modal logic K is quite large ◮ MoSaiC required tweaks to be efficient in practice

slide-79
SLIDE 79

General conclusion 48

◮ SAT solvers are not just SAT oracles (yes/no answers)

◮ they provide models in case of satisfiability ◮ they provide unsat core in case of unsatisfiability ◮ they work “under assumption"

◮ SAT-based algorithm design must use the solver feedback ◮ The solver should "drive" the algorithm

slide-80
SLIDE 80

From satisfaction to optimization, and beyond

SAT-based guided problem solving Daniel Le Berre

joint work with Mutsunori Banbara, Tiago de Lima, Jean-Marie Lagniez, Valentin Montmirail, Stéphanie Roussel, Naoyuki Tamura, Takehide Soh

CNRS, Université d’Artois, FRANCE {leberre}@cril.univ-artois.fr

SAT+SMT school, IIT Bombay, India, 10 December 2019

slide-81
SLIDE 81

Bibliography I 2

Edmund M. Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. Counterexample-guided abstraction refinement for symbolic model checking. Journal of the ACM, 50(5):752–794, 2003. Joseph Y. Halpern. The Effect of Bounding the Number of Primitive Propositions and the Depth of Nesting on the Complexity of Modal Logic. Artificial Intelligence, 75(2):361–372, 1995. Saul Kripke. A completeness theorem in modal logic.

  • J. Symb. Log., 24(1):1–14, 1959.
slide-82
SLIDE 82

Bibliography II 3

Richard E. Ladner. The Computational Complexity of Provability in Systems of Modal Propositional Logic. SIAM J. Comput., 6(3):467–480, 1977. Jean-Marie Lagniez, Daniel Le Berre, Tiago de Lima, and Valentin Montmirail. A Recursive Shortcut for CEGAR: Application To The Modal Logic K Satisfiability Problem. In Proc. of IJCAI’17, 2017. Steven David Prestwich. SAT problems with chains of dependent variables. Discrete Applied Mathematics, 130(2):329–350, 2003.

slide-83
SLIDE 83

Bibliography III 4

Roberto Sebastiani and David McAllester. New Upper Bounds for Satisfiability in Modal Logics the Case-study of Modal K. Technical Report 9710-15, IRST, Trento, Italy, October 1997.