Computer Science Department
School of Computer Science, Carnegie Mellon University


Search Tree Restructuring

Erik Zawadzki, Tuomas Sandholm

May 2010


Keywords: Tree search, integer programming, branching, variable ordering

Poor branching decisions in a search tree can increase solve time by orders of magnitude. We introduce a new approach where, instead of committing to the tree so far, we restructure the tree throughout the search. This has the advantages of removing unnecessary decisions from the tree and relocating important decisions closer to the root. We define two tree-modifying operators: delete and promote, and prove that they maintain correctness and completeness. We show that conflict-directed backtracking (CDBT) can be expressed as a compound operation of the two; however it is only one member of a rich space of compound tree operations. We study a more general and aggressive compound operation which we coin path contraction. We develop several policies for applying that operation. We prove that under a natural assumption, one of the policies (and CDBT) is never harmful. In practice we show that policies that apply path contraction more aggressively are even better. The technique applies to both optimization and constraint satisfaction. We present binary integer programming experiments on unsatisfiable graph coloring and 3SAT. Our techniques yield significant speed improvements and reduce node count by up to 82%.

24 pages

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by