# 1 Local Restarts in SAT Solvers Vadim Ryvchin and Ofer Strichman Technion, Haifa, Israel.

## 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.

5 Restarts strategies 1.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)

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 =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 …

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 Arithmetic7.939.52x1.16 Geometric9.5510.64x1.11 Inner-Outer7.378.86x1.2 Luby7.898.98x1.13 Original vs. Best Local 7.3710.64x1.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

Similar presentations