Wiederholung

8

Hinweis: Dies stammt aus JeffEs Algorithmen-Hinweisen zu Wiederholungen, Seite 5.

(1). Wir definieren also die Wiederholung ohne Basisfall. Jetzt verstehe ich, dass für die meisten Rezidive, da wir nach asymptotischen Grenzen suchen, der Basisfall keine Rolle spielen würde. Aber in diesem Fall sehe ich nicht einmal, wo wir den Basisfall definieren könnten. Gibt es eine Zahl, die wir garantiert treffen, wenn wir ausgehend von einer ganzen Zahl Quadratwurzeln ziehen? Definieren wir einfach für , für einige Realzahlen , ?T(n)=nT(n)+nT(n)=an<bab

(2). Auf Seite 7 erhält Erickson, dass die Anzahl der Ebenen im Rekursionsbaum L erfüllt . Woher kommt das? Ich habe keine Ahnung. Ich sehe, dass die Anzahl der Blätter im Baum , aber ich habe keine Ahnung, wohin ich von dort aus gehen soll.n2- -L.=2(n)(n)=n

Jede Hilfe wird geschätzt!

Hinweise, die ich mir anschaue: http://jeffe.cs.illinois.edu/teaching/algorithms/notes/99-recurrences.pdf

DB Cooper
quelle

Antworten:

7

Sie sollten wirklich eine dritte Frage stellen: Was passiert, wenn kein perfektes Quadrat ist ? Die Antwort auf diese Frage lautet, dass die tatsächliche Wiederholung oder anstelle von sollte Bei der Analyse werden nur Eingaben berücksichtigt, die "rekursive" Quadrate sind.T ( nT(T.(n)T(T.(n)T.(n)

In Bezug auf Ihre erste Frage kann es mehr als einen Basisfall geben. Zum Beispiel ist vielleicht für alle . Sie werden garantiert irgendwann diesen Basisfall treffen. In diesem Fall beeinflusst, wie in den meisten Fällen, die genaue Form des Basisfalls nicht die großen Theta-Asymptotika (aber die verborgene Konstante).n 100T.(n)=1n100

Nehmen wir schließlich in Bezug auf Ihre zweite Frage an, dass Ihr Basisfall für angibt . Der Rekursionsbaum (der eine bestimmte Interpretation einiger Merkmale der Wiederholung darstellt) hat die folgende Form:n C.T(n)nC

  • Die Wurzel ist eine Instanz der Größe .n
  • Die Wurzel hat die Instanzen der Größe .nn
  • Jeder Knoten in Tiefe 1 hat Kinder, die Instanzen der Größe .n=n1/4n=n1/8
  • Allgemeiner ist ein Knoten in der Tiefe eine Instanz der Größe . Sie können dies durch Induktion beweisen, indem Sie den Fall (wobei ) überprüfen und berechnen .n 1 / 2 d d = 0 n 1 / 2 d = n dn1/2dd=0n1/2d=nn1/2d=n1/2d+1

Die Rekursion wird beendet , wenn die Instanz hat Größe höchstens , und dies geschieht , wenn . An dem Punkt, an dem dies geschieht, haben wir (unter der Annahme von ) und somit . Nehmen wir den Logarithmus, und so , was impliziert . Wir können daraus schließen, dass . Dies ist die Anzahl der Ebenen im Baum. Jeff verwendet , wodurch er seine spezielle Formel erhält.n 1 / 2 dC n 1 / 2 d - 1 > C n > C Cn1/2dCn1/2d1>Cn>C 1C<n1/2dClogn12logC<logn2d<logC2d=Θ(logn)dloglognC=2logn2d=Θ(1)2d=Θ(logn)dloglognC=2

Yuval Filmus
quelle
4

Beantwortung Ihrer ersten Frage. Alternativ zur Verwendung der Ober- und Untergrenze, um einen Basisfall zu erhalten, besteht eine Option darin, dass Sie die Form von annehmen können .n

Nehmen Sie zum Beispiel die Mergesort-Rekursion:

T(n)=2cT(n2)+cn

Es ist klar, dass die meisten nicht gleichmäßig in ganze Zahlen geteilt werden. Es ist dann ziemlich üblich anzunehmen, dass die Form hat: n n = 2 knn

n=2kkN

Dies impliziert, dass jedes eine positive Potenz von , wodurch unser Basisfall immer auf . Alternativ könnten wir den Basisfall anstelle von indem wir annehmen, dass die Form hat: 2 1 c 1 n n = c 2 kn21c1n

n=c2kkN,cN+

Wir können dies auf unsere Wiederholung anwenden:

T(n)=nT(n)+n

Angenommen, hat die Form: Dann wird der Basisfall immer in eine Konstante .n

n=c2kkN,cN+
c

Wenn Sie dies unter dieser Annahme beweisen können, können Sie einen Beweis für Werte erstellen , die diese Form nicht haben. Ein Ansatz wäre der Versuch, ihn an das nächsthöhere (oder niedrigste) zu binden , das diese Form hat.nn

Ryan
quelle