Landausche Symbole

Die Informatik ist eine Wissenschaft, und die informatische Forschung bringt Erkenntnisse, die für viele Jahre gültig sein sollen. Bei der Bewertung von Algorithmen durch einen Informatiker darf es also keine Rolle spielen, welche Hardware zum aktuellen Zeitpunkt zur Verfügung steht. Ein Algorithmus, der uns heute zum Zeitpunkt der Forschung z.B. wegen einer Laufzeit von f(n)=1000*n noch als "langsam" erscheint, weil er einige Minuten zur Lösung eines Problemes benötigt, kann in einigen Jahren auf neuartigen Rechnern durchaus sehr schnell sein.

Warum also die Landauer-Symbole? Die Landauer-Symbole sind der Versuch des Informatikers, Laufzeiten von Algorithmen doch irgendwie vergleichbar zu machen. Z.B. bewertet man einen Algorithmus mit einer Laufzeit von f(n)=n^2 grundsätzlich "schlechter" als einen Algorithmus mit einer Laufzeit von f(n)=n+1000000. Wieso? Auf den ersten Blick sind die Werte der zweiten Funktion zwar viel größer als die der zweiten Funktion, und die Laufzeit damit also viel ungünstiger, aber auf den zweiten Blick gibt es immer irgendeinen Wert für n, bei dem die erstere Funktion die zweitere Funktion dann doch "überholt", und damit schlechter wird!

Zum Verständnis der Landauschen Symbole ist es hilfreich, sich unter dem "Wachstum" oder dem "Verhalten" einer Funktion etwas vorstellen zu können. Erst mit diesem Handwerkszeug können Aussagen wie z.B. "assymptotisch polynomielle Laufzeit" verstanden werden.

Anmerkung: Die Grafiken auf dieser Seite wurden mit Waterloo Maple erstellt. Klicke hier, wenn Du die Maple Quelldatei für die Grafiken herunterladen möchtest.

Additive Konstanten

Die folgende Grafik zeigt die beiden Funktionen f(x)=x^2 (rot) und f(x)=x^2+25 (grün). Man erkennt deutlich, dass die beiden Funktion an jeder Position exakt um 25 Einheiten vertikal zueinander verschoben sind.

Betrachtet man einen größeren Wertebereich, so wird der Unterschied zwischen den beiden Funktionen immer kleiner und kann schließlich vernachlässigt werden. In der Grafik erscheinen die beiden Funktionen nahezu deckungsgleich.

Für die Betrachtung von Laufzeiten kann man aus diesen Beobachtungen das Resumee ziehen, additive Konstanten zu vernachlässigen. Algorithmen mit Laufzeiten, die sich nur um eine additive Konstante unterscheiden, also z.B. f(n)=n^2 und f(n)=n^2+25, möchte man als "gleich gut" klassifizieren:

Man sagt: "f(n)=n^2 und f(n)=n^2+25 sind in O(n^2)." (Manchmal lässt man das Wort "in" dabei auch weg.)

Multiplikative Konstanten

Vergleicht man die Funktionen f(x)=x^2 (rot) und f(x)=100*x^2 (gelb), dann steigt die zweite Funktion natürlich viel, viel stärker an als die erste Funktion, wie man auf der folgenden Grafik erkennen kann:

So groß dieser Unterschied zwischen den beiden Funktionen auch scheint: Bei der Betrachtung von Algorithmus-Laufzeiten möchte man diesen Unterschied trotzdem vernachlässigen!

Das erscheint zwar ersteinmal absurd, aber wenn man eine dritte Funktion in die Grafik einzeichnet, z.B. (x)=x^3 (blau), wird der Grund deutlich: Wenn man einen großen Wertebereich betrachtet, verschwindet die multiplikative Konstante ebenso wie schon zuvor die additive Konstante, und der Unterschied zwischen den Funktionen f(x)=x^2 und f(x)=100*x^2 wird vernachlässigbar gering, wohingegen der Unterschied zu der Funktion f(x)=x^3 immer größer wird!

Exponentielle Funktionen

Algorithmen mit exponentiellen Funktionen in der Form f(n)=2^n sind der "Feind" des Informatikers! Warum? Nun, betrachten wir zunächst noch einmal die bekannten Funktionen f(x)=x^2 (rot), f(x)=x^3 (blau) und auch f(x)=x^4 (pink) und f(x)=x^5 (grau). Wie man auf der folgenden Grafik sehen kann, verhalten sich diese Funktionen, die man "polynomiell" nennt, alle sehr ähnlich:

So schnell diese polynomiellen Funktionen aber auch steigen mögen, es gibt Funktionen, die noch wesentlich schneller ansteigen: die exponentiellen Funktionen! In der folgenden Grafik ist zusätzlich zu den obigen Funktionen noch die Funktion f(x)=2^x (schwarz) eingezeichnet. Wie man sieht, sind bei einem entsprechend großen Wertebereich die vier polynomiellen Funktionen kaum noch voneinander zu unterscheiden!

Klicke hier, um zurück zur Hauptseite zu gehen.