210 likes | 329 Views
Local Restarts in 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.
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