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.

Slides:



Advertisements
Similar presentations
Exploiting SAT solvers in unbounded model checking
Advertisements

Automated Theorem Proving
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
The Project Problem formulation (one page) Literature review –“Related work" section of final paper, –Go to writing center, –Present paper(s) to class.
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Modified.
Presented by Monissa Mohan 1.  A highly optimized BCP algorithm  Two watched literals  Fast Backtracking  Efficient Decision Heuristic  Focused on.
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Presenting:
1 Constraint Satisfaction Problems A Quick Overview (based on AIMA book slides)
Introduction to MiniSat v1.14 Presented by Yunho Kim Provable Software Lab, KAIST.
UIUC CS 497: Section EA Lecture #2 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004.
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View SAT.
Heuristics for Efficient SAT Solving As implemented in GRASP, Chaff and GSAT.
1/30 SAT Solver Changki PSWLAB SAT Solver Daniel Kroening, Ofer Strichman.
IBM Labs in Haifa © 2005 IBM Corporation Adaptive Application of SAT Solving Techniques Ohad Shacham and Karen Yorav Presented by Sharon Barner.
Review: Constraint Satisfaction Problems How is a CSP defined? How do we solve CSPs?
Abstract Answer Set Solver. Todolist Print the rules of Fig 1.
Properties of SLUR Formulae Ondřej Čepek, Petr Kučera, Václav Vlček Charles University in Prague SOFSEM 2012 January 23, 2012.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
© 2002 Fadi A. Aloul, University of Michigan PBS: A Pseudo-Boolean Solver and Optimizer Fadi A. Aloul, Arathi Ramani, Igor L. Markov, Karem A. Sakallah.
ECE 667 Synthesis & Verification - SAT 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Boolean SAT CNF Representation Slides adopted (with.
4 th Nov, Oct 23 rd Happy Deepavali!. 10/23 SAT & CSP.
SAT-based Bounded Model Checking
Nikolaj Bjørner Microsoft Research Lecture 3. DayTopicsLab 1Overview of SMT and applications. SAT solving, Z3 Encoding combinatorial problems with Z3.
Boolean Satisfiability Solvers Wonhong Nam
1 Boolean Satisfiability in Electronic Design Automation (EDA ) By Kunal P. Ganeshpure.
Heuristics for Efficient SAT Solving As implemented in GRASP, Chaff and GSAT.
Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Presenting:
Constraint Satisfaction Problems
State-of-the-art in SAT solvers
GRASP SAT solver Presented by Constantinos Bartzis Slides borrowed from Pankaj Chauhan J. Marques-Silva and K. Sakallah.
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
SAT Algorithms in EDA Applications Mukul R. Prasad Dept. of Electrical Engineering & Computer Sciences University of California-Berkeley EE219B Seminar.
1 Abstraction Refinement for Bounded Model Checking Anubhav Gupta, CMU Ofer Strichman, Technion Highly Jet Lagged.
ENGG3190 Logic Synthesis “Boolean Satisfiability” Winter 2014 S. Areibi School of Engineering University of Guelph.
GRASP: A Search Algorithm for Propositional Satisfiability EE878C Homework #2 2002/11/1 KAIST, EECS ICS Lab Lee, Dongsoo.
SAT Solving Presented by Avi Yadgar. The SAT Problem Given a Boolean formula, look for assignment A for such that.  A is a solution for. A partial assignment.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 21: April 21, 2008 Modern SAT Solvers ({z}Chaff, GRASP,miniSAT)
Boolean Satisfiability and SAT Solvers
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Motivation & Goal SAT and Constraint Processing (CP) are fundamental areas of Computer Science that address the same computational questions. Compare SAT.
1 Agenda Modeling problems in Propositional Logic SAT basics Decision heuristics Non-chronological Backtracking Learning with Conflict Clauses SAT and.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Boolean Satisfiability Present and Future
Maximum Density Still Life Symmetries and Lazy Clause Generation Geoffrey Chu, Maria Garcia de la Banda, Chris Mears, Peter J. Stuckey.
SAT Solver Heuristics. SAT-solver History Started with David-Putnam-Logemann-Loveland (DPLL) (1962) –Able to solve variable problems Satz (Chu Min.
Heuristics for Efficient SAT Solving As implemented in GRASP, Chaff and GSAT.
Solving the Logic Satisfiability problem Solving the Logic Satisfiability problem Jesus De Loera.
SAT Solving As implemented in - DPLL solvers: GRASP, Chaff and
Inference in Propositional Logic (and Intro to SAT) CSE 473.
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
© R.A. Rutenbar 2009 Slide 1 Carnegie Mellon (Lec 06) Boolean Satisfiability: SAT Solvers (Pt 1) What you know  Representation and manipulation via BDDs,
Heuristics for Efficient SAT Solving As implemented in GRASP, Chaff and GSAT.
Hybrid BDD and All-SAT Method for Model Checking
Clause Learning in a SAT-Solver
Inference and search for the propositional satisfiability problem
Bounded Model Checking
First-Order Logic and Inductive Logic Programming
Logic Synthesis CNF Satisfiability.
Heuristics for Efficient SAT Solving
ECE 667 Synthesis and Verification of Digital Circuits
Decision Procedures An Algorithmic Point of View
GRASP-an efficient SAT solver
Faster Extraction of High-Level Minimal Unsatisfiable Cores
Presentation transcript:

GRASP-an efficient SAT solver Pankaj Chauhan

6/19/ : 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!

6/19/ : 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!

6/19/ : 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

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

6/19/ : 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}

6/19/ : 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

6/19/ : 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 is assigned to v at decision level d

6/19/ : 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

6/19/ : 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 = {(x 1,0), (x 2,0), (x 3,1)} x2 x2 x 2 = {(x 1,1), (x 2,0), (x 3,1), (x 4,0)} x 1 =  x 3 =  x 4 =  x 2 =  x 3 = No backtrack in this example!

6/19/ : 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 =  x 2 =  x 3 = conflict {(x 1,0), (x 2,0), (x 3,1)} x2 x2 x 2 =  x 3 = x 1 = x1 x1 x 1 =

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

6/19/ : 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!

6/19/ : GRASP and Chaff14 GRASP search template

6/19/ : 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

6/19/ : 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

6/19/ : 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)}

6/19/ : 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 10 x 11 x 12 x 13 Current decision assignment: {x 1 66 66  conflict x 9 x 1 x 10 x 11 x 5 44 44 55 55 x 6 22 22 x 3 11 x 2 33 33 x 4

6/19/ : GRASP and Chaff19 GRASP Deduction Process

6/19/ : 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

6/19/ : 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

6/19/ : 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 )

6/19/ : 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 ) =

6/19/ : 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 x 9 x 10 = x 11 =

6/19/ : 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

6/19/ : 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

6/19/ : GRASP and Chaff27 Continued IG 99 99 ’’ x 12 x 7 x 8 x 1 x 11 x 10 x 9 77 77 88 C()C() C()C() C()C() x 13 99 Due to  C (  ) x1 x1 Decision level ’’

6/19/ : 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  ’

6/19/ : 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 x 10 = x 11 = x 12 x 13  C (  ) = (x 9  x 10  x 11   x 12   x 13 ) Backtracking  = max{  (x)|(x,v(x))  A C (  ’)}

6/19/ : GRASP and Chaff30 Procedure Diagnose()

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