Grasp an efficient sat solver
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

GRASP-an efficient SAT solver PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

GRASP-an efficient SAT solver

An Image/Link below is provided (as is) to download presentation

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

GRASP-an efficient SAT solver

Pankaj Chauhan


What is sat

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 sat1

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

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

15-398: GRASP and Chaff


Outline

Outline

  • Terminology

  • Basic Backtracking Search

  • GRASP

  • Pointers to future work

Please interrupt me if anything is not clear!

15-398: GRASP and Chaff


Terminology

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


Terminology1

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

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 search1

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

15-398: GRASP and Chaff


Backtracking search in action

x1

x1 = [email protected]

x2

x2 = [email protected]

Backtracking Search in Action

1 = (x2  x3)

2 = (x1  x4)

3 = (x2  x4)

x1 = [email protected]

 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


Backtracking search in action1

x1

x1 = [email protected]

x1 = [email protected]

x2

x2 = [email protected]

Backtracking Search in Action

Add a clause

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

Davis-Putnam revisited

Deduction

Decision

Backtrack

15-398: GRASP and Chaff


Grasp

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

GRASP search template

15-398: GRASP and Chaff


Grasp decision heuristics

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

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

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


Example implication graph

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

GRASP Deduction Process

15-398: GRASP and Chaff


Grasp conflict analysis

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

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


Learning1

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


Learning some math

(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


Learning some math1

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


Learning2

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

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

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


Backtracking1

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


Backtracking2

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

Procedure Diagnose()

15-398: GRASP and Chaff


Is that all

Is that all?

  • Huge overhead for constraint propagation

  • Better decision heuristics

  • Better learning, problem specific

  • Better engineering!

    Chaff

15-398: GRASP and Chaff


  • Login