Mini SAT World fastest SAT solver 2005 and

  • Slides: 20
Download presentation
Mini. SAT : World fastest SAT solver (2005 and 2006) Niklas Sorensson , Niklas

Mini. SAT : World fastest SAT solver (2005 and 2006) Niklas Sorensson , Niklas Een and Armin Biere Some slides are from Presented by: Niklas Sorensson presentation Tamir Heyman (2006), Himanshu Jain (2007)

DPLL SAT Solving n n Branching Unit propagation Backtracking Learning n n New feature:

DPLL SAT Solving n n Branching Unit propagation Backtracking Learning n n New feature: Conflict clause minimization Pre-processing

Learning in SAT Solver n n A conflict happens when one clause is falsified

Learning in SAT Solver n n A conflict happens when one clause is falsified by unit propagation Analyze the clause conflicting clause to infer a This clause is a logical consequence of the problem The inferred clause is a new knowledge

Conflict/Learned Clause n n n Inferred by conflict analysis Helps prune future parts of

Conflict/Learned Clause n n n Inferred by conflict analysis Helps prune future parts of the search space Actually drives backtracking

Conflict Clause Requirements n Consequence of the clause set n Falsified by current assignment

Conflict Clause Requirements n Consequence of the clause set n Falsified by current assignment n Contains exactly one literal implied by last assumption ( Asserting clause )

Conflict Analysis Algorithm n n Begin with conflicting clause Resolve on the most recently

Conflict Analysis Algorithm n n Begin with conflicting clause Resolve on the most recently propagated literal n n Using the antecedent as side clause Repeat until the clause contains exactly one literal from the last assumption

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T Conflict : b _ : c _ : d

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h : b_ e_f_h

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h : b_ e_f_h b=F

Conflict Minimizing n n n Traditional Conflict Analysis is minimal in the number of

Conflict Minimizing n n n Traditional Conflict Analysis is minimal in the number of derivations Balance between time spent and usefulness of the conflict clause Is a shorter clause always better?

Basic Conflict Minimizing n Start from an ordinary conflict clause n Apply resolution greedily

Basic Conflict Minimizing n Start from an ordinary conflict clause n Apply resolution greedily n n Works because there are no cyclic dependencies Also uses antecedent clauses from other levels

Resolution x _ A : A_ B A, B are clauses x is a

Resolution x _ A : A_ B A, B are clauses x is a variable x_ B

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h : b _ e _ h _f b=F

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e

Example Assignmen antecede ts nt e=F DLevel =1 assumpti on f=F ¬f _ e g=F ¬g _ f h=F ¬h _ g a=T DLevel = assumpti 2 on b=T b _ ¬a _ e e=F a=T : b _ : c _ : d : b _ : c _ h : b _ e _ h _f : b_e_h b=F

Conflict clause minimization Impact n n On average there is 25 -50% reduction in

Conflict clause minimization Impact n n On average there is 25 -50% reduction in the size of learned clauses Helps reduce Boolean constraint propagation time

Talk and paper on pre-processing available online.

Talk and paper on pre-processing available online.

Time. Line 1960 DP 10 var 1988 SOCRATES 3 k var 1996 1994 Hannibal

Time. Line 1960 DP 10 var 1988 SOCRATES 3 k var 1996 1994 Hannibal GRASP 3 k var 1996 SATO 1 k var 1962 DLL 10 var 1986 1992 BDD GSAT 100 var 300 var 1996 Stålmarck 1000 var 2005 -6 Minisat 100 k var 2001 Chaff 10 k var