Hauptsatz nicht anwendbar?


11

Gegeben ist die folgende rekursive Gleichung

wir wollen den Hauptsatz anwenden und beachten, dass

T(n)=2T(n2)+nlogn

nlog2(2)=n.

Nun überprüfen wir die ersten beiden Fälle auf , dh obε>0

  • odernlognO(n1ε)
  • .nlognΘ(n)

Die beiden Fälle sind nicht erfüllt. Wir müssen also den dritten Fall überprüfen, nämlich ob

  • .nlognΩ(n1+ε)

Ich denke, die dritte Bedingung ist auch nicht erfüllt. Aber wieso? Und was wäre eine gute Erklärung dafür, warum der Master-Satz in diesem Fall nicht angewendet werden kann?



4
Fall drei ist nicht erfüllt, da für ϵ > 0 nicht Ω ( n ϵ ) ist . Verwenden l'Hôpital der Regel am Limit log nlognΩ(nϵ)ϵ>0lognnϵ
sdcvvc

1
Wenn Sie zeigen, dass keiner der beiden Fälle zutrifft, ist dies ein Beweis dafür, dass Sie den Hauptsatz nicht wie angegeben anwenden können.
Raphael

Wer braucht den Master-Satz? Verwenden Sie Rekursionsbäume.
JeffE

Antworten:


7

Die drei Fälle des Master-Theorems, auf die Sie sich beziehen, sind in der Einführung in Algorithmen von Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest und Clifford Stein (2. Auflage, 2001) .

Es wird richtig beobachtet, dass die fragliche Wiederholung zwischen Fall 2 und Fall 3 liegt. Das heißt, wächst schneller als n, aber langsamer als n 1 + & epsi ; für jedes & epsi ; > 0 .f(n)=nlognnn1+εε>0

Der Satz kann jedoch verallgemeinert werden, um diese Wiederholung abzudecken. Erwägen

Fall 2A: Betrachten Sie für einige k 0f(n)=Θ(nlogbalogbkn)k0 .

Dieser Fall reduziert sich auf Fall 2, wenn . Es ist intuitiv klar, dass entlang jedes Zweigs des Wiederholungsbaums f ( x ) Θ ( log b n ) Mal hinzugefügt wird . Eine Skizze eines formelleren Beweises finden Sie unten. Das Endergebnis ist dask=0f(x)Θ(logbn)

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

In der Einführung in Algorithmen diese Aussage als Übung belassen.

Wenn wir diese Aussage auf die fragliche Wiederholung anwenden, erhalten wir schließlich

T(n)=Θ(nlog2n).

Weitere Details zum Master-Theorem finden Sie auf der ausgezeichneten (imho) Wikipedia-Seite .

Da @sdcvvc in den Kommentaren darauf hinweist, dass Fall 3 hier nicht gilt, kann man sich auf die Regel von L'Hospital berufen, die besagt, dass für alle Funktionenf(x)undg(x), diein der Nähe voncdifferenzierbar sind. Angewandt auff(n)=nlognundg(n)=n1+εeindie zeigenkannlogn& THgr;(n1+ε).

limxcf(x)g(x)=limxcf(x)g(x)
f(x)g(x)cf(n)=nlogng(n)=n1+εlognΘ(n1+ε).

Skizze des Beweises des Hauptsatzes für Fall 2A.

Dies ist eine Reproduktion von Teilen des Beweises aus der Einführung in Algorithmen mit den erforderlichen Änderungen .

Zuerst beweisen wir das folgende Lemma.

Lemma A:

g(n)=j=0logbn1ajh(n/bj)
where h(n)=nlogbalogbkn. Then g(n)=nlogbalogbk+1n.

Proof: Substituting the h(n) into the expression for g(n) one can get

g(n)=nlogbalogbknj=0logbn1(ablogba)j=nlogbalogbk+1n.

QED

If n is an exact power of b given a recurrence

T(n)=aT(n/b)+f(n),T(1)=Θ(1)
one can rewrite it as
T(n)=Θ(nlogba)+j=0logbn1ajT(n/bj).
Substituting f(n) with Θ(nlogbalogbkn), moving Θ outside and applying Lemma A we get

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

Generalizing this to an arbitrary integer n that is not a power of b is beyond the scope of this post.


1

The Akra-Bazzi theorem is a strict generalization of the master theorem. As a bonus its proof is a blizzard of integrals that will make your head spin ;-)

In any case, Sedgewick in his "Introduction to the analysis of algorithms" argues convincingly that one should strive to prove T(n)g(n) type asymptotics.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.