Im Allgemeinen gilt für jeden Algorithmus Folgendes:
- Angenommen, ist ein Algorithmus, der in Zeit ausgeführt wird. Dann konnte nicht mehr als Platz einnehmen , da das Schreiben von Bits Zeit erfordert .Af(n)Af(n)f(n)f(n)
- Angenommen, ist ein Algorithmus, der Platz benötigt. Dann in Zeit, kann jeder seiner verschiedenen Staaten besuchen, daher kann nichts gewinnen , indem sie mehr als das Laufen 2 f ( n ) Zeit.Af(n)2f(n)A2f(n)
Es folgt dem:
NP ⊆PSPACE
Die Anweisung ist als Teil der Beziehungen zwischen den Klassen bekannt, wie im folgenden Diagramm dargestellt:
Die Erklärung ist einfach: Ein Problem Q ∈ NP hat ein polynomielles Längenzertifikat y . Ein Algorithmus, der alle möglichen Zertifikate testet, ist ein Algorithmus, der Q in der Zeit 2nO(1) .
Sein Platzbedarf beträgt:
- y (Polynom inn )
- Speicherplatz zur Verifizierung von y . Da y ein Polynomzertifikat ist, kann es in Polynomzeit verifiziert werden und benötigt daher möglicherweise nicht mehr als Polynomraum.
Da die Summe zweier Polynome auch ein Polynom ist, kann Q mit dem Polynomraum bestimmt werden.
Beispiel:
Angenommen, φ ist eine Instanz von 3-CNF in Literalen x1…xn mit m Sätzen. Eine Zuweisung f ist eine Funktion f:{x1…xn}→{0,1} .
Es gilt:
- Es gibt 2n verschiedene Zuordnungen.
- Wenn eine Zuweisung f , dauert es O(m) Zeit, um den Wert von φ zu berechnen , daher kann es nicht mehr als O(m) Raum erfordern .
Ein Algorithmus A , der alle möglichen Zuweisungen überprüft, verwendet also den Polynomraum, läuft in exponentieller Zeit und entscheidet über 3-SAT.
Es folgt dem:
3-SAT ∈PSPACE , und da 3-SAT NP-vollständig ist, ist NP ⊆PSPACE