Wie täuscht man die Heuristik der Grundstückskontrolle vor?

23

Über hier schlug Dave Clarke , dass, um asymptotisch Wachstum vergleichen Sie die Funktionen zur Hand zeichnen sollte. Als theoretisch begabter Informatiker bezeichne ich dieses Vodoo als eine Handlung, die niemals bewiesen werden kann. Beim zweiten Gedanken muss ich zustimmen, dass dies ein sehr nützlicher Ansatz ist, der manchmal sogar zu wenig genutzt wird. Ein Grundstück ist ein effizienter Weg, um erste Ideen zu bekommen, und manchmal ist das alles, was Sie brauchen.

Wenn ich TCS unterrichte, gibt es immer einen Schüler, der fragt: "Wofür brauche ich einen formalen Nachweis, wenn ich nur X machen kann, was immer funktioniert?" Es liegt an seinen Lehrern, auf den Irrtum hinzuweisen und ihn zu veranschaulichen. Es gibt eine brillante Reihe von Beispielen für offensichtliche Muster, die bei math.SE schließlich ausfallen , aber dies sind ziemlich mathematische Szenarien.

Wie täuschen Sie die heuristische Darstellung der Grundstückskontrolle vor? Es gibt einige Fälle, in denen Unterschiede schwer auszumachen sind, z

Beispiel Beispiel Beispiel
[ Quelle ]

Machen Sie eine Vermutung und überprüfen Sie die Quelle für die realen Funktionen. Diese sind jedoch nicht so spektakulär, wie ich es mir erhofft hätte, insbesondere, weil die tatsächlichen Beziehungen auch für Anfänger anhand der einzelnen Funktionen leicht erkennbar sind.

Gibt es Beispiele für (relatives) asymptotisches Wachstum, bei denen die Wahrheit nicht aus der Funktionsdefinition hervorgeht und die Plotprüfung für einigermaßen großes n eine völlig falsche Vorstellung ergibt? Mathematische Funktionen und reale Datensätze (zB Laufzeit eines bestimmten Algorithmus) sind willkommen; Bitte verzichten Sie jedoch auf stückweise definierte Funktionen.

Raphael
quelle
2
Eigentlich habe ich es als Tipp zum Verständnis des Problems vorgeschlagen.
Dave Clarke
@ DaveClarke: Ich weiß; Ich habe Ihre ursprüngliche Formulierung lediglich als provokativen Auftakt verwendet. Keine Straftat beabsichtigt.
Raphael

Antworten:

23

Wenn man aus Erfahrung versucht, die Wachstumsrate für eine beobachtete Funktion (z. B. Markov-Kettenmischzeit oder Laufzeit des Algorithmus) zu ermitteln, ist es sehr schwierig, Faktoren für von n b zu unterscheiden . Zum Beispiel O ( (logn)anbsieht ungefähr so ​​aus wieO(n 0.6 ):O(nlogn)O(n0.6)

Handlung
[ Quelle ]

Beispielsweise wurde in "Einige unerwartet erwartete Verhaltensergebnisse für das Packen von Behältern" von Bentley et al. Die Wachstumsrate des leeren Raums für die Algorithmen "Best Fit" und "First Fit" für das Packen von Behältern, die einheitlich auf gepackt wurden, empirisch als geschätzt n 0,6 bzw. n 0,7 . Die korrekten Ausdrücke sind n 1 / 2 log 3 / 4 n , und n 2 / 3 .[0,1]n0.6n0.7n1/2Log3/4nn2/3

Peter Shor
quelle
15

Hier ist ein weiteres (zugegebenermaßen ziemlich konstruiertes) Beispiel, aber immer noch eines, das ich bemerkenswert finde. Es soll gezeigt werden, dass Parzellen zur Beurteilung des asymptotischen Wachstums sehr irreführend sein können.

fg

Können Sie sich vorstellen, welche der Funktionen (asymptotisch) schneller wächst?

Plot von f und g bis 2000 Plot von f und g bis zu 10.000 Plot von f und g bis zu 200.000

fg

f(x)=x2
g(x)=sin(log(x))+1dxdx=x2(135cos(log(x))+15sin(log(x))).

gx2f204

In diesem Beispiel können wir die Oszillationen demaskieren, indem wir einen Log-Log-Plot betrachten:

log-log-plot von f und g bis zu 200.000

Natürlich hilft das im Allgemeinen nicht; Zum Beispiel könnten wir eine doppelt exponentielle Periode haben ...

Sebastian
quelle
12

N=(Q.,SQ.,FQ.,RQ.×Σ×Q.)

Minimize:NFADFA=DeterminizeReverseDeterminizeReverse

Dies ist offensichtlich ein exponentieller Zeitalgorithmus im ungünstigsten Fall, da er einen nicht deterministischen Automaten annehmen und Ihnen einen deterministischen Automaten geben kann (oder noch offensichtlicher, er ruft die Teilmengenkonstruktion zweimal auf).

O(n2)O(nlog(n))

Dies berührt den "Plot" -Teil der "Plot-Inspektions-Heuristik" - wir müssen auswählen, welche Punkte beim Zeichnen des Plots abgetastet werden sollen, und Sie können einen naiven Plot zum Narren halten, wenn Sie Ihre Punkte nicht sorgfältig auswählen. Dies gilt auch für andere Beispiele wie Quicksort und den Simplex-Algorithmus, aber für die Pädagogik bevorzuge ich diesen Algorithmus gegenüber diesen beiden.

Der Unterschied von Quicksort ist "nur" quadratisch gegenüber logarithmisch linear, was weniger spektakulär ist als ein polynomieller / exponentieller Unterschied. Der Simplex-Algorithmus hat einen ähnlich spektakulären Unterschied, aber seine Analyse ist erheblich komplizierter als der von Brzozowski.

(Ich bin auch der Meinung, dass der DFA-Minimierungsalgorithmus von Brzozowski viel weniger bekannt ist, als er verdient, aber das ist natürlich Geschmackssache.)

Neel Krishnaswami
quelle
Entschuldigung, aber ich sehe nicht ganz den Zusammenhang mit der Interpretation von Funktionsdiagrammen.
Raphael
3
Ich gehe davon aus, dass Sie für eine Stichprobe von Instanzen so etwas wie die Darstellung der Leistung im Verhältnis zur Instanzgröße durchführen würden - und der Brzozowski-Algorithmus würde polynomisch "aussehen", es sei denn, Sie haben Instanzen ausgewählt, um die Zeit exponentiell zu machen.
Neel Krishnaswami
1
Aha. Dies ist sicherlich ein Problem beim Benchmarking von Algorithmen und beim Zeichnen von durchschnittlichen Laufzeiten, dh beim Zeichnen der richtigen Daten . Als ich die Frage stellte, dachte ich nur daran , die Handlung richtig zu interpretieren , was ein ganz anderes Tier ist. Können Sie bitte diese Perspektive zur Antwort hinzufügen?
Raphael
Sie haben das gleiche Problem für alle Algorithmen mit unterschiedlichem Durchschnitts- und Worst-Case-Verhalten. Quicksort und Simplex kommen mir in den Sinn.
Raphael
8

Die mathematische Methode der Kurvenanpassung kann verwendet werden, um eine unbegrenzte Anzahl von Antworten auf Ihre Frage bereitzustellen. Wenn man eine Kurve und einen Bereich voraussetzt, kann man leicht ein Polynom finden, das zu jeder Genauigkeit passt. Dieses Beispiel aus Wikipedia zeigt, wie eine Sinuswelle mit einem Polynom vierter Ordnung (der blauen Kurve) ziemlich genau angepasst werden kann.

Bildbeschreibung hier eingeben

Ich könnte Polynome höherer Ordnung verwenden und die Heuristik der Diagrammprüfung noch besser täuschen als dieses Diagramm.

Dave Clarke
quelle
2
Das ist richtig. Es hat aber auch einen künstlichen Geschmack. Sicher, ich kann auf diese Weise Gegenbeispiele für Studenten generieren, aber ich sehe es nicht als skeptischer an, davon überzeugt zu sein. Gibt es "natürliche" Vorkommen dieses Phänomens (dh höhergradige Polynomfunktionen, die mit anderen Funktionen verwechselt werden können), bei denen eine Fehlinterpretation "fatal" ist?
Raphael
Ich weiß, dass es nicht die Antwort ist, die Sie suchen.
Dave Clarke