In den 1950er Jahren wurde eine Reihe von Verfahren zur Schaltungsminimierung für Boolesche Funktionen erfunden. Gibt es eine Erweiterung dieser Methoden oder ähnliches zur Optimierung der zeitlichen oder räumlichen Komplexität von Algorithmen?
Beispielsweise würde eine Implementierung der Blasensortierung als Eingabe für einen solchen Algorithmus eine Implementierung eines Sortieralgorithmus mit einer Zeitkomplexität erzeugen, die näher an .
Antworten:
Schlagen Sie den Beschleunigungssatz von Blum nach (ja, dieser Artikel ist weniger als informativ; schauen Sie sich ein Buch über Komplexitätstheorie an). Es heißt im Wesentlichen, dass es Programme gibt, für die es ein Programm gibt, das denselben Job ausführt, der für fast alle Eingabedaten um einen bestimmten Abstand schneller ist.
Nach dem Satz von Rice ist es unmöglich zu wissen, ob zwei gegebene Programme den gleichen Job machen.
Ja, für einige sehr eingeschränkte Begriffe von "Programm" kann man anhand eines Beispiels das "bestmögliche" Programm für den Job erstellen. Auch wichtige Klassen. Aber weit entfernt von allem, was Bubblesort ausdrücken kann.
quelle