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?

Joachim
quelle
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.

Dmitri Chubarov
quelle
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.

vonbrand
quelle