Hauptsatz nicht anwendbar?


11

Gegeben ist die folgende rekursive Gleichung

wir wollen den Hauptsatz anwenden und beachten, dass

T(n)=2T(n2)+nlog⁡n

nlog2⁡(2)=n.

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

  • odernlog⁡n∈O(n1−ε)
  • .nlog⁡n∈Θ(n)

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

  • .nlog⁡n∈Ω(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 nlog⁡nΩ(nϵ)ϵ>0log⁡nnϵ
— 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)=nlog⁡nnn1+εε>0

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

Fall 2A: Betrachten Sie für einige k ≥ 0f(n)=Θ(nlogb⁡alogbk⁡n)k≥0 .

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)Θ(logb⁡n)

T(n)=Θ(nlogb⁡alogbk+1⁡n)
.

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)=Θ(n⋅log2⁡n).

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+ε).

limx→cf(x)g(x)=limx→cf′(x)g′(x)
f(x)g(x)cf(n)=nlog⁡ng(n)=n1+εlog⁡n∉Θ(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=0logb⁡n−1ajh(n/bj)
where h(n)=nlogb⁡alogbk⁡n. Then g(n)=nlogb⁡alogbk+1⁡n.

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

g(n)=nlogb⁡alogbk⁡n∑j=0logb⁡n−1(ablogb⁡a)j=nlogb⁡alogbk+1⁡n.

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)=Θ(nlogb⁡a)+∑j=0logb⁡n−1ajT(n/bj).
Substituting f(n) with Θ(nlogb⁡alogbk⁡n), moving Θ outside and applying Lemma A we get

T(n)=Θ(nlogb⁡alogbk+1⁡n).

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.