Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.

Similar presentations


Presentation on theme: "1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu."— Presentation transcript:

1 1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu

2 2 Overview Introduction Conjunctive Normal Form (CNF) DLL Procedure for solving SAT problems Backtrack search algorithm Eqvivalence Checking Summary

3 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 2 n possible truth assignments to be checked. a bb cccc 0 1 0 0 00001 1 1 111 Adapted From ‘The Quest for Efficient Boolean Satisfiability Solvers’ – Sharad Malik 3  ( a +  c ) ( b +  c ) (¬a +  ¬b + ¬c )

4 CNF Conjunctive Normal Form (CNF): A conjunctive normal form (CNF) formula ϕ on n binary variables x 1, …, x n is the conjunction of m clauses ω 1, …, ω m. Literal : Variable x or its complement x’. Clause: D isjunction 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 )

5 2- input NAND Gate CNF a b 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) abd 001 011 101 110 Truth Table This method can be applied to any number input gate. 5 Boolean Satisfiability in Electronic Design Automation - joao marques silva, Karem A Sakellah

6 CNF Formulas for simple gates 6

7 Circuit - CNF conversion 7 The CNF formula for circuit is the set union of the CNF formulas of each gate.

8 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 Malik 8

9 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 Malik 9

10 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 Malik 10

11 Basic DLL Procedure - DFS a 0 (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

12 Basic DLL Procedure - DFS a 0 (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

13 Basic DLL Procedure - DFS a 0 (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

14 Basic DLL Procedure - DFS a 0 (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

15 Basic DLL Procedure - DFS a 0 (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

16 Basic DLL Procedure - DFS a 0 (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

17 Basic DLL Procedure - DFS a 0 (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

18 Basic DLL Procedure - DFS a 0 (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

19 Basic DLL Procedure - DFS a 0 (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

20 Basic DLL Procedure - DFS a 0 (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

21 Basic DLL Procedure - DFS a 0 (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 Malik 21

22 Basic DLL Procedure - DFS a 0 (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

23 Basic DLL Procedure - DFS a 0 (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

24 Basic DLL Procedure - DFS a 0 (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

25 Basic DLL Procedure - DFS a 0 (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 Malik 25

26 Basic DLL Procedure - DFS a 0 (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 Malik 26

27 Basic DLL Procedure - DFS a 0 (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 Malik 27

28 Basic DLL Procedure - DFS a 0 (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

29 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 Malik 29

30 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 Malik 30

31 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

32 Backtrack Search SAT Algorithm 32

33 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

34 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

35 Equivalence Checking If z = 1 is unsatisfiable, the two circuits are equivalent ! CBCB CACA z = 1 ? 35

36 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

37 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


Download ppt "1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu."

Similar presentations


Ads by Google