Twierdzenie Master jest pięknym narzędziem do rozwiązywania pewnych rodzajów nawrotów . Jednak często nakładamy połysk na integralną część podczas jej nakładania. Na przykład podczas analizy Mergesort z radością wychodzimy
do
biorąc pod uwagę tylko . Zapewniamy się, że ten krok jest prawidłowy - to znaczy - ponieważ zachowuje się „ładnie”. Na ogół zakładamy, o wspólnego mianownika.
Łatwo jest tworzyć rekurencje, które nie pozwalają na to uproszczenie, używając błędnego . Na przykład powyżej nawrotu dla / z
da przy użyciu twierdzenia Master w zwykły sposób, ale wyraźnie istnieje podsekwencja, która rośnie jak . Zobacz tutaj inny, bardziej wymyślny przykład.
Jak możemy uczynić to „ładnym” rygorystycznym? Jestem całkiem pewien, że monotoniczność jest wystarczająca, ale nawet prosty nawrót Mergesorta nie jest monotoniczny; istnieje element okresowy (który dominuje asymptotycznie). Czy wystarczy zbadać i jakie są niezbędne i wystarczające warunki na które zapewniają, że twierdzenie Master działa?
Odpowiedzi:
W tej odpowiedzi zakładamy, że i T są nieujemne. Nasz dowód działa zawsze, gdy f = Θ ( g ) dla niektórych monotonicznych g . Obejmuje to przykład Mergesort, w którym f = Θ ( n ) , i dowolną funkcję, która ma wielomianowe tempo wzrostu (lub nawet Θ ( n a log b n ) ).f T f=Θ(g) g f=Θ(n) Θ(nalogbn)
Rozważmy najpierw przypadek, że jest monotoniczny i nie zmniejsza się (założymy to założenie później). Koncentrujemy się na nawrocie próbki T ( n ) = T ( ⌊ n / 2 ⌋ ) + T ( ⌈ n / 2 ⌉ ) + f ( n ) . Ten nawrót wymaga dwóch przypadków podstawowych, T ( 0 ) i T ( 1 ) . Przyjmujemy założenie, że T ( 0 )f
Twierdzę, że jest monotoniczny i nie maleje. Udowadniamy przez całkowitą indukcję, że T ( n + 1 ) ≥ T ( n ) . Jest to podane dla n = 0 , więc niech n ≥ 1 . Mamy T ( n + 1 )T(n) T(n+1)≥T(n) n=0 n≥1
Oznacza to, że
T(2⌊ log 2 n⌋)≤T(n)≤T(2⌈ log 2 n⌋).
Więc jeśliT(2
Rozluźnijmy teraz założenie, że jest monotoniczny. Załóżmy, że dla niektórych funkcji monotonicznych . Zatem dla niektórych i wystarczająco dużych. Zakładamy, dla uproszczenia, że ; ogólny przypadek można rozpatrywać jak w poprzednim akapicie. Ponownie zdefiniować dwie nawrotów przez zastąpienie w (odpowiednio). Po raz kolejny twierdzenie Master da ten sam wynik (do stałych wielokrotności), który jest również identyczny (do stałych wielokrotności) z tym, co uzyskalibyśmy, rozwiązując pierwotną rekurencję tylko na potęgach dwóch.f f=Θ(g) g cg(n)≤f(n)≤Cg(n) c,C>0 n n=0 T′,T′′ f cg,Cg
źródło