Twierdzenie główne nie dotyczy?


11

Biorąc pod uwagę następujące równanie rekurencyjne

T(n)=2T(n2)+nlog⁡n
chcemy zastosować twierdzenie Master i zauważyć, że

nlog2⁡(2)=n.

Teraz sprawdzamy dwa pierwsze przypadki dla ε>0 , czyli czy

  • nlog⁡n∈O(n1−ε) lub
  • nlog⁡n∈Θ(n) .

Oba przypadki nie są spełnione. Musimy więc sprawdzić trzeci przypadek, czyli czy

  • nlog⁡n∈Ω(n1+ε) .

Myślę, że trzeci warunek również nie jest spełniony. Ale dlaczego? A jakie byłoby dobre wytłumaczenie, dlaczego w tym przypadku nie można zastosować twierdzenia mistrza?



4
Przypadek trzeci nie jest spełniony, ponieważ nie jest Ω ( n ϵ ) dla dowolnego ϵ > 0 . Użyj reguły l'Hôpital na dzienniku limitów nlog⁡nΩ(nϵ)ϵ>0log⁡nnϵ
— sdcvvc

1
Gdy pokażesz, że żaden przypadek nie ma zastosowania, jest to dowód, że nie możesz zastosować twierdzenia głównego, jak stwierdzono.
— Raphael

Kto potrzebuje twierdzenia mistrza? Użyj drzew rekurencyjnych.
— JeffE

Odpowiedzi:


7

Trzy przypadki twierdzenia mistrza, do których się odwołujesz, zostały udowodnione we wstępie do algorytmów Thomasa H. Cormena, Charlesa E. Leisersona, Ronalda L. Rivesta i Clifforda Stein'a (wydanie drugie, 2001).

Prawidłowo zaobserwowano, że omawiany nawrót przypada między przypadkiem 2 a przypadkiem 3. To znaczy f(n)=nlog⁡n rośnie szybciej niż n ale wolniej niż n1+ε dla dowolnego ε>0 .

Twierdzenie to można jednak uogólnić w celu uwzględnienia tego nawrotu. Rozważać

Przypadek 2A: Rozważmy f(n)=Θ(nlogb⁡alogbk⁡n) dla niektórych k≥0 .

Przypadek ten redukuje się do Przypadku 2, gdy k=0 . Jest intuicyjnie wiadomo, że wzdłuż każdej gałęzi drzewa nawrót f(x) jest dodana Θ(logb⁡n) razy. Szkic bardziej formalnego dowodu można znaleźć poniżej. Ostateczny wynik jest taki

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

We wstępie do algorytmów to stwierdzenie pozostawia się jako ćwiczenie.

W końcu otrzymujemy to stwierdzenie w odniesieniu do wspomnianego ponownego wystąpienia

T(n)=Θ(n⋅log2⁡n).

Więcej szczegółów na temat Twierdzenia Mistrza można znaleźć na doskonałej (imho) stronie Wikipedii .

Jak wskazuje @sdcvvc w komentarzach, aby udowodnić, że przypadek 3 nie ma tutaj zastosowania, można powołać się na zasadę L'Hospital, która mówi, że

limx→cf(x)g(x)=limx→cf′(x)g′(x)

żadnych funkcji f(x) i g(x) różniczkowej w pobliżu c . Stosując to f(n)=nlog⁡n i g(n)=n1+ε można wykazać, że log⁡n∉Θ(n1+ε).


Szkic dowodu twierdzenia głównego dla przypadku 2A.

Jest to reprodukcja części dowodu z Wprowadzenie do algorytmów z niezbędnymi modyfikacjami .

Najpierw udowodnimy następujący lemat.

Lemat A:

Rozważ funkcję

g(n)=∑j=0logb⁡n−1ajh(n/bj)

gdzie h(n)=nlogb⁡alogbk⁡n.Następnie g(n)=nlogb⁡alogbk+1⁡n.

Dowód: podstawiając h(n) do wyrażenia g(n) można uzyskać

g(n)=nlogb⁡alogbk⁡n∑j=0logb⁡n−1(ablogb⁡a)j=nlogb⁡alogbk+1⁡n.

CO BYŁO DO OKAZANIA

Jeśli n jest dokładną potęgą b danym nawrocie

T(n)=aT(n/b)+f(n),T(1)=Θ(1)

można to przepisać jako

T(n)=Θ(nlogb⁡a)+∑j=0logb⁡n−1ajf(n/bj).

f(n)Θ(nlogb⁡alogbk⁡n)Θ

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

nb


1

Twierdzenie Akra-Bazzi jest ścisłym uogólnieniem twierdzenia głównego. Jako bonus jego dowodem jest zamieć całek, która sprawi, że głowa się zakręci ;-)

T(n)∼g(n)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.