1 boolean satisfiability (sat) class presentation by girish paladugu
Post on 22-Dec-2015
213 views
TRANSCRIPT
1
Boolean Satisfiability (SAT)
Class Presentation By
Girish Paladugu
2
Overview
• Introduction• Conjunctive Normal Form (CNF)• DLL Procedure for solving SAT problems• Backtrack search algorithm• Eqvivalence Checking• Summary
INTRODUCTION• SAT Given a Boolean formula (propositional logic formula), find a variable assignment such that the formula evaluates to 1, or prove that no such assignment exists.
• For a formula with n variables, there are 2n possible truth assignments to be checked.
a
b b
c c c c
0 1
0 0
00 001
1 1
1 1 1
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik3
( a +c ) ( b +c ) (¬a +¬b + ¬c )
CNF
• Conjunctive Normal Form (CNF): A conjunctive normal form (CNF) formula ϕ on n binary variables x1, …, xn is the conjunction of m clauses ω1, …, ωm.
• Literal: Variable x or its complement x’.
• Clause: Disjunction of one or more literals.
• CNF formula is satisfiable if each clause is satisfiable ( or evaluate to true) else it is unsatisfiable.
4
( a +c ) ( b +c ) (¬a +¬b + ¬c )
2- input AND Gate CNF
ab d
d= [d = ¬(a b)]= ¬[d ¬(a b)]
= ¬[¬(a b)¬d + a b d]
= ¬[¬a ¬d + ¬b ¬d + a b d]
= (a +d)(b +d)(¬a +¬b + ¬d)
a b d
0 0 1
0 1 1
1 0 1
1 1 0
Truth Table
This method can be applied to any number input gate.
5Boolean Satisfiability in Electronic Design Automation - joao marques silva, Karem A Sakellah
CNF Formulas for simple gates
6
Circuit - CNF conversion
7
• The CNF formula for circuit is the set union of the CNF formulas of each gate.
DLL Algorithm
• Davis, Logemann and Loveland
• Basic framework for many modern SAT solvers
• Complete Backtracking-based algorithm for solving the
CNF-SAT problem
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik8
Basic DLL Procedure - DFS
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik9
Basic DLL Procedure - DFS
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
a
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik10
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
11
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0 Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
12
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
13
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
d=1
c=0
(a + c + d)a=0
d=0(a + c + d’)
Conflict!Implication Graph
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
14
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
d=1
c=0
(a + c + d)a=0
d=0(a + c + d’)
Conflict!Implication Graph
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
15
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
Backtrack
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
16
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
d=1
c=1
(a + c’ + d)a=0
d=0(a + c’ + d’)
Conflict!
1 Forced Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
17
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
Backtrack
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
18
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
1 Forced Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
19
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
d=1
c=0
(a + c’ + d)a=0
d=0(a + c’ + d’)
Conflict!
1
c
0
1
Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
20
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0
1
Backtrack
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik21
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0
d=1
c=1
(a + c’ + d)a=0
d=0(a + c’ + d’)
Conflict!
1
c
0 1
1
Forced Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
22
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
Backtrack
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
23
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1 Forced Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
24
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0 Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik25
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0
c=1
b=0
(a’ + b + c)a=1
c=0(a’ + b + c’)
Conflict!
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik26
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0
Backtrack
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik27
Basic DLL Procedure - DFS
a0
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0 1
a=1
b=1
c=1(a’ + b’ + c)
Forced Decision
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik
28
Basic DLL Procedure - DFS
a
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0 1
a=1
b=1
c=1(a’ + b’ + c) (b’ + c’ + d)
d=1
0
Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik29
Basic DLL Procedure - DFS
a
(a + c + d)(a + c + d’)
(a + c’ + d)(a + c’ + d’)
(a’ + b + c)
(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)
b
0
c
0 1
c
0 1
1
1
b
0 1
a=1
b=1
c=1(a’ + b’ + c) (b’ + c’ + d)
d=1
SAT
0
Adapted from ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik30
Backtrack Search Algorithm
• Backtrack search has proven useful for solving instances of SAT from EDA applications, in particular for applications where the objective is to prove unsatisfiability.
• The algorithm conducts a search through the space of the possible assignments to the problem instance variables.
31
Backtrack Search SAT Algorithm
32
Backtrack Search Algorithm
• Decide( ) : Necessary assignments are identified.
• Deduce( ): Returns a conflict whenever a clause becomes unsatisfiable.
• Diagnose( ): Analyzes the conflict and returns a decision level to which the search process is required to backtrack to.
• Erase( ): Clears implied assignments that results from each assignment selection.
33
Handling Conflicts
• Assignments w=1, y3=0, x1=1, y1=0, y2=0
clearly results in a conflict.
• To prevent this conflict at least one of the assignments must be complemented.
• So the clause (¬x1 + ¬w + y3) is generated.
34
Equivalence Checking
If z = 1 is unsatisfiable, thetwo circuits are equivalent !
CB
CA
z = 1 ?
35
Summary
• So CNF representation of a problem is given as input to the SAT solvers• Core computation engine in many applications like verification and testing, logic synthesis, FPGA routing.• State of the art SAT solvers use DLL algorithm• The first established NP-Complete problem• If the number of variables increases its harder to solve SAT problems
36
Questions
References
[1]JP Marques-Silva, “Boolean Satisfiability in Electronic Design Automation,” 2000
[2] Lintao Zhang, Sharad Malik, “The Quest for Efficient Boolean Satisfiability Solvers”
37