Gibt es eine einfache Möglichkeit zu erkennen, warum NP in EXPTIME ist? Es scheint mir a priori denkbar, dass es ein Problem geben könnte, dessen Lösung eine überexponentielle Zeit erfordert, dessen Lösung jedoch in Polynomzeit verifiziert werden könnte.
11
Antworten:
Jedes Problem in NP liegt in EXPTIME, da Sie entweder die exponentielle Zeit verwenden können, um alle möglichen Zertifikate zu testen oder alle möglichen Berechnungspfade einer nicht deterministischen Maschine aufzulisten.
Formal gibt es zwei Hauptdefinitionen von NP . Eine ist, dass eine Sprache in NP ist, wenn es eine Beziehung R gibt, so dassL R
Wenn wir also eine exponentielle Zeit haben und wissen wollen, ob , können wir einfach alle | ausprobieren Σ | p ( n ) mögliche Werte für ~ y und sehen, ob ( x , y ) ∈ R für einen von diesen. Das braucht Zeit 2 O ( p ( n ) ) , also L ∈x∈L |Σ|p(n) y (x,y)∈R 2O(p(n)) L∈ EXPTIME .
Alternativ können wir NP als die Menge von Sprachen definieren, die von nichtdeterministischen Turing-Maschinen mit Polynomzeit bestimmt werden. In diesem Fall sei angenommen, dass von der Maschine M in der Zeit p ( n ) für ein Polynom p für Eingaben der Länge n bestimmt wird . Dann trifft M höchstens p ( | x | ) nichtdeterministische Entscheidungen, während bestimmt wird, ob x ∈ L ist . Indem wir die Übergangsfunktion von M untersuchen , können wir eine Konstante k finden, so dass M höchstens hatL M p(n) p n M p(|x|) x∈L M k M nichtdeterministische Auswahlmöglichkeiten bei jedem Schritt der Berechnung (unabhängig von der Eingabe), so dass höchstens k p ( | x | ) = 2 O ( p ( | x | ) ) verschiedene Sequenzen nichtdeterministischer Auswahlmöglichkeiten beim Lesen der Eingabe x vorliegen . Bei gegebener exponentieller Zeit können wir jede dieser Möglichkeiten nacheinander simulieren und sehen, ob eine von ihnen akzeptiert.k kp(|x|)=2O(p(|x|)) x
quelle