stringtranslate.com

Основная теорема (анализ алгоритмов)

В анализе алгоритмов основная теорема для рекуррентных соотношений «разделяй и властвуй» обеспечивает асимптотический анализ для многих рекуррентных соотношений , которые встречаются при анализе алгоритмов «разделяй и властвуй» . Этот подход был впервые представлен Джоном Бентли , Доротеей Блоштейн (урожденной Хакен) и Джеймсом Б. Саксом в 1980 году, где он был описан как «унифицирующий метод» для решения таких рекуррентных соотношений. [1] Название «основная теорема» было популяризировано широко используемым учебником по алгоритмам « Введение в алгоритмы » Кормена , Лейзерсона , Ривеста и Стайна .

Не все рекуррентные соотношения могут быть решены с помощью этой теоремы; ее обобщения включают метод Акра–Бацци .

Введение

Рассмотрим задачу, которую можно решить с помощью рекурсивного алгоритма, например следующего:

процедура p(вход x размера n ): если  n < некоторая константа k : Решить x напрямую, без рекурсии, иначе : Создайте подзадачи x , каждая из которых имеет размер n / b. Вызовите процедуру p рекурсивно для каждой подзадачи. Объединить результаты подзадач
Дерево решений.

Приведенный выше алгоритм рекурсивно делит задачу на ряд подзадач, каждая из которых имеет размер n / b . Его дерево решений имеет узел для каждого рекурсивного вызова, причем дочерние элементы этого узла являются другими вызовами, сделанными из этого вызова. Листья дерева являются базовыми случаями рекурсии, подзадачи (размером меньше k ), которые не рекурсивны. Приведенный выше пример будет иметь дочерние узлы в каждом нелистовом узле. Каждый узел выполняет объем работы, который соответствует размеру подзадачи n , переданной этому экземпляру рекурсивного вызова и заданной как . Общий объем работы, выполненной всем алгоритмом, является суммой работы, выполненной всеми узлами в дереве.

Время выполнения алгоритма, такого как p выше, на входе размера n , обычно обозначаемого , можно выразить рекуррентным соотношением

где — время создания подзадач и объединения их результатов в вышеописанной процедуре. Это уравнение можно последовательно подставить само в себя и расширить, чтобы получить выражение для общего объема проделанной работы. [2] Основная теорема позволяет преобразовать многие рекуррентные соотношения этой формы в Θ-обозначение напрямую, без выполнения расширения рекурсивного соотношения.

Общая форма

Основная теорема всегда дает асимптотически точные границы для рекуррентных последовательностей из алгоритмов «разделяй и властвуй» , которые разделяют входные данные на меньшие подзадачи одинакового размера, решают подзадачи рекурсивно, а затем объединяют решения подзадач, чтобы получить решение исходной задачи. Время для такого алгоритма можно выразить, сложив работу, которую они выполняют на верхнем уровне своей рекурсии (чтобы разделить задачи на подзадачи, а затем объединить решения подзадач), вместе со временем, затраченным на рекурсивные вызовы алгоритма. Если обозначает общее время для алгоритма на входных данных размера , а обозначает количество времени, затраченного на верхнем уровне рекуррентности, то время можно выразить с помощью рекуррентного соотношения , которое принимает вид:

Здесь — размер входной задачи, — количество подзадач в рекурсии, — коэффициент, на который уменьшается размер подзадачи при каждом рекурсивном вызове ( ). Важно, что и не должно зависеть от . Теорема ниже также предполагает, что в качестве базового случая для рекурсии, когда меньше некоторой границы , наименьший размер входных данных, который приведет к рекурсивному вызову.

Рекуррентные соотношения этой формы часто удовлетворяют одному из трех следующих режимов, в зависимости от того, как работа по разделению/рекомбинации задачи соотносится с критическим показателем . (В таблице ниже используется стандартная нотация «большое О» ).

Полезное расширение случая 2 обрабатывает все значения : [3]

Примеры

Пример случая 1

Как видно из формулы выше:

, так
, где

Далее посмотрим, удовлетворяем ли мы условию случая 1:

.

Из первого случая основной теоремы следует, что

(Этот результат подтверждается точным решением рекуррентного соотношения, которое равно , при условии ).

Пример случая 2

Как мы видим в приведенной выше формуле, переменные получают следующие значения:

где

Далее посмотрим, удовлетворяем ли мы условию случая 2:

, и, следовательно, c и равны

Итак, из второго случая основной теоремы следует:

Таким образом, данное рекуррентное соотношение было в .

(Этот результат подтверждается точным решением рекуррентного соотношения, которое равно , при условии ).

Пример случая 3

Как мы видим в приведенной выше формуле, переменные получают следующие значения:

, где

Далее посмотрим, удовлетворяем ли мы условию случая 3:

, и поэтому, да,

Условие регулярности также выполняется:

, выбирая

Итак, из третьего случая основной теоремы следует:

Таким образом, данное рекуррентное соотношение оказалось в , что соответствует исходной формуле.

(Этот результат подтверждается точным решением рекуррентного соотношения, которое равно , при условии .)

Недопустимые уравнения

Следующие уравнения не могут быть решены с помощью основной теоремы: [4]

Во втором недопустимом примере выше разница между и может быть выражена отношением . Очевидно, что для любой константы . Следовательно, разница не является полиномиальной, и основная форма Основной теоремы неприменима. Расширенная форма (случай 2b) применима, давая решение .

Применение к общим алгоритмам

Смотрите также

Примечания

  1. ^ Бентли, Джон Луис ; Хакен, Доротея ; Сакс, Джеймс Б. (сентябрь 1980 г.), «Общий метод решения повторяющихся задач «разделяй и властвуй»», ACM SIGACT News , 12 (3): 36–44, doi : 10.1145/1008861.1008865, S2CID  40642274, архивировано из оригинала 22 сентября 2017 г.
  2. ^ Университет Дьюка, «Большое О для рекурсивных функций: рекуррентные соотношения», http://www.cs.duke.edu/~ola/ap/recurrence.html
  3. ^ Чи Яп, Настоящий элементарный подход к основной рекуррентности и обобщениям, Труды 8-й ежегодной конференции по теории и приложениям моделей вычислений (TAMC'11), страницы 14–26, 2011. Электронная копия.
  4. ^ Массачусетский технологический институт (MIT), «Основная теорема: практические проблемы и решения», https://people.csail.mit.edu/thies/6.046-web/master.pdf
  5. ^ ab Дартмутский колледж, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf

Ссылки