compiling finite domain constraints to sat with boolean equi -propagation

44
Compiling Finite Domain Constraints to SAT with Boolean Equi- Propagation Amit Metodi

Upload: olympe

Post on 24-Feb-2016

64 views

Category:

Documents


0 download

DESCRIPTION

Compiling Finite Domain Constraints to SAT with Boolean Equi -Propagation. Amit Metodi. Outline. Amit Metodi Michael Codish Vitaly Lagoon Peter J. Stuckey ; CP 2011. Boolean Equi -propagation for Optimized SAT Encoding Compiling Finite Domain Constraints to SAT with BEE - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Compiling Finite DomainConstraints to SAT with

Boolean Equi-Propagation

Amit Metodi

Page 2: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

OUTLINE Boolean Equi-propagation

for Optimized SAT Encoding Compiling Finite Domain

Constraints to SAT with BEE Encoding process Design choices

Compiling Model-Based Diagnosisto Boolean Satisfaction using BEE

Amit MetodiMichael CodishVitaly LagoonPeter J. Stuckey; CP 2011

Amit MetodiMichael Codish; TPLP 2012

Amit MetodiRoni SternMeir KalechMichael Codish; AAAI 2012

Page 3: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Problem(hard)

Solution

CNF

Satisfied assignment

Encoding

FINITE DOMAIN PROBLEM SOLVING

Model ConstraintModel

Dire

ct

CS

P s

olvi

ng

ModelSolutionTranslate Decoding

SAT

sol

ving

Page 4: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

CNF

Constraint ModelC1 C2 C3 Cnen

code

enco

de

enco

de

enco

de

Sim

plifyTools such as: SatELite, ReVivAl

Based on Unit Propagationand Resolution.

Problems:• Constraint / Bits

relation lost• Large CNF

CNF CNF CNF CNF

THE USUAL APPROACH

Simplified CNF

Page 5: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Simplified CNF

Constraint ModelC1 C2 C3 Cnen

code

enco

de

enco

de

enco

de

CNF CNF CNF CNF

OUR APPROACH

simplification propagation

Page 6: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC1 C2 C3en

code

enco

de

enco

de

THE EQUI-PROPAGATION PROCESS

Equi-propagation is a process of inferring equational consequences from a Boolean formula andgiven equational information.

of the form X=L where Lis a constant or a literal:X=Y, X= -Y, X=0, X=1

such X can be removed fromALL

Boolean formulas / constraints.

Cn

CNF CNF CNF

Page 7: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Ben-Gurion-UniversityEqui-propagationEncoder

CNFEncodingConstraintModel

Equi-propagation Partial evaluation

view each single constraint as a Boolean formula

Page 8: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

CNF CNF CNF CNF

BEE PROCESS – BY EXAMPLE

Constraint ModelC1 C2 C3 Cn

enco

de

enco

de

enco

de

enco

debool_array_sum_eq( [ A,B,C,D,E,F,G],3)

Step 1: Encode each constraint

Page 9: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC1 C2 C3 Cn

enco

de

BEE PROCESS – BY EXAMPLE

enco

de

enco

de

enco

debool_array_sum_eq( [ A,B,C,D,E,F,G],3)

A=1, D= -E

CNF CNF CNF CNF

Step 2: Apply Equi-Propagation

Page 10: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC3

bool_array_sum_eq( [ A,B,C,D,E,F,G],3)

C1 C2 Cn

enco

de

BEE PROCESS – BY EXAMPLE

upda

te

enco

de

upda

te

enco

de

upda

te

enco

de

upda

tebool_array_sum_eq( [ A,B,C,D,E,F,G],3)bool_array_sum_eq( [ 1,B,C,-E,E,F,G],3)

A=1, D= -E

CNF CNF CNF CNF

Step 3: Update the Constraints Model

Page 11: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC1 C2 C3 Cn

enco

de

BEE PROCESS – BY EXAMPLE

upda

te

enco

de

upda

te

enco

de

upda

te

enco

de

upda

tebool_array_sum_eq( [ A,B,C,D,E,F,G],3)bool_array_sum_eq( [ 1,B,C,-E,E,F,G],3)bool_array_sum_eq( [ B,C, F,G],1)

A=1, D= -E

CNF CNF CNF CNF

Step 4: Apply Partial Evaluation

Page 12: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC1 C2 C3 Cn

enco

de

BEE PROCESS – BY EXAMPLE

upda

te

enco

de

upda

te

enco

de

upda

te

enco

de

upda

tebool_array_sum_eq( [ A,B,C,D,E,F,G],3)bool_array_sum_eq( [ 1,B,C,-E,E,F,G],3)bool_array_sum_eq( [ B,C, F,G],1)

A=1, D= -E

CNF CNF CNF’ CNF

Step 5: Encode with a better encoding

Page 13: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Constraint ModelC1 C2 C3 Cn

enco

de

BEE PROCESS – BY EXAMPLE

upda

te

enco

de

upda

te

enco

de

upda

te

enco

de

upda

tebool_array_sum_eq( [ A,B,C,D,E,F,G],3)bool_array_sum_eq( [ 1,B,C,-E,E,F,G],3)bool_array_sum_eq( [ B,C, F,G],1)CNF CNF CNF’ CNF

Step 6: Merge the optimized CNF

Optimized CNF

mer

ge

mer

ge

mer

ge

mer

ge

Page 14: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Ben-Gurion-UniversityEqui-propagationEncoder

THE DESIGN CHOICESRepresenting numbersImplementing Equi-Propagation

Page 15: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

MODELING FINITE DOMAIN CSPrepresenting numbers (integers)

BinaryNumber X with a domain {0,1,2, …, d} will be represented using b= Boolean variables [ x1,x2,…xb]

Number X = k ↔ = k

UnaryNumber X with a domain {0,1,2, …, d} will be represented using n= Boolean variables.

Order encodingxi ↔ (X ≥ i)

(X = 3) = [1,1,1,0,0]

Direct encodingxi ↔ (X = i)

(X = 3) = [0,0,0,1,0,0]

SMALL

Page 16: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

IMPLEMENTING EQUI-PROPAGATION

1. Using BDD’s. • Prohibitive for global constraints.• Complete

2. Using SAT (on small groups of constraints)• In practice, surprisingly, “not slow”• Complete

3. Ad-Hoc rules (per constraint type)• Fast, precise in practice• Incomplete

Page 17: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

AD-HOC RULES Equi-Propagation

Partial Evaluation

int_plus(<1,x2,x3>,<y1,y2,y3>,<z1,z2,z3,0,0,0>)

int_plus(<1,x2,x3>,<y1,y2,y3>,<1,z2,z3,0,0,0>)int_plus(<1,x2,x3>,<y1,y2,0>,<1,z2,z3,0,0,0>)

Example:

int_plus(<1,x2,x3>,<y1,y2,0>,<1,z2,z3,0,0,0>)Example:

int_plus(<x2,x3>,<y1,y2,0>,<z2,z3,0,0,0>)int_plus(<x2,x3>,<y1,y2>,<z2,z3,0,0>)

Page 18: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

THE IMPACT OF BEE

909 clauses136 Bits

298 clauses49 Bits

Page 19: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Kakuro

QCP / Sudoku

BIBD

Nonograms

Ben-Gurion-University Equi-propagation Encoder

Graph Crossing

N-Queens

Magic Square

MAS

SCM / MCM

Model BasedDiagnostic

Proteinfolding

Page 20: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Model-Based Diagnosis

Page 21: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

MODEL BASED DIAGNOSIS An important problem which researched by

many researches. There is standard benchmarks.

Encoding to SAT is straightforward But previous attempts concluded that SAT

isn’t competitive with other tools. We show that by using BEE, not only SAT is

able to compete with other tools, it is faster. We solve the entire benchmark

for the first time.

Page 22: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1SymptomDiagnoses:

ABC

D

E

Z1

Z2

Z3

1

0

Observation

001

Full Adder

MODEL BASED DIAGNOSIS

0

00

System (model)0

Page 23: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

Diagnoses:

ABC

D

E

Z1

Z2

Z3

Full Adder

min min-cardinality

1

0

001

MODEL BASED DIAGNOSIS

We focus on minimal cardinality diagnosis of Boolean Circuits, given a single observation.

Page 24: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

H-H

purple means “encapsulated with a health

variable”

MODELING MBD:THE WEAK FAULT MODEL

(we can assume that) a faulty component flips its output.

Introduce “health variables”:

Page 25: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

minimize

1

0

ABC

D

E

X1X2

A2

A1O1

Z1

Z2

Z3

001

Full Adder

H1H2

H3

H4

H5

sum( [ -H1, -H2, -H3, -H4, -H5 ] ) ≤ K

MODELING MBD:INTRODUCE HEALTH VARIABLES

Modeling as CSP where the constraints are:1. components (logic gates)2. sum of bits / comparison

Page 26: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

minimize

sum( [ -H1, -H2, -H3, -H4, -H5 ] ) ≤ 1Modeling as CSP where the constraints are:1. components (logic gates)2. sum of bits / comparison

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5green means “healthy”

MODELING MBD:INTRODUCE HEALTH VARIABLES

Page 27: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

Z1

Z2

Z3

001

Full Adder

H1H2

H3

H4

H5

H-H

10

1

001

0-H

gray means "melted”

Z

partial evaluation

SIMPLIFYING THE ENCODINGequi-

propagationZ=-H

H1

-H3

Page 28: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

vanillasimplified330 components60 x 26 (input/output)1182 observationsTimeout 180sec

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 260.01

0.1

1

10

100

1000

c880 - Average time to find MC di-agnosis

Minimal Cardinality

Avg

Tim

e in

Sec

onds

Page 29: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

MBD TO SATWe can go “just so far” (and not very);

We can not “push” the inputs through the circuit because of the health variables.

What can we do ? Better modeling Better preprocessing

Page 30: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

ABC

D

E

Z1

Z2

Z3

Full Adder

dominator

BETTER MODELING: CONESDef: gate G dominates gate X, if any path from

X to a system output passes through G

Def: the cone corresponding to gate G is the set of gates dominated by G

Page 31: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

BETTER MODELING: CONESthese prune the search space

break a symmetry

claim: A minimal cardinality diagnosis willalways indicate at most one unhealthygate per cone. We can assume w.l.o.g.that this gate is the dominator.

(or: in the search for a single minimalcardinality diagnosis, all dominated gates may be assumed healthy)

Page 32: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

Z3

001

Full Adder

H1H2

H3

H4

H5

sum( [ -H1, -H2, -H3, -H4, -H5 ] ) ≤ K

H1

-H3

a cone

THE IMPACT OF CONES

Page 33: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

Z3

001

Full Adder

H1H2

H3

H4

H5

H1

0

sum( [ -H1, -H2, 0, 0, -H5 ] ) ≤ K

green means “healthy”

gray means "melted”

THE IMPACT OF CONES

Page 34: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5

H1

0

H

1H1

H1

sum( [ -H1, -H2, -H5 ] ) ≤ K

THE IMPACT OF CONES

Page 35: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

sum( [ -H1, -H2, H1 ] ) ≤ K

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5

H1

0

H1=-H5H1

THE IMPACT OF CONES

Page 36: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5

sum( [ -H1, -H1, H1 ] ) ≤ K

H1

0

H1=-H5

H1=H2

THE IMPACT OF CONES

Page 37: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5

sum( [ -H1, -H1, H1 ] ) ≤ K

H1

0

H1=-H5

H1=H2

minimize K H1 =1

THE IMPACT OF CONES

Page 38: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

1

0

ABC

D

E

X1X2

A2

A1O1

001

Full Adder

H1H2

H3

H4

H5

No SAT solving;Diagnostics (min-cardinality) found by:

preprocessing(cones)partial evaluationequi-propagation

THE IMPACT OF CONES

Page 39: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

vanillasimplifiedcones

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 260.01

0.1

1

10

100

1000

c880 - Average time to find MC Diagnosis

Minimal Cardinality

Avg

Tim

e in

Sec

onds

Page 40: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

SystemsName |C| |IN| |OUT| Obsrs

74181 65 14 8 350

74182 19 9 5 250

74283 36 9 5 202

c432 160 36 7 301c499 202 41 32 835

c880 383 60 26 1182c1355 546 41 32 836

c1908 880 33 25 846

c2670 1193 233 140 1162c3540 1669 50 22 756c5315 2307 178 123 2038c6288 2416 32 32 404c7552 3512 207 108 1557

There are standard benchmarks for finding a minimal cardinality diagnosis of Boolean Circuits, given a single observation.

BENCHMARKS

Page 41: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

System HA* CDA* SAFARI SAT

Name%Succ

. Time %Succ. Time %Succ. Time %Succ. Time74181 68.3 3.15 46.3 4.51 100.0( 44) 0.00 100.0 0.0274182 100.0 0.00 100.0 0.01 100.0( 91) 0.00 100.0 0.0174283 100.0 0.04 100.0 1.45 100.0( 57) 0.00 100.0 0.02c432 78.1 3.63 38.2 5.15 100.0( 28) 0.03 100.0 0.03c499 24.1 5.45 10.1 1.22 100.0( 7) 0.05 100.0 0.04c880 11.9 3.76 6.3 6.66 100.0( 48) 0.18 100.0 0.05

c1355 11.4 3.90 0.0 - 100.0( 5) 0.37 100.0 0.07c1908 6.4 1.75 0.0 - 100.0( 17) 1.08 100.0 0.14c2670 12.3 4.83 0.0 - 100.0( 14) 2.71 100.0 0.15c3540 3.7 4.30 0.0 - 100.0( 9) 5.25 100.0 0.27c5315 2.7 11.94 0.0 - 100.0( 9) 13.34 100.0 0.42c6288 13.6 7.87 0.0 - 53.5( 25) 16.18 100.0 0.56c7552 4.2 1.06 0.0 - 0.0 - 99.3 1.07

Average time (sec) on those that do not t/o

30 seconds timeoutEXPERIMENTS

Page 42: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

CONCLUSIONS Equi-Propagation process apply powerful reasoning

techniques to separate parts of the model and maintain efficient preprocessing.

BEE encodes finite domain constraints to CNF uses ad-hoc equi-propagation and partial evaluation rules which keeps compilation times typically small. And the reduction in SAT solving time can be larger in orders of magnitude.

By using BEE the user may focus on better modeling which will result better preprocessing and faster solving time. (MBD as an example)

Page 43: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

FUTURE WORK Other number representations

Binary, Mix Radix, RNS, and more… Partition for Complete Equi-Propagation. Additional applications to Model Based

Diagnosis.

Page 44: Compiling Finite Domain Constraints to SAT with Boolean  Equi -Propagation

QUESTIONS ?