Prune and search

From testwiki
Jump to navigation Jump to search

Template:Short description Prune and search is a method of solving optimization problems suggested by Nimrod Megiddo in 1983.[1]

The basic idea of the method is a recursive procedure in which at each step the input size is reduced ("pruned") by a constant factor Template:Math. As such, it is a form of decrease and conquer algorithm, where at each step the decrease is by a constant factor. Let Template:Mvar be the input size, Template:Math be the time complexity of the whole prune-and-search algorithm, and Template:Math be the time complexity of the pruning step. Then Template:Math obeys the following recurrence relation:

T(n)=S(n)+T(n(1p)).

This resembles the recurrence for binary search but has a larger Template:Math term than the constant term of binary search. In prune and search algorithms S(n) is typically at least linear (since the whole input must be processed). With this assumption, the recurrence has the solution Template:Math. 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[2] and for the minimal enclosing sphere problem for a set of points in space.[1]

References

Template:Reflist Template:Algorithmic paradigms

  1. 1.0 1.1 Nimrod Megiddo (1983) Linear-time algorithms for linear programming in R3 and related problems. SIAM J. Comput., 12:759–776 Template:Doi
  2. Nimrod Megiddo (1984)Linear Programming in Linear Time When the Dimension Is Fixed Template:Doi