210 likes | 334 Vues
This paper explores the impact of local restart strategies on SAT solver performance. It discusses the motivation for implementing restart policies to avoid excessive time spent in ineffective branches. By analyzing various restart methods, including arithmetic, geometric, and dynamic criteria, the study demonstrates how local measurements of decision levels can optimize restart decisions. Experimental results indicate that local restart strategies significantly enhance average run times and reduce timeouts, showcasing improvements in both Unsatisfiable and overall instance solutions in SAT problem-solving.
E N D
Local Restartsin SAT Solvers Vadim Ryvchin and Ofer Strichman Technion, Haifa, Israel
Restarts • SAT solvers use a "restart" policy • Following various criteria, the solver is forced to backtrack to level 0. • Restarts have crucial impact on performance. • Motivation: avoid spending too much time in ‘bad’ branches: • no easy-to-find satisfying assignment • no opportunity for fast learning of strong clauses.
Restarts Motivation • Best time to restart: • When algorithm spends too much time under a “wrong” branch solution No solution Perform restart decision level k decision level 1 decision level 0
The basic measure for restarts • All existing techniques use the number of conflicts learned as of the previous restart. • The difference is only in the method of calculating the threshold.
Restarts strategies • Arithmetic (or fixed) series. • Parameters: x, y. • Init(t) = x • Next(t)=t+y • Used in: • Berkmin (550, 0) • Eureka (2000, 0) • Zchaff 2004 (700, 0) • Siege (16000, 0)
Restarts Strategies (cont.) • Geometric series. • Parameters: x, y. • Init(t) = x • Next(t)=t*y • Used in • Minisat 2007 (100, 1.5)
Restarts Strategies (cont.) • Inner-Outer Geometric series. • Parameters: x, y, z. • Init(t) = x • if (t*y < z) • Next(t) = t*y • else • Next(t) = x • Next(z) = z*y • Used in: • Picosat (100, 1.1, 1000)
Restarts Strategies (cont.) • Luby et al. series. • Parameter: x. • Init(t) = x • Next(t) = ti*x • Used in: • RSat (512) • Tinisat (512) ti=1 1 2 1 1 2 4 1 1 2 1 1 2 4 8 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8 16 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8 …
Global vs. Local • Recall: all techniques measure the number of conflicts as of the previous restart. • This is a global criterion. • Somewhat disregards the original motivation of focusing on ‘bad’ branches. • Local criteria: measure difficulty of branches.
Global Restarts Explored sub tree solution solution No solution No solution decision level k Perform restart decision level 1 decision level 0
Local Restarts Explored sub tree solution No solution Perform restart decision level k decision level 1 decision level 0
Calculating the number of conflicts under a branch • We worked with the following local measure: • Number of conflicts above each level. • For each decision level d maintain a counter c(d): • When making a decision at level d, • c(d) = #global conflicts. • When backtracking to level d: • res = #global conflicts - c(d). • If res > threshold, restart. • All the presented strategies can be local.
Dynamic Criteria • A new dimension for the restart strategy: the decision level d. • The restart threshold is a function of d. • Higher decision level smaller threshold. • Each of the local strategies can be made dynamic.
Dynamic Criteria • Dynamic-fix. • d – decision level, • i – iteration • Parameters: x, y, c. • Init(t) = x • Next(t) = x + y * i – (c * d) min Constant Need a minimum !
Dynamic Criteria • Dynamic-fix. • d – decision level, • i – iteration • Parameters: x, y, c, min > 0. • Init(t) = x • Next(t) = max(x + y * i – (c * d), min) min Not a restart number Constant
Experimental Results • Solvers: Minisat2007 and Eureka • Benchmarks: 100 instances from SAT-race 2006 (the TS1,TS2 test sets). • Timeout: 30 minutes. • Instances that timed-out are included and contribute 30 minutes • Restart configurations: 40 • Chosen dynamically following ‘hill climbing’ • Looked also for best parameters for global restarts
Dynamic Restart • Unsat improvement: • x1.19 speedup (4.09h vs. 4.90h) • x1.75 in unsolved instances (4 vs. 7). Zoom in
Dynamic Restart Unsat improvement: x1.19 speedup (4.09h vs. 4.90h) x1.75 in unsolved instances (4 vs. 7). 20
Conclusions • Conclusion: • Making restarts local helps all restarts strategies. • Improves average run time • ~ x1.44 in Minisat • ~ x1.17 in Eureka • Improves fails (timeout = 30 min) by • ~ x1.75 in Minisat • ~ x1.27 in Eureka