Anwendung in der Komplexitätstheorie
In der Komplexitätstheorie werden die
Landau-Symbole vor allem angewendet, um den (minimalen oder maximalen) Bedarf an Speicher (Platzkomplexität) und Zeit (Zeitkomplexität) bezüglich eines bestimmten Maschinenmodells zu beschreiben.
Normalerweise ist es sehr aufwändig oder ganz unmöglich, für ein Problem L eine
Funktion fL:w→fL(w) anzugeben, die allgemein jeder beliebigen Eingabe für ein Problem die zugehörige Anzahl der Rechenschritte (bzw. der Speicherzellen) zuordnet. Daher begnügt man sich in der Regel damit, statt jede Eingabe einzeln zu erfassen, sich lediglich auf die
Eingabelänge n=∣w∣ zu beschränken. Es ist aber meist ebenfalls zu aufwändig, eine
Funktion fL:n→fL(n),n=∣w∣ anzugeben.
Daher hat man die Landau-Notation entwickelt, die sich auf das asymptotische Verhalten der
Funktion fL beschränkt. Man betrachtet also, in welchen Schranken sich der Rechenaufwand (der Bedarf an Speicher und Rechenzeit) hält, wenn man die Eingabe vergrößert. Das wichtigste
Landau-Symbol ist
O (großer lateinischer Buchstabe
O), mit dem man
obere Schranken angeben kann;
untere Schranken zu finden ist im allgemeinen viel schwieriger. Dabei meint
f(n)∈O(g(n)) – oft auch
f(n)=O(g(n)) –, dass eine Konstante
c und ein
n0∈N existieren, so dass für alle
n>n0 gilt:
f(n)≤c⋅g(n). In anderen Worten: Für genügend große Eingabelängen ist der Rechenaufwand
f(n) nicht wesentlich größer – d.h. höchstens um einen konstanten Faktor
c – als
g(n).
Dabei ist die
Funktion f nicht immer bekannt: Die Landau-Notation ist gerade dazu da, den Rechenaufwand (Platzbedarf) abzuschätzen, wenn es zu aufwändig ist, die genaue
Funktion anzugeben. Umgekehrt ist es sinnlos, eine Landau-Abschätzung durchzuführen, wenn man eine genaue
Funktion f bereits gefunden hat – es sei denn, weil die Abschätzung naturgemäß vereinfachend ist, da beispielsweise Konstanten wegfallen.
Die
Landau-Symbole erlauben es dadurch, Probleme und
Algorithmen nach ihrer Komplexität in Komplexitätsklassen zusammenzufassen.
In der Komplexitätstheorie lassen sich die verschiedenen Probleme und
Algorithmen dann folgendermaßen vergleichen: Man kann für Problemstellungen mit
Ω eine
untere Schranke für beispielsweise die asymptotische Laufzeit angeben, mit
O entsprechend eine
obere Schranke. Bei
O(f) wird die Form von
f (z.B.
f(n)=n2) auch als die Komplexitätsklasse oder Aufwandsmaß bezeichnet (also z.B. quadratisch). Bei dieser Notation werden, wie die Definitionen der
Landau-Symbole zeigen, konstante Faktoren vernachlässigt. Dies ist gerechtfertigt, da die Konstanten zu großen Teilen vom verwendeten Maschinenmodell bzw. bei implementierten
Algorithmen von der Qualität des Compilers und diversen Eigenschaften der Hardware des ausführenden Computer abhängig sind. Damit können sie nicht direkt mit der Laufzeit des
Algorithmus in Verbindung gebracht werden.
Das ist ein Mittel, das Paradies nicht zu verfehlen: auf der einen Seite einen Mathematiker, auf der anderen einen Jesuiten; mit dieser Begleitung muß man seinen Weg machen, oder man macht ihn niemals.
Friedrich der Große
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld
• Dοrfplatz 25 • 17237 Blankеnsее
• Tel.: 01734332309 (Vodafone/D2) •
Email: cο@maτhepedιa.dе