Presentation is loading. Please wait.

Presentation is loading. Please wait.

GRASP-an efficient SAT solver

Similar presentations


Presentation on theme: "GRASP-an efficient SAT solver"— Presentation transcript:

1 GRASP-an efficient SAT solver
Pankaj Chauhan

2 SATisfying assignment!
What is SAT? Given a propositional formula in CNF, find an assignment to boolean variables that makes the formula true! E.g. 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) A = {x1=0, x2=1, x3=0, x4=1} SATisfying assignment! 8/2/2019 15-398: GRASP and Chaff

3 What is SAT? Solution 1: Search through all assignments!
n variables  2n possible assignments, explosion! SAT is a classic NP-Complete problem, solve SAT and P=NP! 8/2/2019 15-398: GRASP and Chaff

4 Why SAT? Fundamental problem from theoretical point of view
Numerous applications CAD, VLSI Optimization Model Checking and other type of formal verification AI, planning, automated deduction 8/2/2019 15-398: GRASP and Chaff

5 Outline Terminology Basic Backtracking Search GRASP
Pointers to future work Please interrupt me if anything is not clear! 8/2/2019 15-398: GRASP and Chaff

6 Terminology CNF formula  Assignment A x1,…, xn: n variables
1,…, m: m clauses Assignment A Set of (x,v(x)) pairs |A| < n  partial assignment {(x1,0), (x2,1), (x4,1)} |A| = n  complete assignment {(x1,0), (x2,1), (x3,0), (x4,1)} |A= 0  unsatisfying assignment {(x1,1), (x4,1)} |A= 1  satisfying assignment {(x1,0), (x2,1), (x4,1)} 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) A = {x1=0, x2=1, x3=0, x4=1} Manually write down the examples of all types of assignments For unsat, same as A but with x1=1 8/2/2019 15-398: GRASP and Chaff

7 Terminology Assignment A (contd.)
|A= X  unresolved {(x1,0), (x2,0), (x4,1)} An assignment partitions the clause database into three classes Satisfied, unsatisfied, unresolved Free literals: unassigned literals of a clause Unit clause: #free literals = 1 8/2/2019 15-398: GRASP and Chaff

8 Basic Backtracking Search
Organize the search in the form of a decision tree Each node is an assignment, called decision assignment Depth of the node in the decision tree  decision level (x)  x is assigned to v at decision level d 8/2/2019 15-398: GRASP and Chaff

9 Basic Backtracking Search
Iterate through: Make new decision assignments to explore new regions of search space Infer implied assignments by a deduction process. May lead to unsatisfied clauses, conflict! The assignment is called conflicting assignment. Conflicting assignments leads to backtrack to discard the search subspace 8/2/2019 15-398: GRASP and Chaff

10 Backtracking Search in Action
1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) x1 x1 = x2 x2 = x1 =  x4 =  x2 = Say which step is which.  x3 =  x3 = {(x1,1), (x2,0), (x3,1) , (x4,0)} {(x1,0), (x2,0), (x3,1)} No backtrack in this example! 8/2/2019 15-398: GRASP and Chaff

11 Backtracking Search in Action
Add a clause 1 = (x2  x3) 2 = (x1  x4) 3 = (x2  x4) 4 = (x1  x2  x3) x1 x1 = x1 =  x4 = x2 x2 =  x2 =  x3 =  x3 = conflict {(x1,0), (x2,0), (x3,1)} 8/2/2019 15-398: GRASP and Chaff

12 Davis-Putnam revisited
Deduction Decision Backtrack 8/2/2019 15-398: GRASP and Chaff

13 GRASP GRASP is Generalized seaRch Algorithm for the Satisfiability Problem (Silva, Sakallah, ’96) Features: Implication graphs for BCP and conflict analysis Learning of new clauses Non-chronological backtracking! 8/2/2019 15-398: GRASP and Chaff

14 GRASP search template 8/2/2019 15-398: GRASP and Chaff
Decide: simple one, choose the one with most # of sat. clauses Deduce: do BCP Diagnose: do learning Erase: erase assignment at current decision level Search tree is maintained implicitly in procedure call stack 8/2/2019 15-398: GRASP and Chaff

15 GRASP Decision Heuristics
Procedure decide() Choose the variable that satisfies the most #clauses == max occurences as unit clauses at current decision level Other possibilities exist 8/2/2019 15-398: GRASP and Chaff

16 GRASP Deduction Boolean Constraint Propagation using implication graphs E.g. for the clause  = (x  y), if y=1, then we must have x=1 For a variable x occuring in a clause , assignment 0 to all other literals is called antecedent assignment A(x) E.g. for  = (x  y  z), A(x) = {(y,0), (z,1)}, A(y) = {(x,0),(z,1)}, A(z) = {(x,0), (y,0)} Variables directly responsible for forcing the value of x Antecedent assignment of a decision variable is empty 8/2/2019 15-398: GRASP and Chaff

17 (x) = max{(y)|(y,v(y))A(x)}
Implication Graphs Nodes are variable assignments x=v(x) (decision or implied) Predecessors of x are antecedent assignments A(x) No predecessors for decision assignments! Special conflict vertices have A() = assignments to vars in the unsatisfied clause Decision level for an implied assignment is (x) = max{(y)|(y,v(y))A(x)} Tell them it is assigned to each node in the search tree 8/2/2019 15-398: GRASP and Chaff

18 Example Implication Graph
Current truth assignment: Current decision assignment: 1 = (x1  x2) 2 = (x1  x3  x9) 3 = (x2  x3  x4) 4 = (x4  x5  x10) 5 = (x4  x6  x11) 6 = (x5  x6) 7 = (x1  x7  x12) 8 = (x1 x8) 9 = (x7  x8   x13) 4 1 3 6 conflict 2 5 8/2/2019 15-398: GRASP and Chaff

19 GRASP Deduction Process
8/2/2019 15-398: GRASP and Chaff

20 GRASP Conflict Analysis
After a conflict arises, analyze the implication graph at current decision level Add new clauses that would prevent the occurrence of the same conflict in the future  Learning Determine decision level to backtrack to, might not be the immediate one  Non-chronological backtrack 8/2/2019 15-398: GRASP and Chaff

21 Learning Determine the assignment that caused the conflict, negation of this assignment is called conflict induced clause C() The conjunct of this assignment is necessary condition for  So adding C() will prevent the occurrence of  again 8/2/2019 15-398: GRASP and Chaff

22 Learning Find C() by a backward traversal of the IG, find the roots of the IG in the transitive fanin of  For our example IG, C() = (x1  x9  x10  x11) 8/2/2019 15-398: GRASP and Chaff

23 Learning (some math) For any node of an IG x, partition A(x) into
(x) = {(y,v(y)) A(x)|(y)<(x)} (x) = {(y,v(y)) A(x)|(y)=(x)} Conflicting assignment AC() = causesof(), where (x,v(x)) if A(x) =  (x)  [  causesof(y) ]o/w (y,v(y))  (x) causesof(x) = 8/2/2019 15-398: GRASP and Chaff

24 Learning (some math) Deriving conflicting clause C() from the conflicting assignment AC() is straight forward For our IG, C() =  xv(x) (x,v(x))  AC() AC() = x9 x10 = x11 = 8/2/2019 15-398: GRASP and Chaff

25 Learning Unique implication points (UIPs) of an IG also provide conflict clauses Learning of new clauses increases clause database size Heuristically delete clauses based on a user parameter If size of learned clause > parameter, don’t include it 8/2/2019 15-398: GRASP and Chaff

26 Backtracking Failure driven assertions (FDA):
If C() involves current decision variable, then after addition, it becomes unit clause, so different assignment for the current variable is immediately tried. In our IG, after erasing the assignment at level 6, C() becomes a unit clause x1 This immediately implies x1=0 8/2/2019 15-398: GRASP and Chaff

27 Continued IG  ’ x1 ’ Decision level 3 x9=0@1 x8=1@6 C() 8
9 ’ 5 C() 9 9 C() 7 x1 7 6 Due to C() ’ 8/2/2019 15-398: GRASP and Chaff

28 Backtracking Conflict Directed Backtracking
Now deriving a new IG after setting x1=0 by FDA, we get another conflict ’ Non-chronological backtrack to decision level 3, because backtracking to any level 5, 4 would generate the same conflict ’ 8/2/2019 15-398: GRASP and Chaff

29 Backtracking Conflict Directed Backtracking contd.
Backtrack level is given by  = d-1 chronological backtrack  < d-1 non-chronological backtrack AC(’) = {x9 x10 = x11 = C() = (x9  x10  x11   x12   x13)  = max{(x)|(x,v(x))AC(’)} 8/2/2019 15-398: GRASP and Chaff

30 Procedure Diagnose() 8/2/2019 15-398: GRASP and Chaff

31 Is that all? Huge overhead for constraint propagation
Better decision heuristics Better learning, problem specific Better engineering! Chaff 8/2/2019 15-398: GRASP and Chaff


Download ppt "GRASP-an efficient SAT solver"

Similar presentations


Ads by Google