Prune and search


Prune and search is a method of solving optimization problems suggested by Nimrod Megiddo in 1983.
The basic idea of the method is a recursive procedure in which at each step the input size is reduced by a constant factor. As such, it is a form of decrease and conquer algorithm, where at each step the decrease is by a constant factor. Let be the input size, be the time complexity of the whole prune-and-search algorithm, and be the time complexity of the pruning step. Then obeys the following recurrence relation:
This resembles the recurrence for binary search but has a larger term than the constant term of binary search. In prune and search algorithms S is typically at least linear. With this assumption, the recurrence has the solution. This can be seen either by applying the master theorem for divide-and-conquer recurrences or by observing that the times for the recursive subproblems decrease in a geometric series.
In particular, Megiddo himself used this approach in his linear time algorithm for the linear programming problem when the dimension is fixed and for the minimal enclosing sphere problem for a set of points in space.