Основна теорема не застосовується?


11

Дано наступне рекурсивне рівняння

Т(н)=2Т(н2)+нжурнал⁡н
ми хочемо застосувати головну теорему і зауважимо, що

нжурнал2⁡(2)=н.

Тепер ми перевіряємо перші два випадки на , тобто чиε>0

  • нжурнал⁡н∈О(н1-ε) або
  • нжурнал⁡н∈Θ(н) .

Дві справи не задоволено. Тож ми маємо перевірити третій випадок, тобто чи

  • нжурнал⁡н∈Ω(н1+ε) .

Я думаю, що третю умову теж не виконують. Але чому? І що було б хорошим поясненням того, чому магістерську теорему в цьому випадку не можна застосувати?



4
Випадок три не задовольняється, оскільки не є для будь-якого . Використовуйте правило l'Hôpital щодо межіΩ ( n ϵ ) ϵ > 0 log nжурнал⁡нΩ(нϵ)ϵ>0журнал⁡ннϵ
— sdcvvc

1
Як тільки ви покажете, що не застосовується жоден випадок, це є доказом того, що ви не можете застосувати головну теорему, як сказано.
— Рафаель

Кому потрібна теорема магістра? Використовуйте дерева рекурсії.
— JeffE

Відповіді:


7

Три випадки теоретики майстра, на які ви посилаєтесь, підтверджені у Вступі до алгоритмів Томасом Х. Корменом, Чарльзом Е. Лейерсоном, Рональдом Л. Рівестом та Кліффордом Штейн (2-е видання, 2001 р.).

Правильно помічено, що питання, про який йде мова, падає між випадком 2 та випадком 3. Тобто f(н)=нжурнал⁡н росте швидше н але повільніше, ніж н1+ε для будь-якого ε>0 .

Однак теорему можна узагальнити, щоб охопити цю повторюваність. Розглянемо

Випадок 2A: Розглянемо f(н)=Θ(нжурналб⁡ажурналбк⁡н) для деякого к≥0 .

Цей випадок зводиться до випадку 2, коли к=0 . Інтуїтивно зрозуміло, що уздовж кожної гілки дерева повторень f(х) додається Θ(журналб⁡н) разів. Ескіз більш формального доказу можна знайти нижче. Кінцевий результат такий

Т(н)=Θ(нжурналб⁡ажурналбк+1⁡н)
.

У Вступі до алгоритмів це твердження залишається як вправа.

Застосовуючи це твердження до рецидиву, про який йдеться, ми нарешті отримуємо

Т(н)=Θ(н⋅журнал2⁡н).

Більш детально про Теорему магістра можна знайти на чудовій сторінці (імхо) Вікіпедії .

Як @sdcvvc в коментарях вказує, що Справа 3 не застосовується тут, можна посилатися на правило L'Hospital, яке говорить про те, що

limх→cf(х)г(х)=limх→cf'(х)г'(х)

для будь-яких функцій і диференційованих в районі . Застосовуючи це до та можна показати, щоf(х)г(х)cf(н)=нжурнал⁡нг(н)=н1+εжурнал⁡н∉Θ(н1+ε).


Ескіз доведення основної теореми для випадку 2A.

Це відтворення частин доказу з Введення в алгоритми з необхідними модифікаціями .

Спочатку ми доводимо наступну лему.

Лема А:

Розглянемо функцію

г(н)=∑j=0журналб⁡н-1аjгод(н/бj)

деТоді год(н)=нжурналб⁡ажурналбк⁡н.г(н)=нжурналб⁡ажурналбк+1⁡н.

Доведення: Замінивши у вираз можна отримати год(н)г(н)

г(н)=нжурналб⁡ажурналбк⁡н∑j=0журналб⁡н-1(абжурналб⁡а)j=нжурналб⁡ажурналбк+1⁡н.

QED

Якщо - точна сила задана рецидивомнб

Т(н)=аТ(н/б)+f(н),Т(1)=Θ(1)

можна переписати його як

Т(н)=Θ(нжурналб⁡а)+∑j=0журналб⁡н-1аjf(н/бj).

Підставивши на , перемістивши назовні та застосувавши лему A, отримаємоf(н)Θ(nlogb⁡alogbk⁡n)Θ

T(n)=Θ(nlogb⁡alogbk+1⁡n).

Узагальнення цього довільного цілого числа яке не є силою , виходить за межі цього поста.nб


1

Теорема Акра-Бацці - це суворе узагальнення основної теореми. Як бонус його доказом є хуртовина інтегралів, яка змусить вашу голову крутитися ;-)

У будь-якому випадку Седжевік у своєму «Вступі до аналізу алгоритмів» переконливо стверджує, що слід прагнути довести асимптотику типу .Т(н)∼г(н)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.