Encodings into SAT Combinatorial Problem Solving (CPS) Enric Rodr - - PowerPoint PPT Presentation

▶
encodings into sat
SMART_READER_LITE
LIVE PREVIEW

Encodings into SAT Combinatorial Problem Solving (CPS) Enric Rodr - - PowerPoint PPT Presentation

Encodings into SAT Combinatorial Problem Solving (CPS) Enric Rodr guez-Carbonell May 29, 2020 What is an encoding? Language of SAT solvers: CNF propositional formulas To solve combinatorial problems with SAT solvers,


slide-1
SLIDE 1

Encodings into SAT

Combinatorial Problem Solving (CPS)

Enric Rodr´ ıguez-Carbonell

May 29, 2020

slide-2
SLIDE 2

What is an encoding?

2 / 23

■

Language of SAT solvers: CNF propositional formulas

■

To solve combinatorial problems with SAT solvers, constraints have to be represented in this language

■

An encoding of a constraint C into SAT is a CNF F that expresses C, so that there is a bijection solutions to C ⇐ ⇒ models of F

slide-3
SLIDE 3

Examples: AMO constraints

3 / 23

■

An AMO constraint is of the form x0 + . . . + xn−1 ≤ 1 where each xi is 0-1 (At Most One of the variables can be true)

■

Quadratic encoding.

◆

Variables: the same x0, . . . , xn−1

◆

Clauses: for 0 ≤ i < j < n, xi ∨ xj

◆

Requires n

2

  • = O(n2) clauses

■

Other encodings try to use fewer clauses, at the cost of introducing new variables

slide-4
SLIDE 4

Examples: AMO constraints

4 / 23

■

Logarithmic encoding. Let m = ⌈log2 n⌉. Then:

◆

Variables: the xi and new variables y0, y1, . . . , ym−1

◆

Clauses: for 0 ≤ i < n, 0 ≤ j < m

■

xi ∨ yj if the j-th digit in binary of i is 1

■

xi ∨ yj otherwise

◆

Requires O(log n) new variables, O(n log n) clauses

■

Heule encoding.

◆

If n ≤ 3, the encoding is the quadratic encoding.

◆

If n ≥ 4, introduce an auxiliary variable y and encode (recursively) x0 + x1 + y ≤ 1 and x2 + · · · + xn−1 + y ≤ 1.

◆

Requires O(n) new variables, O(n) clauses

■

Other encodings exist (see next)

slide-5
SLIDE 5

Consistency and Arc-Consistency

5 / 23

■

Let us consider an encoding of a constraint C such that there is a correspondence between maps of the variables of C to their domains, and partial assignments of the boolean variables of the encoding

■

The encoding is consistent if whenever M is not compatible with any solution to C, unit propagation on the boolean assignment of M leads to a conflict

■

The encoding is arc-consistent if

◆

it is consistent, and

◆

unit propagation discards arc-inconsistent values (i.e., values without a support)

■

These are good properties for encodings: SAT solvers are very good at unit propagation!

slide-6
SLIDE 6

Consistency and Arc-Consistency

6 / 23

■

In the case of an AMO constraint x0 + . . . + xn−1 ≤ 1:

■

Consistency ≡ if there are two true vars xi in M or more, then unit propagation should give a conflict

■

Arc-consistency ≡ Consistency + if there is one true var xi in M, then unit propagation should set all others xj to false

■

The quadratic, logarithmic and Heule encodings are all arc-consistent

slide-7
SLIDE 7

Cardinality Constraints

7 / 23

■

A cardinality constraint is of the form x1 + . . . + xn ⊲ ⊳ k where each xi is 0-1 and ⊲ ⊳ ∈ {≤, <, ≥, >, =}

■

AMO are a particular case of card. constraints where k = 1 and ⊲ ⊳ is ≤

■

Without loss of generality we may assume ⊲ ⊳ is <, i.e., x1 + . . . + xn < k

■

Naive encoding.

◆

Variables: the same x1, . . . , xn

◆

Clauses: for all 1 ≤ i1 < i2 < . . . < ik ≤ n, xi1 ∨ xi2 ∨ . . . ∨ xik

◆

This is n

k

  • clauses!
slide-8
SLIDE 8

Adders

8 / 23

■

Again, other encodings try to use fewer clauses, at the cost of introducing new variables

■

Adder encoding. Build an adder circuit by using bit-adders as building blocks:

Full Adder

x y z s c s ↔ XOR(x, y, z) c ↔ (x ∧ y) ∨ (x ∧ z) ∨ (y ∧ z) where XOR(x, y, z) is short for (x ∧ y ∧ z) ∨ (x ∧ y ∧ z) ∨ (x ∧ y ∧ z) ∨ (x ∧ y ∧ z)

slide-9
SLIDE 9

Adders

9 / 23

■

Encodings of this kind are not arc-consistent.

■

Consider x + y + z ≤ 0. Then unit propagation should propagate x, y, z.

■

Let us encode the constraint with a full adder

■

The encoding is the Tseitin transformation of s, c and s ↔ XOR(x, y, z) c ↔ (x ∧ y) ∨ (x ∧ z) ∨ (y ∧ z)

■

Note that s → (x ∨ y ∨ z) ∧ (x ∨ y ∨ z) ∧ (x ∨ y ∨ z) ∧ (x ∨ y ∨ z) c → (x ∨ y) ∧ (x ∨ z) ∧ (y ∨ z)

■

Unit propagation cannot propagate anything!

slide-10
SLIDE 10

Sorting Networks

10 / 23

■

Sorting Network encoding. Pass x1, . . . , xn as inputs to a circuit that sorts (say, decreasingly) n bits. Let y1, . . . , yn be the outputs of this circuit. Then if the constraint to be encoded is

◆

n

i=1 xi ≥ k, then add clause yk

◆

n

i=1 xi ≤ k, then add clause yk+1

◆

n

i=1 xi = k, then add clauses yk, yk+1

slide-11
SLIDE 11

Sorting Networks

11 / 23

■

How to build such a sorting circuit?

■

A possibility is to implement mergesort

■

In what follows: so-called odd-even sorting networks

■

The basic block of odd-even sorting networks are 2-comparators

slide-12
SLIDE 12

2-comparators

12 / 23

■

A 2-comparator is a sorting network of size 2:

◆

it has 2 input variables (x1 and x2)

◆

it has 2 output variables (y1 and y2)

◆

y1 is true if and only if at least one of the input variables is true (i.e., it is the maximum or disjunction)

◆

y2 is true if and only if both two input variables are true (i.e., it is the minimum or conjunction)

slide-13
SLIDE 13

2-comparators

13 / 23

■

Clauses: x1 ← y2, x2 ← y2, x1 ∨ x2 ← y1, x1 → y1, x2 → y1, x1 ∧ x2 → y2

■

Graphical representation: x1 x2 y1 y2

■

Some simplifications are possible:

◆

For ≥ constraints: top three clauses suffice

◆

For ≤ constraints: bottom three clauses suffice

◆

For = constraints: all clauses needed

slide-14
SLIDE 14

2-comparators

13 / 23

■

Clauses: x1 ← y2, x2 ← y2, x1 ∨ x2 ← y1, x1 ← y1, x2 ← y1, x1 ∨ x2 ← y2

■

Graphical representation: x1 x2 y1 y2

■

Some simplifications are possible:

◆

For ≥ constraints: top three clauses suffice

◆

For ≤ constraints: bottom three clauses suffice

◆

For = constraints: all clauses needed

slide-15
SLIDE 15

Merge Networks

14 / 23

■

From now on we assume that n is a power of two (if not, pad with variables set to false)

■

A merge network takes as input two ordered sets of variables of size n and produces an ordered output of size 2n.

■

Let (x1, . . . , xn) and (x′

1, . . . , x′ n) be the inputs.

We recursively define a merge network as follows:

■

If n = 1, a merge network is a 2-comparator: Merge(x1; x′

1) := 2-Comp(x1, x′ 1).

slide-16
SLIDE 16

Merge Networks

15 / 23

■

For n > 1: Let us define (z1, z3, . . . , z2n−1) = Merge(x1, x3, . . . , xn−1; x′

1, x′ 3, . . . x′ n−1),

(z2, z4, . . . , z2n) = Merge(x2, x4, . . . , xn; x′

2, x′ 4, . . . , x′ n),

(y2, y3) = 2-Comp(z2, z3), (y4, y5) = 2-Comp(z4, z5), . . . (y2n−2, y2n−1) = 2-Comp(z2n−2, z2n−1) Then, Merge(x1, x2, . . . , xn; x′

1, x′ 2, . . . , x′ n) := (z1, y2, y3, . . . , y2n−1, z2n)

slide-17
SLIDE 17

Merge Networks

16 / 23

x′

4

x′

3

x′

2

x′

1

x4 x3 x2 x1 z8 z8 z7 z6 z5 z4 z3 z2 z1 z1 y7 y6 y5 y4 y3 y2 Mergen=2 Mergen=2

slide-18
SLIDE 18

Merge Networks

17 / 23

Sketch of the proof of correctness of Merge: By IH: {x1, x3, . . . , xn−1, x′

1, x′ 3, . . . , x′ n−1} = {z1, z3, . . . , z2n−1}

By IH: {x2, x4, . . . , xn, x′

2, x′ 4, . . . , x′ n}

= {z2, z4, . . . , z2n} Hence {x1, x2, . . . , xn, x′

1, x′ 2, . . . , x′ n}

= {z1, z2, . . . , z2n} And (y2, y3) = 2-Comp(z2, z3) implies {y2, y3} = {z2, z3} (y4, y5) = 2-Comp(z4, z5) implies {y4, y5} = {z4, z5} . . . (y2n−2, y2n−1) = 2-Comp(z2n−2, z2n−1) implies {y2n−2, y2n−1} = {z2n−2, z2n−1} So {x1, x2, . . . , xn, x′

1, x′ 2, . . . , x′ n} = {z1, y2, y3, . . . , y2n−2, y2n−1, z2n}

slide-19
SLIDE 19

Merge Networks

18 / 23

Let us prove outputs are sorted decreasingly. For 1 ≤ i < n − 1 let us see:

■

z2i ≥ z2(i+1)+1: Let us see z2(i+1)+1 = 1 implies z2i = 1 If z2(i+1)+1 = z2i+3 = z2(i+2)−1 = 1 there are i + 2 1’s in odd x, x′ Let p be the number of 1’s in odd x Let q the number of 1’s in odd x′ Then p + q = i + 2 As x, x′ is ordered decreasingly, there are p − 1 1’s in even x, q − 1 1’s in even x′ So altogether there are (p − 1) + (q − 1) = p + q − 2 = i 1’s in even x, x′ Hence z2i = 1

slide-20
SLIDE 20

Merge Networks

18 / 23

Let us prove outputs are sorted decreasingly. For 1 ≤ i < n − 1 let us see:

■

z2i ≥ z2(i+1)+1: proved

slide-21
SLIDE 21

Merge Networks

18 / 23

Let us prove outputs are sorted decreasingly. For 1 ≤ i < n − 1 let us see:

■

z2i ≥ z2(i+1)+1: proved

■

z2i ≥ z2(i+1): by IH

slide-22
SLIDE 22

Merge Networks

18 / 23

Let us prove outputs are sorted decreasingly. For 1 ≤ i < n − 1 let us see:

■

z2i ≥ z2(i+1)+1: proved

■

z2i ≥ z2(i+1): by IH

■

z2i+1 ≥ z2(i+1)+1: by IH

slide-23
SLIDE 23

Merge Networks

18 / 23

Let us prove outputs are sorted decreasingly. For 1 ≤ i < n − 1 let us see:

■

z2i ≥ z2(i+1)+1: proved

■

z2i ≥ z2(i+1): by IH

■

z2i+1 ≥ z2(i+1)+1: by IH

■

z2i+1 ≥ z2(i+1): similar to above So min(z2i, z2i+1) ≥ max(z2(i+1), z2(i+1)+1) But y2i+1 = min(z2i, z2i+1) and y2(i+1) = max(z2(i+1), z2(i+1)+1) So y2i+1 ≥ y2(i+1) And y2i ≥ y2i+1 for being outputs of 2-Comp Altogether z1, y2, y3, . . . , y2n−2, y2n−1, z2n is sorted decreasingly

slide-24
SLIDE 24

Sorting Networks

19 / 23

■

A sorting network of size n takes an input of size n and sorts it (decreasingly).

■

We can build a sorting network by successively applying merge networks (as in mergesort).

■

Let x1, . . . , xn be the inputs. We recursively define a sorting network as follows:

■

If n = 2, a sorting network is a 2-comparator: Sorting(x1, x2) := 2-Comp(x1, x2)

slide-25
SLIDE 25

Sorting Networks

20 / 23

■

For n > 2: Let us define (z1, z2, . . . , zn/2) = Sorting(x1, x2, . . . , xn/2), (zn/2+1, zn/2+2, . . . , zn) = Sorting(xn/2+1, xn/2+2, . . . , xn), (y1, y2, . . . , yn) = Merge(z1, z2, . . . , zn/2; zn/2+1 . . . , zn) Then, Sorting(x1, x2, . . . , xn) := (y1, y2, . . . , yn)

slide-26
SLIDE 26

Sorting Networks

21 / 23

x8 x7 x6 x5 x4 x3 x2 x1 z8 z7 z6 z5 z4 z3 z2 z1 y7 y6 y5 y4 y3 y2 y8 y1 SNn=4 SNn=4 Mergen=4

slide-27
SLIDE 27

Sorting Networks

22 / 23

■

This encoding of cardinality constraints is arc-consistent

■

It uses O(n log2 n) new variables and O(n log2 n) clauses

■

Several improvements are possible:

◆

Only the first k outputs suffice: cardinality networks use O(n log2 k) vars and clauses

◆

No need to assume that n is a power of two: merges can be defined for inputs of different sizes

slide-28
SLIDE 28

Bibliography

23 / 23

■

  • N. E´

en, N. S¨

  • rensson: Translating Pseudo-Boolean Constraints into SAT.

JSAT 2(1-4): 1-26 (2006)

■

  • R. As´

ın, R. Nieuwenhuis, A. Oliveras, E. Rodr´ ıguez-Carbonell: Cardinality Networks: a theoretical and empirical study. Constraints 16(2): 195-221 (2011)

■

  • I. Ab´

ıo, R. Nieuwenhuis, A. Oliveras, E. Rodr´ ıguez-Carbonell: A Parametric Approach for Smaller and Better Encodings of Cardinality

  • Constraints. Principles and Practice of Constraint Programming, 2013

■

  • I. Ab´

ıo: Solving hard industrial combinatorial problems with SAT. PhD Thesis (2013)