building structure into local search for sat 1 chris reeson advanced constraint processing fall 2009...

Post on 19-Dec-2015

213 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Building Structure into Local Search for SAT

1

Chris Reeson Advanced Constraint Processing

Fall 2009

By Duc Nghia Pham, John Thornton, and Abdul Sattar, IJCAI 2007

Focus on How It Works

2

Outline

• Background– SAT & Local Search

• Building blocks– Modeling Structure in SAT with Logic Gates– Variables: Independent, Internal, External– Dependency Lattice

• Solving Structured SAT w/ Local Search– Computing costs with variables sets

• Conclusion

3

SAT• Given a SAT sentence (in CNF= conjunction of clauses)• Find an assignment to the Boolean variables that satisfies each

clause.

(a b c) (a b) (a c) clause variable

a b c a b c a b a c (a b c) (a b) (a c)0 0 0 1 1 1 10 0 1 1 1 0 00 1 0 1 0 1 00 1 1 1 0 0 01 0 0 0 1 1 01 0 1 1 1 1 11 1 0 1 1 1 11 1 1 1 1 1 1

4

Quick Review of Local Search• Process

1. Start from a random state (complete assignment of values to variables)

2. Evaluate quality of state3. Explore neighborhood4. Move to a neighbor5. Goto 1 unless you’ve reached

• desired solution quality• max # of iterations• time limit

• Restart process to your heart’s content• Two types of moves

– Improvement– Random

States

Stat

e Q

ualit

y

5

Outline

• Background– SAT & Local Search

• Building blocks– Modeling Structure in SAT with Logic Gates– Variables: Independent, Internal, External– Dependency Lattice

• Solving Structured SAT w/ Local Search– Computing costs with variables sets

• Conclusion

6

Idea: Structure in SAT

• The variables are partitioned into – Independent variables– Dependent variables– External variables

• A solution is determined – By the assignment of only the

independent variables– Such as all external variables

evaluate to 1• Advantage: smaller problem,

quicker convergence 2 |Indpdt vars|

0 0 01

1 1 1

0

01 1

1

7

Logic Gates & Dependencies

• Dependencies between variables are modeled by logic gates

• Four types of logic gates are used: OR, AND, XOR, EQUIV

• Transformation of SAT problem– Cost of transformation?– # & size of alternative

transformations?– For details, read [Ostrowski

+ CP02]

OR

AND

XOR

EQUIV(XNOR)

8

OR Gate

(a b c) (a b) (a c)is equivalent to

(b c a) (bc a)

bc

a a = (b,c)

a b c a b c a b a c (a b c) (a b) (a c)0 0 0 1 1 1 10 0 1 1 1 0 00 1 0 1 0 1 00 1 1 1 0 0 01 0 0 0 1 1 01 0 1 1 1 1 11 1 0 1 1 1 11 1 1 1 1 1 1

9

AND Gate

(a b c) (a b) (a c) Is equivalent to

(b c a) (b c a)

b

ca a = (b,c)

a b c ab c a b a c (abc) (ab) (ac)0 0 0 1 1 1 10 0 1 1 1 1 10 1 0 1 1 1 10 1 1 0 1 1 01 0 0 1 0 0 01 0 1 1 0 1 01 1 0 1 1 0 01 1 1 1 1 1 1

10

XOR Gate

(a b c) (a b c) (a b c) (a b c)is equivalent to

(b c a) (b c a) (b c a) (b c a)

a b c abc abc ab c abc (a b c) (a b c) (a b c) (a b c)

0 0 0 1 1 1 1 1

0 0 1 1 0 1 1 0

0 1 0 1 1 0 1 0

0 1 1 1 1 1 1 1

1 0 0 1 1 1 0 0

1 0 1 1 1 1 1 1

1 1 0 1 1 1 1 1

1 1 1 0 1 1 1 0

bc

a a =(b,c)

11

EQUIV Gate

(a b c) (a b c) (a b c) (a b c)is equivalent to

(b c a) (bc a) (b c a) (bc a)

bc

a a = (b,c)

a b c abc abc abc a b c (abc)(abc) (abc)(abc)

0 0 0 0 1 1 1 00 0 1 1 1 1 1 10 1 0 1 1 1 1 10 1 1 1 1 1 0 01 0 0 1 1 1 1 11 0 1 1 1 0 1 01 1 0 1 0 1 1 01 1 1 1 1 1 1 1

12

EQUIV Gate = XNOR Gate

a b c EQUIV XOR0 0 0 0 10 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 0

• XOR(a b c) (abc) (a b c) (a b c)is equivalent to (bc a) (bc a) (bc a) (bc a)

• Equivalence(a b c) (a b c) (a b c) (a b c)is equivalent to (bc a) (bc a) (bc a) (bc a)

13

Extending to Three or More Inputs

• AND & OR extend naturally– a = (b,c,d) or a = (b,c,d)

• EQUIV in pairwise fashion – a= (b,c,d) is a= (d, (b,c))

b c d AND OR EQUIV0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 0 11 0 0 0 11 0 1 0 11 1 0 0 11 1 1 1 1

01101001

bcd

a

abcd

ad

cb

14

Outline

• Background– SAT & Local Search

• Building blocks– Modeling Structure in SAT with Logic Gates– Variables: Independent, Internal, External– Dependency Lattice

• Solving Structured SAT w/ Local Search– Computing costs with variables sets

• Conclusion

15

Categorizing Variables (1)

• An independent variable is one – That is never dependent

• A dependent variable is one – Whose value is determined

by one or more gates

b

ca

dependentindependent

b

ca

dependent

dc b

independentdependent

dependentindependent

16

Dependency Lattice

(a b c) (a b) (a c)

(b d c) (b d) (b c)

c d

b

a

or

and

Independent

Dependent

c d b a0 0 0 00 1 0 01 0 0 11 1 1 1

b

ca

independent

dc b

independentdependent

dependent

17

Categorizing Variables (2)

• An independent variable is one – That is never dependent

• An internal gate is one– That can be recognized within the

structure of the original CNF formula– All dependent variables from the

original problem• An external gate is one

– Where the dependent variable is a clause from the original problem

– Newly created dependent variables

S1=(a b c) (a b) (a c)

(b d c) (b d) (b c)

c d

b

a

or

and

Independent

Internal

S2=(a b c) (a b) (a c)

(b d c) (b d) (b c) (b d)

e

c d

b

a

or

and

Independent

Internaland

External

18

Solving SAT

• Instantiate all independent variables such that all the external nodes evaluate to true

c d

b

a

or

and

Independent

Dependent

c d b a S1

0 0 0 0 10 1 0 0 11 0 0 1 11 1 1 1 1

e

c d

b

a

or

and

Independent

Internaland

External

c d b a e S2

0 0 0 0 0 00 1 0 0 0 01 0 0 1 0 01 1 1 1 1 1

19

Outline

• Background– SAT & Local Search

• Building blocks– Modeling Structure in SAT with Logic Gates– Variables: Independent, Internal, External– Dependency Lattice

• Solving Structured SAT w/ Local Search– Computing costs with variables sets

• Conclusion

20

Local Search for ‘Structured’ SAT

1. Instantiate the independent variables2. Propagate values in the lattice & compute variable

sets3. Compute the make & break cost for each

independent variable 4. Flip the independent variable w/ the smallest flip

cost (makebreak?) or do a random move5. Goto Step 26. Repeat until solution is found (external variables are

all T) or run out of time..

21

• Start with an assignment of the independent variables• Store at each gate as a variable set

– The independent variables that, when flipped, will change the gate’s value

• Calculate the make cost of flipping an independent variable– The number of external variables that will be made true

• Calculate the break cost of flipping an independent variable– The number of external variables that will be made false

Make & Break Costs & Variable Sets

e

c d

b

a

or

and

and

F F

F

F

F{}

{c} {}e

c d

b

a

or

and

and

F T

F

F

F{c}

{c} {}e

c d

b

a

or

and

and

T T

T

T

T{c, d}

{} {c, d}

22

Updating Variable Sets

• Start from the independent variable– Flip its value– Propagate change downwards– Stop when a gate’s value and its variable list do not change

v1 v2 v4v3

g1 g2

g3c1

or

or and

F F F T

F

T

F

F

{v3}{v2, v3}{v1,v2,v3} {v2}

AND gate is• T V {parents=T)∪• F V ∩{parents=F} \ {parents=T}∪OR gate is• F V {parents=F}∪• T V ∩{parents=T} \ {parents=F}∪EQUIV • V {parents} \ ∩ {parents}∪

23

Conclusion

• [Ostrowski+ CP02] used approach in BT search• [Pham+ IJCAI07] used approach in local search• Experiments show strategy is competitive

top related