Presentation on theme: "1 Local Restarts in SAT Solvers Vadim Ryvchin and Ofer Strichman Technion, Haifa, Israel."— Presentation transcript:
1 Local Restarts in SAT Solvers Vadim Ryvchin and Ofer Strichman Technion, Haifa, Israel
2 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.
3 Restarts Motivation Best time to restart: When algorithm spends too much time under a “wrong” branch No solution Perform restart solution decision level k decision level 1 decision level 0
4 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.
6 Restarts Strategies (cont.) 2.Geometric series. Parameters: x, y. Init(t) = x Next(t)=t*y Used in Minisat 2007 (100, 1.5)
7 Restarts Strategies (cont.) 3.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)
8 Restarts Strategies (cont.) 4.Luby et al. series. Parameter: x. Init(t) = x Next(t) = t i *x Used in: RSat (512) Tinisat (512) t i = …
9 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.
10 Global Restarts Perform restart Explored sub tree No solution solution No solution solution decision level k decision level 1 decision level 0
11 Local Restarts Perform restart Explored sub tree No solution solution decision level k decision level 1 decision level 0
12 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.
13 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.
14 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 !
15 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 Constant Not a restart number
16 Experimental Results Solvers: Minisat 2007 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
Experimental Results - Minisat Restart Strategy LocalGlobalSpeedup Arithmetic x1.16 Geometric x1.11 Inner-Outer x1.2 Luby x1.13 Original vs. Best Local x1.44
Experimental Results (fails) – Minisat Restart Strategy LocalGlobalimprovement Arithmetic10 1 Geometric1114x1.27 Inner-Outer810x1.25 Luby911x1.22 Original vs. Best Local 814x1.75
19 Dynamic Restart Unsat improvement: x1.19 speedup (4.09h vs. 4.90h) x1.75 in unsolved instances (4 vs. 7). Zoom in
20 Dynamic Restart Unsat improvement: x1.19 speedup (4.09h vs. 4.90h) x1.75 in unsolved instances (4 vs. 7).
21 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