SAT Presentation
SAT Presentation
SAT Solvers
Aditya Parameswaran Luv Kumar 1st June, 2005 and 14th June, 2005
Outline
Outline The Satisability Problem Types of Solvers The basic DPLL Framework Variations to the DPLL Algorithm
Branching Heuristics Deduction Mechanism Conict Analysis and Learning Other Techniques
References
Aditya Parameswaran, Luv Kumar: SAT Solvers, 2
Given a Boolean propositional formula, does there exist assignment of values such that the formula becomes true? We consider a CNF formula, C1 C2 C3 C4 . . . , where, Ci is a disjunction of literals like a, b, c, . . .
History of the SAT Problem Davis Putnam - Resolution based, 1960, later proposed Search based algorithm, 1962 Proved NP Complete by Cook, 1971 Stalmarcks algorithm - Patented, 1995 Conict driven Learning and Non chronological backtracking in GRASP, 1996 Local Search, 1997 SATO - DPLL Based, 1997 Cha - DPLL Based, 2001 BerkMin - DPLL Based, 2002
Types of Solvers
Two Types: Complete - nd a solution or prove that none exist, e.g. Resolution, Search, Stalmarcks, BDDs Stochastic - do not prove unsatisability, can get some solutions quickly, e.g. Local Search
Algorithm: DPLL(formula, assignment) { if (deduce(formula, assignment) == SAT) return SAT; else if (deduce(formula, assignment) == CONF) return CONF; else { v = new_variable(formula, assignment); a = new_assignment(formula, assignment, v, 0); if (DPLL(formula, a) == SAT) return SAT; else { a = new_assignment(formula, assignment, v, 1); return DPLL(formula, a); } } }
Aditya Parameswaran, Luv Kumar: SAT Solvers, 6
Iterative Algorithm while(1) { decide_next_branch(); //branching heuristics while (true) { status = deduce(); //deduction mechanism if (status == CONF) { bl = analyze_conflict(); //conflict analysis if (bl == 0) return UNSAT; else backtrack(bl); } else if (status == SATISFIABLE) return SAT; else break; } }
Outline The Satisability Problem Types of Solvers The basic DPLL Framework Variations to the DPLL Algorithm
Branching Heuristics Deduction Mechanism Conict Analysis and Learning Other Techniques
References
Aditya Parameswaran, Luv Kumar: SAT Solvers, 8
Branching Heuristics Branching Heuristics alter the search path and thereby change the structure of the search tree In the original DPLL paper, a branch was randomly chosen DLCS (Dynamic Largest Combined Sum)
Introduced in GRASP Pick the variable with largest number of occurrences in unresolved clauses State dependent Considerable work reqd. Static Statistic, does not take search history into consideration Dierentiation between learned and original clauses required.
BerkMin method
10
Deduction Mechanism Most important part of the solver (maximum time spent here) The function deduce() tries to see if by the current assignment of values to variables, some conclusions can be got regarding the satisability of the formula It returns SAT if the assignment causes a satisfying instance and CONF if it causes a conict, else returns UNKNOWN and updates the program state. All SAT solvers use the unit clause rule The unit clause rule states that if all but one of the literals in a clause are assigned false, then that literal is assigned true Such clauses are called unit clauses the unassigned literal is a unit literal, the process of assigning 1 to all such literals is called BCP (Boolean Constraint Propagation) Counter Method is used in GRASP, Head-Tail List Method is from SATO, and Two-Literal watch was rst used in Cha
Aditya Parameswaran, Luv Kumar: SAT Solvers, 11
12
Repeat for neg-tail list, backwards Average number of clauses to be updated, m/n, same on backtrack
Aditya Parameswaran, Luv Kumar: SAT Solvers, 13
14
Conict Analysis and Learning Conict Analysis tries to nd the reason for the conict and tries to resolve it Original DPLL paper used Chronological Backtracking, in which the last assignment that has not been ipped is ipped Non-Chronological Backtracking need not ip the last assignment and could backtrack to a earlier decision level This was rst introduced in GRASP Conict Directed Learning incorporates learned Conict Clauses Conict Clauses are obtained using Implication Graphs In Implication Graphs, all the variables, whose values are either known or are implied are depicted Directed edges are drawn from the variables that make up part of the unit clause implying the new variable (antecedents)
Aditya Parameswaran, Luv Kumar: SAT Solvers, 15
In the conict clause, we include the following: The antecedents of the conict which are decisions made in the current decision level The antecedents of the conict in previous decision levels Recursively, this procedure is applied to the antecedents which are part of the current decision level, but are not decisions The backtrack level is the maximum of the decision levels of all the variables in the conict clause
16
Other Techniques In the deduce() function, some solvers use the pure literal rule in addition to the unit clause rule Some solvers use Random Restarts inorder to discard the search tree and start over Some solvers have a function preprocess() which tries to arrive at conclusions before the start of the algorithm The learned clauses are deleted after a given period
17
Stalmarcks Algorithm
Essentially breadth rst search, we try both sides of a branch to nd forced decisions To prove validity of a formula, we assume the formula to be false, and try to arrive at a contradiction All formulae are represented using and , which is represented as 0 in the triplet A formula is represented using a set of triplets A triplet (x, y , z) is an abbreviation for x (y z) Example: p (q p) is represented as
(b1, q, p) (b2, p, b1)
Stalmarcks Algorithm
(r 2) (r 4) (r 6)
(r 7) Dilemma rule (D1 and D2 are derivations, and S is the intersection of the assignments produced by the two derivations) T T [x/1] T [x/0] D1 D2 U[S1 ] V [S0 ] T [S] If one of the derivation leads to a contradiction, the result of applying the dilemma rule is the result of the other derivation
Aditya Parameswaran, Luv Kumar: SAT Solvers, 19
Cha Branching Algorithm (VSIDS) 1. Each variable in each polarity has a counter initialized to the number of instances of that variable with the polarity 2. When a clause is added, each variable in the clause has its value incremented 3. Unassigned variable and polarity with the highest count chosen at each decision; ties broken at random by default 4. Periodic division by 2 BerkMin Branching Algorithm 1. Each variable in each polarity has a counter initialized to the number of instances of that variable with the polarity 2. In case of a conict scores of the variables in the conict clause and those responsible for the conict are incremented 3. Unassigned variable and polarity with the highest count chosen at each decision from the most recent clause added to the clause database; ties broken at random by default 4. Periodic division by 4
Aditya Parameswaran, Luv Kumar: SAT Solvers, 20
BCP Algorithms:- SATO List Method If (neg_assigned(literal)) { from-pos-head(literal); from-pos-tail(literal); } If (pos_assigned(literal)) { from-neg-head(literal); from-neg-tail(literal); } from-pos-head(literal) { for all the clauses in pos-head list for i = head_lit + 1 to tail_lit if (truth_val (ith literal) == unknown) if (ith literal == tail literal) unit clause, add to unit clauses stack exclude clause; return else move pointer to ith literal; return else if (truth_val (ith literal) == TRUE) exclude clause; return conflict }
Aditya Parameswaran, Luv Kumar: SAT Solvers, 21
BCP Algorithms:- Two Literal Watch Method If (neg_assigned(literal)) for all the clauses in pos-watched list if there is a literal != 0 and != o. w. literal move the pointer to the given location if (literal == 1) then exclude clause else if (o. w. literal == undefined) unit clause, add to unit clauses list exclude clause else if (o. w. literal == 1) exclude clause else conflict end for If (pos_assigned(literal)) for all the clauses in neg-watched list ...
Aditya Parameswaran, Luv Kumar: SAT Solvers, 22
Local Search
A cost function is assigned to every variable assignment, the procedure tries to minimise the cost function by moving to neighboring assignments A greedy procedure is one which constantly tries to minimise the cost function A move which does not change the cost function is a sideways move with a sequence of such moves as a plateau Has a probability of getting stuck in a local minima. In order to get out of a local minima, the following procedures are adopted:
1. Random Walk: With probability p, a random variable in an unsatised clause is ipped, and with prob. (1-p) the greedy algorithm is followed 2. Random Noise: Same as above, with no restrictions on random variable
In most cases, if the initial assignment is close to the global minima, then the solution can be obtained by minimising the cost function
Aditya Parameswaran, Luv Kumar: SAT Solvers, 23
Local Search
GSAT Algorithm a = set of clauses for i = 1 to MAX_TRIES T = a randomly generated truth assignment for j = 1 to MAX_FLIPS if T satisfies a then return T p = a prop. variable such that change in its truth assignment gives the largest increase in total number of clauses of a that are satisfied by T T = T with the truth assignment of p reversed end for return "no satifying assignment found" end
24
Phase Transitions
Clauses are created randomly of xed length The parameters of interest are: number of clauses(L), number of variables(N) and number of literals/clause(K ) Formulae with few clauses are underconstrained and usually satisable Formulae with many clauses are overconstrained and usually unsatisable Satisability of formulae in either extreme is easy to determine A phase transition tends to occur in between when the problems are critically constrained and it is dicult to determine their satisability For random 2-SAT, the transition has been proven to occur at L/N = 1 For random 3-SAT, the transition has been experimentally found to occur at L/N 4.3
25
Phase Transitions
26
Equivalence Classes Are used to show relationships between variables Two formulae are said to be in the same equivalence class, denoted as a b, if they have the same truth value It is not necessary to store the complementary class Initially there are the individual variable undeterminate equivalence classes, and also the and classes Propagation rules merge atleast two equivalence classes, as the proof progresses Instead of branching on truth/false we can branch by merging equivalence classes (A B or A B)
27
Hardness, Proof Depth and Saturation A proof is said to be k-hard if there is no proof involving less than k applications of the dilemma rule, and there exists a proof which involves k applications of dilemma rule Proof Depth has the following denition:
Simple rules have 0 depth Composition of two simple proofs R1 to R2 and R2 to R3 has as its depth the maximum of the two above proofs During the dilemma rule if the two branches have depth d1 and d2 then the depth of the whole system is max(d1 , d2 ) + 1
Alternatively, proof depth is the maximum number of simultaneously open branches A relation is k-saturated i proofs of depth k or less do not add any equivalences between the subformulas
28
References
1. M Davis and H Putnam, A computing procedure for quantication theory, Journal of ACM (1960) 2. M Davis, G Logemann and D Loveland, A machine program for theorem proving, Communications of ACM (1962) 3. H Zhang, SATO: An ecient propositional prover, Conf. on Automated deduction (1997) 4. H Zhang and M Stickel, An ecient algorithm for unit propagation, Int. Symp. on AI and mathematics, 1996 5. E Goldberg and Y Novikov, BerkMin: A fast and robust SAT solver, DATE - 2002 6. J P Marques Silva and K A Sakallah, GRASP: A new search algorithm for satisability, IEEE (Int. Conf. on tools with AI) - 1996 7. M Sheeran and G Stalmarck, A tutorial on Stalmarcks proof procedure for propositional logic 8. M Moskewicz, C Madigan, Y Zhao, L Zhang and S Malik, Cha: Engineering an ecient SAT solver, 39th Design
Aditya Parameswaran, Luv Kumar: SAT Solvers, 29
References
9.
10. 11.
12. 13.
Automation Conf. 2001 B Selman, H Levesque and D Mitchell, A new method for solving hard satisability problems, National Conf. on AI, July 1992 SAT Course material, http://www.inf.ed.ac.uk/teaching/courses/propm/papers/Zhang/ SAT solving, basic principles and directions, http://www-ti.informatik.uni-tuebingen.de/ fmg/teaching/verif0405/BMC.pdf S Malik and L Zhang, Quest for Ecient Boolean Satisability Solvers S Malik, Quest for Ecient Boolean Satisability Solvers Presentation, www.inf.ed.ac.uk/teaching/courses/propm/papers/cavcade2002.pdf