Download - Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Transcript
Page 1: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Shatter: Efficient Symmetry-Breaking for Boolean Satisfiability

Fadi A. AloulIgor L. Markov, Karem A. Sakallah

The University of Michigan

Page 2: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Motivation … Many powerful SAT solvers are currently

available Yet, many EDA instances remain hard to

solve Recent work pointed out that breaking

symmetries can speed up search E.g.Instance

Chaff – Search runtime (sec)Original With symmetry-

breakingHole12.cnf >1000 0.02

Page 3: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Previous Work In 1996, Crawford et al.:

Laid theoretical foundation for detecting and breaking symmetries in CNF formulas

In 2002, Aloul et al.: Extended the framework to handle

phase shift symmetries and their composition with permutational symmetries

Page 4: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetries in SAT Permutations of variables that preserve

clauses e.g., symmetries of

= (a + b + c)(d + e + f)

include:Permutation Formula

(ab) (b + a + c)(d + e + f)

(ad)(be)(cf) (d + e + f)(a + b + c)

Page 5: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetries in Search Space

SAT Solver

SAT assignments

Page 6: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetries in Search Space

SAT Solver

Classes of symmetric truth assignments

Page 7: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetries in Search Space

SAT Solver

Classes of symmetric truth assignments

Page 8: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetry Detection and Breaking Flow

CNF instance

Colored Graph

Graph Automorphism Toole.g. GAP/Nauty

Graph Symmetries

Preprocessed CNF instance

SAT Solver

CNF Symmetries

= (a+b)(b+c)(c+a)

a b c

c’ b’

a’

1 = (ab)(a’b’)2 = (bc)(b’c’)

= (a+b)(b+c)(c+a) (a’+b)(b’+c)

Det

ect

Sym

met

ries

Brea

kSy

mm

etri

es

Page 9: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Symmetry Detection and Breaking Flow

CNF instance

Colored Graph

Graph Automorphism Toole.g. GAP/Nauty

Graph Symmetries

Preprocessed CNF instance

SAT Solver

CNF Symmetries

Det

ect

Sym

met

ries

Brea

kSy

mm

etri

es

= (a+b)(b+c)(c+a)

a b c

c’ b’

a’

1 = (ab)(a’b’)2 = (bc)(b’c’)

= (a+b)(b+c)(c+a) (a’+b)(b’+c)

Page 10: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Outline Basic definitions Symmetry-Breaking Predicate

(SBP) construction by Crawford et al.

Efficient SBP constructions Experimental results Conclusions

Page 11: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Permutations and Generators Number of symmetries can be exponentially large Represent the group of symmetries implicitly Elementary group theory proves:

If redundant generators are avoided A group with N elements can be represented

by at most log2(N) generators Generators provide exponential compression of

solution space

GeneratorsAll Permutations

Page 12: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Full Symmetry Breaking Lex-leader formula [Crawford et al. 96]:

Given a group of symmetries defined over totally-ordered variables :

For each symmetry , construct a permutation predicate :

)()()(1 11

iini ij

jj xxxxPP

nxxx 21

},,{ 1 m

)(PP

Image of variable

xi under

Introduce auxiliary variables )(

jjj xxe

PP() size:5n clauses

0.5n2 + 13.5n literals

Page 13: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Linear-Sized PPs)()()(

1 11

iini ij

jj xxxxPP

Let , )( iii xxl )(

iii xxg

Introduce bit predicates :npp ,,1 11 iiii plgp

1p2p

np1np

0g1g1ngnl

3p

2l 1l

PP() size:4n clauses14n literals

PP() size:5n clauses

0.5n2 + 13.5n literals

)())(()( 1121011 nnnn plgpplgppPP 11 np10 g

Page 14: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Linear-Sized Tautology-Free PPs Variables that map to themselves (i.e. )

lead to:

Assume maps to itself:1)(

iii xxl 1)( iii xxg

ii xx

1p2p

np1np

0g1g1ngnl

3p

2l 1l

1x

Page 15: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Linear-Sized Tautology-Free PPs Variables that map to themselves (i.e. )

lead to:

Assume maps to itself:1)(

iii xxl 1)( iii xxg

ii xx

1p2p

np1np

0g1

1ngnl3p

2l 1

1x

Page 16: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Linear-Sized Tautology-Free PPs Variables that map to themselves (i.e. )

lead to:

Assume maps to itself:1)(

iii xxl 1)( iii xxg

ii xx

np1np

1ngnl3p

2l

1x

1p0g

Page 17: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Linear-Sized Tautology-Free PPs Variables that map to themselves (i.e. )

lead to:

Assume maps to itself:1)(

iii xxl 1)( iii xxg

ii xx

np1np

1ngnl

1x

3p1p

0g2l

Page 18: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Partial Symmetry-Breaking (1) Full symmetry breaking may not speed up

search because: Exponential number of symmetries Their SBPs may be redundant

Partial symmetry breaking provides a better trade-off

Consider first k-variables from each permutation e.g. if k=1

1p2p

np1np

0g1g1ngnl

3p

2l 1l

Page 19: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Partial Symmetry-Breaking (1) Full symmetry breaking may not speed up

search because: Exponential number of symmetries Their SBPs may be redundant

Partial symmetry breaking provides a better trade-off

Consider first k-variables from each permutation e.g. if k=1

1p2p

0g1l

np1np

1g1ngnl

3p

2l

Page 20: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Group of symmetries

Partial Symmetry-Breaking (2) Instead of breaking all symmetries, break only:

Generators Generators and their powers Generators and their pair-wise compositions

Generators

Generators & their powers

Generators & their

compositions

Page 21: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Experimental ResultsFind (sec) #Sym #Gen %RB

hole11 0.09 1.91E+16 21 83hole12 0.12 2.98E+18 23 84Urq3_4 0.1 5.24E+05 19 97Urq3_9 0.04 1.05E+06 20 97s3-3-3-3 8.92 6.97E+10 29 95s3-3-3-8 6.95 3.48E+10 28 95fpga13_10 0.25 1.90E+17 28 88fpga13_12 0.81 9.01E+20 32 89chnl11_13 0.96 1.24E+35 45 90chnl11_20 4.48 1.89E+52 59 92xor1_32 0.17 4.29E+09 32 99xor1_36 0.34 6.87E+10 36 99Total 23 1.89E+52 372 --

Symmetry StatisticsInstance% of

bits thatmap to

themselves

Generators consisted of cycles of size 2

only

Page 22: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Experimental Results*

All-bits Taut-free All-bits Taut-freehole11 218.63 5.43 0.03 3.52 0.02hole12 1000 11 0.04 8.65 0.02Urq3_4 0.85 0.16 0.01 0.08 0.01Urq3_9 12.8 0.05 0.01 0.02 0.01s3-3-3-3 44.4 200 2.85 65.3 0.5s3-3-3-8 21.3 141 2.61 138 0.93fpga13_10 1000 517 0.09 7.7 0.03fpga13_12 1000 1000 0.08 25.8 0.05chnl11_13 788 882 0.16 108.1 0.05chnl11_20 1000 1000 0.3 92.6 0.09xor1_32 830 12.6 1.7 1.73 1.7xor1_36 938 0.61 0.01 0.1 0.01Total 6854 3770 7.9 452 3.4

Chaff Runtime (sec)Quadratic construction Linear constructionInstance

Original

Crawford et al.

‘96

Aloul et al. ‘02

* Break generators only

Page 23: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Experimental Results

Quadratic construction

Linear construction

All-bits

Tautology-Free

All-bits

Tautology-Free

Var 120K 8.6K 120K 8.6KCl 599K 44K 478K 34KLit 36M 404K 1.7M 119K

Total size of generator-only SBPs using various SBP constructions

Page 24: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Experimental ResultsTotal search runtimes for all instances when only

k bits are considered from each generator(using linear tautology-free construction)

1

10

100

1000

10000

1 10 100

# of bits considered in each permutation

Tota

l sea

rch

time

(sec

)

Page 25: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Experimental Results

SBPCandidates

# Perm.

SBP Size Solve time#Var #Cl #Lit

Generators 372 8.6K 34K 119K 3.4Generators

& their Powers

372 8.6K 34K 119K 3.4

Generators &

their Comp.5402 326K 1.3M 4.5M 29

SBP statistics for various symmetry-breaking candidatesusing linear tautology-free construction

Page 26: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Conclusions Introduced more efficient CNF

constructions of symmetry-breaking predicates

Constructions lead to: Empirical speedups Smaller memory requirements

Described options for partial symmetry-breakinghttp://vlsicad.eecs.umich.edu/BK/Slots/

shatter/

Page 27: Shatter : Efficient Symmetry-Breaking for Boolean Satisfiability

Thank You!