Presentation is loading. Please wait.

Presentation is loading. Please wait.

GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/201515-398: GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment.

Similar presentations


Presentation on theme: "GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/201515-398: GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment."— Presentation transcript:

1 GRASP-an efficient SAT solver Pankaj Chauhan

2 6/19/201515-398: GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment to boolean variables that makes the formula true! E.g.  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1}  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1} SATisfying assignment!

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

4 6/19/201515-398: GRASP and Chaff4 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

5 6/19/201515-398: GRASP and Chaff5 Outline Terminology Basic Backtracking Search GRASP Pointers to future work Please interrupt me if anything is not clear!

6 6/19/201515-398: GRASP and Chaff6 Terminology CNF formula  x 1,…, x n : n variables  1,…,  m : m clauses Assignment A Set of (x,v(x)) pairs |A| < n  partial assignment {(x 1,0), (x 2,1), (x 4,1)} |A| = n  complete assignment {(x 1,0), (x 2,1), (x 3,0), (x 4,1)}  | A = 0  unsatisfying assignment {(x 1,1), (x 4,1)}  | A = 1  satisfying assignment {(x 1,0), (x 2,1), (x 4,1)}  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1}  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 ) A = {x 1 =0, x 2 =1, x 3 =0, x 4 =1}

7 6/19/201515-398: GRASP and Chaff7 Terminology Assignment A (contd.)  | A = X  unresolved {(x 1,0), (x 2,0), (x 4,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 6/19/201515-398: GRASP and Chaff8 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=v@d  x is assigned to v at decision level d

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

10 6/19/201515-398: GRASP and Chaff10 Backtracking Search in Action  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 )  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 ) x1 x1 x 1 = 0@1 {(x 1,0), (x 2,0), (x 3,1)} x2 x2 x 2 = 0@2 {(x 1,1), (x 2,0), (x 3,1), (x 4,0)} x 1 = 1@1  x 3 = 1@2  x 4 = 0@1  x 2 = 0@1  x 3 = 1@1 No backtrack in this example!

11 6/19/201515-398: GRASP and Chaff11 Backtracking Search in Action  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 )  4 = (  x 1  x 2   x 3 )  1 = (x 2  x 3 )  2 = (  x 1   x 4 )  3 = (  x 2  x 4 )  4 = (  x 1  x 2   x 3 ) Add a clause  x 4 = 0@1  x 2 = 0@1  x 3 = 1@1 conflict {(x 1,0), (x 2,0), (x 3,1)} x2 x2 x 2 = 0@2  x 3 = 1@2 x 1 = 0@1 x1 x1 x 1 = 1@1

12 6/19/201515-398: GRASP and Chaff12 Davis-Putnam revisited Deduction Decision Backtrack

13 6/19/201515-398: GRASP and Chaff13 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!

14 6/19/201515-398: GRASP and Chaff14 GRASP search template

15 6/19/201515-398: GRASP and Chaff15 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

16 6/19/201515-398: GRASP and Chaff16 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

17 6/19/201515-398: GRASP and Chaff17 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)}

18 6/19/201515-398: GRASP and Chaff18 Example Implication Graph  1 = (  x 1  x 2 )  2 = (  x 1  x 3  x 9 )  3 = (  x 2   x 3  x 4 )  4 = (  x 4  x 5  x 10 )  5 = (  x 4  x 6  x 11 )  6 = (  x 5  x 6 )  7 = (x 1  x 7   x 12 )  8 = (x 1  x 8 )  9 = (  x 7   x 8   x 13 )  1 = (  x 1  x 2 )  2 = (  x 1  x 3  x 9 )  3 = (  x 2   x 3  x 4 )  4 = (  x 4  x 5  x 10 )  5 = (  x 4  x 6  x 11 )  6 = (  x 5  x 6 )  7 = (x 1  x 7   x 12 )  8 = (x 1  x 8 )  9 = (  x 7   x 8   x 13 ) Current truth assignment: {x 9 =0@1,x 10 =0@3, x 11 =0@3, x 12 =1@2, x 13 =1@2} Current decision assignment: {x 1 =1@6} 66 66  conflict x 9 =0@1 x 1 =1@6 x 10 =0@3 x 11 =0@3 x 5 =1@6 44 44 55 55 x 6 =1@6 22 22 x 3 =1@6 11 x 2 =1@6 33 33 x 4 =1@6

19 6/19/201515-398: GRASP and Chaff19 GRASP Deduction Process

20 6/19/201515-398: GRASP and Chaff20 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

21 6/19/201515-398: GRASP and Chaff21 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

22 6/19/201515-398: GRASP and Chaff22 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 (  ) = (  x 1  x 9  x 10  x 11 )

23 6/19/201515-398: GRASP and Chaff23 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 A C (  ) = causesof(  ), where Learning (some math) (x,v(x)) if A(x) =   (x)  [  causesof(y) ] o/w (y,v(y))   (x) causesof( x ) =

24 6/19/201515-398: GRASP and Chaff24 Learning (some math) Deriving conflicting clause  C (  ) from the conflicting assignment A C (  ) is straight forward For our IG,  C (  ) =  x v(x) (x,v(x))  A C (  ) A C (  ) = {x 1 =1@6, x 9 =0@1, x 10 = 0@3, x 11 = 0@3}

25 6/19/201515-398: GRASP and Chaff25 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

26 6/19/201515-398: GRASP and Chaff26 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  x 1 This immediately implies x 1 =0

27 6/19/201515-398: GRASP and Chaff27 Continued IG 99 99 ’’ x 12 =1@2 x 7 =1@6 x 8 =1@6 x 1 =0@6 x 11 =0@3 x 10 =0@3 x 9 =0@1 77 77 88 C()C() C()C() C()C() x 13 =1@2 99 Due to  C (  ) x1 x1 Decision level 3 5 6 ’’

28 6/19/201515-398: GRASP and Chaff28 Backtracking Conflict Directed Backtracking Now deriving a new IG after setting x 1 =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  ’

29 6/19/201515-398: GRASP and Chaff29 Conflict Directed Backtracking contd. Backtrack level is given by  = d-1 chronological backtrack  < d-1 non-chronological backtrack A C (  ’) = {x 9 =0@1, x 10 = 0@3, x 11 = 0@3, x 12 =1@2, x 13 =1@2}  C (  ) = (x 9  x 10  x 11   x 12   x 13 ) Backtracking  = max{  (x)|(x,v(x))  A C (  ’)}

30 6/19/201515-398: GRASP and Chaff30 Procedure Diagnose()

31 6/19/201515-398: GRASP and Chaff31 Is that all? Huge overhead for constraint propagation Better decision heuristics Better learning, problem specific Better engineering! Chaff


Download ppt "GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/201515-398: GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment."

Similar presentations


Ads by Google