GRASP-an efficient SAT solverWhat is SAT?Slide 3Why SAT?OutlineTerminologySlide 7Basic Backtracking SearchSlide 9Backtracking Search in ActionSlide 11Davis-Putnam revisitedGRASPGRASP search templateGRASP Decision HeuristicsGRASP DeductionImplication GraphsExample Implication GraphGRASP Deduction ProcessGRASP Conflict AnalysisLearningSlide 22Learning (some math)Slide 24Slide 25BacktrackingContinued IGSlide 28Slide 29Procedure Diagnose()Is that all?GRASP-an efficient SAT solverPankaj Chauhan01/14/19 15-398: GRASP and Chaf 2What 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} 1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)A = {x1=0, x2=1, x3=0, x4=1} SATisfying assignment!01/14/19 15-398: GRASP and Chaf 3What 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!01/14/19 15-398: GRASP and Chaf 4Why SAT?Fundamental problem from theoretical point of viewNumerous applicationsCAD, VLSIOptimizationModel Checking and other type of formal verificationAI, planning, automated deduction01/14/19 15-398: GRASP and Chaf 5OutlineTerminologyBasic Backtracking SearchGRASPPointers to future workPlease interrupt me if anything is not clear!01/14/19 15-398: GRASP and Chaf 6TerminologyCNF formula x1,…, xn: n variables1,…, m: m clausesAssignment ASet 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)}1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)A = {x1=0, x2=1, x3=0, x4=1} 1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)A = {x1=0, x2=1, x3=0, x4=1}01/14/19 15-398: GRASP and Chaf 7TerminologyAssignment A (contd.)|A= X unresolved {(x1,0), (x2,0), (x4,1)}An assignment partitions the clause database into three classesSatisfied, unsatisfied, unresolvedFree literals: unassigned literals of a clauseUnit clause: #free literals = 101/14/19 15-398: GRASP and Chaf 8Basic Backtracking SearchOrganize the search in the form of a decision treeEach node is an assignment, called decision assignmentDepth of the node in the decision tree decision level (x)x=v@d x is assigned to v at decision level d01/14/19 15-398: GRASP and Chaf 9Basic Backtracking SearchIterate through:1. Make new decision assignments to explore new regions of search space2. 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 subspace01/14/19 15-398: GRASP and Chaf 10Backtracking Search in Action1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4) x1 x1 = 0@1{(x1,0), (x2,0), (x3,1)} x2 x2 = 0@2{(x1,1), (x2,0), (x3,1) , (x4,0)} x1 = 1@1 x3 = 1@2 x4 = 0@1 x2 = 0@1 x3 = 1@1No backtrack in this example!01/14/19 15-398: GRASP and Chaf 11Backtracking Search in Action1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)4 = (x1 x2 x3)1 = (x2 x3) 2 = (x1 x4)3 = (x2 x4)4 = (x1 x2 x3)Add a clause x4 = 0@1 x2 = 0@1 x3 = 1@1conflict{(x1,0), (x2,0), (x3,1)} x2 x2 = 0@2 x3 = 1@2 x1 = 0@1 x1 x1 = 1@101/14/19 15-398: GRASP and Chaf 12Davis-Putnam revisitedDeductionDecisionBacktrack01/14/19 15-398: GRASP and Chaf 13GRASPGRASP is Generalized seaRch Algorithm for the Satisfiability Problem (Silva, Sakallah, ’96)Features:Implication graphs for BCP and conflict analysisLearning of new clausesNon-chronological backtracking!01/14/19 15-398: GRASP and Chaf 14GRASP search template01/14/19 15-398: GRASP and Chaf 15GRASP Decision HeuristicsProcedure decide()Choose the variable that satisfies the most #clauses == max occurences as unit clauses at current decision levelOther possibilities exist01/14/19 15-398: GRASP and Chaf 16GRASP DeductionBoolean Constraint Propagation using implication graphsE.g. for the clause = (x y), if y=1, then we must have x=1For 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 xAntecedent assignment of a decision variable is empty01/14/19 15-398: GRASP and Chaf 17Implication GraphsNodes 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 clauseDecision level for an implied assignment is(x) = max{(y)|(y,v(y))A(x)}01/14/19 15-398: GRASP and Chaf 18Example Implication Graph1 = (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)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)Current truth assignment: {x9=0@1 ,x10=0@3, x11=0@3, x12=1@2, x13=1@2}Current decision assignment: {x1=1@6}66 conflictx9=0@1x1=1@6x10=0@3x11=0@3x5=1@64455x6=1@622x3=1@61x2=1@633x4=1@601/14/19 15-398: GRASP and Chaf 19GRASP Deduction Process01/14/19 15-398: GRASP and Chaf 20GRASP Conflict AnalysisAfter a conflict arises, analyze the implication graph at current decision levelAdd new clauses that would prevent the occurrence of the same conflict in the future LearningDetermine decision level to backtrack to, might not be the immediate one Non-chronological backtrack01/14/19 15-398: GRASP and Chaf 21LearningDetermine the assignment that
View Full Document