Jump to content

Prune and search

From Wikipedia, the free encyclopedia

This is the current revision of this page, as edited by Jarble (talk | contribs) at 19:23, 1 July 2023 (adding Template:Algorithmic paradigms). The present address (URL) is a permanent link to this version.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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 0 < p < 1. As such, it is a form of decrease and conquer algorithm, where at each step the decrease is by a constant factor. Let n be the input size, T(n) be the time complexity of the whole prune-and-search algorithm, and S(n) be the time complexity of the pruning step. Then T(n) obeys the following recurrence relation:

This resembles the recurrence for binary search but has a larger S(n) 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 T(n) = O(S(n)). 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

[edit]
  1. ^ a b Nimrod Megiddo (1983) Linear-time algorithms for linear programming in R3 and related problems. SIAM J. Comput., 12:759–776 doi:10.1109/SFCS.1982.24
  2. ^ Nimrod Megiddo (1984)Linear Programming in Linear Time When the Dimension Is Fixed doi:10.1145/2422.322418