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


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(н)Θ(nlogbalogbkn)Θ

T(n)=Θ(nlogbalogbk+1n).

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


1

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

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

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