Hier ist ein einfaches Argument, um zu zeigen, dass sie nicht entscheidbar sind, dh es gibt keine Algorithmen, mit denen überprüft werden kann, ob ein bestimmter Algorithmus hinsichtlich seiner Laufzeit oder Speichernutzung optimal ist.
Wir reduzieren das Problem des Anhaltens auf leerem Band auf Ihr Problem der Laufzeitoptimierung.
Sei eine gegebene Turingmaschine. Sei N die folgende Turingmaschine:M
: am Eingang n
1. Führen Sie M für (höchstens) n Schritteauf einem leeren Band aus.
2. Wenn M nicht in n Schritten anhält, führen Sie eine Schleife der Größe 2 n aus und geben Sie NO zurück.
3. Andernfalls geben Sie JA zurück.Nn
Mn
Mn2n
Es gibt zwei Fälle:
Wenn nicht auf leerem Band anhält, läuft die Maschine N für Θ ( 2 n ) Schritte am Eingang n . Die Laufzeit beträgt also Θ ( 2 n ) . In diesem Fall ist N offensichtlich nicht optimal.MNΘ(2n)nΘ(2n)N
Wenn auf einem leeren Band anhält, läuft die Maschine N für eine konstante Anzahl von Schritten für alle ausreichend großen n , sodass die Laufzeit O ( 1 ) ist . In diesem Fall ist N offensichtlich optimal.MNnO(1)N
Zusamenfassend:
M halts on blank tape ⇔N is optimial
Außerdem können wir mit dem Code für den Code für N berechnen . Daher haben wir eine Reduzierung vom Problem des Anhaltens auf leerem Band zum Problem der Laufzeitoptimierung. Wenn wir entscheiden könnten, ob eine gegebene Turingmaschine N optimal ist, könnten wir die obige Reduzierung verwenden, um zu prüfen, ob eine gegebene Maschine M auf einem leeren Band anhält. Da das Anhalten auf leerem Band nicht entschieden werden kann, ist auch Ihr Problem nicht zu entscheiden.MNNM
Ein ähnliches Argument kann für den Speicherplatz verwendet werden, dh es ist auch unentscheidbar zu prüfen, ob eine bestimmte Turing-Maschine hinsichtlich des von ihr verwendeten Speicherplatzes optimal ist.
Eine noch stärkere Aussage ist wahr: Wir können nicht entscheiden, ob eine bestimmte berechenbare Funktion eine Obergrenze für die zeitliche Komplexität der Berechnung einer bestimmten berechenbaren Funktion darstellt. Ähnliches gilt für den Weltraum. Das heißt, selbst die grundlegende Komplexitätstheorie kann nicht durch Algorithmen automatisiert werden (was für Komplexitätstheoretiker eine gute Nachricht sein kann;).