Лучшие вопросы
Таймлайн
Чат
Перспективы
Основная теорема о рекуррентных соотношениях
Из Википедии, свободной энциклопедии
Remove ads
Основная теорема о рекуррентных соотношениях используется в анализе алгоритмов для получения асимптотической оценки рекурсивных соотношений (рекуррентных уравнений), часто возникающих при анализе алгоритмов типа «разделяй и властвуй», например, при оценке времени их выполнения. Теорема была введена и доказана Джоном Бентли, Доротеном Хакеном и Джеймсом Хакеном в 1980 году. Теорема была популяризована в книге Алгоритмы: построение и анализ (Томас Кормен, Чарльз Лейзерстон, Рональд Ривест, Клиффорд Штайн), в которой она была приведена.
Не все рекурсивные соотношения могут быть решены с помощью основной теоремы. Существует несколько её обобщений, в том числе метод Акры — Бацци.
Remove ads
Описание
Суммиров вкратце
Перспектива
Рассмотрим задачу, которую можно решить рекурсивным алгоритмом:
function T(input n: размер задачи): if n < некоторая константа k: решить задачу относительно n нерекурсивно else: определить множество из a подзадач, каждая размера n/b вызвать функцию T рекурсивно для каждой подзадачи объединить решения end

В приведённом примере алгоритм рекурсивно разделяет исходную задачу размера n на несколько новых подзадач, каждая размером n/b. Такое разбиение может быть представлено в виде дерева вызовов, в котором каждый узел соответствует рекурсивному вызову, а ветви, исходящие из узла — последующим вызовам для подзадач. Каждый узел будет иметь a ветвей. Также в каждом узле производится объём работы, соответствующий размеру текущей подзадачи n (переданному в данный вызов функции) согласно соотношению . Общий объём работы алгоритма определяется как сумма всех работ в узлах данного дерева.
Вычислительная сложность подобных алгоритмов может быть представлена в виде рекуррентного соотношения . Его можно решить путём многократных подстановок выражения .[1]
С помощью основной теоремы возможно быстрое вычисление подобных соотношений, что позволяет получить асимптотическую оценку времени работы рекурсивных алгоритмов в нотации O(n) (Θ-нотации), не производя подстановок.
Remove ads
Общая форма
Суммиров вкратце
Перспектива
Основная теорема рассматривает следующие рекуррентные соотношения:
В применении к анализу алгоритмов константы и функции обозначают:
- n — размер задачи.
- a — количество подзадач в рекурсии.
- n/b — размер каждой подзадачи. (Предполагается, что все подзадачи на каждом этапе имеют одинаковый размер.)
- f (n) — оценка сложности работы, производимой алгоритмом вне рекурсивных вызовов. В неё также включается вычислительная стоимость деления на подзадачи и объединения результатов решения подзадач.
Основная теорема позволяет получить асимптотическую оценку для следующих трёх случаев:
Вариант 1
Общая форма
Если , и выполняется соотношение , тогда:
Пример
Согласно формуле, значения констант и сложности нерекурсивной части задачи:
- , где .
Затем проверяем, выполняется ли соотношение 1-го варианта:
- .
Следовательно,
(Для данного примера точное решение рекуррентности даёт , при условии .)
Вариант 2
Общая форма
Если для некоторой константы выполняется
- , где .
Тогда
Пример
Согласно формуле, значения констант и сложности не рекурсивной части задачи:
- , где .
Проверяем соотношение варианта 2:
- , и следовательно, .
В соответствии с 2-м вариантом основной теоремы,
Таким образом, рекуррентное соотношение T(n) равно Θ(n log n).
(Этот результат может быть проверен точным решением соотношения, в котором , при условии .)
Вариант 3
Общая форма
Если выполняется
- , где ,
а также верно, что
- для некоторой константы и достаточно больших (так называемое условие регулярности), тогда
Пример
Значения констант и функции:
- , где .
Проверяем, что выполняется соотношение из варианта 3:
- , и, следовательно, .
Также выполняется условие регулярности:
- при выборе .
Следовательно, согласно 3-му варианту основной теоремы,
Данное рекуррентное соотношение T(n) равно Θ(n2), что совпадает с f(n) в изначальной формуле.
(Этот результат подтверждается точным решением рекуррентности, в котором , при условии .)
Remove ads
Выражения, не решаемые основной теоремой
Суммиров вкратце
Перспектива
Следующие соотношения не могут быть решены с применением основной теоремы:[2]
-
- a не является константой, для основной теоремы требуется постоянное количество подзадач.
-
- Между f(n) и существует неполиномиальная зависимость.
-
- a < 1, но основная теорема требует наличия хотя бы одной подзадачи.
-
- f(n) является отрицательной величиной.
-
- Близко к варианту 3, но не выполняется условие регулярности.
Во втором примере разница между и может быть выражена соотношением Из него видно, что для любой константы . Следовательно, разница не является полиномом, и основная теорема неприменима.
Remove ads
Применение к некоторым алгоритмам
Remove ads
См. также
Примечания
Литература
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads