Die Big-O-Notation verbirgt konstante Faktoren, so dass einige -Algorithmen existieren, die für jede vernünftige Eingabegröße nicht durchführbar sind, weil der Koeffizient für den n- Term so groß ist.
Gibt es bekannte Algorithmen, deren Laufzeit jedoch einen o ( f ( n ) ) - Term niedriger Ordnung haben , der so groß ist, dass er bei angemessenen Eingabegrößen die Laufzeit vollständig dominiert? Ich möchte einen Algorithmus wie diesen als Beispiel in einem Algorithmuskurs verwenden, da dies einen guten Grund dafür darstellt, warum die Big-O-Notation nicht alles ist.
Vielen Dank!
algorithms
asymptotics
templatetypedef
quelle
quelle
Antworten:
Kryptographie ist ein Beispiel, wenn es sich um eine entartete handelt. Zum Beispiel ist das Unterbrechen der AES-Verschlüsselung - alles, was Sie tun müssen, ist, den richtigen Schlüssel unter einer endlichen Zahl zu finden, 2 128 oder 2 192 oder 2 256, abhängig von der Schlüsselgröße (vorausgesetzt, es ist genug Klartext bekannt den Schlüssel eindeutig bestimmen). Selbst 2 128 Operationen würden heute alle Computer (ungefähr eine Milliarde, jede ungefähr eine Milliarde Operationen pro Sekunde) länger als die Lebensdauer des Universums (ungefähr eine Milliarde Milliarden Sekunden) benötigen.O ( 1 ) 2128 2192 2256 2128
quelle
Zwei Beispiele kommen aus dem Bereich der parametrisierten Komplexität und der FPT-Algorithmen in den Sinn . Dies ist möglicherweise nicht genau das, wonach Sie suchen, aber hier geht es weiter.
Stellen Sie sich ein Diagrammproblem vor, z. B. 3-FARBEN oder HAM-CYCLE. Beide Probleme können in monadischer Logik zweiter Ordnung ausgedrückt werden und können daher in linearer Zeit von Graphen mit begrenzter Baumbreite entschieden werden. Dies ist ein Ergebnis von Bruno Courcelle , aber der resultierende Algorithmus ist alles andere als praktisch.
quelle
In gewissem Zusammenhang mit Ihrer Frage stehen Algorithmen, von denen bekannt ist, dass sie theoretisch eine gute Leistung aufweisen, die jedoch aufgrund der Unpraktikabilität bei kleineren Instanzen nicht für echte Probleme verwendet werden. Mit anderen Worten, wie Sie es wünschen, ist die "beworbene Leistung" theoretisch nur für große Eingaben möglich, die in praktischen Anwendungen nicht zu sehen sind. Dies spiegelt sich manchmal in den Big-Oh-Schätzungen wider, manchmal nicht genau. Einige Algorithmen haben eine gute theoretische "Leistung", sind jedoch logisch sehr komplex und wurden noch nie von irgendjemandem implementiert. Daher ist die "Leistung" bei praktischen Instanzgrößen nicht einmal bekannt, z. B. beim Maximum Flow- Problem.
Primalitätstest in P über AKS-Algorithmus
Kupferschmied-Winograd-Matrixmultiplikationsalgorithmus
siehe auch sind modernste Maximum-Flow-Algorithmen praktisch? tcs.se.
Siehe auch leistungsstarke Algorithmen, die zu komplex sind, um tcs.se zu implementieren
Galaktische Algorithmen RJLipton Blog
quelle
Das ist eine Art Witz, aber es hat eine ernsthafte Seite ...
quelle