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)