Top Banner
Satisfiability: Applications and Algorithms Jim Kukula [email protected]
41

Satisfiability

May 24, 2015

Download

Technology

Jim Kukula

An introductory survey of applications and algorithms for the satisfiability problem
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Satisfiability

Satisfiability:Applications and Algorithms

Jim [email protected]

Page 2: Satisfiability

Outline

• Boolean functions and expressions

• Applications and related formalisms

• Satisfiability Algorithms– Expression-Based– Assignment-Based

Page 3: Satisfiability

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

Page 4: Satisfiability

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

a b c

Page 5: Satisfiability

Composing Functions

a

b

b

c

cbba

Page 6: Satisfiability

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

n22

Page 7: Satisfiability

2-Level Expressions

• DNF: Disjunctive Normal Form

• CNF: Conjunctive Normal Form

01

00

cbbacbba

cb

bacbba

Page 8: Satisfiability

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

Page 9: Satisfiability

Pruning Unnecessary Nodes

a

b b

c c1

1 0

0

1 0

0

0

0

0

0

1

1 1

1 1

Page 10: Satisfiability

Reusing Duplicate Nodes

a

b b

c1

1 0

0

0

0

0

0

1

1 1

1

Tree becomes Diagram, or BDD

Page 11: Satisfiability

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

Page 12: Satisfiability

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

Page 13: Satisfiability

Formalized Decisions

• Boolean Functions– Set of fixed length strings

• State Machines– Regular languages

• Turing Machines– Universal computability

Page 14: Satisfiability

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

Page 15: Satisfiability

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

Page 16: Satisfiability

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

Page 17: Satisfiability

Satisfiability Community

• International Conference onTheory 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/

Page 18: Satisfiability

Dimacs Formatp cnf 59056 3237001 2 01 3 01 4 01 -5 01 6 01 -7 01 -8 01 -9 01 -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

Page 19: Satisfiability

Random CNF

P(Sat)

1

0

# Clauses / # Variables

10 2 3 4 5 6 7

Limit for large #V

Small #V

Page 20: Satisfiability

Algorithms

• CNF Resolution

• BDD variable elimination

• Local Search

• Circuit-based value assignment

• Conflict-based Learning

Page 21: Satisfiability

Resolution

• Exhaustive application will yield empty clause if problem is unsatisfiable– 3n potential clauses!

aa

cbcbacba

ecbdcba

edbaecbdcba

Page 22: Satisfiability

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

Page 23: Satisfiability

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

Page 24: Satisfiability

Stuck-at Fault Model

1

Circuit as designed

Circuit as manufactured

Test generation: find a input bit vector thatwill produce different outputs in correct versus faulty circuits

Page 25: Satisfiability

Circuit-Based SAT

1

Can we findinput assignments todrive the circuit outputto 1?

Page 26: Satisfiability

Circuit-Based SAT

1

1

1

Inputs to AND mustbe 1 for output to be 1

Page 27: Satisfiability

Circuit-Based SAT

1

1

1

0

At least one input of NANDmust be 0 for output to be 1,so we make a choice.

Page 28: Satisfiability

Circuit-Based SAT

1

1

1

1

0

1

Inputs to NAND must be 1for output to be 0

Page 29: Satisfiability

Circuit-Based SAT

1

1

1

1

0

1

1

1

Inputs to AND must be 1 for output to be 1

Page 30: Satisfiability

Circuit-Based SAT

1

1

1

1

0

1

1

1

Conflict! need to backtrack andmake different choices

Page 31: Satisfiability

Loosely Coupled Subproblems

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

ABCDE

UVW

Page 32: Satisfiability

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

Page 33: Satisfiability

CNF Decision & Implication

1aDecide: iga

hgb

fe

eba

dca

ba

Page 34: Satisfiability

CNF Decision & Implication

1

1

b

aDecide:

Imply:

iga

hgb

fe

eba

dca

ba

Page 35: Satisfiability

CNF Decision & Implication

0

1

1

e

b

aDecide:

Imply:

Imply:

iga

hgb

fe

eba

dca

ba

Page 36: Satisfiability

CNF Decision & Implication

1

0

1

1

f

e

b

aDecide:

Imply:

Imply:

Imply:

iga

hgb

fe

eba

dca

ba

Page 37: Satisfiability

CNF Decision & Implication

0

1

0

1

1

g

f

e

b

aDecide:

Imply:

Imply:

Imply:

Decide:

iga

hgb

fe

eba

dca

ba

Page 38: Satisfiability

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

Page 39: Satisfiability

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

Page 40: Satisfiability

Learned Clauses

Cut in implication graphcorresponds to learned clausederivable by resolution

Look for small cuts – short clauses are tighter constraints

Page 41: Satisfiability

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