Zeithierarchie Theorem

Im Computerkomplexitätstheorie, das Zeithierarchie Theorems sind wichtige Aussagen über zeitrangige Berechnungen auf Turing -Maschinen. Informell sagen diese Theoreme, dass eine Turing -Maschine angesichts mehr Zeit mehr Probleme lösen kann. Zum Beispiel gibt es Probleme, mit denen es gelöst werden kann n2 Zeit, aber nicht n Zeit.

Der Zeithierarchie -Theorem für deterministische Multitape-Turing-Maschinen wurde zuerst von bewiesen von Richard E. Stearns und Juris Hartmanis 1965.[1] Es wurde ein Jahr später verbessert, als F. C. Hennie und Richard E. Stearns die Effizienz des Universelle Turing -Maschine.[2] Im Folgenden des Satzes für jeden deterministischen zeitrangigen Zeitraum KomplexitätsklasseEs gibt eine streng größere zeitverletzte Komplexitätsklasse, und so fällt die zeitverletzte Hierarchie der Komplexitätsklassen nicht vollständig zusammen. Genauer zeitkonstruierbare Funktionen f(n),

.

Der Zeithierarchie -Theorem für Nichtdeterministische Turing -Maschinen wurde ursprünglich von bewiesen von Stephen Cook 1972.[3] Es wurde über einen komplexen Beweis von Joel Seiferas zu seiner aktuellen Form verbessert, Michael Fischer, und Albert Meyer 1978.[4] Schließlich erzielte Stanislav žák 1983 das gleiche Ergebnis mit dem heute gelehrten einfachen Beweis.[5] Der Zeithierarchie -Theorem für nicht deterministische Turing -Maschinen besagt, dass wenn g(n) ist eine zeitkonstruierbare Funktion und f(n+1) = o(g(n)), dann

.

Die analogen Theoreme für den Raum sind die Raumhierarchie Theorems. Ein ähnlicher Satz ist nicht für zeitraubende Probabilistische Komplexitätsklassen bekannt, es sei denn, die Klasse hat auch ein Stück Rat.[6]

Hintergrund

Beide Theoreme verwenden den Begriff von a zeitkonstruierbare Funktion. EIN Funktion ist zeitkonstruierbar, wenn es eine deterministische gibt Turing Maschine so dass für jeden , wenn die Maschine mit einem Eingang von gestartet wird n Einen wird es genau danach stoppen f(n) Schritte. Alle Polynome mit nicht negativen Ganzzahlkoeffizienten sind zeitkonstruiert, ebenso wie exponentielle Funktionen wie 2n.

Beweisüberblick

Wir müssen beweisen, dass einige Zeitunterricht ZEIT(g(n)) ist streng größer als einige Zeitklassen ZEIT(f(n)). Wir tun dies, indem wir eine Maschine konstruieren, in der sich nicht befinden kann ZEIT(f(n)), durch Diagonalisierung. Wir zeigen dann, dass sich die Maschine befindet ZEIT(g(n)), Verwendung einer Simulatormaschine.

Deterministische Zeithierarchie Theorem

Aussage

Zeithierarchie Theorem. Wenn f(n) ist eine zeitkonstruierbare Funktion, dann gibt es a Entscheidungsproblem was nicht in schlimmster Fall deterministische Zeit gelöst werden kann f(n) kann aber in schlimmster Fall deterministische Zeit gelöst werden f(n)2. Mit anderen Worten,

Anmerkung 1. f(n) ist mindestens nDa kleinere Funktionen nie zeitkonstruierbar sind.

Anmerkung 2. Noch allgemeiner kann gezeigt werden, dass wenn f(n) ist dann zeitkonstruierbar

Zum Beispiel gibt es Probleme mit der Zeit lösbar n2 Aber nicht Zeit n, seit n ist in

Nachweisen

Wir schließen hier einen Beweis ein, das Time(f(n)) ist eine strenge Teilmenge von Time(f(2n + 1)3) wie es einfacher ist. Informationen zum Erweitern des Beweises auf den Ende dieses Abschnitts finden Sie in diesem Abschnitt f(n)2.

Um dies zu beweisen, definieren wir zunächst die Sprache der Codierungen von Maschinen und ihrer Eingaben, die dazu führen, dass sie innerhalb von F anhalten

Beachten Sie hier, dass dies eine Zeitklasse ist. Es ist der Satz von Maschinenpaaren und Eingängen für diese Maschinen (M,x) zu diesen Maschinen, damit die Maschine M Akzeptiert innerhalb f(|x|) Schritte.

Hier, M ist eine deterministische Turing -Maschine, und x ist seine Eingabe (der anfängliche Inhalt seines Bandes). [M] bezeichnet eine Eingabe, die die Turing -Maschine codiert M. Lassen m die Größe des Tupels sein ([[M], x).

Wir wissen, dass wir uns für die Mitgliedschaft entscheiden können Hf über eine deterministische Turing -Maschine Rdas simuliert M zum f(x) Schritte durch zuerst berechnen f(|x|) und dann eine Zeile von 0s dieser Länge aufschreiben und dann diese Zeile von 0s als "Uhr" oder "Zähler" verwenden, um zu simulieren M für höchstens so viele Schritte. Bei jedem Schritt muss die Simulationsmaschine die Definition von durchsehen M zu entscheiden, was die nächste Aktion sein würde. Man kann mit Sicherheit sagen, dass dies höchstens dauert f(m)3 Vorgänge (da bekannt ist, dass eine Simulation einer Maschine der Zeitkomplexität T(n) kann rechtzeitig erreicht werden Ö(TProtokollT)), wir haben das:

Der Rest des Beweises zeigt das

Also, wenn wir 2 ersetzen 2n + 1 für mWir erhalten das gewünschte Ergebnis. Nehmen wir das an Hf ist in dieser Zeit Komplexitätsklasse, und wir werden einen Widerspruch erreichen.

Wenn Hf ist in dieser Zeit Komplexitätsklasse, dann gibt es eine Maschine K was, angesichts einer maschinellen Beschreibung [M] und Eingabe x, entscheidet, ob das Tupel ([M], x) ist in Hf innerhalb

Wir benutzen das K eine andere Maschine konstruieren, N, was eine Maschinenbeschreibung nimmt [M] und läuft K auf dem Tupel ([[M], [M]), dh. M wird in seinem eigenen Code von simuliert von K, und dann N akzeptiert, wenn K lehnt ab und lehnt es ab, wenn K Akzeptiert. Wenn n ist die Länge des Eingangs zu N, dann m (die Länge des Eingangs zu K) ist zweimal n plus ein Trennzeichensymbol also m = 2n + 1. NDie Laufzeit ist also

Nun, wenn wir füttern [N] als Eingabe in N selbst (was macht n die Länge von [N]) und stellen Sie die Frage, ob N Akzeptiert seine eigene Beschreibung als Eingabe, wir bekommen:

  • Wenn N Akzeptiert [N] (von dem wir wissen, in dem es höchstens tut f(n) Operationen seit K Halt an ([[N], [N]) in f(n) Schritte), das bedeutet das K lehnt ab [N], [N]), Also ([N], [N]) ist nicht in Hfund so durch die Definition von Hfdas impliziert das N akzeptiert nicht [N] in f(n) Schritte. Widerspruch.
  • Wenn N lehnt ab [N] (von dem wir wissen, in dem es höchstens tut f(n) Operationen), das bedeutet das K Akzeptiert [N], [N]), Also ([N], [N])) ist in Hf, und somit N tut annehmen [N] in f(n) Schritte. Widerspruch.

Wir schließen also, dass die Maschine K existiert nicht und so

Verlängerung

Der Leser hat möglicherweise erkannt, dass der Beweis einfacher ist, da wir eine einfache Turing -Maschinen -Simulation ausgewählt haben

Es wurde gezeigt[7] dass ein effizientes Simulationsmodell existiert, das das festlegt

Da dieses Modell der Simulation jedoch eher beteiligt ist, ist es hier nicht enthalten.

Beachten Sie jedoch, dass ein identisches Argument wie oben impliziert, dass dies dann impliziert ist nicht innerhalb enthalten wenn ist eine Funktion, die eine Zeit verleiht, in der es möglich ist, eine Maschine zu simulieren mit zeitlicher Komplexität auf Eingabe .

Nicht deterministische Zeithierarchie Theorem

Wenn g(n) ist eine zeitkonstruierbare Funktion und f(n+1) = o(g(n)), dann gibt es ein Entscheidungsproblem, das nicht in nicht deterministischer Zeit gelöst werden kann f(n) kann aber in nicht deterministischer Zeit gelöst werden g(n). Mit anderen Worten, die Komplexitätsklasse Ntzeit(f(n)) ist eine strenge Teilmenge von Ntzeit(g(n)).

Konsequenzen

Die Zeithierarchie-Theorems garantieren, dass die deterministischen und nicht deterministischen Versionen der Exponentielle Hierarchie sind echte Hierarchien: Mit anderen Worten PNachfolger2-exp ⊊ ... und NpNexptime2-nexp ⊊ ....

Zum Beispiel, seit . In der Tat, Aus der Zeithierarchie Theorem.

Der Satz garantiert auch, dass es Probleme gibt P willkürlich große Exponenten zu lösen; mit anderen Worten, P fällt nicht zusammen zu Time(nk) für alle festen k. Zum Beispiel gibt es Probleme lösbar in n5000 Zeit, aber nicht n4999 Zeit. Dies ist ein Argument gegen Cobhams These, die Konvention, die P ist eine praktische Klasse von Algorithmen. Wenn ein solcher Zusammenbruch aufgetreten wäre, könnten wir das ableiten PPSPACE, da es ein bekannter Satz ist Time(f(n)) ist strikt in DSpace(f(n)).

Die Zeithierarchie-Theoreme bieten jedoch keine Möglichkeit, eine deterministische und nicht deterministische Komplexität oder Zeit- und Raumkomplexität in Beziehung zu setzen, sodass sie die großen ungelösten Fragen von nicht beleuchten Computerkomplexitätstheorie: ob P und Np, Np und PSPACE, PSPACE und Nachfolger, oder Nachfolger und Nexptime sind gleich oder nicht.

Siehe auch

Verweise

  1. ^ Hartmanis, J.; Stearns, R. E. (1. Mai 1965). "Über die rechnerische Komplexität von Algorithmen". Transaktionen der American Mathematical Society. American Mathematical Society. 117: 285–306. doi:10.2307/1994208. ISSN 0002-9947. JStor 1994208. HERR 0170805.
  2. ^ Hennie, F. C.; Stearns, R. E. (Oktober 1966). "Zwei-Tape-Simulation von Multitape-Turing-Maschinen". J. ACM. New York, NY, USA: ACM. 13 (4): 533–546. doi:10.1145/321356.321362. ISSN 0004-5411. S2CID 2347143.
  3. ^ Cook, Stephen A. (1972). "Eine Hierarchie für nichtdeterministische Zeitkomplexität". Verfahren des vierten jährlichen ACM -Symposiums zur Computertheorie. STOC '72. Denver, Colorado, USA: ACM. S. 187–192. doi:10.1145/800152.804913.
  4. ^ Seiferas, Joel I.; Fischer, Michael J.; Meyer, Albert R. (Januar 1978). "Nichtdeterministische Zeitkomplexitätsklassen trennen". J. ACM. New York, NY, USA: ACM. 25 (1): 146–167. doi:10.1145/322047.322061. ISSN 0004-5411. S2CID 13561149.
  5. ^ Žák, Stanislav (Oktober 1983). "Eine Turing Machine Time Hierarchie". Theoretische Informatik. Elsevier Science B.V. 26 (3): 327–333. doi:10.1016/0304-3975 (83) 90015-4.
  6. ^ Fortnow, L.; Santhanam, R. (2004). "Hierarchie Theoreme für probabilistische Polynomzeit". 45. jährliches IEEE -Symposium für Fundamente der Informatik. p. 316. doi:10.1109/Focs.2004.33. ISBN 0-7695-2228-9. S2CID 5555450.
  7. ^ Luca Trevisan, Anmerkungen zu Hierarchie -Theoremen, U.C. Berkeley