Обрезка и поиск

Метод оптимизации

Сокращение и поиск — метод решения задач оптимизации, предложенный Нимродом Мегиддо в 1983 году. [1]

Основная идея метода — рекурсивная процедура, в которой на каждом шаге размер входных данных уменьшается («обрезается») на постоянный множитель 0 < p < 1. Таким образом, это форма алгоритма уменьшения и завоевания , где на каждом шаге уменьшение происходит на постоянный множитель. Пусть n — размер входных данных, T ( n )временная сложность всего алгоритма обрезки и поиска, а S ( n ) — временная сложность шага обрезки. Тогда T ( n ) подчиняется следующему рекуррентному соотношению :

Т ( н ) = С ( н ) + Т ( н ( 1 п ) ) . {\displaystyle T(n)=S(n)+T(n(1-p)).}

Это напоминает рекуррентность для бинарного поиска , но имеет больший член S ( n ) , чем постоянный член бинарного поиска. В алгоритмах обрезки и поиска S(n) обычно по крайней мере линейна (так как весь ввод должен быть обработан). При этом предположении рекуррентность имеет решение T ( n ) =  O ( S ( n )) . Это можно увидеть, либо применив основную теорему для рекуррентностей «разделяй и властвуй», либо заметив, что времена для рекурсивных подзадач уменьшаются в геометрической прогрессии .

В частности, сам Мегиддо использовал этот подход в своем линейном алгоритме времени для задачи линейного программирования , когда размерность фиксирована [2] , и для задачи минимальной объемлющей сферы для набора точек в пространстве [1] .

Ссылки

  1. ^ ab Nimrod Megiddo (1983) Алгоритмы линейного времени для линейного программирования в R 3 и связанных с ними проблем. SIAM J. Comput., 12:759–776 doi :10.1109/SFCS.1982.24
  2. ^ Нимрод Мегиддо (1984) Линейное программирование в линейном времени при фиксированной размерности doi :10.1145/2422.322418
Получено с "https://en.wikipedia.org/w/index.php?title=Prune_and_search&oldid=1162898006"