modern cdcl sat solvers
play

Modern CDCL SAT Solvers SAT / SMT Summer School 12. June 2012 - PowerPoint PPT Presentation

Modern CDCL SAT Solvers SAT / SMT Summer School 12. June 2012 Fondazione Bruno Kessler Trento, Italy Armin Biere Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria


  1. Modern CDCL SAT Solvers SAT / SMT Summer School 12. June 2012 Fondazione Bruno Kessler Trento, Italy Armin Biere Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria http://fmv.jku.at/biere/talks/Biere-SATSMT12.pdf http://fmv.jku.at/cleaneling/cleaneling00a.zip

  2. What is Practical SAT Solving? 2 reencoding? encoding inprocessing simplifying search CDCL

  3. SAT Competition / Race Winners on SC 2009 Application Benchmarks 3 Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout 1200 Limmat (2002) Zchaff (2002) Berkmin (2002) Forklift (2003) Siege (2003) 1000 Zchaff (2004) SatELite (2005) Minisat 2 (2006) Picosat (2007) Rsat (2007) Minisat 2.1 (2008) 800 Precosat (2009) Glucose (2009) CPU Time (in seconds) Clasp (2009) Cryptominisat (2010) Lingeling (2010) Minisat 2.2 (2010) 600 Glucose 2 (2011) Glueminisat (2011) Contrasat (2011) 400 200 [Le Berre'11] 0 0 20 40 60 80 100 120 140 160 180 Number of problems solved

  4. ZChaff, MiniSAT, My Solvers 4 Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout 1200 Limmat (2002) Zchaff (2002) Berkmin (2002) Forklift (2003) Siege (2003) 1000 Zchaff (2004) SatELite (2005) Minisat 2 (2006) Picosat (2007) Rsat (2007) Minisat 2.1 (2008) 800 Precosat (2009) Glucose (2009) CPU Time (in seconds) Clasp (2009) Cryptominisat (2010) Lingeling (2010) Minisat 2.2 (2010) 600 Glucose 2 (2011) Glueminisat (2011) Contrasat (2011) Lingeling 587f (2011) 400 200 0 0 20 40 60 80 100 120 140 160 180 200 Number of problems solved

  5. DP / DPLL search 5 • dates back to the 50’ies: 1 st version DP is resolution based ⇒ SatELite preprocessor [E´ enBiere05] 2 st version D(P)LL splits space for time CDCL ⇒ • ideas: – 1 st version: eliminate the two cases of assigning a variable in space or – 2 nd version: case analysis in time, e.g. try x = 0 , 1 in turn and recurse • most successful SAT solvers are based on variant (CDCL) of the second version works for very large instances • recent ( ≤ 15 years) optimizations: backjumping, learning, UIPs, dynamic splitting heuristics, fast data structures (we will have a look at each of them)

  6. DP Procedure search 6 [DavisPutnam’61] forever if F = ⊤ return satisfiable if ⊥ ∈ F return unsatisfiable pick remaining variable x add all resolvents on x remove all clauses with x and ¬ x ⇒ SatELite preprocessor [E´ enBiere05]

  7. D(P)LL Procedure search 7 [DavisLogemannLoveland’62] DPLL ( F ) F : = BCP ( F ) boolean constraint propagation if F = ⊤ return satisfiable if ⊥ ∈ F return unsatisfiable pick remaining variable x and literal l ∈ { x , ¬ x } if DPLL ( F ∧{ l } ) returns satisfiable return satisfiable return DPLL ( F ∧{¬ l } ) CDCL ⇒

  8. DPLL Example search 8 [DavisLogemannLoveland’62] clauses a a decision a v b v c a v b v c a = 1 b b c c a v b v c decision a v b v c b = 1 BCP a v b v c c c b b a v b v c c = 0 a v b v c a v b v c

  9. Simple Data Structures in DPLL Implementation search 9 [DavisLogemannLoveland’62] −1 −2 −1 2 1 −2 1 1 2 Variables Clauses 2 3 3 −1 −2 −3 1 −3 2

  10. BCP Example search 10 [DavisLogemannLoveland’62] 0 0 decision level Control Trail 1 X −1 2 Assignment 2 X Variables Clauses 3 −2 3 X X 4 −4 5 X 5

  11. Example cont. search 11 [DavisLogemannLoveland’62] Decide 0 1 0 decision level Control Trail 1 X −1 2 Assignment 2 X Variables Clauses 3 −2 3 X X 4 −4 5 X 5

  12. Example cont. search 12 [DavisLogemannLoveland’62] Assign 0 1 0 1 decision level Control Trail 1 1 −1 2 Assignment 2 X Variables Clauses 3 −2 3 X X 4 −4 5 X 5

  13. Example cont. search 13 [DavisLogemannLoveland’62] BCP 3 0 2 1 0 1 decision level Control Trail 1 1 −1 2 Assignment 2 1 Variables Clauses 3 1 −2 3 X 4 −4 5 X 5

  14. Example cont. search 14 [DavisLogemannLoveland’62] Decide 3 3 0 2 2 0 1 decision level Control Trail 1 1 −1 2 Assignment 2 1 Variables Clauses 3 1 −2 3 X 4 −4 5 X 5

  15. Example cont. search 15 [DavisLogemannLoveland’62] Assign 4 3 3 0 2 2 0 1 decision level Control Trail 1 1 −1 2 Assignment 2 1 Variables Clauses 3 1 −2 3 4 1 −4 5 X 5

  16. Example cont. search 16 [DavisLogemannLoveland’62] 5 BCP 4 3 3 0 2 2 0 1 decision level Control Trail 1 1 −1 2 Assignment 2 1 Variables Clauses 3 1 −2 3 4 1 −4 5 5 1

  17. Conflict Driven Clause Learning (CDCL) search 17 Grasp [MarquesSilvaSakallah’96] clauses a decision a v b v c a v b v c a = 1 b a v b v c decision a v b v c b = 1 BCP a v b v c c a v b v c c = 0 a v b v c a v b v c a v b learn

  18. Conflict Driven Clause Learning (CDCL) search 18 Grasp [MarquesSilvaSakallah’96] clauses a v b v c decision a a v b v c a = 1 a v b v c b BCP a v b v c b = 0 a v b v c c BCP a v b v c c = 0 a v b v c a v b v c a v b a learn

  19. Conflict Driven Clause Learning (CDCL) search 19 Grasp [MarquesSilvaSakallah’96] clauses a v b v c a BCP a v b v c a = 1 a v b v c c decision a v b v c b = 0 a v b v c b BCP a v b v c c = 0 a v b v c a v b v c a v b a learn c

  20. Conflict Driven Clause Learning (CDCL) search 20 Grasp [MarquesSilvaSakallah’96] clauses a v b v c a BCP a a v b v c a = 1 a v b v c c BCP a v b v c b = 0 a v b v c b BCP a v b v c c = 0 a v b v c a v b v c a v b a c learn empty clause

  21. Decision Heuristics search 21 • static heuristics: – one linear order determined before solver is started – usually quite fast to compute, since only calculated once – and thus can also use more expensive algorithms • dynamic heuristics – typically calculated from number of occurences of literals (in unsatisfied clauses) – could be rather expensive, since it requires traversal of all clauses (or more expensive updates in BCP) – effective second order dynamic heuristics (e.g. VSIDS in Chaff)

  22. Other popular Decision Heuristics search 22 • Dynamic Largest Individual Sum (DLIS) – fastest dynamic first order heuristic (e.g. GRASP solver) – choose literal (variable + phase) which occurs most often (ignore satisfied clauses) – requires explicit traversal of CNF (or more expensive BCP) • look-ahead heuristics (e.g. SATZ or MARCH solver) failed literals, probing – trial assignments and BCP for all/some unassigned variables (both phases) – if BCP leads to conflict, enforce toggled assignment of current trial decision – optionally learn binary clauses and perform equivalent literal substitution – decision: most balanced w.r.t. prop. assignments / sat. clauses / reduced clauses – related to our recent Cube & Conquer paper [HeuleKullmanWieringaBiere-HVC’11]

  23. Exponential VSIDS (EVSIDS) search 23 Chaff [MoskewiczMadiganZhaoZhangMalik’01] • increment score of involved variables by 1 • decay score of all variables every 256’th conflict by halfing the score • sort priority queue after decay and not at every conflict [E´ enS¨ MiniSAT uses EVSIDS orensson’03/’06] • update score of involved variables as actually LIS would also do δ ′ = δ · 1 • dynamically adjust increment: typically increment δ by 5% f • use floating point representation of score • “rescore” to avoid overflow in regular intervals • EVSIDS linearly related to NVSIDS

  24. Relating EVSIDS and NVSIDS search 24 (consider only one variable) � if involved in k -th conflict 1 δ k = otherwise 0 = ( 1 − f ) · δ k i k n n i k · f n − k = ( 1 − f ) · δ k · f n − k ∑ ∑ s n = ( ... ( i 1 · f + i 2 ) · f + i 3 ) · f ··· ) · f + i n = (NVSIDS) k = 1 k = 1 f − n f − n n n δ k · f n − k = δ k · f − k ∑ ∑ S n = ( 1 − f ) · s n = ( 1 − f ) · ( 1 − f ) · (EVSIDS) k = 1 k = 1

  25. BerkMin’s Dynamic Second Order Heuristics search 25 [GoldbergNovikov-DATE’02] • observation: – recently added conflict clauses contain all the good variables of VSIDS – the order of those clauses is not used in VSIDS • basic idea: – simply try to satisfy recently learned clauses first – use VSIDS to choose the decision variable for one clause – if all learned clauses are satisfied use other heuristics – intuitively obtains another order of localization (no proofs yet) • mixed results as other variants VMTF , CMTF (var/clause move to front)

  26. Reducing Learned Clauses search 26 • keeping all learned clauses slows down BCP kind of quadratically – so SATO and RelSAT just kept only “short” clauses • better periodically delete “useless” learned clauses – keep a certain number of learned clauses “search cache” – if this number is reached MiniSAT reduces (deletes) half of the clauses – keep most active , then shortest , then youngest (LILO) clauses – after reduction maximum number kept learned clauses is increased geometrically • LBD (Glue) based (apriori!) prediction for usefullness [AudemardLaurent’09] – LBD (Glue) = number of decision-levels in the learned clause – allows arithmetic increase of number of kept learned clauses

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend