GRASP-an efficient SAT solver

1 / 31

GRASP-an efficient SAT solver - PowerPoint PPT Presentation

GRASP-an efficient SAT solver. Pankaj Chauhan. 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}.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about ' GRASP-an efficient SAT solver' - dorothy-harding

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

GRASP-an efficient SAT solver

Pankaj Chauhan

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!

15-398: GRASP and Chaff

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!

15-398: GRASP and Chaff

Why SAT?
• Fundamental problem from theoretical point of view
• Numerous applications
• Optimization
• Model Checking and other type of formal verification
• AI, planning, automated deduction

15-398: GRASP and Chaff

Outline
• Terminology
• Basic Backtracking Search
• GRASP
• Pointers to future work

Please interrupt me if anything is not clear!

15-398: GRASP and Chaff

Terminology
• CNF formula 
• 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  unsatisfyingassignment {(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}

15-398: GRASP and Chaff

Terminology
• Assignment A (contd.)
• |A= X  unresolved {(x1,0), (x2,0), (x4,1)}
• An assignment partitions the clause databaseinto three classes
• Satisfied, unsatisfied, unresolved
• Free literals: unassigned literals of a clause
• Unitclause: #free literals = 1

15-398: GRASP and Chaff

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)
• [email protected]  xis assigned tovat decision leveld

15-398: GRASP and Chaff

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.

15-398: GRASP and Chaff

x1

x2

Backtracking Search in Action

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

 x4 = [email protected]

 x2 = [email protected]

 x3 = [email protected]

 x3 = [email protected]

{(x1,1), (x2,0), (x3,1) , (x4,0)}

{(x1,0), (x2,0), (x3,1)}

No backtrack in this example!

15-398: GRASP and Chaff

x1

x2

Backtracking Search in Action

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

4 = (x1  x2  x3)

 x4 = [email protected]

 x2 = [email protected]

 x3 = [email protected]

 x3 = [email protected]

conflict

{(x1,0), (x2,0), (x3,1)}

15-398: GRASP and Chaff

Davis-Putnam revisited

Deduction

Decision

Backtrack

15-398: GRASP and Chaff

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!

15-398: GRASP and Chaff

GRASP search template

15-398: GRASP and Chaff

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

15-398: GRASP and Chaff

GRASP Deduction
• Boolean Constraint Propagation using implication graphs

E.g. for the clause  = (x y), ify=1, then we must havex=1

• For a variable xoccuring in a clause , assignment 0 to all other literals is calledantecedent assignmentA(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 ofx
• Antecedent assignment of a decision variable is empty

15-398: GRASP and Chaff

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)}

15-398: GRASP and Chaff

4

[email protected]

[email protected]

1

4

3

6

[email protected]

conflict

6

3

2

5

2

5

[email protected]

[email protected]

Example Implication Graph

Current truth assignment: {[email protected] ,[email protected], [email protected], [email protected], [email protected]}

Current decision assignment: {[email protected]}

[email protected]

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)

[email protected]

[email protected]

[email protected]

15-398: GRASP and Chaff

GRASP Deduction Process

15-398: GRASP and Chaff

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

15-398: GRASP and Chaff

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 occurrenceof  again

15-398: GRASP and Chaff

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)

15-398: GRASP and Chaff

(x,v(x)) if A(x) = 

causesof(x) =

(x)  [  causesof(y)]o/w

(y,v(y))  (x)

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

15-398: GRASP and Chaff

C() =  xv(x)

(x,v(x))  AC()

Learning (some math)
• Deriving conflicting clause C()from the conflicting assignment AC() is straight forward
• For our IG,

AC() = {[email protected], x9 [email protected], x10 = [email protected], x11 = [email protected]}

15-398: GRASP and Chaff

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

15-398: GRASP and Chaff

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

15-398: GRASP and Chaff

Continued IG

Decision level

3

[email protected]

[email protected]

C()

8

9

[email protected]

5

’

[email protected]

[email protected]

C()

9

9

C()

7

[email protected]

[email protected]

x1

7

6

[email protected]

Due to C()

’

15-398: GRASP and Chaff

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 ’

15-398: GRASP and Chaff

Backtracking

Conflict Directed Backtracking contd.

• Backtrack level is given by
• = d-1chronological backtrack
• < d-1non-chronological backtrack

AC(’) = {x9 [email protected], x10 = [email protected], x11 = [email protected], [email protected], [email protected]}

C() = (x9  x10  x11   x12   x13)

 = max{(x)|(x,v(x))AC(’)}

15-398: GRASP and Chaff

Procedure Diagnose()

15-398: GRASP and Chaff

Is that all?
• Huge overhead for constraint propagation
• Better decision heuristics
• Better learning, problem specific
• Better engineering!

Chaff

15-398: GRASP and Chaff