Local restarts

  • Authors:
  • Vadim Ryvchin;Ofer Strichman

  • Affiliations:
  • Information Systems Engineering, IE, Technion, Haifa, Israel and Design Technology Solutions Group, Intel Corporation, Haifa, Israel;Information Systems Engineering, IE, Technion, Haifa, Israel

  • Venue:
  • SAT'08 Proceedings of the 11th international conference on Theory and applications of satisfiability testing
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most or even all competitive DPLL-based SAT solvers have a "restart" policy, by which the solver is forced to backtrack to decision level 0 according to some criterion. Although not a sophisticated technique, there is mounting evidence that this technique has crucial impact on performance. The common explanation is that restarts help the solver avoid spending too much time in branches in which there is neither an easy-to-find satisfying assignment nor opportunities for fast learning of strong clauses. All existing techniques rely on a global criterion such as the number of conflicts learned as of the previous restart, and differ in the method of calculating the threshold after which the solver is forced to restart. This approach disregards, in some sense, the original motivation of focusing on 'bad' branches. It is possible that a restart is activated right after going into a good branch, or that it spends all of its time in a single bad branch. We suggest instead to localize restarts, i.e., apply restarts according to measures local to each branch. This adds a dimension to the restart policy, namely the decision level in which the solver is currently in. Our experiments with both Minisat and Eureka show that with certain parameters this improves the run time by 15% - 30% on average (when applied to the 100 test benchmarks of SAT-race'06), and reduces the number of time-outs.