Motivation - EECS @ UMich - University of Michigan

Report 1 Downloads 123 Views
Faster SAT and Smaller BDDs via Common Function Structure Fadi A. Aloul, Igor L. Markov, Karem A. Sakallah University of Michigan

Motivation Hole-7 Instance (clauses in red)

Original Variable Order

“New” Variable Order

1

Outline n n n n n n

Hypergraph Terminology Motivating Example Multilevel Partitioning MINCE Algorithm Experimental Results Conclusions

Linearly-Ordered Hypergraphs n

Given a hypergraph with V vertices and E hyperedges with a linear vertex order… Span of hyperedge: difference between the greatest and smallest vertices connected by the same hyperedge n i-th cut: number of edges crossing vertex i+0.5 n Cutwidth: maximum cut of all vertices i, i ∈(0,..,n-1) n An objective of vertex ordering: identify a linear vertex order that minimizes the span and cutwidth of the instance n

a

b

c

d

e

2

Bad vs. Good Vertex Orderings a

b

c

Total Span = 8

d

b

e

Cutwidth = 3

d

a

Total Span = 4

e

c

Cutwidth = 1

How does vertex reordering help? Converting CNF Formulas to Hypergraphs: • Variables ⇒ Vertices • Clauses ⇒ Hyperedges f(a,b,c,d,e) = (a + d + e) ∧ (b + d) ∧ (c + e)

Related Work n

n

n

n

Circuits with small cutwidth are theoretically “easy” for SAT [Prasad et al. 99] Sizes of BDDs are correlated with circuit cutwidth [Berman 91, McMillan 92] Extracted BDD variable orderings from linear spectral hypergraph placement [Wood et al. 98] This work considers average cutwidth instead of maximum cutwidth

3

Example Hole-7 Instance (clauses in red)

Original Variable Order

MINCE Variable Order

Observation: Crossing Minimization V −1

TotalSpan = ∑ span(e) = ∑∑1 = # xings = ∑∑ 1 = ∑ cut (i ) e∈E

e∈E x∈e

AverageSpan =

c∈C x∈c

∑ span(e) e∈E

E

v −1

C

i =0

≈1

x a

x

b

x

x x c

x

x d

x

e

∑ cut (i)

span(e) ∑ E E V e∈E AverageCut = = • = • • AverageSpan V −1 V −1 E V V −1 i =0

AverageCut ≈

C • AverageSpan V

Min. AverageCut ↔ Min. AverageSpan

Known from VLSI placement: Recursive Min-cut Bisection ⇒ Min. Total Net Length in LinPlacement

4

Linear Placement n

Net length objective (aka “bounding box”) n

n

30+ years of placement research n n

n

For CNF instances, translates into ∑ clause span Recursive bisection a leading method Applied to SAT in this work

CAPO: Effecient hypergraph placement software n n n n

n

Caldwell, Kahng and Markov [DAC 00] Based on Recursive Min-cut Bisection Multilevel Fiduccia-Mattheyses (FM) Open-source, free: http://vlsicad.cs.ucla.edu/software/PDtools Runs in: Θ( N log 2 N ) , N is size of input

Min-Cut MLFM Partitioning n

MLPart: Efficient min-cut hypergraph partitioner n n n n

n

Caldwell, Kahng and Markov [ASPDAC 00] Outperforms hMetis (Karypis et al. [DAC 97]) Runs in: Θ( N log N ) Called by CAPO

Basic Idea: n n n n n

Group original variables Induce clustered hypergraphs Partition clustered hypergraphs Refine partitioned hypegraphs Partition & refinement by Cluster Fiduccia-Mattheyses

Refine *By G. Karypis, R. Aggarwal, V. Kumar and S. Shekhar

5

MINCE - Flow Diagram Circuit MINCE Flow

CNF instance Hypergraph

Linear Min-cut Placement by Recursive MLFM Partitioning. e.g.CAPO Variable ordering for CNF Preprocessed CNF instance SAT Solver

BDD Engine

Experimental Setup n n n n n n

SAT engine: GRASP SAT Solver BDD engine: CUDD Package Time-out limit: 10,000 seconds Memory limit: 500 Mb Platform: 333 MHz Pentium II with Linux Benchmarks: DIMACS, N-Queens, ISCAS89

6

SAT Results DIMACS Benchmarks* 216 218

90,000

218

219

80,000

219

Total Runtime (sec)

70,000 60,000 50,000 40,000 30,000

222

20,000 10,000 0 DLCS

MSOS

Fixed

MSTS

DLIS

MINCE

*Except f, g, par32

SAT Results Selected DIMACS Instances

100,000

Original w /MINCE

Avg Var Cut

10,000 1,000 100 10 1 Aim

Bf

dub

hanoi

hole

ii16

ii32

ii8

jnh

par16

par8

pret

ssa

7

SAT Results Selected NQueens Instances 35,000

Total RunTime (sec)

30,000 25,000 20,000 15,000 10,000 5,000 0 MSOS

MSTS

Fixed

DLIS

DLCS

MINCE

BDD Results ISCAS 89 Benchmarks

# Completed Instances

16 14 12 10 8 6 4 2 0 Fixed

Random

Fixed-Sift

Random-Sift

MINCE

8

Best- vs. Worst-case Performance n

SAT/BDD n

n

Best-case: Θ(N )

Recursive min-cut bisection placement n

n

Worst-case: exp. Worst-case:

Θ( N log 2 N )

Best-case: Θ( N log 2 N )

Very easy problem instances n n n

DLL/BDD run in near-linear time Vertex ordering only slows DLL/BDD MINCE is not helpful for easy instances

Conclusions n

n

n

n n

MINCE is useful in capturing the structural properties of CNF instances MINCE ordering is very effective in reducing SAT runtime time and BDD runtime/memory requirements The ordering is easily generated in a preprocessing step No source code modification needed Tools are publicly available!

9

Future Work n n n

n n

n

Dramatic speedup improvements possible Further improving the MINCE algorithm Accounting for polarities of literals in hypergraphs Applying the ordering to symbolic simulation Tracking empirical correlation between problem complexity and its cutwidth Check out MINCE @: http://andante.eecs.umich.edu/mince

10