Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis

Similar presentations


Presentation on theme: "Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis"— Presentation transcript:

1 Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis
GRASP SAT solver J. Marques-Silva and K. Sakallah Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis

2 SAT Solvers have made some progress…

3 Conjunctive Normal Form (CNF)
Atomic proposition: x1, x2, x3,… Literal: xi or xi where xi is atomic Clause: l1  l2  …  ln where li is a literal CNF formula: 1  2  …  m where i is a clause Example: (x2  x3)  (x1  x4  x3)  (x2  x4)

4 Putting a formula in CNF
Extract from truth table of formula Put in Negation Normal Form (using De Morgan’s laws) and expand using distributivity of  over  : p  (q  r)  (p  q)  (p  r) Put in Negation Normal Form and introduce new variable for each conjunctive subformula. (equi-satisfiable but not logically equivalent)

5 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!

6 Why is SAT important? Fundamental problem from theoretical point of view Numerous applications CAD, VLSI Optimization Model Checking and other kinds of formal verification AI, planning, automated deduction

7 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)} |A= X  unresolved {(x1,0), (x2,0), (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 Terminology An assignment partitions the clause database into three classes Satisfied Unsatisfied Unresolved Free literals: unassigned literals of a clause Unit clause: unresolved with only one free literal

9 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

10 Basic Backtracking Search
Iteration: 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. If there is a conflict backtrack

11 DPLL in action    U / /  U /  / / /   conflict x1 = 0@1
1 = (x1  x2  x3  x4) 2 = (x1  x3  x4) 3 = (x1  x2  x3) 4 = (x3  x4) 5 = (x4  x1   x3) 6 = (x2  x4) 7 = (x2  x4 ) U / / x2 U / x2 = / / /  x3 =  x4 = conflict

12 DPLL in action    / / / U   / / conflict conflict x1 = 0@1
1 = (x1  x2  x3  x4) 2 = (x1  x3  x4) 3 = (x1  x2  x3) 4 = (x3  x4) 5 = (x4  x1   x3) 6 = (x2  x4) 7 = (x2  x4 ) / x2 x2 = / x2 = / U  x3 =  x4 = / /  x4 = conflict conflict

13 DPLL in action  / / /       conflict conflict x1 = 0@1 x1 = 1@1
1 = (x1  x2  x3  x4) 2 = (x1  x3  x4) 3 = (x1  x2  x3) 4 = (x3  x4) 5 = (x4  x1   x3) 6 = (x2  x4) 7 = (x2  x4 ) / / x1 = / x2 x2 x2 = x2 = x2 = x4  x3 =  x4 =  x4 = x4 = conflict conflict {(x1,1), (x2,0), (x4,1)}

14 DPLL Algorithm Deduction Decision Backtrack

15 GRASP GRASP stands for 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

16 GRASP search template 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

17 GRASP Decision Heuristics
Procedure decide() Which variable to split on What value to assign Default heuristic in GRASP: Choose the variable and assignment that directly satisfies the largest number of clauses Other possibilities exist

18 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

19 (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 variables 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

20 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

21 GRASP Deduction Process

22 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 backtracking

23 Learning Determine the assignment that caused conflict 
Backward traversal of the IG, find the roots of the IG in the transitive fanin of  This assignment is necessary condition for  Negation of this assignment is called conflict induced clause C() Adding C() to the clause database will prevent the occurrence of  again

24 Learning C() = (x1  x9  x10  x11) conflict x10=0@3 x5=1@6 4 1
3 6 conflict 2 5 C() = (x1  x9  x10  x11)

25 Learning 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) =

26 Learning Learning of new clauses increases clause database size
Increase may be exponential Heuristically delete clauses based on a user provided parameter If size of learned clause > parameter, don’t include it

27 Backtracking Failure driven assertions (FDA):
If C() involves current decision variable, a 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

28 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) C()=(x1  x9  x10  x11) 4 1 3 6 conflict 2 5

29 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) C() = (x1  x9  x10  x11) C() C() C()

30 Non-chronological backtracking
Decision level 4 5 x1 6 ' 3 C() 8 9 ’ C() 9 9 C() 7 7 AC(’) = {x9 x10 = x11 = C() = (x9  x10  x11   x12   x13)

31 Backtracking Backtrack level is given by
 = d-1 chronological backtrack  < d-1 non-chronological backtrack  = max{(x)|(x,v(x))AC(’)}

32 Procedure Diagnose()

33 Chaff What’s next? Reduce overhead for constraint propagation
Better decision heuristics Better learning, problem specific Better engineering Chaff


Download ppt "Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis"

Similar presentations


Ads by Google