GRASP-an efficient SAT solver - PowerPoint PPT Presentation

About This Presentation
Title:

GRASP-an efficient SAT solver

Description:

After a conflict arises, analyze the implication graph at current decision level ... Unique implication points (UIPs) of an IG also provide conflict clauses ... – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 32
Provided by: vis660
Learn more at: http://www.cs.cmu.edu
Category:

less

Transcript and Presenter's Notes

Title: GRASP-an efficient SAT solver


1
GRASP-an efficient SAT solver
  • Pankaj Chauhan

2
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 x10, x21, x30, x41
SATisfying assignment!
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 PNP!

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

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

Please interrupt me if anything is not clear!
6
Terminology
  • CNF formula ?
  • x1,, xn n variables
  • ?1,, ?m m clauses
  • Assignment A
  • Set of (x,v(x)) pairs
  • A lt 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 x10, x21, x30, x41
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
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)
  • xv_at_d ? x is assigned to v at decision level d

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

10
Backtracking Search in Action
?1 (x2 ? x3) ?2 (?x1 ? ?x4) ?3 (?x2 ? x4)
x1 1_at_1
? x4 0_at_1
? x2 0_at_1
? x3 1_at_1
? x3 1_at_2
(x1,1), (x2,0), (x3,1) , (x4,0)
(x1,0), (x2,0), (x3,1)
No backtrack in this example!
11
Backtracking Search in Action
Add a clause
?1 (x2 ? x3) ?2 (?x1 ? ?x4) ?3 (?x2 ?
x4) ?4 (?x1 ? x2 ? ?x3)
? x4 0_at_1
? x2 0_at_1
? x3 1_at_1
? x3 1_at_2
conflict
(x1,0), (x2,0), (x3,1)
12
Davis-Putnam revisited
Deduction
Decision
Backtrack
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!

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

16
GRASP Deduction
  • Boolean Constraint Propagation using implication
    graphs
  • E.g. for the clause ? (x ? ?y), if y1, then
    we must have x1
  • 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
Implication Graphs
  • Nodes are variable assignments xv(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
Example Implication Graph
Current truth assignment x90_at_1 ,x100_at_3,
x110_at_3, x121_at_2, x131_at_2 Current decision
assignment x11_at_6
x100_at_3
?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)
x11_at_6
x90_at_1
x110_at_3
19
GRASP Deduction Process
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

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

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)

23
Learning (some math)
  • For any node of an IG x, partition A(x) into
  • ?(x) (y,v(y)) ?A(x)?(y)lt?(x)
  • ?(x) (y,v(y)) ?A(x)?(y)?(x)
  • Conflicting assignment AC(?) causesof(?), where

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

AC(?) x11_at_6, x9 0_at_1, x10 0_at_3, x11 0_at_3
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 gt parameter, dont
    include it

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 x10

27
Continued IG
Decision level

3
x81_at_6
x90_at_1
?8
?C(?)

?9
x100_at_3
5
?
x131_at_2
x10_at_6
?C(?)
?9
?9
?7
?C(?)
x110_at_3
x71_at_6
x1
?7
6
x121_at_2
Due to ?C(?)


?
?
28
Backtracking
  • Conflict Directed Backtracking
  • Now deriving a new IG after setting x10 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
Backtracking
  • Conflict Directed Backtracking contd.
  • Backtrack level is given by
  • ? d-1 chronological backtrack
  • ? lt d-1 non-chronological backtrack

AC(?) x9 0_at_1, x10 0_at_3, x11 0_at_3, x121_at_2,
x131_at_2 ?C(?) (x9 ? x10 ? x11 ? ? x12 ? ?
x13)
? max?(x)(x,v(x))?AC(?)
30
Procedure Diagnose()
31
Is that all?
  • Huge overhead for constraint propagation
  • Better decision heuristics
  • Better learning, problem specific
  • Better engineering!
  • Chaff
Write a Comment
User Comments (0)
About PowerShow.com