330 likes | 484 Views
Methods for SAT- a Survey. Robert Glaubius CSCE 976 May 6, 2002. SAT: Outline. Definitions Solving SAT Testing SAT Attempted Contribution Conclusions. SAT: The Propositional Satisfiability Problem. Given: , a predicate in CNF, e.g.,
E N D
Methods for SAT- a Survey Robert Glaubius CSCE 976 May 6, 2002
SAT: Outline • Definitions • Solving SAT • Testing SAT • Attempted Contribution • Conclusions
SAT: The Propositional Satisfiability Problem • Given: , a predicate in CNF, e.g., = (a1a2) (a2 ¬a3) (a1 ¬a2a3) • Question: does a model of exist?
SAT: Definitions • Variable: ai • Literal: = aior¬ai • Clause: (ij... n) = (a1a2) (a2 ¬a3) (a1 ¬a2a3)
SAT: Outline • Definitions • Solving SAT • Testing SAT • Attempted Contribution • Conclusions
SAT: Solution methods • Systematic search: • SATO [Zhang, 1993] • Satz [Li and Ambulagan, 1997] • Chaff [Moskewicz, et al., 2001] • Stochastic search: • GSAT [Selman et al., 1992] • walkSAT [Selman et al., 1996]
SAT: Systematic Search I • Davis-Putnam procedure Satz, Sato, Chaff • Splitting and unit propagation = aiand = ¬ai
SAT: Systematic Search II • Splitting and unit propagation: = a2 (a1a2) (a2 ¬a3) (a1 ¬a2a3) unit_propagate() (a1a3) • (a1a2), (a2 ¬a3) subsumed by a2 • (a1 ¬a2a3) (a1a3)
SAT: Systematic Search III Heuristics and Hacks • SATO: Splitting heuristics • Satz: More Splitting heuristics • Chaff: Squeaky clean implementation
SAT: Stochastic Search • Selection Heuristics: mechanisms for variable selection • Random restart: • Restart • Move • Walk
SAT: Stochastic Search - GSAT procedure GSAT begin fori = 1 to MAX-TRIES T = a randomly generated truth assignment forj = 1 to MAX-FLIPS ifT satisfies then return T p = variable s.t. flip(p) maximizes satisfied clauses T = T after flip(p) end for end for return “fail” end
SAT: Stochastic Search - WalkSAT procedure WalkSAT begin T = a randomly generated truth assignment for i = 1 to MAX-TRIES ifT satisfies then return T k = random unsatisfied clause p = variable in k s.t. flip(p) maximizes satisfied clauses ifflip(p) does not unsatisfy any clause thenT = T after flip(p) elsej = a random number in [0,1] ifj > 0.5 then flip(p) elseT = T after flip(q), where q is a random variable in k end for end
SAT: Outline • Definitions • Solving SAT • Testing SAT • Attempted Contribution • Conclusions
SAT: Algorithm Verification • Benchmark problems – planning, verification • International Competition and Symposium on Satisfiability Testing • SAT2002 Competetion • Random problems • naïve random generation • ‘structured’ random problems, QCP [Selman and Gomes, 1997] • QWH, [Achlioptas et al., 2000]
SAT: Random Generation - Naïve • Generate n clauses with 1..l variables per clause drawn from a pool of k variables. • Does not guarantee satisfiability • Requires filtering of instances by slower, systematic means
Digression I: Latin Square Latin Square: a configuration of n symbols in ncolumns and n rows s.t. each symbol occurs exactly once in each row and each column. Rhetorical Question: “If we had a table that was only partially filled, can we make it a Latin Square?” This turns out to be an NP-complete problem
SAT: Random Generation – QCP • Quasigroup completion problem • Fill some percentage of squares in an nn matrix and try to complete the quasigroup (latin square). • Does offer a structured random problem • Doesn’t guarantee a solution
SAT: Random Generation – QWH I • Quasigroup with Holes • Start with a randomly generated completed latin square, then poke random holes in it. • Does offer a structured problem • Does have at least one solution
SAT: Random Generation – QWH II • Improvement: balanced QWH • Instead of random holes, specify a set number for each row and column But how do we make a random latin square?
Digression II: Random Latin Squares Jacobsen and Matthews (1996) identify a set of moves that translate an ordern Latin Square into a new Latin square, and prove that these moves connect the space of all order n Latin Squares. Iterated random application of these moves allows us to randomly select new squares.
Digression III: Encoding the Square I • Exactly one symbol per cell (aijbij...nij)(¬aij¬bij)(¬aij¬cij)...(¬mij¬nij) • Exactly one occurrence of sin row r (sr1sr2...srn)(¬sr1¬sr2)(¬sr1¬sr3)...(¬srn-1¬srn) • Exactly one occurrence of sin column c (s1cs2c...snc)(¬s1c¬s2c)(¬s1c¬s3c)...(¬sn-1c¬snc)
Digression III: Encoding the Square II • Conjoin the appropriate positive literal for each preassigned cell • How much space does this cost us? n3variables 1.5n4- 1 .5n3 + 3n2 clauses
SAT: Outline • Definitions • Solving SAT • Testing SAT • Attempted Contribution • Conclusions
SAT: Return to Stochastic Search • Premise: WalkSAT uses a random start • What if we can derive us a heuristic that can give us a better start frequently? • Systematic MoM’s heuristic: Most occurrences in clauses of minimum length. • Another rhetorical question: “Can we adapt this to stochastic search?”
SAT: ANP heuristic I Given: = (a1a2) (a2 ¬a3) (a1¬a2a3) • What is the P(ai= | )? • The only way to evaluate this is by finding all models. • Is P(ai= | ) approximable?
SAT: ANP heuristic II • Given k =(a2 ¬a3), we define P(ai= | kj). • P(a2= True| k ) = 0.67, since a2is true in 2 models of k • P(a2= True| k ) = 0.33, since a2is true in 1 models of k • Approximate P(ai= | ) jP(ai= | kj ) • Normalize P(ai= | ) + P(ai= ¬ | ) = 1
SAT: ANP heuristic III • = (a1a2) (a2 ¬a3) (a1¬a2a3) P(a1= True | ) 0.73, P(a1= False | ) 0.27 P(a2= True | ) 0.75, P(a2= False | ) 0.25 P(a3= True | ) 0.40, P(a3= False | ) 0.60
SAT: ANP heuristic IV • ANP heuristic: choose the initial assignment with maximum approximate normalized probability a1 = True, a2 = True, and a3 = False • This assignment is in fact a model of
SAT: Experiment design • Four benchmark problems from the 1996 International Competition and Symposium on Satisfiability Testing - hardware verification • Three order 15 balanced QWH problems • 3, 4, 5 holes per row, column • WalkSat solver
SAT: Results • 100 trial runs per problem • 3 Initial Assignment types • - ANP • - Random • - Default (all False) We didn’t do so well
SAT: Conclusions • Based on our initial experiments, stochastic solvers are harmed by heuristics. • Quasigroup-based problems are likely to be the exception; most variables are false in a model. • More tests are needed; possible domain dependence
SAT: Outline • Definitions • Solving SAT • Testing SAT • Attempted Contribution • Conclusions
Questions, Comments, Insults? www.animatedengineering.com/ animal_pages/duck.htm