Dlaczego w twierdzeniu głównym występuje warunek regularności?

15

Czytałem Wstęp do algorytmów Cormena i in. i czytam twierdzenie Twierdzenia Mistrza zaczynające się na stronie 73 . W przypadku 3 istnieje również warunek regularności, który należy spełnić, aby zastosować twierdzenie:

... 3. Jeśli

fa(n)=Ω(nlogbza+ε)

dla niektórych stałych i ifε>0

zafa(n/b)dofa(n)      [ jest to warunek prawidłowości ]

dla pewnej stałej i dla wszystkich wystarczająco dużych , to ...ndo<1n

Czy ktoś może mi powiedzieć, dlaczego warunek prawidłowości jest potrzebny? Jak to twierdzenie zawodzi, jeśli warunek nie jest spełniony?

Raphael
źródło
czy możesz napisać, co to jest sprawa i jaki jest warunek regulacyjny?
3
Nie mam dla ciebie ostatecznej odpowiedzi, ale wydaje się, że jeśli warunek regularności się nie utrzymuje, wówczas podproblemy zajmują coraz więcej czasu, im są mniejsze, więc masz nieskończoną złożoność.
Nie jestem pewien, czy warunek prawidłowości jest konieczny, aby dojść do wniosku, ale wydaje mi się, że jest konieczny dla użytego dowodu. W przypadku warunku regularności masz dość prosty dowód, bez tego przynajmniej byłby włochaty.

Odpowiedzi:

10

Nie jest to ścisły dowód, ale wyjaśnienie „z góry mojej głowy”.

Wyobraź sobie powtarzalność jako drzewo. Trzeci przypadek obejmuje scenariusz, w którym węzeł główny dominuje czas działania w sposób asymptotyczny, tj. Większość pracy jest wykonywana w wąskim węźle na szczycie drzewa cykliczności. Zatem czas działania wynosi Θ ( f ( n ) ) .aT(n/b)+f(n)Θ(f(n))

Aby mieć pewność, że root rzeczywiście wykona więcej pracy, potrzebujesz

.af(n/b)cf(n)

Oznacza to, że (ilość pracy wykonanej w katalogu głównym) musi być co najmniej tak duża, jak suma pracy wykonanej na niższych poziomach. (Nawrót nazywa się razy n / b wejścia.)f(n)an/b

Np. Dla nawrotu praca na poziomie poniżej korzenia jest o jedną czwartą większa i wykonywana tylko dwukrotnie ( n / 4 + n / 4 ) w stosunku do n, więc korzeń dominuje .T(n)=2T(n/4)+n(n/4+n/4)n

Ale co jeśli funkcja nie spełnia warunku regularności? Np. zamiast n ? Następnie praca wykonana na niższych poziomach może być większa niż praca wykonywana w katalogu głównym, więc nie masz pewności, że katalog główny dominuje.cos(n)n

The Unfun Cat
źródło
3
Użyłem ładniejszego formatowania tekstu matematycznego. Możesz kliknąć link „edytowany” i zobaczyć, co zrobiłem.
Juho,
7

Niech = 1 i b = 2 , tak, że T ( 2 n ) = n Σ k = 0 f ( 2 K ) . Aby zastosować przypadek 3, potrzebujemy f ( n ) = Ω ( n ϵ ) (dla niektórych ϵ > 0 ) i warunek regularności, f ( n / 2 ) ( 1 - δ ) fza=1b=2)

T.(2)n)=k=0nfa(2)k).
fa(n)=Ω(nϵ)ϵ>0 (dla niektórych δ > 0 ). Otrzymujesz warunek prawidłowości z dowodu, tzn. Jest to koncepcja wygenerowana z dowodu. Chociaż warunek prawidłowości nie jest konieczny (rozważ przykład podany na Wikipedii, f ( n ) = n ( 2 - cos n ) ), nie możesz go całkowicie upuścić, jak pokazano w poniższym przykładzie. Rozważmy f ( 2 n ) = 2 2 log 2 n > 2 2 log 2 n -fa(n/2))(1-δ)fa(n)δ>0fa(n)=n(2)-sałatan) Niechn=2m+1-1. Następnie T(2n)= m k = 0 2 k + 1 - 1 t = 2 k 2 2 k = m k = 0 2 2 k +k=Θ(2 2 m +
fa(2)n)=2)2)log2)n>2)2)log2)n-1=2)n/2).
n=2)m+1-1
T.(2)n)=k=0mt=2)k2)k+1-12)2)k=k=0m2)2)k+k=Θ(2)2)m+m),fa(2)n)=2)2)m.
T.(2)n)=Θ(fa(2)n))

Istnieje bardziej ogólne twierdzenie Akra-Bazzi, w którym warunek regularności jest zastępowany wyraźną wielkością, która pojawia się w wyniku.

Yuval Filmus
źródło
Przepraszamy za wznowienie tej starej odpowiedzi. Czy możesz wyjaśnić, dlaczego funkcja f narusza warunek regularności?
Maiaux
Czasami fa(n/2))=fa(n).
Yuval Filmus