Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Введение [ править ]

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

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

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

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

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

Общая форма [ править ]

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

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

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

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

Примеры [ править ]

Пример случая 1 [ править ]

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

, так
, куда

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

.

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

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

Пример случая 2 [ править ]

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

куда

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

, и поэтому,

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

Таким образом, данное рекуррентное отношение T ( n ) находилось в Θ ( n log n ).

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

Пример случая 3 [ править ]

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

, куда

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

, а значит, да,

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

, выбирая

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

Таким образом, данное рекуррентное соотношение T ( n ) было в ( n 2 ), что соответствует f ( n ) исходной формулы.

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

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

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

  • а не является константой; количество подзадач должно быть исправлено
  • неполиномиальная разница между f (n) и (см. ниже; применяется расширенная версия)
  • не может быть меньше одной подзадачи
  • f (n), время комбинации, не является положительным
  • случай 3, но нарушение регулярности.

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

Применение к общим алгоритмам [ править ]

См. Также [ править ]

  • Метод Акра – Бацци
  • Асимптотическая сложность

Заметки [ править ]

  1. ^ Бентли, Джон Луи ; Хакен, Доротея ; Сакс, Джеймс Б. (сентябрь 1980 г.), «Общий метод решения повторений« разделяй и властвуй »» , ACM SIGACT News , 12 (3): 36–44, doi : 10.1145 / 1008861.1008865
  2. ^ Университет Дьюка, "Big-Oh для рекурсивных функций: отношения повторения", 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. ^ a b Дартмутский колледж, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf

Ссылки [ править ]

  • Томас Х. Кормен , Чарльз Э. Лейзерсон , Рональд Л. Ривест и Клиффорд Штайн . Введение в алгоритмы , второе издание. MIT Press и McGraw – Hill, 2001. ISBN 0-262-03293-7 . Разделы 4.3 (Основной метод) и 4.4 (Доказательство основной теоремы), стр. 73–90. 
  • Майкл Т. Гудрич и Роберто Тамассия . Разработка алгоритмов: фундамент, анализ и примеры в Интернете . Wiley, 2002. ISBN 0-471-38365-1 . Основная теорема (включая включенную здесь версию случая 2, которая сильнее, чем у CLRS) находится на стр. 268–270. 

Внешние ссылки [ править ]

  • Teorema Mestre e Exemplos Resolvidos (на португальском языке)