Lösen der Wiederholungsbeziehung


7

Lösen der Wiederholungsrelation . Das Buch, aus dem dieses Beispiel stammt, behauptet fälschlicherweise, dass indem es errät und dann argumentiert T.(n)=2T.(n/.2)+n
T.(n)=Ö(n)T.(n)cn

T.(n)2(cn/.2)+ncn+n=Ö(n) falsch!!

da konstant ist. Der Fehler ist, dass wir die genaue Form der induktiven Hypothese nicht bewiesen haben .c

Oben habe ich genau zitiert, was das Buch sagt. Meine Frage ist nun, warum wir nicht schreiben können, wobei und wir jetzt und damit .cn+n=dnd=c+1T.(n)dnT.(n)=Ö(n)

Hinweis:

  1. Die richtige Antwort lautetT.(n)=Ö(nLogn).
  2. Das Buch, auf das ich mich hier beziehe, ist Einführung in Algorithmen von Cormen et al., Seite 86, 3. Auflage.

4
Nein, kannst du nicht. Ihre Induktionshypothese lautetT(n)cnUnd dies ist , was Sie beweisen müssen. Eigentlich löst sich die Wiederholung nicht aufÖ(n).
A.Schulz

Antworten:


7

Die Autoren geben die Antwort:

Der Fehler ist, dass wir die genaue Form der induktiven Hypothese nicht bewiesen haben , das heißtT.(n)cn.

Zugegeben, das ist schwer zu verstehen, wenn Sie nicht an Induktionen gewöhnt sind (rechts), weil sie die Induktion nicht explizit / rigoros machen. Kurz gesagt: Sie müssen eine Konstante habenc für alle n, aber dieser (un) Beweis konstruiert viele (eine pro n).


Erinnern Sie sich lange an was T.(n)Ö(n) meint:

cN..n0N..nn0.T.(n)cn

oder äquivalent,

cN..nN.T.(n)cn.

Die zweite Form funktioniert besser für eine Induktion, da Sie den Anker kennen. Sie brauchen also eine Konstantecdas bietet eine Obergrenze für alle n.

Lassen Sie uns untersuchen, was die Induktion bewirkt:

  • Induktionsanker: Der Anker von T. ist nicht explizit angegeben, aber es ist konstant, so dass wir eine geeignete finden c.
  • Induktionshypothese: Es gibt einige c damit T.(k)cn für alle kn, für einige willkürlich aber fest n.
  • Induktiver Schritt: Wie in der Frage gezeigt, konstruieren d>c damit T(n+1)dn.

Tatsächlich konstruieren wir also für jeden eine neue Konstanten. Das passt nicht zur Definition vonOüberhaupt! Und schlimmer noch, es ist völlig bedeutungslos: Jede Funktion kann durch jede andere Funktion "begrenzt" werden, wenn Sie den Faktor mit einstellen könnenn.

In Bezug auf den Induktionsnachweis, c muss Teil des Anspruchs sein (und es ist in der versteckt Ö), das ist "außerhalb" der Induktion gebunden. Dann das gleicheczeigt sich in Anker, Hypothese und Schritt. Ein Beispiel finden Sie im letzten Teil dieser Antwort .


Danke, ich habe den Punkt verstanden und natürlich ist es bedeutungslos, für jeden eine neue Konstante zu haben n. Aber wie Sie geschrieben haben "oder gleichwertig ..." (dritte Aussage) dh können wir immer solche findenc für welche n0 ist 1.
Saurabh

2
In der Praxis, c=1010100!funktioniert normalerweise.
JeffE

@ SaurabhHota: Gegeben n0 und c von der ersten Form, c+maxnn0T.(n)/.narbeitet als Konstante für die zweite Form. Die andere Richtung ist unmittelbar, dh die Konstante überträgt sich mitn0=1(oder tatsächlich ein beliebiger Wert).
Raphael
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.