Satisfiability

kukulaj 1,805 views 41 slides Nov 17, 2009
Slide 1
Slide 1 of 41
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41

About This Presentation

An introductory survey of applications and algorithms for the satisfiability problem


Slide Content

Satisfiability:
Applications and Algorithms
Jim Kukula
[email protected]

Outline
•Boolean functions and expressions
•Applications and related formalisms
•Satisfiability Algorithms
–Expression-Based
–Assignment-Based

Boolean Functions
•Bit vector
•Corners of n-
dimensional cube
•Base-2 coded integer
•True/false
•In/out of set
•Pass/fail
{} {}1,01,0®
n

Truth Table
•Read-only memory is like
this:
–Addr_in -> data_out
–16 address bits enough to
store a book
–No way, in general, to
squeeze n bit values into
any smaller space
0111
1011
0101
0001
0110
1010
1100
1000
abc

Composing Functions
a
b
b
c
( )( )cbba ÙÚÙ

Logic Optimization
•Very difficult to find optimal expression for
a given Boolean function
–Gate count
–Longest path from input to output
•Any function has infinite expressions
•Most functions require exponential space
–Counting argument: Boolean functions
with n variables
n
2
2

2-Level Expressions
•DNF: Disjunctive Normal Form
•CNF: Conjunctive Normal Form
( )( )
01
00
-
-
=+=ÙÚÙ cbbacbba
( )( )
( )
( )cb
ba
cbba =ÚÙÚ

Decision Tree
a
b b
c c c c
1 1 1 0 0 0 1 0
0
0
0
0
0
0
0
1
1
1
1 1 1 1

Pruning Unnecessary Nodes
a
b b
c c1
1 0
0
1 0
0
0
0
0
0
1
1
1
1 1

Reusing Duplicate Nodes
a
b b
c1
1 0
0
0
0
0
0
1
1
1
1
Tree becomes Diagram, or BDD

Binary Decision Diagrams
•Breakthrough paper
Randy Bryant,
Graph-Based Algorithms for Boolean Function Manipulation.
IEEE Transaction on Computers, 1986
http://vlsi.colorado.edu/~fabio/CUDD/
•High quality public package

BDD Manipulation
•BDDs are canonical, given variable order
–Trivial to check function equality, satisfiability
•Often compact
–Optimizing variable order is difficult
•Interleave bits of an adder!
•BDD for (f&g) can be computed efficiently,
from BDD for f and BDD for g

Formalized Decisions
•Boolean Functions
–Set of fixed length strings
•State Machines
–Regular languages
•Turing Machines
–Universal computability

Computational Problems
•Optimizing expressions
–Language in which machine expressed
–Optimality criteria
•Language Emptiness
–Boolean Functions
•NP-Complete
–Finite State Machines
•P-Space Complete
–Turing Machines
•Undecidable

Applications for Satisfiability
•Given a Boolean function, find an input bit
vector for which the function evaluates to
1
–Artificial Intelligence
•E.g. medical diagnosis
–Operations Research
•Optimizing over discrete domains
–Electronics Engineering
•Detecting faults
–Computer Science
•Check resource contention

Bounded Emptiness
•Convert infinite set to finite set
–Bound length of string
–Discretize space
•Use SAT to attack harder problems
–E.g. Bounded Model Checking

Satisfiability Community
•International Conference on
Theory and Applications of
Satisfiability Testing
–http://ie.technion.ac.il/SAT10/ (Edinburgh)
•Journal on Satisfiability, Boolean
Modeling and Computation
–http://www.isa.ewi.tudelft.nl/Jsat/
•Up-to-date links concerning research
–http://www.satlive.org/

Dimacs Format
p cnf 59056 323700
1 2 0
1 3 0
1 4 0
1 -5 0
1 6 0
1 -7 0
1 -8 0
1 -9 0
1 -10 0
-2 -3 -4 5 -6 7 8 9 10 -1 0
-11 -12 -13 14 0
-14 11 0
-14 12 0
-14 13 0

Random CNF
P(Sat)
1
0
# Clauses / # Variables
10 2 3 4 5 6 7
Limit for large #V
Small #V

Algorithms
•CNF Resolution
•BDD variable elimination
•Local Search
•Circuit-based value assignment
•Conflict-based Learning

Resolution
•Exhaustive application will yield empty
clause if problem is unsatisfiable
–3
n
potential clauses!
( )( ) ( )
( )( )
( ) ( ) ( )
() () ()®
®
Æ®
®
aa
cbcbacba
ecbdcba
edbaecbdcba

BDD Variable Elimination
•Construction of BDD from circuit often infeasible
–Intermediate blow-up even if ultimate answer is trivial
•Interleave existential quantification
–Eliminating variables often reduces BDD sizes
–Finding an order of variables to eliminate is difficult
•Keep the support sizes small of intermediate results
•Equivalent to elimination with sparse matrices
( ) ( )[ ] ( )[ ] ( )[ ]{ }cbgcbafabcbgbafcba ,.,..,,. $Ù$$=Ù$$$
( ) ( )[ ] ( )[ ]
10 |,|,,.
==Ú=$
aa bafbafbafa

Local Search
•Generally implemented with CNF
•Start by assigning arbitrary value to each
variable
•Flip values of variables one by one
–Any variable that appears in a false clause is
a candidate
•Gradually reduce number of false clauses
•Need mechanism to escape local minima
•No proof of unsatisfiability

Stuck-at Fault Model
1
Circuit as designed
Circuit as manufactured
Test generation: find a input bit vector that
will produce different outputs in correct
versus faulty circuits

Circuit-Based SAT
1
Can we find
input assignments to
drive the circuit output
to 1?

Circuit-Based SAT
1
1
1
Inputs to AND must
be 1 for output to be 1

Circuit-Based SAT
1
1
1
0
At least one input of NAND
must be 0 for output to be 1,
so we make a choice.

Circuit-Based SAT
1
1
1
1
0
1
Inputs to NAND must be 1
for output to be 0

Circuit-Based SAT
1
1
1
1
0
1
1
1
Inputs to AND must be 1 for output to be 1

Circuit-Based SAT
1
1
1
1
0
1
1
1
Conflict!
need to backtrack and
make different choices

Loosely Coupled Subproblems
•Subproblems revisited many times
•Need to save and reuse learning
•CNF is simple & incremental

A
B
C
D
E
U
V
W

Landmark Papers in CNF SAT
•Joao Marques-Silva and Karem Sakallah,
“GRASP: A Search Algorithm for
Propositional Satisfiability,” ICCAD
1996
•Matthew W. Moskewicz, Conor F.
Madigan, Ying Zhao, Lintao Zhang,
Sharad Malik, “Chaff: Engineering an
Efficient SAT Solver,” DAC 2001

CNF Decision & Implication
1=aDecide:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

CNF Decision & Implication
1
1
=
=
b
aDecide:
Imply:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

CNF Decision & Implication
0
1
1
=
=
=
e
b
aDecide:
Imply:
Imply:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

CNF Decision & Implication
1
0
1
1
=
=
=
=
f
e
b
aDecide:
Imply:
Imply:
Imply:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

CNF Decision & Implication
0
1
0
1
1
=
=
=
=
=
g
f
e
b
a
Decide:
Imply:
Imply:
Imply:
Decide:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

CNF Decision & Implication
1
0
1
0
1
1
=
=
=
=
=
=
h
g
f
e
b
aDecide:
Imply:
Imply:
Imply:
Decide:
Imply:
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba

Implication Graph
( )
( )
( )
( )
( )
( )iga
hgb
fe
eba
dca
ba
Chains of implication
linked by pairs of clauses
with common variable
but opposite signs:
opportunities for resolution

Learned Clauses
Cut in implication graph
corresponds to learned clause
derivable by resolution
Look for small cuts –
short clauses are
tighter constraints

Leveraging Structure
•SAT is very hard in the worst case
•But practical instances often manageable
–Test Generation, Equivalence Checking
•similarity of two halves of problem
–Bounded Model Checking
•Repetitive structure
–Arithmetic
•Bit order