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
dla niektórych stałych i if
[ jest to warunek prawidłowości ]
dla pewnej stałej i dla wszystkich wystarczająco dużych , to ...n
Czy ktoś może mi powiedzieć, dlaczego warunek prawidłowości jest potrzebny? Jak to twierdzenie zawodzi, jeśli warunek nie jest spełniony?
Odpowiedzi:
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
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) a n/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
źródło
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 - δ ) fa = 1 b = 2
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.
źródło