Hochgeladen von hassan.elmailoudii

komplexitätstheorie

Werbung
Johannes Blömer
•
Skript zur Vorlesung
Komplexitätstheorie
•
Universität Paderborn
Sommersemester 2010
Inhaltsverzeichnis
1 Einleitung
2
2 Turingmaschinen, Zeit- und Platzkomplexität
2.1 Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Mehrband Turingmaschinen . . . . . . . . . . . . . . . . . .
2.3 Die Klassen P und PSPACE . . . . . . . . . . . . . . . . .
2.4 Nichtdeterministische Turingmaschinen und die Klasse N P
2.5 Polynomielle Reduktionen . . . . . . . . . . . . . . . . . . .
2.6 N P- und PSPACE-Vollständigkeit . . . . . . . . . . . . . .
2.7 Der Satz von Savitch . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
5
5
12
15
20
25
30
37
3 Innerhalb von P und N P
40
3.1 Reduktionen, Co-Klassen und die Klasse co-N P . . . . . . . 40
3.2 Der Satz von Ladner . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 Die Klassen L, N L und L-Reduktionen . . . . . . . . . . . . . 50
4 Hierarchiesätze und Diagonaliserung
62
4.1 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2 Die Hierarchiesätze . . . . . . . . . . . . . . . . . . . . . . . . 63
5 Orakel-Turingmaschinen, Grenzen der Diagonalisierung und
die Polynomialzeithierarchie
5.1 Orakel-Turingmaschinen . . . . . . . . . . . . . . . . . . . . .
5.2 Orakel-Turingmaschinen und die Grenzen der Diagonalisierung
5.3 Die Polynomialzeithierarchie . . . . . . . . . . . . . . . . . .
67
67
70
72
6 Probabilistische Komplexitätsklassen
78
6.1 Einfache probabilistische Algorithmen . . . . . . . . . . . . . 78
6.2 Probabilistische Komplexitätsklassen . . . . . . . . . . . . . . 80
6.3 BPP und die Polynomialzeithierarchie . . . . . . . . . . . . . 83
1
Kapitel 1
Einleitung
Ziel dieser Vorlesung ist es eine Einführung in eines der wichtigsten Teilgebiete der Theoretischen Informatik, die Komplexitätstheorie, zu geben. Die
Komplexitätstheorie versucht zu verstehen, wie schwer Probleme auf einem
Computer zu lösen sind. Um dies mathematisch präzise zu fassen, benötigen wir zunächst einmal ein geeignetes theoretisches Rechnermodell, um mit
Hilfe dieses Rechnermodells dann den Ressourcenverbrauch zu charakterisieren, den die Lösung eines Problems erfordert. Dabei muss natürlich auch
gesagt werden, welche Resourcen betrachtet werden. In der Komplexitätstheorie betrachtet man in aller Regel als mathematisches Rechnermodell
die Turingmaschinen. Als Ressourcen werden hauptsächlich Zeit und Speicher untersucht. Die Komplexitätstheorie versucht dann Probleme gemäß
des Zeit- und des Speicherbedarfs zu charakterisieren, die zu ihrer Lösung
auf einer Turingmaschine benötigt werden. Sprachen, deren Lösung einen
ähnlichen Zeit- bzw. Speicherbedarf erfordert, werden dann in der Komplexitätstheorie in so genannten Komplexitätsklassen zusammen gefasst.
Um etwa die Zeit zu charakterisieren, die die Lösung eines Problems
auf einer Turingmaschine benötigt, werden sowohl obere als auch untere
Schranken benötigt. Um eine obere Schranke für die Zeit, die die Lösung
eines Problems benötigt, zu erhalten, wird in der Regel explizit eine Turingmaschine angegeben, die das Problem löst und dann die Laufzeit dieser
Turingmaschine mit Hilfe der O-Notation bestimmt. In der Komplexitätstheorie sind wir in der Regel nur an recht groben oberen Schranken interessiert. Häufig genügt es uns zu zeigen, dass ein Problem in polynomieller
Zeit gelöst werden kann, ohne dass wir versuchen, ein möglichst geringe polynomielle Laufzeit zu zeigen. Dieses überlassen wir Vorlesungen aus dem
Bereich des Algorithmenentwurfs wie Datenstrukturen und Algorithmen“,
”
2
Grundlegende Algorithmen“ und Effiziente Algorithmen“.
”
”
Um z.B. untere Schranken für den Zeitbedarf zu zeigen, die die Lösung
eines Problems auf einer Turingmaschine benötigt, muss andererseits gezeigt werden, dass jede Turingmaschine, die das Problem korrekt löst, einen
Mindestzeitbedarf hat, den wir mit Hilfe der Ω-Notation angeben. Um etwa
zu zeigen, dass ein Problem Zeitbedarf Ω(n2 ) besitzt, muss gezeigt werden,
dass jede Turingmaschine, die das Problem korrekt löst, Laufzeit mindestens Ω(n2 ) besitzt. Es hat sich nun als sehr schwer herausgestellt, untere
Schranken für die Zeit, die zur Lösung von Problemen benötigt wird, zu
beweisen. So ist z.B. für kein NP-vollständiges Problem eine nichtlineare
untere Schranke bekannt. Wir können also zur Zeit für kein NP-vollständiges Problem beweisen, dass jede Turingmaschine (oder Algorithmus), die
das Problem löst, etwa Laufzeit mindestens Ω(n log(n)) besitzt. Ganz zu
schweigen von superpolynomiellen unteren Schranken.
Dieses Unvermögen, untere Schranken für den Zeit- oder Platzbedarf
von explizit definierten Problemen zu zeigen, ist in vieler Hinsicht der Ausgangspunkt für die Komplexitätstheorie. Unser Ausgangspunkt in dieser
?
Vorlesung ist noch etwas konkreter, nämlich die Frage ist P = N P. Wir
werden unterschiedliche Ergebnisse und Techniken kennen lernen, die sich
aus Versuchen ergaben, diese zentrale Frage der Informatik zu verstehen und
zu beantworten. Wir werden z.B. sehen, dass wir das Konzept des Nichtdeterminismus im Kontext von Platzbedarf von Problemen deutlich besser
verstehen als beim Zeitbedarf. Wir werden auch sehen, dass wir sehr wohl
zeigen können, dass es Probleme gibt, deren Lösung auf jeder Turingmaschine Zeit mindestens Ω(n2 ) benötigt, die andererseits aber auch in Zeit O(n4 )
auf einer Turingmaschine gelöst werden können. Leider können wir diese
Probleme nur indirekt definieren und die Probleme haben keinerlei Ähnlichkeit mit uns interessierenden Problemen aus der Praxis. Wir werden sehen,
dass uns hierbei die Technik der Diagonalisierung sehr nützlich sein wird.
Diese Technik spielt natürlich auch bei der Konstruktion von unentscheidbaren Problemen eine zentrale Rolle. Wir werden allerdings auch sehen, dass
?
wir mit Hilfe der Diagonalisierung die Frage P = N P nicht beantworten
können.
Weiter werden wir das Konzept von Reduktionen, das bei der Definition von N P-Vollständigkeit eine zentrale Rolle spielt, genauer untersuchen. Dabei werden wir weitere Komplexitätsklassen und die so genannte
Polynomialzeit-Hierarchie kennen lernen. Wir werden uns auch fragen, ob
der Zufall uns helfen kann, vermutlich schwierige Probleme effizient zu lösen.
Auch hier werden wir keine abschließende Antwort geben. Allerdings werden
3
auch diese Untersuchungen unser Verständnis der Komplexität von Problemen verbessern.
?
Am Ende der Vorlesung werden wir der Beantwortung der Frage P =
N P nicht viel näher gekommen sein, aber Sie werden hoffentlich viel über ein
faszinierendes Gebiet der Informatik gelernt haben, und Sie werden hoffentlich ein besseres Verständnis dafür entwickelt haben, warum es trotz großer
Anstrengungen vieler theoretischer Informatiker immer noch nicht gelungen
?
ist, die Frage P = N P zu beantworten.
4
Kapitel 2
Turingmaschinen, Zeit- und
Platzkomplexität
In diesem Kapitel werden wir formal die Zeit- bzw. Platzkomplexität eines Algorithmus und einer Turingmaschine definieren. Wir werden dann die
Klasse P der in Polynomialzeit entscheidbaren Sprachen definieren.
2.1
Turingmaschinen
Die Turingmaschine wurde 1936 (vor der Entwicklung erster elektronischer
Rechenanlagen) von Alan Turing eingeführt. Sie diente ihm als formales
Modell, um den Begriff berechenbar“ zu formalisieren. Als Speicherme”
dium besitzt eine Turingmaschine ein nach rechts unendliches Band, das
in Zellen aufgeteilt ist. Eine Zelle kann ein Element aus dem so genannten Bandalphabet speichern. Die Turingmaschine besitzt eine Kontrolle und
einen Lesekopf. Die Kontrolle befindet sich stets in einem von endlich vielen
Zuständen. Der Lesekopf kann den Inhalt einer Speicherzelle lesen, aber auch
ein neues Zeichen in eine Zelle schreiben (schematisch dargestellt in Abbildung 2.1. Weitere Bausteine des Modells sind in der folgenden Definition
zusammengefasst.
Definition 2.1.1 Eine deterministische 1-Band- Turingmaschine oder auch
einfach Turingmaschine (DTM) wird durch ein 4-Tupel M = (Q, Σ, Γ, δ)
beschrieben. Dabei sind Q, Σ, Γ endliche, nicht leere Mengen und
1. Q ist die Zustandsmenge. Diese enthält immer die ausgezeichneten
Zustände s, qaccept , qreject , wobei qaccept 6= qreject gelten muss. s ist der
5
Abbildung 2.1: Band und Lesekopf einer DTM
Startzustand, qaccept ist der akzeptierende Zustand und qreject ist der
ablehnende Zustand.
2. Σ ist das Eingabealphabet, wobei das Blank ⊔ und das Startsymbol
⊲ nicht in Σ liegen.
3. Γ ist das Bandalphabet, wobei Σ ⊂ Γ und ⊔, ⊲ ∈ Γ. Außerdem sind
die Symbole L, R, N nicht in Γ enthalten.
4. δ : Q\{qaccept , qreject } × Γ → Q × Γ × {R, L, N } ist die Übergangsfunktion. Für qaccept × Γ, qreject × Γ ist δ also nicht definiert.
5. Für das Symbol ⊲ ∈ Γ und alle Zustände q ∈ Q gilt δ(q, ⊲) = (p, ⊲, R)
mit p ∈ Q. Außerdem muss für alle q ∈ Q und a ∈ Γ, a 6= ⊲, gelten
δ(q, a) = (p, b, D), wobei p ∈ Q, b ∈ Γ, b 6= ⊲ und D ∈ {L, R, N }.
Mit anderen Worten: ⊲ kann nur dann als zweite Koordinate eines
Funktionswertes von δ auftauchen, wenn es auch zweite Koordinate
des Argumentes ist.
Wir werden in Kürze auch nichtdeterministische Turingmaschinen kennen
lernen. Um späteren Verwechslungen vorzubeugen werden wir daher auch
jetzt schon stets von deterministischen Turingmaschinen (DTMs) reden.
Wir beschreiben nun die Berechnung einer DTM. Zunächst geschieht
dieses informell, dann werden wir die Berechnung genauer definieren. In der
äußersten linken Zelle des Bandes einer DTM steht immer das Startsymbol
⊲. In den Zellen links vom Startsymbol ⊲ steht zu Beginn der Berechnung
einer DTM die Eingabe w = (w1 , w2 , . . . , wn ) ∈ Σ∗ . Die restlichen Zellen
des Bandes sind mit dem Blanksymbol ⊔ gefüllt. Da ⊔ nicht zum Eingabealphabet Σ gehört, zeigt also das erste ⊔ das Ende der Eingabe an.
Die Schritte der DTM erfolgen nun gemäß der Übergangsfunktion δ. Zu
jedem Zeitpunkt befindet sich die Maschine in einem Zustand q ∈ Q und
6
der Lesekopf liest den Inhalt einer Zelle des Bandes. Ist der Inhalt der Zelle
a ∈ Γ, so führt die Maschine die durch δ(q, a) beschriebenen Aktionen aus.
Ist z.B. δ(q, a) = (q ′ , b, L), so wird in die Zelle, die gerade vom Lesekopf
gelesen wird, der Inhalt a überschrieben und durch b ersetzt, der Lesekopf
bewegt sich um eine Zelle nach links und der neue Zustand der Maschine
ist q ′ . Ist hingegen δ(q, a) = (q ′ , b, R), so sind die Zustandsänderung und die
Änderung des Inhalts der aktuell gelesenen Zelle wie bei δ(q, a) = (q ′ , b, L),
allerdings bewegt sich der Kopf nun um eine Zelle nach rechts. Ist schließlich
δ(q, a) = (q ′ , b, N ), so wird ändern sich Inhalt der aktuell gelesenen Zelle und
der Zustand wie vorher, allerdings bleibt der Lesekopf auf der aktuellen Zelle
stehen.
Die Berechnung einer DTM geht so lange weiter bis der Zustand qaccept
oder der Zustand qreject erreicht wird. Dann stoppt die Maschine. Wird keiner
der Zustände qaccept , qreject erreicht, so hält die Maschine nie an, sie befindet
sich dann in einer “Endlosschleife”.
Da das Startsymbol ⊲ in der ersten Zelle des Bandes nicht überschrieben
werden kann und ⊲ auch nie auf das Band geschrieben wird (siehe 5. in der
Definition einer DTM), kann das linke Bandende einer DTM am Symbol
⊲ in der äußersten linken Bandzelle erkannt werden. Wird das Symbol ⊲
gelesen, und befindet sich der Kopf der DTM somit auf der äußersten linken Bandzelle, so muss der Kopf gemäß 5. in der Definition einer DTM im
nächsten Schritt nach rechts bewegt werden. Der Kopf einer DTM kann also
nie über das linke Bandende hinaus wandern.
Um die Arbeitsweise einer DTM formal zu fassen, benötigen wir zunächst
den Begriff der Konfiguration einer DTM. Eine Konfiguration ( Momentauf”
nahme“) einer DTM M ist ein Element aus Γ∗ × Q × Γ∗ . DTM M ist in
”
Konfiguration αqβ“ heißt:
• In den äußersten linken Zellen des Bandes steht αβ ∈ Γ∗ . In den
übrigen Zellen des Bandes stehen ausschließlich ⊔s.
• der Kopf steht auf dem ersten Buchstaben von β,
• der Zustand ist q.
In Abbildung 2.2 haben wir die Konfiguration einer DTM schematisch dargestellt. Ein Berechnungsschritt der DTM führt von einer Konfiguration in
eine Nachfolgekonfiguration.
Sei β = bβ̄, α = ᾱa, wobei α, ᾱ, α′ , β, β̄, β ′ ∈ Γ∗ und a, b ∈ Γ. α′ q ′ β ′ ist
(direkte) Nachfolgekonfiguration von αqβ, falls gilt:
δ(q, b) = (q ′ , b′ , D), D ∈ {L, R, N },
7
Abbildung 2.2: DTM in Konfiguration ⊲110q5 01110
wobei
• α′ = αb′ , β ′ = β̄, falls D = R;
• α′ = ᾱ, β ′ = ab′ β̄, falls D = L;
• α′ = α, β ′ = b′ β̄, falls D = N .
Ist α′ q ′ β ′ die direkte Nachfolgekonfiguration von αqβ, so schreiben wir
α′ q ′ β ′ .
αqβ
α′ q ′ β ′ ist i-te Nachfolgekonfiguration von αqβ , falls gilt:
• i = 0 und αqβ = α′ q ′ β ′ , oder
• i > 0 und es gibt Konfigurationen K1 , . . . , Ki−1 mit
K1
...
Ki−1
α′ q ′ β ′ .
αqβ
Ist α′ q ′ β ′ die i-te Nachfolgekonfiguration von αqβ, so schreiben wir
αqβ
i
α′ q ′ β ′ .
α′ q ′ β ′ ist (indirekte) Nachfolgekonfiguration von αqβ, falls es ein i ∈ N0 gibt
mit αqβ i α′ q ′ β ′ . In diesem Fall schreiben wir
αqβ
∗
α′ q ′ β ′ .
Ist w ∈ Σ∗ die Eingabe einer DTM, so nennen wir die Konfiguration s⊲w
in der sich die DTM zu Beginn der Berechnung mit Eingabe w befindet, die
Startkonfiguration bei Eingabe w ∈ Σ∗ .
Sei M eine DTM, w ∈ Σ∗ . M akzeptiert w, falls es α, β ∈ Γ∗ gibt mit
s ⊲ w ∗ αqaccept β. Die DTM M akzeptiert also die Eingabe w, wenn
die Berechnung von M bei Eingabe w aus der Startkonfiguration s ⊲ w in
eine Konfiguration αqaccept β mit dem akzeptierende Zustand qaccept führt.
Hierbei sind α, β ∈ Γ∗ beliebig.
8
Definition 2.1.2 Die Menge aller von M akzeptierten w ∈ Σ∗ ist die von
M akzeptierte Sprache L. Wir schreiben dann auch L = L(M ).
Wichtig ist es, an dieser Stelle zu erkennen, dass wir in dieser Definition
erlauben, dass M für w 6∈ L nicht im ablehnenden Zustand qreject hält,
sondern möglicherweise in eine “Endlosschleife” geht. Deshalb ein, wie Sie
sich aus der Vorlesung Einführung in Berechenbarkeit, Komplexität und
”
formale Sprachen“ erinnern werden, stärkerer Begriff.
Definition 2.1.3 Die DTM M entscheidet die von ihr akzeptierte Sprache
L(M ), wenn M alle Worte, die nicht in L(M ) liegen ablehnt. D.h., M entscheidet die Sprache L, falls M die Sprache L akzeptiert und es für alle
w ∈ Σ∗ \L Worte α, β ∈ Γ∗ gibt mit s ⊲ w ∗ αqreject β.
Definition 2.1.4 L ⊆ Σ∗ heisst rekursiv aufzählbar genau dann, wenn
es eine DTM gibt, die L akzeptiert.
L ⊆ Σ∗ heißt rekursiv oder entscheidbar genau dann, wenn es eine
DTM gibt, die L entscheidet.
In dieser Vorlesung werden wir uns ausschließlich mit DTMs beschäftigen,
die bei jeder Eingabe halten, d.h., mit DTMs, die eine Sprache entscheiden.
Turingmaschinen können auch Funktionen berechnen. Diese werden wir
hauptsächlich benötigen, um fundamentale Konzepte wie Reduktionen und
vollständige Sprachen exakt definieren zu können.
Definition 2.1.5 Eine DTM M berechnet die partielle Funktion f : Σ∗ →
(Γ\{⊔, ⊲})∗ mit
• f (w) = y, falls M bei Eingabe w im akzeptierenden Zustand hält und
dabei der Bandinhalt y ist. Hierbei werden das Startsymbol ⊲ und alle
Blanks des Bandes ignoriert.
• f (w) ist nicht definiert, falls M bei der Eingabe w nicht im akzeptierenden Zustand hält.
Eine DTM M berechnet die totale Funktion f : Σ∗ → (Γ\{⊔, ⊲})∗ , falls
• M bei jeder Eingabe w ∈ Σ∗ im akzeptierenden Zustand hält.
• f (w) = y, wobei y der Bandinhalt am Ende der Berechnung der DTM
M mit Eingabe w ist. Hierbei werden das Startsymbol ⊲ und alle
Blanks des Bandes ignoriert.
9
M berechnet die totale Funktion f : Nr → N, falls Σ = {0, 1, #} und M
für jedes a1 , . . . , ar ∈ N bei Eingabe bin(a1 )#bin(a2 )# . . . #bin(ar ) im akzeptierenden Zustand und mit Bandinhalt bin(f (a1 , . . . , ar )) hält. Wiederum
werden das Startsymbol ⊲ und alle Blanks des Bandes ignoriert.
Unter einem Rechenschritt oder einfach einem Schritt einer DTM verstehen wir nun die einmalige Anwendung der Übergangsfunktion δ. Gibt es also
z.B. den Übergang δ(q, a) = (q ′ , b, L), befindet sich die DTM im Zustand
q und ist das Zeichen in der aktuell gelesenen Speicherzelle a, so kann die
DTM in einem Rechenschritt vom Zustand q in den Zustand q ′ wechseln,
das Zeichen a in der aktuell gelesenen Zelle durch b ersetzen und schließlich
den Lesekopf um eine Position nach links bewegen.
Definition 2.1.6 Sei M = (Q, Σ, Γ, δ) eine DTM, die bei jeder Eingabe
hält.
1. Für w ∈ Σ∗ ist TM (w) definiert als die Anzahl der Rechenschritte von
M bei Eingabe w.
2. Für n ∈ N ist
TM (n) := max{TM (w) | w ∈ Σ≤n }.
3. Die Funktion TM : N → N heißt die Zeitkomplexität oder Laufzeit
der DTM M .
4. Sei t : N → N eine monoton wachsende Funktion. Die DTM M heißt
t(n)-zeitbeschränkt, wenn für alle n ∈ N gilt: TM (n) ≤ t(n).
Man beachte, dass wir die Zeitkomplexität nur für DTMs definiert haben,
die immer halten. Eine DTM, die bei einigen Eingaben nicht hält, hat keine
Zeitkomplexität oder Zeitkomplexität ∞. Zur Erinnerung: Σ≤n enthält alle
Worte aus Σ∗ , die aus höchstens n Zeichen von Σ bestehen. TM (n) ist also
definiert als die maximale Anzahl der Rechenschritte der DTM M bei einer
Eingabe der Länge höchstens n. Damit ist sichergestellt, dass die Zeitkomplexität oder Laufzeit einer DTM stets eine monoton wachsende Funktion
ist. In der Definition einer t(n)-zeitbeschränkten DTM haben wir uns auf
Funktionen t : N → N eingeschränkt. Dieses hat rein technische Gründe
(siehe unsere spätere Definition von zeitkonstruierbaren Funktionen auf Seite 63). Häufig werden wir auch t(n)-zeitbeschränkte Funktionen betrachten,
wobei t : N → R>0 , z.B. t(n) = n log(n). Um dann der obigen Definition gerecht zu werden, sollten wir dann eigentlich immer t(n) durch ⌊t(n)⌋
10
ersetzen. Da es jedoch kaum Missverständnisse geben kann, verzichten wir
darauf. Dieselben Bemerkungen treffen auch auf die s(n)-platzbeschränkten
DTMs zu, die wir als nächstes definieren.
Zunächst definieren wir die Platzkomplexität einer DTM M . Informell
ist dieses der Speicher, den die DTM M benötigt.
Definition 2.1.7 Sei M = (Q, Σ, Γ, δ) eine DTM, die bei jeder Eingabe
hält.
1. Für w ∈ Σ∗ ist SM (w) definiert als die Anzahl der Zellen, die M bei
Eingabe w benutzt. D.h., sind K0 , K1 , . . . , Kl die Konfigurationen, die
M bei Eingabe w durchläuft, so ist SM (x) = max{|Ki ||i = 0, . . . , l},
wobei |Ki | die Anzahl der Bandzellen bezeichnet, die in Konfiguration
Ki mit Bandsymbolen 6= ⊔ beschriftet sind.
2. Für n ∈ N ist
SM (n) := max{SM (w) | w ∈ Σ≤n }.
3. Die Funktion SM : N → N heißt die Platzkomplexität oder der Platzbedarf der DTM M .
4. Sei s : N → N eine monoton wachsende Funktion. Die DTM M heißt
s(n)-platzbeschränkt, wenn für alle n ∈ N gilt: SM (n) ≤ s(n).
Jetzt können wir bereits die ersten Komplexitätsklassen definieren. Eine
Komplexitätsklasse ist dabei immer eine Menge von Sprachen, die durch
Turingmaschinen mit ähnlichem Zeit- oder Platzbedarf entschieden werden
können. Dabei ist die Bedeutung von ähnlich“ häufig sehr liberal. Zunächst
”
definieren wir Zeitkomplexitätsklassen dann Platzkomplexitätsklassen.
Definition 2.1.8 Sei t : N → N eine monoton wachsende Funktion. Die
Klasse DT IME(t(n)) ist definiert als
L ist eine Sprache, die von einer O(t(n))-zeitDT IME(t(n)) := L
.
beschränkten DTM entschieden wird
Man beachte, dass wir in der Definition nur fordern, dass es eine O(t(n))zeitbeschränkte DTM geben muss. Wie in der theoretischen Informatik üblich,
ignorieren wir also in dieser Definition konstante Faktoren. Um zu zeigen,
dass eine Sprache L in DT IME(t(n)) liegt, muss also die Existenz einer L
entscheidenden, O(t(n))-zeitbeschränkten DTM M gezeigt werden. Häufig
aber nicht immer geschieht dies durch die explizite Beschreibung einer solchen DTM M .
Analog können wir nun auch die Klassen DSPACE(s(n)) definieren.
11
Definition 2.1.9 Sei s : N → N eine monoton wachsende Funktion. Die
Klasse DSPACE(s(n)) ist definiert als
L ist eine Sprache, die von einer O(s(n))-platzDSPACE(s(n)) := L
.
beschränkten DTM entschieden wird
2.2
Mehrband Turingmaschinen
Wir wollen jetzt das Modell der Turingmaschine etwas erweitern, indem wir
mehr als ein Band zulassen. Wir werden sehen, dass diese Erweiterung die
Klasse der entscheidbaren Sprachen nicht erweitert. Wir werden allerdings
auch sehen, dass Mehrband-Turingmaschinen einige Sprachen mit geringerem Zeitbedarf entscheiden können als 1-Band-Turingmaschinen. Schließlich
werden wir sehen, dass eine analoge Aussage für den Speicherbedarf nicht
gilt. D.h. kann eine Sprache durch eine O(s(n))-platzbeschränkte MehrbandTuringmaschinen entschieden werden, so kann sie auch durch eine O(s(n))platzbeschränkte 1-Band-Turingmaschine entschieden werden.
Definition 2.2.1 Eine k-Band Turingmaschine (k-DTM) hat nicht nur ein
Band und einen Lesekopf, sondern k Bänder mit je einem Lesekopf. Die
Übergangsfunktion ist dann von der Form δ : Q\{qaccept , qreject } × Γk → Q ×
Γk × {R, L, N }k . Zu Beginn steht die Eingabe auf Band 1, auf allen anderen
Bändern steht links das Startsymbol ⊲ gefolgt von Blanks. Die Arbeitsweise
einer k-DTM ist wie die Arbeitsweise einer 1-Band-DTM definiert.
Ist etwa
δ(qi , a1 , . . . , ak ) = (qj , b1 , . . . , bk , L, R, . . . , L),
so bedeutet dieses, das die Maschine, falls sie sich im Zustand qi befindet
und auf dem i-ten Band ein ai liest, im nächsten Schritt in den Zustand qj
übergeht, auf dem i-ten Band ai durch bi ersetzt, auf dem ersten Band den
Lesekopf eine Position nach links bewegt, auf dem zweiten Band den Lesekopf eine Position nach rechts bewegt, usw. Ein Beispiel ist in Abbildung 2.3
dargestellt. Den Begriff der Konfiguration einer Mehrband-Turingmaschine
können wir vollkommen analog wie bei 1-Band-Turingmaschinen definieren.
Genauso bereitet die Verallgemeinerung der Begriffe wie Zeitkomplexität
einer (1-Band) DTM oder t(n)-zeitbeschränkte Turingmasche (siehe Definition 2.1.6) auf Mehrband-DTMs keinerlei Probleme. Um Definition 2.1.7 auf
Mehrband-DTMs zu verallgemeinern müssen wir nur erklären, was wir unter
der Größe |K| einer Konfiguration einer Mehrband-DTM verstehen. Wenig
überraschend ist dieses die Anzahl aller Bandzellen (auf allen Bändern der
12
Abbildung 2.3: Band und Leseköpfe einer 3-Band TM
Maschine) die mit einem Bandsymbol 6= ⊲ beschriftet sind. Die Übertragung
von Definition 2.1.7 auf Mehrband-DTM ist dann offensichtlich. Wir verzichten wie auch bei der Verallgemeinerung von Zeitkomplexität auf eine genaue
Definition. Nun können wir auch die Komplexitätsklassen DT IME(t(n))
und DSPACE(s(n)) für Mehrband- genauer k-Band DTM definieren.
Definition 2.2.2 Sei t : N → R>0 eine monoton wachsende Funktion und
sei k ∈ N. Die Klasse DT IME k (t(n)) ist definiert als
L ist eine Sprache, die von einer O(t(n))-zeit.
DT IME k (t(n)) := L
beschränkten k-Band DTM entschieden wird
Definition 2.2.3 Sei s : N → N eine monoton wachsende Funktion und sei
k ∈ N. Die Klasse DSPACE k (s(n)) ist definiert als
L ist eine Sprache, die von einer O(s(n))-platzDSPACE k (s(n)) := L
.
beschränkten k-Band DTM entschieden wird
Der folgende Satz zeigt, dass bei fester Funktion s(n) die Klassen DSPACE k (s(n))
für k = 1, 2, . . . alle identisch sind.
Satz 2.2.4 Wird die Sprache L ⊆ Σ∗ von einer O(s(n))-platzbeschränkten
k-Band DTM M entschieden, so gibt es auch eine O(s(n))-platzbeschränkte
1-Band DTM, die L entscheidet.
Wir werden den Beweis dieses Satzes an dieser Stelle nicht führen. Weisen
aber daraufhin, dass der Beweis auf der für die Komplexitätstheorie ganz
wesentlichen Technik der Simulation beruht. Unter einer Simulation einer
Turingmaschie M durch eine Turingmaschine S verstehen wir dabei den
13
Entwurf einer Maschine S, die das Verhalten von M nachahmt. Insbesondere
muss die simulierende Maschine S dieselbe Sprache entscheiden wie die zu
simulierende Maschine M .
Für Zeitkomplexität und die Klassen DT IME k (t(n)) ist die Situation
leider nicht so schön wie für die Platzkomplexität. Insbesondere gelten die
folgenden Sätze.
Satz 2.2.5 Sei t : N → N eine monoton wachsende Funktion. Wird die
Sprache L ⊆ Σ∗ von einer O(t(n))-zeitbeschränkten k-Band DTM M entschieden, so gibt es auch eine O(t(n)2 )-zeitbeschränkte 1-Band DTM, die L
entscheidet.
Es gilt also das folgende Korollar.
Korollar 2.2.6 Sei t : N → N eine monoton wachsende Funktion. Für alle
k ∈ N gilt
DT IME k (t(n)) ⊂ DT IME(t(n)2 ).
Der nächste Satz zeigt, dass dieses Korollar im Wesentlichen nicht verbessert
werden kann.
Satz 2.2.7 Es gibt eine Sprache L ⊂ {0, 1}∗ , die auf einer 2-Band DTM
in Zeit O(n) entschieden werden kann, die jedoch nicht durch eine 1-Band
DTM mit Laufzeit o(n2 ) entschieden werden kann.
Eine Sprache L, die benutzt werden kann, um Satz 2.2.7 zu zeigen, sollten
Ihnen wohl bekannt sein. Die Aussage des Satzes gilt z.B. für Palindrome.
Wir erhalten aus Satz 2.2.7 folgendes Korollar.
Korollar 2.2.8 Sei t : N → N eine monoton wachsende Funktion mit
t(n) = o(n2 ). Dann gilt für alle k ∈ N, k ≥ 2
DT IME k (n) 6⊂ DT IME(t(n)),
Reden wir also vom Zeitbedarf zur Lösung eines Problems und sind wir an
recht feinen Unterscheidungen im Laufzeitbedarf interessiert (z.B. Zeitbedarf n oder Zeitbedarf n2 ) so müssen wir also anders als beim Platzbedarf
zwischen Mehr- und 1-Band DTMs unterscheiden. Glücklicherweise ist dieses nicht der Fall, wenn wir uns um Komplexitätsklassen wie P oder N P
kümmern, denen wir uns nun zuwenden.
14
2.3
Die Klassen P und PSPACE
Satz 2.2.5 zeigt, dass die folgende Definition eines effizient lösbaren Problems
von dem zugrunde gelegten Rechenmodell (1-Band DTM, Mehrband DTM)
weitgehend unabhängig ist.
Definition 2.3.1 Die Klasse P ist definiert als
[
DT IME(nk ).
P=
k∈N
In Worten: P ist die Klasse aller Sprachen L, für die es ein festes, aber
beliebiges k und eine (1-Band-)DTM M mit Laufzeit O(nk ) gibt, die L entscheidet. P ist die Klasse der Sprachen, die in polynomieller Zeit entschieden werden können.
Wie oben schon angedeutet, folgt aus Satz 2.2.5, dass sich die Klasse P nicht
ändert, wenn wir in Definition 2.3.1 Mehrband Turingmaschinen als Berechnungsmodell zugrunde gelegt hätten. Man kann auch zeigen, dass sich die
Definition nicht ändert, wenn wir nicht Turingmaschinen sondern RandomAccess- Machine (RAMs) als Berechnungsmodell zugrunde legen. Häufig
wird sogar davon ausgegangen, dass jedes “vernünftige” Rechenmodell zur
selben Klasse von Sprachen führt, die in polynomieller Zeit gelöst werden
können. Diese Aussage (häufig die moderne Churchsche These genannt) ist
wie die Churchsche These nicht beweisbar.
Die Klasse P stellt für uns die Klasse der effizient entscheidbaren Sprachen dar. Allgemeiner, jedes Problem, das sich durch eine DTM mit Laufzeit
O(nk ) lösen lässt, werden wir als effizient lösbar bezeichnen.
Für unsere Wahl von P als der Klasse der effizient lösbaren Probleme
gibt es im wesentlichen drei Gründe.
1. P ist eine mathematisch robuste Klasse.
2. Probleme, die nicht in P liegen, lassen sich in der Praxis nicht effizient
lösen. Probleme, die in P liegen, lassen sich häufig auch in der Praxis
effizient lösen.
3. Die Klasse P führt zu einer Theorie, die sowohl praktisch als auch
theoretisch interessante und relevante Ergebnisse liefert.
Zum ersten Grund: Die Klasse der effizient lösbaren Probleme sollte vom
Rechnermodell weitgehend unabhängig sein. Wie wir gesehen haben, ist dieses bei unserer Definition der Fall. Weiter sollten wir DTMs, die effizient
15
sind, miteinander kombinieren können, um eine effiziente DTM zu erhalten.
Bei unserer Definition einer effizienten DTM als einer DTM, deren Laufzeit
durch ein Polynom beschränkt ist, ist diese Forderung erfüllt.
Zum zweiten Grund: Für die meisten Probleme, die nicht in P liegen,
oder von denen wir nicht wissen, ob sie in P liegen, haben die besten bekannten Algorithmen häufig eine Laufzeit der Form 2n . Nun sind aber mit
wachsender Eingabegröße Probleme, deren Lösung Laufzeit 2n benötigt, sehr
viel schneller praktisch nicht mehr lösbar als Probleme, deren Lösung Laufzeit n2 benötigt.
Aber in P lassen wir auch Sprachen zu, die von einer DTM mit Laufzeit
10000
n
entschieden werden. Ein Algorithmus dieser Laufzeit ist in der Praxis sicherlich nicht brauchbar. Die Behauptung, eine Sprache, die von einer
DTM mit Laufzeit n10000 entschieden wird, sei effizient lösbar, scheint kaum
gerechtfertigt zu sein. In der Praxis ist es aber häufig so, dass für Sprachen,
von denen bekannt ist, dass sie in P liegen, bald auch DTMs oder Algorithmen bekannt sind, die diese Sprachen entscheiden und deren Laufzeit durch
ein kleines Polynom wie n2 oder n3 beschränkt ist1 . Zusammenfassend kann
man sagen, dass Probleme, die nicht in P liegen, auch in der Praxis nicht
effizient gelöst werden können. Außerdem können Probleme, die in P liegen,
meistens auch in der Praxis effizient gelöst werden.
Den dritten oben angeführten Grund für die Definition von P auszuführen
ist Ziel und Teil zumindest eines Teils dieser Vorlesung.
Analog zur Klasse P können wir auch die Klasse PSPACE der mit polynomiellem Platz lösbaren Probleme definieren.
Definition 2.3.2 Die Klasse PSPACE ist definiert als
[
DSPACE(nk ).
PSPACE =
k∈N
In Worten: PSPACE ist die Klasse aller Sprachen L, für die es ein festes,
aber beliebiges k und eine O(nk )-platzbeschränkte (1-Band-)DTM M gibt,
die L entscheidet. PSPACE ist die Klasse der Sprachen, die in polynomiellem Platz entschieden werden können.
Wir werden sehen, dass vermutlich nicht alle Probleme in PSPACE auch
zeiteffizient gelöst werden können. Die Klasse PSPACE ist vor allem aus
theoretischer Sicht interessant. Im Vergleich zwischen P und PSPACE zeigt
1
Wie wir im Laufe der Vorlesung sehen werden, ist die Aussage nur aus praktischer
Sicht vielleicht sinnvoll. Aus Sicht der Komplexitätstheorie ist sie falsch.
16
sich etwa, dass der im folgenden Abschnitt eingeführte Begriff des Nichtdeterminismus sich vermutlich in Bezug auf Zeit bzw. Platz völlig anders
verhält.
Wir wollen nun noch eine besonders wichtige Sprache aus der Klasse
PSPACE vorstellen. Es handelt sich dabei um die Sprache QBF, der Menge
aller wahren, vollständig quantifizierten Booleschen Formel. Diese Sprache
spielt für PSPACE dieselbe Rolle wie SAT für N P. Eine vollständig quantifizierte Boolesche Formel ist ein Ausdruck der Form
Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn ),
wobei Qi ∈ {∀, ∃} für i = 1, . . . , n und φ eine Boolesche Formel über Booleschen Variablen x1 , . . . , xn ist. Man nennt eine solche Formel vollständig
quantifiziert, da jede Variable xi mit ∀ oder ∃ quantifiziert ist. Eine vollständig
quantifizierte Boolesche Formel ist entweder wahr oder falsch. Nun erhalten
wir
Definition 2.3.3 Die Sprache QBF besteht aus allen vollständig quantifizierten wahren Booleschen Formeln.
Sei φ(x1 , . . . , xn ) eine Boolesche Formel über n Variablen. Mit der Größe m
dieser Formel bezeichnen wir die Beschreibungsgröße von φ in einer sinnvoll gewählten standardisierten Beschreibungsform für Boolesche Formeln.
Wie diese Beschreibung genau aussieht, ist irrelevant. Die Formel φ ist nun
erfüllbar genau dann, wenn die vollständig quantifizierte Boolesche Formel
∃x1 ∃x2 · · · ∃xn φ(x1 , . . . , xn )
wahr ist. Damit gilt also SAT ⊆ QBF. Wir wollen uns nun überlegen, dass
QBF in PSPACE enthalten ist. Um die Notation zu vereinfachen identifizieren wir den Booleschen Wert wahr“ mit 1 und den Wert falsch“ mit
”
”
0.
Betrachten wie eine vollständig quantifzierte Boolesche Formel
Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn ).
Nehmen wir zunächst an, dass Q1 = ∃. Dann ist der Ausdruck
Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn )
genau dann wahr, wenn der Ausdruck
Q2 x2 · · · Qn xn φ(1, x2 , . . . , xn ) ∨ Q2 x2 · · · Qn xn φ(0, x2 , . . . , xn )
17
Abbildung 2.4: Rekursionsbaum für ∃x1 ∀x2 ∃x3 φ(x1 , x2 , x3 )
wahr ist. Analog können wir im Fall Q1 = ∀ vorgehen. Dann ist
Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn )
genau dann wahr, wenn der Ausdruck
Q2 x2 · · · Qn xn φ(1, x2 , . . . , xn ) ∧ Q2 x2 · · · Qn xn φ(0, x2 , . . . , xn )
wahr ist. Genauso können wir dann die Quantoren Q2 durch ein ∨ oder ein ∧
von zwei Boolesche Formel ersetzen, in denen die zweite Variable x2 einmal
mit 1 und einmal mit 0 belegt wird. Dieses Vorgehen können wir fortsetzen,
bis wir den Ausdruck
Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn )
durch einen logisch äquivalenten Ausdruck ersetzt haben, in dem nur noch
∨, ∧ und Ausdrücke der Form φ(b1 , . . . , bn ) mit bi ∈ {0, 1} auftauchen. Wir
können uns dieses Vorgehen auch anhand eines Baumes wie in Abbildung 2.4
veranschaulichen. Aus diesen Betrachtungen ergibt sich sich leicht die Konstruktion einer rekursiv arbeitenden DTM D, die QBF mit polynomiellen
Platz löst. Um zu entscheiden, ob der Ausdruck
A = Q1 x1 Q2 x2 · · · Qn xn φ(x1 , x2 , . . . , xn )
18
wahr ist, entscheidet die DTM D rekursiv, welche der beiden Ausdrücke
A1 = Q2 x2 · · · Qn xn φ(1, x2 , . . . , xn )
und
A0 = Q2 x2 · · · Qn xn φ(0, x2 , . . . , xn )
wahr sind. Ist Q1 = ∀, so gibt D genau dann wahr aus, wenn A1 und A0
wahr sind. Ist hingegen Q1 = ∃, so gibt D genau dann wahr aus, wenn
mindestens einer der beiden Ausdrücke A1 , A0 wahr ist.
Bezeichne nun SD (A) den Platzbedarf von D bei Eingabe A. Wir nehmen
nun an, dass die Ausdrücke A0 und A1 Beschreibungsgröße höchstens m
haben, wenn der Ausdruck A Beschreibungsgröße m besitzt. Aus unseren
obigen Überlegungen ergibt sich nun
SD (A) ≤ max{SD (A1 ), SD (A0 )} + O(m),
denn D kann den Platz, den sie benötigt, um den Wahrheitswert von A1 zu
bestimmen, bei der Bestimmung des Wahrheitswertes von A0 wiederverwenden. Dabei benötigt D Platz O(m), um die rekursiven Aufrufe zu verwalten.
Die Basisfälle der Rekursion sind erreicht, wenn alle Variablen mit Booleschen Konstanten belegt sind.2 In diesen Fällen kann D den Wahrheitswert
sicherlich in Platz linear in der Beschreibungsgröße m des Ausdrucks A bestimmen. Zusammen mit der obigen Rekursionsformel für den Platzbedarf
von D ergibt sich, dass D bei Eingabe A Platzbedarf O(n · m) besitzt, wobei n die Anzahl der Variablen und m die Beschreibungsgröße von A ist.
Insgesamt erhaltenen wir also
Satz 2.3.4 Die Sprache QBF ist in PSPACE enthalten.
2
Dieses sind die Blätter in einem Baum wie in Abbildung 2.4.
19
2.4
Nichtdeterministische Turingmaschinen und die
Klasse N P
Als nächstes betrachten wir nichtdeterministische Turingmaschinen (NTM).
NTMs sind keine realistischen Rechnermodelle. Sie sind aber als mathematisches Modell von großem Nutzen.
Definition 2.4.1 Eine nichtdeterministische Turingmaschine (NTM) wird
durch ein 4-Tupel M = (Q, Σ, Γ, δ) beschrieben. Dabei sind Q, Σ, Γ endliche,
nicht leere Mengen und
1. Q ist die Zustandsmenge. Diese enthält immer die ausgezeichneten
Zustände s, qaccept , qreject , wobei qaccept 6= qreject gelten muss. s ist der
Startzustand, qaccept ist der akzeptierende Zustand und qreject ist der
ablehnende Zustand.
2. Σ ist das Eingabealphabet, wobei das Blank ⊔ und das Startsymbol
⊲ nicht in Σ liegen.
3. Γ ist das Bandalphabet, wobei Σ ⊂ Γ und ⊔, ⊲ ∈ Γ. Außerdem sind
die Symbole L, R, N nicht in Γ enthalten.
4. δ : Q\{qaccept , qreject } × Γ → POT (Q × Γ × {R, L, N }) ist die Übergangsfunktion. Für qaccept × Γ, qreject × Γ ist δ also nicht definiert.
5. Für das Symbol ⊲ ∈ Γ und alle Zustände q ∈ Q gilt δ(q, ⊲) ⊆ POT (Q×
{⊲} × {R}). Außerdem muss für alle q ∈ Q, a ∈ Γ, a 6= ⊲, gelten δ(q, a) ⊆ POT (Q × Γ\{⊲} × {L, R, N }). Mit anderen Worten:
⊲ kann nur dann als zweite Koordinate eines Elementes von δ(q, a)
auftauchen, wenn auch a = ⊲.
Für eine beliebige Menge S bezeichnet POT (S) hierbei die Menge aller
Teilmengen von S, die sogenannte Potenzmenge von S.
Ist z.B. δ(q, a) = {(q ′ , a′ , L), (q ′′ , a′′ , R)}, q, q ′ , q ′′ ∈ Q, a, a′ , a′′ ∈ Γ, so
kann die NTM N , befindet sie sich im Zustand q und liest das Symbol a, im
nächsten Schritt entweder das Symbol a durch a′ ersetzen, in den Zustand
q ′ wechseln und den Kopf eine Zelle nach links bewegen oder die NTM N
kann das Symbol a durch a′′ ersetzen, in den Zustand q ′′ wechseln und den
Kopf eine Zelle nach rechts bewegen.
Bei einer festen Eingabe w ∈ Σ∗ kann eine NTM N viele verschiedene Berechnungen ausführen, je nachdem welche Elemente aus δ(q, a) in den
einzelnen Rechenschritten von der NTM jeweils ausgewählt werden. Diese
20
Abbildung 2.5: Berechnungsbaum einer NTM
verschiedenen Berechnungen können gut in einem Baum, dem sogenannten
Berechnungsbaum von N bei Eingabe w dargestellt werden. Ein Beispiel
ist grob in Abbildung 2.5 skizziert. Jeder Knoten des Berechnungsbaums
ist mit einer Konfiguration von N gelabelt. Der Wurzelknoten ist mit der
Startkonfiguration q0 ⊲ w gelabelt. Ist ein Knoten mit der Konfiguration K
gelabelt, so sind die Label seiner Kinderknoten die möglichen direkten Nachfolgekonfigurationen von K. Dies sind diejenigen Konfigurationen, die aus K
durch eine einmalige Anwendung der Übergangsfunktion δ erreicht werden
können. Man beachte, dass mehrere Knoten mit derselben Konfiguration K
gelabelt sein können.
Einen Pfad im Berechnungsbaum nennen wir Berechnungspfad. Jeder
Berechnungspfad entspricht einer möglichen Berechnung von N bei Eingabe w. Da es Berechnungen gibt, die zu Endlosschleifen führen, kann der
Berechnungsbaum unendlich gross sein und es kann unendlich lange Berechnungspfade geben. Berechnungspfade endlicher Länge entsprechen Berech21
nungen, die irgendwann im Zustand qaccept oder im Zustand qreject enden.
Endet eine Berechnung im Zustand qaccept , so nennen wir die Berechnung
und den entsprechenden Berechnungspfad akzeptierend. Endet die Berechnung im Zustand qreject , so heisst die Berechnung und der Berechnungspfad
ablehnend. In Abbildung 2.5 ist der gestrichelte Pfad ablehnend, während
der gepunktete Pfad akzeptierend ist.
Eine NTM N akzeptiert eine Eingabe w ∈ Σ∗ , wenn es mindestens eine
akzeptierende Berechnung von N bei Eingabe w gibt. Anders formuliert,
wenn der Berechnungsbaum von N bei Eingabe w einen akzeptierenden
Berechnungspfad enthält. Die von einer NTM N = (Q, Σ, Γ, δ) akzeptierte
Sprache L(N ) ist dann definiert als
L(N ) := {w ∈ Σ∗ | N akzeptiert w}.
Wir sagen, die NTM akzeptiert die Sprache L, wenn L = L(N ). Die NTM
N entscheidet die Sprache L, wenn N immer hält und N die Sprache L
akzeptiert. Wir sagen dabei, dass die NTM N bei jeder Eingabe hält, wenn
für alle Eingaben alle möglichen Berechnungen im Zustand qaccept oder im
Zustand qreject enden. Mit anderen Worten, die NTM N hält bei jeder Eingabe, wenn die Berechnungsbäume für alle Eingaben w nur endliche Pfade
besitzen. Das Verhältnis von Akzeptieren und Entscheiden bei einer NTM
ist vollkommen analog zum Verhältnis von Akzeptieren und Entscheiden bei
einer DTM. In Zukunft werden wir uns nur noch mit NTMs beschäftigen,
die bei jeder Eingabe halten.
Als nächstes wollen wir die Laufzeit und den Platzbedarf einer NTM
definieren. Wie bei einer DTM besteht bei einer NTM ein Rechenschritt aus
der einmaligen Anwendung der Übergangsfunktion. Befindet sich die NTM
im Zustand q und liest das Zeichen a, so wählt die NTM in einem Rechenschritt ein Element aus δ(q, a) aus und führt die Aktionen entsprechend dem
ausgewählten Element aus δ(q, a) aus.
Definition 2.4.2 Sei N = (Q, Σ, Γ, δ) eine nichtdeterministische Turingmaschine, die bei jeder Eingabe hält.
• Für w ∈ Σ∗ ist TN (w) definiert als die maximale Anzahl von Rechenschritten in einer möglichen Berechnung von N bei Eingabe w.
• Für n ∈ N ist
TN (n) := max{TN (w) | w ∈ Σ≤n }.
• Die Funktion TN : N → N heißt die Zeitkomplexität oder Laufzeit der
NTM N .
22
• Die NTM N heißt t(n)-zeitbeschränkt, wenn für alle n ∈ N gilt: TN (n) ≤
t(n).
Nach dieser Definition ist TN (w) genau die Länge eines längsten Pfades im
Berechnungsbaum von N bei Eingabe w.
Bis auf den ersten Punkt entspricht diese Definition genau der Definition der Laufzeit einer DTM. Für die Anzahl der Rechenschritte einer NTM
bei Eingabe w gibt es unterschiedliche Definitionen. Einige alternative Definitionen können auch in den Büchern, die wir empfohlen haben, gefunden
werden. In manchen Büchern ist die Laufzeit einer NTM im wesentlichen
definiert als die Länge eines kürzesten akzeptierenden Rechenwegs. Diese
verschiedenen Definitionen der Laufzeit einer NTM sind jedoch, soweit es
den Inhalt dieser Vorlesung betrifft, äquivalent.
Als nächstes definieren wir die Platzkomplexität einer NTM N . Informell ist dieses der Speicher, den die NTM benötigt. Wie bei der Laufzeit
betrachten wir dabei wiederum das Maximum über alle möglichen Berechnungspfade einer NTM.
Definition 2.4.3 Sei N = (Q, Σ, Γ, δ) eine NTM, die bei jeder Eingabe
hält.
1. Für w ∈ Σ∗ ist SN (w) definiert als die maximale Anzahl der Zellen,
die N auf einem der Berchnungspfade bei Eingabe w benutzt.
2. Für n ∈ N ist
SN (n) := max{SN (w) | w ∈ Σ≤n }.
3. Die Funktion SN : N → N heißt die Platzkomplexität oder der Platzbedarf der NTM N .
4. Die NTM N heißt s(n)-platzbeschränkt, wenn für alle n ∈ N gilt:
SN (n) ≤ s(n).
Jetzt können wir wie bei DTMs Zeit- und Platzkomplexitätsklassen definieren.
Definition 2.4.4 Sei t : N → N eine monoton wachsende Funktion. Die
Klasse N T IME(t(n)) ist definiert als
L ist eine Sprache, die von einer O(t(n))-zeitN T IME(t(n)) := L
.
beschränkten NTM entschieden wird
23
Analog erhalten wir die Klassen N SPACE(s(n)).
Definition 2.4.5 Sei s : N → N eine monoton wachsende Funktion. Die
Klasse N SPACE(s(n)) ist definiert als
L ist eine Sprache, die von einer O(s(n))-platzN SPACE(s(n)) := L
.
beschränkten NTM entschieden wird
Schließlich erhalten wir die Komplexitätsklassen N P und N PSPACE wie
die Klassen P und PSPACE, indem wir jetzt als Berechnungsmodell NTMs
zugrunde legen.
S
Definition 2.4.6 N P = k∈N N T IME(nk ).
Definition 2.4.7 N PSPACE =
S
k∈N N SPACE(n
k ).
In der Vorlesung Einführung in Berechenbarkeit, Komplexität und formale
”
Sprachen“ werden Sie den folgenden Satz kennen gelernt haben.
Satz 2.4.8 Sei t : N → N eine monoton wachsende Funktion mit t(n) ≥ n
für alle n. Für jede NTM mit Laufzeit t(n) gibt es eine DTM mit Laufzeit
2O(t(n)) , die dieselbe Sprache entscheidet.
Für die Platzkomplexität werden wir in Kürze ein deutlich besseres Resultat
zeigen, nämlich
Satz 2.4.9 (Satz von Savitch) Sei s : N → N eine monoton wachsende,
platzkonstruierbare3 Funktion mit s(n) ≥ n für alle n. Für jede NTM mit
Platzbedarf s(n) gibt es eine DTM mit Platzbedarf O(s(n)2 ), die dieselbe
Sprache entscheidet.
Insbesondere also gilt:
Korollar 2.4.10 PSPACE = N PSPACE.
?
Das zum P = N P-Problem äquivalente Problem für die Platzkomplexität
ist also schon gelöst. Nichtdeterminismus bringt für die Platzkomplexität
keine wirklich großen Vorteile.
3
Diesen Begriff werden wir in Kürze definieren.
24
2.5
Polynomielle Reduktionen
Reduktionen sind eines der wichtigsten Konzepte der Komplexitätstheorie.
Sie werden benutzt, um die Komplexität von Sprachen oder Problemen miteinander vergleichen zu können, und um die schwierigsten Probleme in Klassen wie N P oder PSPACE zu identifizieren. Es gibt verschiedene Typen von
Reduktionen. Wir beschäftigen uns zunächst nur mit polynomiellen Reduktionen. Hierzu zunächst die folgende Definition.
Definition 2.5.1 Sei Σ ein Alphabet. Eine Funktion f : Σ∗ → Σ∗ heißt
polynomiell berechenbar, wenn es eine DTM M mit polynomieller Laufzeit
gibt, die f berechnet. Dabei berechnet M die Funktion f , wenn für alle w ∈
Σ∗ die DTM M bei Eingabe w im Zustand qaccept hält, der Kopf auf der
ersten Zelle steht und der Inhalt des Bandes f (w) ist (hierbei werden die ⊔s
am Ende ignoriert).
Definition 2.5.2 Seien A, B ⊆ Σ∗ zwei Sprachen. A heißt auf B polynomiell reduzierbar, wenn es eine polynomiell berechenbare Funktion f gibt
mit
w ∈ A ⇔ f (w) ∈ B.
Die Funktion f wird in diesem Fall eine polynomielle Reduktion genannt.
Ist A auf B polynomiell reduzierbar, so schreiben wir A ≤p B.
Fundamental für uns ist der folgende Satz.
Satz 2.5.3 A, B seien zwei Sprachen. Gilt A ≤p B und B ∈ P, dann gilt
auch A ∈ P.
Beweis: Da B ∈ P, gibt es eine DTM M mit polynomieller Laufzeit, die
B entscheidet. Weiter sei f die polynomielle Reduktion von A auf B. Wir
erhalten dann die folgende DTM D für A.
D:
Bei Eingabe w :
1. Berechne f (w).
2. Simuliere M mit Eingabe f (w). Akzeptiert M die Eingabe f (w),
akzeptiere w. Sonst lehne ab.
Da f eine polynomiell berechenbare Funktion ist und auch die DTM M
polynomielle Laufzeit hat, ist D eine DTM mit polynomieller Laufzeit. Da
w ∈ A ⇔ f (w) ∈ B entscheidet D die Sprache A.
25
Polynomielle Reduktion, wie wir sie definiert haben, werden gelegentlich
auch Karp-Reduktionen (nach Richard Karp) oder many-one-Reduktionen
genannt. Der letzte Name erklärt sich aus der Tatsache, dass bei einer Reduktion meist vielen Urbildern dasselbe Bild zugewiesen wird.
Das folgende Lemma ist einfach zu beweisen, aber wird implizit in vielen
Beweisen der folgenden Abschnitte immer wieder benutzt.
Lemma 2.5.4 Ist A ≤p B und B ≤p C, so gilt A ≤p C.
Beweis: Sei f die polynomielle Reduktion von A auf B und g die polynomielle Reduktion von B auf C. Aus
1. w ∈ A ⇔ f (w) ∈ B für alle w
2. v ∈ B ⇔ g(v) ∈ C für alle v
folgt
w ∈ A ⇔ g ◦ f (w) ∈ C.
Damit ist g ◦ f eine Reduktion von A auf C. g ◦ f (w) kann in polynomieller
Zeit berechnet werden, indem zunächst f (w) und dann g(f (w)) berechnet
wird. Damit ist g ◦ f eine polynomielle Reduktion von A auf C.
Jetzt werden wir ein erstes Beispiel für eine polynomielle Reduktion kennen
lernen. Dazu zunächst die Definition zweier Sprachen, die in N P liegen. Eine
Boolesche Formel φ ist in konjunktiver Normalform (KNF), wenn sie aus
mehreren Klauseln verknüpft durch ∧ besteht. Die Formel heißt dann eine
KNF-Formel. Eine 3-KNF Formel ist eine KNF-Formel in der jede Klausel
genau drei Literale enthält. Dann ist
3SAT := {hφi | φ ist eine erfüllbare 3-KNF-Formel}.
Sei G = (V, E) ein ungerichteter Graph. Eine Teilmenge C der Knoten von
G heißt Clique, wenn für alle i, j ∈ C gilt {i, j} ∈ E. Die Knoten einer Clique
sind also alle paarweise durch Kanten im Graphen G verbunden. Eine Clique
C heißt k-Clique, wenn C genau k Knoten enthält. Dann definieren wir
Clique := {hG, ki | G ist ein ungerichteter Graph mit einer k-Clique}.
Man überzeugt sich leicht, dass sowohl 3SAT als auch Clique in der Klasse
N P liegen. Weiter gilt aber auch
Satz 2.5.5 3SAT ist auf Clique polynomiell reduzierbar.
26
Beweis: Zu jeder 3-KNF Formel φ konstruieren wir einen Graphen G und
eine Zahl k, so dass φ genau dann erfüllbar ist, wenn G eine Clique der
Grösse k enthält. Die Reduktion f wird dann die Formel φ auf das Paar
(G, k) abbilden.
Sei also φ eine 3-KNF Formel. Wir schreiben
φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ · · · ∧ (ak ∨ bk ∨ ck ),
wobei die ai , bi , ci nicht notwendigerweise verschiedene Literale sind. Diese
Formel wird abgebildet auf (G, k), wobei k die Anzahl der Klauseln von φ
ist und der Graph G folgendermaßen konstruiert wird. G besitzt 3k Knoten, für jedes Literal in φ einen Knoten. Jeden Knoten von G assoziieren
wir mit einem Literal in φ. Der Knoten ist dann mit dem Literal, zu dem
er assoziiert ist, gelabelt. Die Knoten sind organisiert in k Triplets. Diese
assoziieren wir mit den Klauseln in φ. Jedes Triplet enthält drei Knoten.
Ein Triplet assoziiert zu einer Klausel κ enthält genau die drei Knoten, die
zu den Literalen der Klausel κ assoziiert sind.
Kanten existieren zwischen je zwei Knoten i, j des Graphen G, es sei
denn für die beiden Knoten i, j trifft eine der beiden folgenden Bedingungen
zu.
1. i, j sind zu Literalen aus derselben Klausel assoziiert.
2. i ist mit der Variablen x und j mit x gelabelt oder umgekehrt.
Damit ist die Konstruktion von G abgeschlossen. Ein Beispiel dieser Graphenkonstruktion ist in Abbildung 2.6 dargestellt. Die drei Knoten links
sind den Literalen der zweiten Klausel assoziiert. Die oberen drei Knoten
sind den Literalen der ersten Klausel assoziiert. Schließlich bilden die Knoten rechts das Triplet für die dritte Klausel. Wir wollen uns nun überlegen,
dass eine 3-KNF-Formel genau dann erfüllbar ist, wenn der Graph G, den
wir aus φ konstruieren, eine k-Clique besitzt. Hierzu müssen zwei Dinge
gezeigt werden.
1. Ist φ erfüllbar, so besitzt G eine k-Clique.
2. Besitzt G eine k-Clique, so ist φ erfüllbar.
Nehmen wir zunächst an, dass φ erfüllbar ist. Wir wählen eine beliebige
erfüllende Belegung für φ aus. Aus dieser werden wir eine Clique in G der
Grösse k konstruieren.
Eine erfüllende Belegung für φ muss in jeder der k Klauseln mindestens
ein Literal wahr machen. In jeder Klausel wählen wir nun eines der durch
27
Abbildung 2.6: Graph zu (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 )
die Belegung wahr gemachten Literale aus. Schließlich betrachten wir die
Knoten in G, die zu den ausgewählten Literalen assoziiert sind. Dieses sind
genau k Knoten. Wir behaupten, dass diese k Knoten eine Clique bilden. Seien i, j zwei beliebige der k Knoten. Diese Knoten sind nach unserer Auswahl
zu Literalen aus unterschiedlichen Klauseln assoziiert. Außerdem können sie
nicht mit x und x für eine Variable x gelabelt sein. Denn die Knoten sind
zu Literalen assoziiert, die gleichzeitig von einer Belegung wahr gemacht
werden. Literale x, x können natürlich nicht gleichzeitig von einer Belegung
erfüllt werden. Damit sind je zwei der k ausgewählten Knoten durch eine
Kante in G verbunden und die Knoten zusammen bilden eine k-Clique.
Nehmen wir jetzt an, dass der Graph G eine k-Clique C enthält. Aus
dieser konstruieren wir eine erfüllende Belegung für die Formel φ. Da Knoten
innerhalb eines Triplets nicht durch eine Kante verbunden sind, muss die
Clique C aus jedem Triplet genau einen Knoten enthalten. Außerdem gibt
es unter den Knoten aus C keine zwei, die mit x und x gelabelt sind, denn
solche Knoten sind nicht durch eine Kante miteinander verbunden. Damit
können wir eine Belegung der Variablen in φ finden, die alle Literale erfüllt,
mit denen die Knoten in C gelabelt sind. Diese Belegung macht pro Klausel
mindestens ein Literal wahr. Die Belegung ist daher eine erfüllende Belegung
für φ.
28
Zur Erinnerung: Die Reduktion f wird jede Formel φ auf das oben zur
Formel φ konstruierte Paar (G, k) abbilden. Bislang haben wir gezeigt
hφi ∈ 3SAT ⇔ hG, ki ∈ Clique.
Um den Beweis des Satzes zu vervollständigen, müssen wir noch zeigen, dass
wir (G, k) aus φ in polynomieller Zeit konstruieren können. Dieses ist aber
leicht zu sehen. Die Knoten von G und ihre Labels können durch einmaliges Durchlaufen von φ konstruiert werden. Um die Kanten zu konstruieren,
müssen wir uns für jedes Paar von Knoten nur ihre Labels anschauen und
entscheiden, ob sie in unterschiedlichen Triplets liegen. Auch dieses kann in
polynomieller Zeit durchgeführt werden. Damit ist f eine polynomielle Reduktion und der Satz ist bewiesen.
Streng genommen haben wir im letzten Satz die Reduktion f nicht vollständig
beschrieben. Wir haben nicht gesagt, worauf Worte w abgebildet werden, die
keiner Codierung einer 3-KNF Formel entsprechen. Dieses ist auch ziemlich
uninteressant und lenkt nur von der eigentlichen Konstruktion ab. Wir werden in Zukunft auf Fragen dieser Art nicht eingehen. Aber hier wollen wir
kurz erläutern, was zu tun ist. Wir können in polynomieller Zeit feststellen, ob ein Wort einer Codierung einer 3-KNF Formel entspricht oder nicht.
Entspricht ein Wort einer Codierung einer 3-KNF Formel, so wenden wir
die Konstruktion aus dem Beweis von Satz 2.5.5 an. Ist das Wort hingegen
keine Codierung einer 3-KNF Formel, so bilden wir das Wort auf ein Paar
(G, k) ab, so dass G sicherlich keine k-Clique enthält. Eine mögliche Wahl
ist es G bestehend aus einem Knoten zu wählen und k = 2 zu setzen.
Die Beweise, die wir zur Äquivalenz w ∈ A ⇔ f (w) ∈ B im Beweis des
letzten Satzes geführt haben, ist typisch für alle Beweise dieser Art. Diese
Beweise gehen immer nach dem gleichen Schema vor. Betrachten wir die
Richtung w ∈ A ⇒ f (w) ∈ B. Nehmen wir an, dass sowohl A als auch B in
N P liegen. Für w ∈ A gibt es dann ein so genanntes Zertifikat c, das w ∈ A
zeigt. Um die Implikation w ∈ A ⇒ f (w) ∈ B zu zeigen, wird dann aus c mit
Hilfe der Funktion f ein Zertifikat für f (w) ∈ B konstruiert. So haben wir
im Beweis von Satz 2.5.5 aus einem Zertifikat für φ ∈ 3SAT (eine erfüllende
Belegung) mit Hilfe der Reduktion f ein Zertifikat für G = f (φ) ∈ Clique
(eine Clique der Größe k) konstruiert. Dieses zeigte, φ ∈ 3SAT ⇒ f (φ) =
G ∈ Clique.
29
2.6
N P- und PSPACE-Vollständigkeit
In diesem Abschnitt werden wir die Begriffe der N P-Vollständigkeit und der
PSPACE-Vollständigkeit einführen. Nicht alle Probleme, die in N P oder in
PSPACE liegen, sind schwer zu lösen. Insbesondere gilt ja P ⊆ N P. Die
N P-vollständigen Probleme sind die schwierigsten Probleme in N P und
analog sind die PSPACE-vollständigen Probleme, die schwierigsten Probleme in PSPACE. Es wird nämlich aus der Definition vonVollständigkeit
folgen, dass alle Sprachen in N P bzw. in PSPACE durch DTMs polynomieller Laufzeit entschieden werden können, wenn nur für irgendeine beliebige N P-vollständige bzw. PSPACE-vollständige Sprache eine polynomielle
DTM existiert, die die Sprache entscheidet.
Definition 2.6.1 Eine Sprache L heißt N P-vollständig, wenn sie die folgenden zwei Bedingungen erfüllt.
1. L ist in N P enthalten.
2. Für jede Sprache A ∈ N P gibt es eine polynomielle Reduktion von A
auf L.
Ist nur die zweite Bedingung erfüllt, so heißt L N P-schwer.
Wir erhalten sofort die beiden folgenden wichtigen Sätze über N P-vollständige Probleme.
Satz 2.6.2 Ist L N P-vollständig und ist L ∈ P, so gilt P = N P.
Beweis: Nach Voraussetzung gibt es für jede Sprache A eine polynomielle
Reduktion auf L. Weiter liegt L nach Voraussetzung in P. Dann aber sagt
Satz 2.5.3, dass auch jede Sprache A ∈ N P in P liegen muss.
Satz 2.6.3 Ist A ∈ N P und gilt L ≤p A für eine Sprache L, die N Pvollständig ist, so ist auch A N P-vollständig.
Beweis: Da A nach Voraussetzung in N P liegt, müssen wir nur noch zeigen, dass sich jede Sprache B ∈ N P in polynomieller Zeit auf A reduzieren
lässt. Sei B ∈ N P beliebig. Da L N P-vollständig ist, gibt es eine polynomielle Reduktion g von B auf L. Nach Voraussetzung gibt es auch eine
polynomielle Reduktion f von L auf A. Dann aber ist die Hintereinanderschaltung f ◦ g eine polynomielle Reduktion von B auf A.
30
Wenn wir ein N P-vollständiges Problem kennen, können wir Satz 2.6.3
benutzen, um von anderen Sprachen zu zeigen, dass sie N P-vollständig sind.
Vollkommen analog können wir nun PSPACE-Vollständigkeit definieren
und die wichtigsten Tatsachen über PSPACE-vollständige Sprachen herleiten. Genauer erhalten wir folgende Definition und Sätze.
Definition 2.6.4 Eine Sprache L heißt PSPACE-vollständig, wenn sie die
folgenden zwei Bedingungen erfüllt.
1. L ist in PSPACE enthalten.
2. Für jede Sprache A ∈ PSPACE gibt es eine polynomielle Reduktion
von A auf L.
Erfüllt eine Sprache L nur die zweite Bedingung, so heißt L PSPACEschwer.
Satz 2.6.5 Ist L PSPACE-vollständig und ist L ∈ P, so gilt P = PSPACE.
Satz 2.6.6 Ist A ∈ PSPACE und gilt L ≤p A für eine Sprache L, die
PSPACE-vollständig ist, so ist auch A PSPACE-vollständig.
Um mit Hilfe der Sätze 2.6.3 und 2.6.6 von Sprachen zeigen zu können, dass
sie N P- bzw. PSPACE-vollständig sind, müssen wir zunächst von mindestens einer Sprache direkt zeigen, dass sie N P- bzw. PSPACE-vollständig
ist. Dieses geschieht im folgenden Satz.
Satz 2.6.7 SAT ist N P-vollständig und QBF ist PSPACE-vollständig.
Beweis: Wir beginnen mit einigen allgemeinen Überlegungen, die zeigen,
wie wir eine Aussage der Form w liegt in der von der TM M entschiedenen
”
Sprache“ durch eine quantifizierte Boolesche Formel ausdrücken können. Sei
hierzu M = (Q, Σ, Γ, δ), L = L(M ) und w ∈ Σ∗ . Wir machen hierbei keinen
Unterschied zwischen deterministischen und nichtdeterministischen Turingmaschinen. Die TM M sei s(n)-platzbeschränkt und t(n)-zeitbeschränkt.
Ist nun w ∈ Σn können wir jede Konfiguration der TM M als eine Folge
aus (Γ ∪ Q)≤s(n)+1 beschreiben. Um die Notation zu vereinfachen setzen wir
A := Γ ∪ Q und beschreiben Konfigurationen von M bei Eingabe w durch
Elemente aus As(n)+1 . Dabei ist natürlich zu beachten, dass nicht jedem
31
Element aus As(n)+1 eine Konfiguration der TM M entspricht. Um auszudrücken, dass ein Element aus As(n)+1 eine legale Konfiguration der TM M
ist, führen wir ein Prädikat legal : As(n)+1 → {0, 1} ein, mit der Bedeutung
∀K ∈ As(n)+1 : legal(K) = 1 ⇔ K beschreibt legale Konfiguration von M .
Hierbei steht also wie üblich 1 für den Booleschen Wert wahr“ und 0 steht
”
für falsch“. Um das Verhalten von M zu beschreiben, benutzen wir noch
”
drei weitere Prädikate:
As(n)+1
→ {0, 1}
accept : As(n)+1
→ {0, 1}
start :
As(n)+1 × As(n)+1 → {0, 1}
succ :
mit folgenden Bedeutungen:
∀K ∈ As(n)+1
mit
∀K ∈ As(n)+1
mit
legal(K) = 1 :
start(K) = 1 ⇔ K beschreibt Startkonfiguration von M bei Eingabe w.
legal(K) = 1 :
accept(K) = 1 ⇔ K beschreibt akzeptierende Konfiguration
∀(K1 , K2 ) ∈ As(n)+1 × As(n)+1
mit
legal(K1 ) = legal(K2 ) = 1 :
succ(K1 , K2 ) = 1 ⇔ K2 beschreibt eine legale Nachkonfiguration von K1
Mit Hilfe dieser Prädikate können wir für w ∈ Σn die Aussage w ∈ L(M )
wie folgt ausdrücken:
∃K1 , . . . , Kt(n) ∈ As(n)+1
t(n)
^
i=1
t(n)−1
legal(Ki ) ∧ start(K1 ) ∧ accept(Kt(n) ) ∧
^
succ(Ki , Ki+1 ).
i=1
Um zu Booleschen Ausdrücken zu gelangen, die w ∈ L beschreiben,
führen wir nun Boolesche Variablen ein, mit deren Hilfe wir den obigen
32
Ausdruck über die Existenz von Konfigurationen in eine Boolsche Formel
transformieren werden. Wir betrachten Boolesche Variablen
xi,j,s , 1 ≤ i ≤ t(n), 1 ≤ j ≤ s(n) + 1, s ∈ A.
Wir können Belegungen dieser Variablen mit Elementen K1 , . . . Kt(n) ∈
As(n)+1 identifizieren. Dabei soll eine Belegung der Variablen xi,j,s mit dem
Wert 1 bedeuten, dass das j-te Symbol in Ki das Element s ∈ A ist.
Natürlich entspricht nicht jeder Belegung der Variablen xi,j,s eine Folge von
Elementen aus A oder gar eine Folge von legalen Konfigurationen von M .
Aber wir können Boolesche Formeln benutzen, die genau dann von einer
Belegung der Variablen xi,j,s erfüllt werden, wenn die Belegung zu legalen
Konfigurationen führt. Um die Notation zu vereinfachen, werden wir die
Variablenmenge {xi,j,s |1 ≤ j ≤ s(n) + 1, s ∈ A}, die einer Konfiguration
entsprechen soll, mit Vi bezeichnen. Belegungen der Variablen in Vi bezeichnen wir ebenfalls mit Vi . Es geht dann jeweils aus dem Kontext hervor, was
gemeint ist.
Nun sei legal eine Boolesche Formel über m := (s(n) + 1)|A| Variablen,
so dass
∀V ∈ {0, 1}m : legal(V ) = 1 ⇔ V beschreibt legale Konfiguration von M .
Wir haben nicht versehentlich diese Boolesche Formel mit legal bezeichnet.
Vielmehr wird die Boolesche Formel legal das für Elemente aus As(n)+1
definierte Prädikat legal ersetzen. Analog können wir Boolesche Formeln
start, accept und succ definieren, die die entsprechenden Prädikate start,
accept und succ ersetzen. Für diese Formel gilt:
∀(V, w) ∈ {0, 1}m × {0, 1}n
mit legal(V ) = 1 :
start(V ) = 1 ⇔ V beschreibt Startkonfiguration von M bei Eingabe w.
∀V ∈ {0, 1}m
mit legal(V ) = 1 :
accept(V ) = 1 ⇔ V beschreibt eine akzeptierende Konfiguration von M
∀(V1 , V2 ) ∈ {0, 1}m × {0, 1}m mit
legal(V1 ) = legal(V2 ) = 1 :
succ(V1 , V2 ) = 1 ⇔ V2 beschreibt eine legale Nachfolgekonfiguration
der von V1 beschriebenen Konfiguration.
33
Wir werden nicht genau sagen, wie die Formeln legal, start, accept, succ aussehen. Dies kann etwa in dem Buch von Sipser nachgelesen werden. Wir
müssen aber erwähnen, dass, gegeben die TM M , die Formeln in Zeit O(s(n))
konstruiert werden können und damit auch Größe O(s(n)) besitzen.
Wir können nun w ∈ L(M ) mit Hilfe der Booleschen Formeln legal, start, accept, succ
folgendermaßen ausdrücken:
w ∈ L ⇔ ∃xi,j,s ∈ {0, 1}, 1 ≤ i ≤ t(n), 1 ≤ j ≤ s(n) + 1, s ∈ A :
t(n)−1
t(n)
^
i=1
legal(Vi ) ∧ start(V1 , w) ∧ accept(Vt(n) ) ∧
^
succ(Vi , Vi+1 ).
i=1
Nach dem oben Gesagten, hat für w ∈ Σn die Formel auf der rechten Seite
Größe O(s(n)t(n)). Sie kann auch in Zeit O(s(n)t(n)) konstruiert werden.
Weiter ist die Formel der rechten Seite genau dann wahr, wenn
t(n)
^
i=1
t(n)−1
legal(Vi ) ∧ start(V1 , w) ∧ accept(Vt(n) ) ∧
^
succ(Vi , Vi+1 )
i=1
erfüllbar ist. Ist schließlich M noch eine NTM mit polynomieller Laufzeit,
also t(n) = O(nk ), dann haben wir gezeigt, wie wir aus w ∈ Σ∗ in polynomieller Zeit eine Boolesche Formel konstruieren können, die genau dann
erfüllbar ist, wenn w ∈ L = L(M ). Das heißt aber, dass wir für jede NTM N
mit polynomieller Laufzeit, eine polynomielle Reduktion der von M entschiedenen Sprache auf SAT konstruiert haben. Damit ist SAT N P-vollständig.
Unsere bisherigen Überlegungen zeigen noch nicht, dass QBF PSPACEvollständig ist. Wir haben zwar zu jedem w ∈ Σ∗ eine vollständig quantifizierte Boolesche Formel konstruiert, die genau dann wahr ist, wenn w ∈ L.
Aber bei einer s(n)-platzbeschränkten TM wissen wir nur, dass t(n) =
2O(s(n)) (siehe Satz 2.4.8). Ist also s(n) = O(nk ), so können wir die quantifizierte Boolesche Formel weder in polynomieller Zeit konstruieren noch
hat sie polynomielle Größe, wie es für die Aussage, dass QBF PSPACEvollständig ist, notwendig ist.
Um dieses Problem zu lösen, gehen wir zunächst zurück zu unseren
Prädikaten über As(n)+1 . Wir betrachten nun eine Verallgemeinerung von
succ. Wir definieren Prädikate succl , l ∈ N, wie folgt:
∀(K1 , K2 ) ∈ As(n)+1 × As(n)+1
mit
legal(K1 ) = legal(K2 ) = 1 :
succl (K1 , K2 ) = 1 ⇔ K2 beschreibt eine Konfiguration von M ,
die aus K1 mit höchstens 2l Rechenschritten entsteht.
34
Insbesondere gilt also succ0 = succ und mit l := ⌈log(t(n))⌉ erhalten wir:
w ∈ L ⇔ ∃K1 , K2 ∈ As(n)+1
legal(K1 ) ∧ legal(K2 ) ∧ start(K1 , w) ∧ accept(K2 ) ∧ succl (K1 , K2 ).
Nun können wir sicherlich nicht die Prädikate succl ohne weiteres in Boolesche Formeln geringer Größe umschreiben. Wir beobachten aber, dass immer
succl (K1 , K2 ) ⇔ ∃K3 : succl−1 (K1 , K3 ) ∧ succl−1 (K3 , K2 )
gilt. Würden wir allerdings succl−1 durch succl−2 , dann succl−2 durch succl−3
usw. ersetzen, um schließlich einen Ausdruck für succl zu erhalten, der nur
noch Prädikate succ0 = succ enthält, so sieht man sofort, dass dieses auf
2l ≥ t(n) Auftreten von succ führt. Dies können wir uns nicht erlauben. Wir
gehen deshalb anders vor.
5
Wir definieren das Hilfsprädikat H : As(n)+1 → {0, 1}, durch
H(K1 , . . . , K5 ) = ¬ (K1 , K3 ) = (K4 , K5 ) ∨ (K3 , K2 ) = (K4 , K5 ) .
Mit succl (K1 , K2 ) ⇔ ∃K3 : succl−1 (K1 , K3 ) ∧ succl−1 (K3 , K2 ) überprüft
man nun, dass gilt
succl (K1 , K2 ) ⇔ ∃K3 ∀K4 ∀K5 : H(K1 , . . . , K5 ) ∨ succl−1 (K4 , K5 ).
Indem wir dieselbe Konstruktion sukzessive auf succl−1 , . . . , succ1 anwenden,
erhalten wir einen zu succl logisch äquivalenten Ausdruck, in dem einmal
das Prädikat succ und l-mal das Hilfsprädikat H auftaucht.
Wenn wir jetzt noch Variablen Ki für Konfiguration durch Mengen von
Booleschen Variablen ersetzen, das Hilfsprädikat H ersetzen durch eine Boolesche Formel und das Prädikat succ ersetzen durch unsere oben definierte
Boolesche Formel gleichen Namens, können wir auch succl ersetzen durch
eine Boolesche Formel succl der Größe O(s(n)l). Gegeben M , können wir
diese Formel auch in Zeit O(s(n)l) berechnen.
Kombinieren wir diese Formel mit unseren Booleschen Formeln start,
accept, legal, so erhalten wir aus einer TM M = (Q, Σ, Γ, δ) und w ∈ Σ∗ eine
quantifizierte Boolesche Formel Qw , die genau dann wahr ist, wenn w ∈ L.
Dabei kann Qw bei einer s(n)-platzbeschränkten und t(n)-zeitbeschränkten TM in Zeit O(s(n) log(t(n)) konstruiert werden und hat auch Größe
O(s(n) log(t(n)). Bei einer TM M , die nur polynomielle Platzbedarf hat, ist
also Qw in polynomieller Zeit konstruierbar. Damit haben wir für jede TM
M mit polynomiellem Platzbedarf eine polynomielle Reduktion von der von
35
M entschiedenen Sprache L(M ) auf die Sprache QBF konstruiert. QBF ist
damit PSPACE-vollständig.
36
2.7
Der Satz von Savitch
Wie schon häufiger erwähnt, ist das größte offene Problem der Komplexitäts?
theorie die Frage P = N P. In diesem Abschnitt werden wir sehen, dass die
?
entsprechende Frage für Platzkomplexität, also PSPACE = N PSPACE relativ leicht zu beantworten ist. Überraschenderweise ist die Antwort, dass die
beiden Klassen PSPACE und N PSPACE identisch sind. Dieses Ergebnis
wird unmittelbar aus dem so genannten Satz von Savitch folgen, der besagt,
dass alles, was nichtdeterministisch in Platz s(n) entschieden werden kann,
deterministisch in Platz O(s(n)2 ) entschieden werden kann. Bevor wir diesen
Satz genau formulieren können, benötigen wir noch folgende Definition.
Definition 2.7.1 Sei f : N → N mit f (n) ≥ n für alle n ∈ N. Die Funktion f heißt platzkonstruierbar, wenn es eine O(f (n))-platzbeschränkte DTM
M gibt, die bei Eingabe 1n (also n Einsen) die Binärdarstellung von f (n)
berechnet.
Den Sinn dieser Definition wird im Beweis des Satzes von Savitch klar werden. Hier weisen wir nur darauf hin, dass alle uns in der Komplexitätstheorie oder im Algorithmenentwurf interessierenden Funktion wie n, 2n oder
⌈n log(n)⌉ platzkonstruierbar sind. Später in der Vorlesung werden wir Platz√
konstruierbarkeit so erweitern, dass auch Funktionen wie ⌈log(n)⌉ oder ⌈ n⌉
platzkonstruierbar sind.
Satz 2.7.2 Sei s : N → N eine platzkonstruierbare Funktion mit s(n) ≥ n.
Dann gilt
N SPACE s(n) ⊆ DSPACE s(n)2 .
Beweis: Sei L ∈ N SPACE(s(n)). Dann gibt es also eine O(s(n))-platzbeschränkte NTM N , die L entscheidet. Wie wir in den Übungen gesehen
haben, können wir sogar annehmen, dass N s(n)-platzbeschränkt ist. Weiter
können wir auch annehmen, dass N unabhängig von der Eingabe nur eine
akzeptierende Konfiguration besitzt. Dieses kann man erreichen, indem die
Arbeitsweise von N folgendermaßen geändert wird. Wann immer die alte
NTM N in den akzeptierenden Zustand gehen will, wird die neue NTM
zunächst den Inhalt sämtlicher Bandzellen auf ⊔ setzen, den Kopf auf die
erste Zelle des Bandes bewegen und dann erst akzeptieren. Offensichtlich
hat auch die neue NTM Platzbedarf s(n) und akzeptiert dieselbe Sprache
wie N .
Wir werden also annehmen, dass wir die Sprache L auf einer s(n)platzbeschränkten NTM N mit genau einer akzeptierenden Konfiguration
37
Ka entscheiden können. Wir müssen nun eine O(s(n)2 )-platzbeschränkte
DTM M konstruieren, die ebenfalls L entscheidet. Sei Σ das Eingabealphabet von N . Mit Kw bezeichnen wir die Startkonfiguration von N bei Eingabe
w ∈ Σ∗ . Wie im Beweis, dass QBF PSPACE-vollständig ist, werden wir mit
succl das Prädikat bezeichnen, das für je zwei Konfigurationen K1 , K2 von
N genau dann 1 ist, wenn wir von der Konfiguration K1 mit höchstens 2l
Rechenschritten der NTM N zur Konfiguration K2 gelangen können. Wir
werden dabei Konfigurationen von N bei Eingabe w ∈ Σn immer als Folge
von genau s(n)+1 Symbolen darstellen. Da N s(n)-platzbeschränkt ist, gibt
es außerdem eine nur von der NTM N abhängende Konstante c, so dass N
2c·s(n) -zeitbeschränkt ist. Damit gilt
w ∈ L ⇔ succc·s(n) (Kw , Ka ).
Die deterministische, L entscheidende DTM M wird nun succcs(n) (Kw , Ka )
mit Hilfe des folgenden rekursiven Algorithmus Erreichbar entscheiden.
Als Eingabe erhält der Algorithmus Erreichbar zwei beliebige durch s(n)+
1 Symbole beschriebene Konfigurationen K1 , K2 sowie eine natürliche Zahl
l ≤ c · s(n).
Erreichbar :
Bei Eingabe K1 , K2 , l :
1. Falls l = 0, teste, ob K1 = K2 oder ob, K2 durch
einen Rechenschritt von N aus K1 erreicht
werden kann.
Akzeptiere, falls einer dieser Tests erfolgreich ist.
2. Falls l ≥ 1, führe folgende Befehle für alle Konfigurationen K3 der NTM N der Länge s(n) + 1 aus:
3.
Führe Erreichbar mit Eingabe K1 , K3 , l − 1
aus.
4.
Führe Erreichbar mit Eingabe K3 , K2 , l − 1
aus.
5.
Führen beide Aufrufe von Erreichbar zu
Akzeptanz, akzeptiere.
6. Wurde noch nicht akzeptiert, lehne ab.
Um den Algorithmus Erreichbar auf einer DTM umsetzen zu können,
benötigen wir, dass die Funktion s : N → N paltzkonstruierbar ist. Denn ohne diese Forderung können wir im 3. Schritt des Algorithmus die Konfigurationen K3 der Länge s(n) + 1 nicht konstruieren. Bevor wir den Platzbedarf
von Erreichbar analysieren, zunächst die Beschreibung der DTM M , die
38
die Sprache L entscheidet. Bei Eingabe w ∈ Σ∗ ruft die DTM M einfach
den Algorithmus Erreichbar mit Eingabe Kw , Ka und l = c · s(n) auf.
Mit Pl (n) bezeichnen wir nun den maximalen Platzbedarf von Erreichbar, wenn K1 , K2 Konfigurationen der Länge s(n) + 1 sind und die dritte
Eingabe l ≤ c · s(n) ist. Wir zeigen durch vollständige Induktion über l, dass
es eine Konstante a gibt, so dass
Pl (n) ≤ a(l + 1)s(n).
(2.1)
Für l = 0 ist diese Aussage sicherlich korrekt, da dann nur ein Rechenschritt
von N simuliert werden muss und dieses in Platz O(s(n)) möglich ist. Sei
nun l ≤ c · s(n) beliebig und nehmen wir an, dass wir (2.1) für l − 1 bereits
bewiesen haben. Nun gilt aber für eine Konstante a
Pl (n) ≤ Pl−1 (n) + as(n).
Platz Pl−1 (n) wird dabei für die beiden rekursiven Aufrufe von Erreichbar
benötigt. Außerdem wird Platz a(s(n) für die Speicherung von l und der
jeweils aktuelle Konfiguration K3 benötigt. Mit der Induktionsannahme für
Pl−1 (n) folgt dann (2.1).
Da wir in der DTM M nur den Algorithmus Erreichbar mit l = c·s(n)
aufrufen, ist der Platzbedarf von M gegeben durch O(s(n)2 ).
Wenn s(n) durch ein Polynom beschränkt ist, so gilt dieses auch für s(n)2 .
Damit erhalten wir aus Satz 2.7.2 unmittelbar
Korollar 2.7.3
PSPACE = N PSPACE.
39
Kapitel 3
Innerhalb von P und N P
In diesem Kapitel werden wir uns mit Komplexitätsklassen innerhalb von P
und N P beschäftigen.
3.1
Reduktionen, Co-Klassen und die Klasse co-N P
Wir bezeichnen mit N PV die Klasse aller N P-vollständigen Sprachen. Für
zwei beliebige Sprachen L1 , L2 schreiben wir
L1 =p L2 ,
falls
L1 ≤p L2
und L2 ≤p L1
gilt. Die Sprachen L1 , L2 sind dann etwa gleich schwierig. Nach Definition
von N P-Vollständigkeit gilt für je zwei N P-vollständige Sprachen L1 , L2 ,
dass sie etwa gleich schwer sind, also L1 =p L2 . Ist hingegen P =
6 N P und
ist L1 ∈ P und L2 ∈ N PV, so gilt zwar L1 ≤p L2 nicht jedoch L2 ≤p L1 ,
da L2 ≤p L1 und L1 ∈ P auch L2 ∈ P impliziert (Satz 2.6.2). Damit stellt
sich die Frage, ob es unter der Annahme P =
6 N P Sprachen L ∈ N P gibt,
die zwar nicht in P liegen, die aber auch nicht N P-vollständig sind. Ob
also N P \ N PV =
6 P gilt. Diese Frage wurde 1975 von R. Ladner mit Ja“
”
beantwortet.
Satz 3.1.1 Gilt P =
6 N P, so gibt es Sprachen L ∈ N P, die weder in P
noch in N PV liegen.
Später in diesem Abschnitt werden wir den Satz von Ladner beweisen.
Zunächst wollen wir unter einer stärkeren Annahme als P =
6 N P ebenfalls zeigen, dass es Sprachen in N P gibt, die nicht N P-vollständig sind.
40
Um diese Annahme zu formulieren, benötigen wir die Klasse co-N P. Hierzu
zunächst die folgende allgemeine Definition.
Definition 3.1.2 Sei C eine beliebige Klasse von Sprachen. Mit co-C bezeichnen wir dann die folgende Klasse von Sprachen
co-C := L Das Komplement L̄ von L liegt in C .
Dabei ist L̄ = Σ∗ \L, wenn L über dem Alphabet Σ definiert ist. Insbesondere
erhalten wir
co-N P := L Das Komplement L̄ von L liegt in N P .
Das Komplement SAT liegt also in co-N P, wobei
φ ist keine korrekte Kodierung einer Booleschen Formel oder
.
SAT := φ
φ ist Kodierung einer unerfüllbaren Booleschen Formel
In der Regel bestehen Komplemente uns interessierender Sprachen aus zwei
disjunkten Teilmengen. Eine Teilmenge besteht aus allen Elementen, die
nicht einem bestimmten Format genügen (z.B. keine korrekte Boolesche Formel kodieren). Die andere Teilmenge besteht aus allen Elementen, die dieser
Form zwar genügen, aber eine weitere Eigenschaft (z.B. eine erfüllbare Boolesche Formel zu sein) nicht erfüllen. In der Regel kann und wird man sich
dann auf die zweite Teilmenge konzentrieren und diese als Komplement der
ursprüngliche Sprache ansehen. Deshalb ist dann das Komplement von SAT
einfach definiert als die Menge aller unerfüllbaren Booleschen Formeln. Wir
werden dieser formal nicht ganz korrekten aber sehr nützlichen Konvention
in Zukunft folgen.
Man darf die Klasse co-C nicht mit dem mengentheoretischen Komplenement der Klasse C verwechseln. Die beiden Konzepte des mengentheoretischen Komplements von C und der Klasse co-C haben nichts miteinander
zu tun. Neben co-N P können wir natürlich auch die Klassen co-P und
co-PSPACE anschauen. Nun sieht man aber leicht, dass
P = co-P
und PSPACE = co-PSPACE.
Das Verhältnis von N P und co-N P hingegen ist nicht geklärt. Neben der
?
?
Frage P = N P ist die Frage N P = co-N P eines der wichtigsten offenen
Probleme der Komplexitätstheorie. Es wird dabei vermutet, dass N P 6=
co-N P. Diese Vermutung ist stärker als die Vermutung P =
6 N P, es gilt
nämlich
41
Satz 3.1.3 Gilt N P 6= co-N P, so gilt auch P =
6 N P.
Beweis: Wir beweisen die Kontraposition der Aussage, also
P = N P ⇒ N P = co-N P.
Ist nämlich P = N P, so folgt mit P = co-P auch N P = co-N P.
Um die Klasse co-N P besser zu verstehen, wollen wir nun eine alternative
Beschreibung von N P und damit auch co-N P herleiten. Diese alternativen Charakterisierungen werden auch noch später bei der Einführung der
Polynomialzeithierarchie nützlich sein.
Satz 3.1.4 Eine Sprache L ⊆ Σ∗ liegt genau dann in der Klasse N P, wenn
es ein k ∈ N und eine Sprache A ∈ P gibt, so dass
n
o
k
L = x ∈ Σ∗ ∃z ∈ {0, 1}|x| : (x, z) ∈ A .
(3.1)
Der Beweis dieses Satzes folgt sofort aus der Charakterisierung von N P über
so genannte Verifizierer, wie man sie etwa in dem Buch von Sipser findet.
Wir verzichten auf einen genauen Beweis.
Ist nun L wie in (3.1) gegeben, so können wir L̄ beschreiben als
n
o
k
L̄ = x ∈ Σ∗ ∀z ∈ {0, 1}|x| : (x, z) ∈ Ā .
Nun liegt aber mit A auch Ā in der Klasse P. Somit erhalten wir
Korollar 3.1.5 Eine Sprache L ⊆ Σ∗ liegt genau dann in der Klasse co-N P,
wenn es ein k ∈ N und eine Sprache B ∈ P gibt, so dass
n
o
k
L = x ∈ Σ∗ ∀z ∈ {0, 1}|x| : (x, z) ∈ B .
(3.2)
Vergleichen wir (3.1) und (3.2), so sehen wir dass der einzige Unterschied im
Übergang vom Existenz- zum Allquantor liegt. Dass dieser Übergang einen
großen Unterschied machen sollte, und daher N P 6= co-N P gelten sollte,
sieht man sehr gut an der Sprache SAT. Eine Formel φ liegt in SAT, wenn
es eine erfüllende Belegung für φ gibt. Eine solche erfüllende Belegung für
φ ist dann ein Beweis für φ ∈ SAT. Betrachten wir nun hingegen den Fall
φ ∈ SAT. Dies ist genau dann der Fall, wenn alle möglichen Belegungen die
Formel φ nicht erfüllen. Sollte nun SAT ∈ N P gelten, müsste es für φ ∈ SAT
einen kurzen (polynomiell langen) Beweis geben, der uns davon überzeugt,
dass keine Belegung φ erfüllt. Die Vermutung N P 6= co-N P ist äquivalent
zur Vermutung, dass es einen solchen kurzen Beweis nicht geben kann.
Schließlich definieren wir noch den Begriff der co-N P-Vollständigkeit,
dieser ist analog zur N P-Vollständigkeit definiert.
42
Definition 3.1.6 Eine Sprache L heißt co-N P-vollständig, wenn sie die
folgenden zwei Bedingungen erfüllt.
1. L ist in co-N P enthalten.
2. Für jede Sprache A ∈ co-N P gibt es eine polynomielle Reduktion von
A auf L.
Erfüllt eine Sprache L nur die zweite Bedingung, so heißt L co-N P-schwer.
Die Klasse aller co-N P-vollständigen Sprachen bezeichnen wir mit co-N PV.
Nach diesen Vorbereitungen können wir den folgenden Satz beweisen.
Satz 3.1.7 Gibt es eine N P-vollständige Sprache L, die in co-N P enthalten ist, so gilt N P = co-N P.
Beweis: Zunächst einige allgemeine Überlegungen. Aus der Definition von
co-C für eine Komplexitätsklasse C folgt
co-(co-C) = C.
Weiter folgt für zwei beliebige Komplexitätsklassen C1 und C2 unmittelbar
die Äquivalenz
C1 ⊆ C2 ⇔ co-C1 ⊆ co-C2 .
Damit gilt auch
N P = co-N P ⇔ N P ⊆ co-N P
und
N P = co-N P ⇔ co-N P ⊆ N P.
Um den Satz zu zeigen, genügt es also N P ⊆ co-N P zu zeigen. Sei die
Sprache L N P-vollständig und L ∈ co-N P. Weiter sei A ∈ N P beliebig. Da
die Sprache L N P-vollständig ist, gilt A ≤p L. Es gibt also eine polynomielle
Reduktion f von A auf L. Sei A ⊆ Σ∗ . Dann gilt für alle w ∈ Σ∗
w ∈ A ⇔ f (w) ∈ L,
oder, äquivalent,
w ∈ A ⇔ f (w) ∈ L.
(3.3)
Da nach Voraussetzung L ∈ co-N P, gibt es eine NTM N mit polynomieller
Laufzeit, die L entscheidet. Wir betrachten die folgende NTM NA .
43
NA :
Bei Eingabe w ∈ Σ∗ :
1. Berechne f (w).
2. Simuliere N mit Eingabe f (w). Akzeptiert N die Eingabe
f (w), akzeptiere w. Sonst lehne ab.
Die so definierte NTM NA hat sicherlich polynomielle Laufzeit. Außerdem folgt aus L(N ) = L und (3.3), dass L(NA ) = A. Damit gilt A ∈ N P
oder A ∈ co-N P. Insgesamt folgt N P ⊆ co-N P.
Durch Negierung erhalten wir nun sofort folgendes Korollar.
Korollar 3.1.8 Gilt N P 6= co-N P, so sind alle Sprachen in N P ∩ co-N P
nicht N P-vollständig.
Alle Sprachen in P liegen in N P ∩ co-N P. Allerdings wird vermutet, dass
N P∪co-N P echt größer ist als P. Stimmt diese Vermutung, so sind Sprachen
in (N P ∪ co-N P) \ P Beispiele für Sprachen, die weder in P liegen noch
N P-vollständig sind.
In Abbildung 3.1 sind die Vermutungen über das Verhältnis der Klassen
P, N P, co-N P, N P ∩ co-N P, N PV und co-N PV zusammengefasst.
Abbildung 3.1: Vermutetes Verhältnis der Klassen P, N P, co-N P
Zum Abschluss dieses Abschnitts wollen wir noch eine Sprache vorstellen,
von der vermutet wird, dass sie weder in P liegt noch N P-vollständig ist. Es
44
handelt sich dabei , um die Sprache GI (=Graphisomorphismus). Um GI zu
definieren, benötigen wir den Begriff der Isomorphie zwischen zwei Graphen.
Zwei Graphen G1 = (V1 , E1 ), G2 = (V2 , E2 ) heißen isomorph, wenn es eine
bijektive Abbildung π : V1 → V2 gibt, so dass für alle u, v ∈ V1 gilt
(u, v) ∈ E1 ⇔ (π(u), π(v)) ∈ E2 .
Zwei Graphen sind isomorph, wenn der eine aus dem anderen durch Umbenennung der Knoten entsteht. Insbesondere können zwei Graphen nur dann
isomorph sein, wenn sie dieselbe Anzahl Knoten besitzen. Nun ist
GI := {(G1 , G2 ) |G1 , G2 sind isomorphe Graphen }.
45
3.2
Der Satz von Ladner
In diesem Abschnitt zeigen wir den folgenden auf Ladner zurück gehenden
Satz.
Satz 3.2.1 Angenommen P =
6 N P, dann existiert eine Sprache L ∈ N P \
P, die nicht N P-vollständig ist.
Beweis: Sei H : N → N eine beliebige berechenbare Funktion mit H(n) ≥ 1
für alle n ∈ N. Dann definieren wir die Sprache
n
o
H(n)
SATH := ψ01n
: ψ ∈ SAT und |ψ| = n .
Es handelt sich bei SATH um eine Version von SAT, bei der die Eingabe
künstlich um einige Bits verlängert wird. Die letzte 0 der Eingabe zeigt dabei
an, wo die Beschreibung der Booleschen Formeln ψ endet. Wir definieren nun
eine spezielle Funktion H und zeigen dann, dass für die so definierte Funktion
H die Sprache SATH in N P \ P liegt, jedoch nicht N P-vollständig ist. Zur
Definition von H sei M1 , M2 , . . . eine Aufzählung aller deterministischen
Turingmaschinen. Dann ist H(1) = 1 und für n ≥ 2 ist H(n) definiert durch


i ≤ log log(n) und für alle x ∈ {0, 1}≤log(n) gilt, 

H(n) := min i : dass die DTM Mi Eingabe x genau dann


in Zeit i|x|i akzeptiert, wenn x ∈ SATH .
(3.4)
Zunächst müssen wir uns überlegen, dass die Funktion H wohl-definiert
ist, denn in der Definition von H(n) wird die Sprache SATH und damit die
Funktion H(n) selber benutzt. Allerdings wird in der Definition von H(n)
nur benötigt, dass für alle x ∈ {0, 1}≤log(n) die Funktion H und somit die
Sprache SATH bereits definiert ist. Da log(n) < n für alle n, ist die Funktion
damit wohl-definiert.
Als nächstes zeigen wir, dass H(n) in Zeit polynomiell in n berechnet
werden kann. Genauer, wir zeigen durch Induktion, dass H(n) in Zeit cn3
für eine Konstante c berechnet werden kann. Für n = 1 ist dieses sicherlich
korrekt. Nehmen wir nun an, dass wir die Aussage für eine genügend große
Konstante c und alle k < n bereits bewiesen haben. Um H(n) zu berechnen,
sind drei Arten von Berechnungen notwendig.
1. Berechnung der Werte H(k) für alle k ≤ log(n).
2. Lösung von SAT auf allen Eingaben der Länge höchstens log(n). Zusammen mit dem ersten Punkt können dann alle x ∈ {0, 1}≤log(n) mit
x ∈ SATH bestimmt werden.
46
3. Simulation der ersten log log(n) DTMs Mi auf allen Eingaben |x| der
Länge ≤ log(n) für i|x|i ≤ log log(n) log(n)log log(n) Schritte. Dieser
Teil wird benötigt, um zu bestimmen, ob Mi die Sprache SATH für
alle x der Länge ≤ log(n) korrekt entscheidet.
Für den ersten Punkt wird nach Induktionsvoraussetzung höchstens Zeit
c log(n) log(n)3 benötigt. Man überlegt sich leicht, dass SAT bei Eingaben
der Länge m in Zeit 22m entschieden werden kann. Damit benötigt der zweite
Punkt höchstens Zeit 2log(n)+1 22 log(n) = 2n3 . Hierbei haben wir benutzt,
dass |{0, 1}≤log(n) | ≤ 2log(n)+1 . Unter Ausnutzung dieser Tatsache sehen wir
auch, dass der dritte Punkt Zeit
2log(n)+1 log log(n) log(n)log log(n) = 2n log log(n) log(n)log log(n)
benötigt. Insgesamt wird somit zur Berechnung von H(n) Zeit
c log(n)4 + 2n3 + 2n log log(n) log(n)log log(n)
benötigt. Für c groß genug, kann dieses durch cn3 abgeschätzt werden.
Nun zeigen wir für die so definierte Funktion H das folgende Lemma.
Lemma 3.2.2
für alle n.
1. Falls SATH ∈ P, so existiert ein i ∈ N mit H(n) ≤ i
2. Falls SATH 6∈ P, so existieren für alle i ∈ N nur endliche viele n ∈ N
mit H(n) = i. Insbesondere gilt
lim H(n) = ∞.
n→∞
Beweis: Zum Beweis der ersten Behauptung nehmen wir an, dass SATH ∈
P. Damit existiert eine DTM M mit Laufzeit cnc für eine Konstante c, die
SATH entscheidet. Nun gibt es zu jeder DTM M beliebig große i, so dass
L(M ) = L(Mi ). Solche Indizes i und die dazu gehörigen DTMs können z.B.
durch Einführung unerreichbarer und damit nutzloser Zustände konstruiert
werden. Sei nun i ≥ cso gewählt, dass L(M ) = L(Mi ). Dann gilt für alle n >
i
22 , dass H(n) ≤ i, denn für diese n gilt log log(n) > i und Mi entscheidet
für alle x ∈ {0, 1}≤log(n) in Zeit höchstens c|x|c ≤ i|x|i , ob x ∈ SATH .
Zum Beweis der zweiten Behauptung, nehmen wir an SATH 6∈ P. Damit
existiert für jedes i ∈ N ein xi ∈ {0, 1}∗ , so dass Mi bei Eingabe x nicht in
Zeit i|xi |i korrekt entscheidet, ob xi ∈ SATH . Für alle n > 2|xi | gilt somit
H(n) 6= i.
47
Nun können wir zeigen, dass SATH ∈
/ P. Wir führen einen Widerspruchsbeweis und nehmen daher an, dass SATH ∈ P. Sei daher M eine DTM, die
SATH in Zeit nc entscheidet. Nach unseren obigen Behauptungen existiert
nun ein i mit H(n) ≤ i für alle n. Damit gilt für alle Booleschen Formeln ψ
die folgende Abschätzung
H(|ψ|)
|ψ01|ψ|
| ≤ |ψ|i+2 .
Wir können nun SAT mit Hilfe der folgenden DTM entscheiden.
1. Bei Eingabe ψ berechne H(|ψ|) und bilde x = ψ01|ψ|H(|ψ|) .
2. Benutze die DTM M , um zu entscheiden, ob x ∈ SATH . Akzeptiere
ψ, falls M das Wort x akzeptiert.
Die Laufzeit dieser DTM ist polynomiell, da wir aus ψ in Zeit polynomiell in
|ψ| den Wert H(|ψ|) und damit das Wort x berechnen können. Die Laufzeit
von M bei Eingabe x ist nach Annahme |x|c = |ψ|c(i+2) . Damit ist die
Laufzeit der DTM polynomiell und wir erhalten SAT ∈ P. Dieses steht
jedoch im Widerspruch zu unseren allgemeinen Annahme P =
6 N P.
Jetzt zeigen wir, dass SATH auch nicht N P-vollständig sein kann. Wiederum führen wir einen Widerspruchsbeweis und nehmen an, SATH sei
N P-vollständig. Wir wollen zeigen, dass diese Annahme zur Existenz einer polynomialzeit DTM M , die SAT entscheidet, führt, im Widerspruch
zur Annahme P =
6 N P des Satzes. Sei nun f eine polynomielle Reduktion
von SAT auf SATH . Genauer, sei f in Zeit ni berechenbar.
Aus den Annahmen, dass SATH N P-vollständig ist und dass P =
6 N P,
folgt, dass SATH ∈
/ P. Lemma 3.2.2 zeigt, dass dann limn→∞ H(n) = ∞.
Somit existiert ein n0 ∈ N, so dass für alle n ≥ n0 gilt H(n) > 2i. Sei nun φ
eine Boolesche Formel und f (φ) = x ∈ {0, 1}∗ . Da H(n) ist Zeit polynomiell
in n berechnet werden kann, können wir in polynomieller Zeit entscheiden,
ob x die Form ψ01|ψ|H(|ψ|) für eine Boolesche Formel ψ besitzt. Ist dieses
nicht der Fall, gilt x ∈
/ SATH und φ ∈
/ SAT. Wir können uns daher im
Folgenden auf solche Formeln φ beschränken, für die f (φ) = ψ01|ψ|H(|ψ|)
2
für eine Boolesche Formel
p ψ. Sei nun weiter |φ|
p> n0 . Wir zeigen zunächst,
dass dann gilt |ψ| ≤ |φ|. Denn gilt |ψ| > |φ|, so folgt |ψ| > n0 und
H(|ψ|) > 2i. Dieses führt auf
1 2i
≥ |φ|i ,
|f (φ)| > |ψ|H(|ψ|) | > |φ| 2
was im Widerspruch zur Annahme steht, dass die Funktion in Zeit ni berechnet werden kann. Wir erhalten nun folgende rekursiv definierte DTM
D, die SAT entscheidet.
48
1. Gilt |φ| < n0 , entscheide brute-force, ob φ ∈ SAT.
2. Bei Eingabe φ, berechne f (φ).
3. Ist f (φ) nicht von der Form f (φ) = ψ01|ψ|H(|ψ|) für eine Boolesche
Formel ψ, lehne ab.
4. Wende die DTM D rekursiv auf die Formel ψ an.
Die Korrektheit der DTM D folgt unmittelbar aus dem bereits Gesagten.
Wir müssen noch die Laufzeit der DTM analysieren. Der 1.Schritt benötigt
nach Voraussetzung konstante Zeit, da n0 eine Konstante ist. Der 2.Schritt
benötigt nach Annahme Zeit |φ|i . Auch beim 3.Schritt haben wir bereits
oben argumentiert, dass dieser Schritt in polynomieller Zeit durchgeführt
werden kann. Wir müssen jetzt noch analysieren, wie häufig die DTM D
1
in Schritt 4. aufgerufen wird. Wie wir oben gesehen haben, gilt |ψ| ≤ |φ| 2 .
Damit wird in 4. die DTM D bei Eingabe φ höchstens log log(|φ|)-mal aufgerufen. denn nach k Aufrufen von D im 4.Schritt hat die resultierende Formel
k
ψ nur noch Größe 2log(|φ|/2 . Damit ist die Größe der Formel nach log log(|φ|)
bereits auf 2 reduziert. Wir erhalten, dass D eine polynomielle DTM ist, die
SAT entscheidet. Damit haben wir auch die Annahme, dass SATH J N Pvollständig ist zum Widerspruch zur Annahme P =
6 N P gebracht.
Insgesamt ist damit unter der Annahme P =
6 N P die Sprache SATH in
N P \ P, sie ist jedoch nicht N P-vollständig.
49
3.3
Die Klassen L, N L und L-Reduktionen
Bislang haben wir nur Zeit- und Platzkomplexität mindestens linear betrachtet. Bei der Zeitkomplexität werden wir dieses auch nicht ändern. Denn hat
eine TM weniger als lineare Zeit zur Verfügung, ist sie nicht in der Lage
die gesamte Eingabe zu betrachten. Bei Platzkomplexität ist die Situation anders, wenn wir nur den Platz betrachten, den eine TM zusätzlich zum
Platz zur Speicherung der Eingabe benötigt. Um diese Idee zu formalisieren,
betrachten wir spezielle TMs.
Definition 3.3.1 Eine TM M = (Q, Σ, Γ, δ) mit Eingabeband ist eine 2Band TM. Das erste Band einer TM mit Eingabeband heißt das Eingabeband, das zweite Band heißt das Arbeitsband. Zu Beginn der Berechnung
steht die Eingabe w auf dem Eingabeband. Auf die Eingabe w folgt dann
noch ein spezielles Symbol ♯. Für die Übergangsfunktion δ gelten zu den üblichen Bedingungen an die Übergangsfunktion einer TM noch die folgenden
Einschränkungen:
1. Kein Symbol auf dem Eingabeband kann überschrieben werden.
2. Der Kopf des Eingabebandes geht nicht über die mit dem Symbol ♯
beschriftete Zelle hinaus.
In dieser Definition lassen wir sowohl DTMs als auch NTMs zu. Die erste
Einschränkung stellt sicher, dass der für die Eingabe reservierte Platz von
der TM nicht für andere Zwecke verwendet werden darf. Die zweite Einschränkung stellt sicher, dass auf dem Eingabeband außerhalb des für die
Eingabe vorgesehen Platzes nichts gespeichert werden kann. Den Platzbedarf einer TM mit Eingabeband werden wir definieren als den Platz, den
die TM auf dem Arbeitsband benutzt. Dazu müssen wir aber zunächst den
Begriff der Konfiguration für TMs mit Eingabeband genau definieren.
Definition 3.3.2 Eine Konfiguration einer TM M = (Q, Σ, Γ, δ) mit Eingabeband bei Eingabe w ∈ Σ∗ wird beschrieben durch
1. den Zustand q ∈ Q,
2. die Positionen der Leseköpfe des Eingabe- und des Arbeitsbandes,
3. den Inhalt des Arbeitsbandes. Dabei werden wie üblich alle ⊔’s rechts
des letzten Symbols, das kein ⊔ ist, ignoriert.
50
Beschrieben wird eine solche Konfiguration durch ein Paar (K, pos). Dabei
ist pos die Binärdarstellung der Position des Lesekopfes auf dem Eingabeband. Weiter ist K von der Form αqβ mit α, β ∈ Γ∗ , q ∈ Q, wobei αβ der
Inhalt des Arbeitsbandes ist, q ist der Zustand und der Lesekopf des Arbeitsbandes steht auf der Zelle, die das erste Symbol von β enthält.
Die Größe einer Konfiguration (K, pos), K = αqβ, α, β ∈ Γ∗ , q ∈ Q ist
die Länge der Folge αβpos über dem Alphabet Γ, wobei wir annehmen, dass
{0, 1} ⊆ Γ.
Wie bei normalen TMs legt die Konfiguration einer TM mit Eingabeband
genau fest, welche Schritte eine TM als nächstes ausführen kann. Dabei ist
bei einer DTM mit Eingabeband natürlich nur ein Schritt möglich. Da wir
die Eingabe w fest lassen und die Einträge des Eingabebandes nicht geändert
werden, müssen wir die Eingabe w selber nicht in die Beschreibung einer
Konfiguration aufnehmen.
Definition 3.3.3 Sei s : N → N monoton wachsend mit s(n) ≥ ⌈log(n+3)⌉
für alle n ∈ N. Eine TM M = (Q, Σ, Γ, δ) mit Eingabeband heißt s(n)platzbeschränkt, wenn für alle w ∈ Σ≤n die Konfigurationen von M bei
Eingabe w Länge höchstens s(n) besitzen.
In den Platzbedarf einer TM mit Eingabeband ist also die Größe der Eingabe
nicht mit eingeschlossen. Die Bedingung s(n) ≥ ⌈log(n + 3)⌉ stellt sicher,
dass der Index pos alle Werte in {1, . . . , n} annehmen kann. Hierbei beachten
wir, dass für den Lesekopf des Eingabebandes n + 2 Positionen möglich sind,
das Startsymbol ⊲, die Symbole von w sowie das Symbol ♯, das das Ende der
Eingabe markiert. Die TM M kann somit alle Symbole des Eingabebandes
lesen.
Begriffe wie Platzbedarf einer TM mit Eingabeband können wir natürlich
analog zu den Begriffen für normale TMs benutzen. Wir verzichten auf genaue Definitionen. Wir erhalten nun die folgenden Komplexitätsklassen.
Definition 3.3.4 Sei s : N → N monoton wachsend. Dann sind die Klassen
DSPACE(s(n)) und N SPACE(s(n)) folgendermaßen definiert
L wird von einer O(s(n))-platzbeschränkten
DSPACE(s(n)) := L
.
DTM entschieden
L wird von einer O(s(n))-platzbeschränkten
.
N SPACE(s(n)) := L
NTM entschieden
Weiter definieren wir
L := DSPACE(log(n))
und
51
N L := N SPACE(log(n)).
Wir haben jetzt für s : N → N mit s(n) ≥ n für alle n ∈ N zwei Definitionen
von DSPACE(s(n)) bzw. N SPACE(s(n)). Einmal die gerade formulierten
Definitionen, dann aber auch die Definitionen auf Seite 12 und auf Seite 24.
Man überzeugt sich aber leicht, dass für s(n) ≥ n, die Definitionen identisch sind, da für s(n) ≥ n eine s(n)-platzbeschränkte TM mit Eingabeband
durch eine s(n)-platzbeschränkte TM ohne spezielles Eingabeband simuliert
werden kann.
Beispiel 3.3.5 Die Sprache {0k 1k |k ∈ N} liegt in L.
Eine log(n)-platzbeschränkte DTM, die diese Sprache entscheidet, kann etwa
wie die folgende DTM arbeiten.
M:
Bei Eingabe w ∈ {0, 1}∗ :
1. Durchlaufe die Eingabe, um zu testen, ob nach der ersten 1
noch eine 0 in w existiert. Wenn ja, lehne ab.
2. Zähle die Anzahl der 0 und 1 in w. Stimmen diese nicht
überein, lehne ab, sonst akzeptiere.
Der erst Schritt benötigt keinerlei Platz auf dem Arbeitsband, er kann
ausschließlich über eine geeignet gewählte Zustandsmenge und Übergangsfunktion realisiert werden. Für den zweiten Schnitt werden zwei binäre
Zähler benötigt. Beide müssen jedoch Zahlen der Länge höchsten |w| speichern. Damit wird für diese Zähler höchstens Platz O(log(|w|)) auf dem
Arbeitsband benötigt.
Als nächstes betrachten wir die Sprache
G = (V, E) ist ein gerichteter Graph, s, t ∈ V , so
Pfad := (G, s, t)
.
dass in G ein Pfad von s nach t existiert.
Mit Hilfe der Tiefensuche oder der Breitensuche kann gezeigt werden, dass
Pfad in P liegt. Es gilt aber auch
Satz 3.3.6 Pfad ∈ N L.
Beweis: Um diesen Satz zu beweisen, betrachten wir die folgende NTM.
Erreichbar :
Bei Eingabe G = (V, E), s, t ∈ V :
1. Berechne |V | − 1.
2. Setze i ← 0, v ← s.
3. Wiederhole bis i = |V | − 1 oder akzeptiert wurde:
4. Wähle nichtdeterministisch Kante (v, u) ∈ E.
5. Falls u = t, akzeptiere.
6. Setze i ← i + 1, v ← u.
52
In der Schleife beginnend in der 3. Zeile rät die NTM sukzessive die
Kanten eines Pfades der Länge höchstens |V | − 1 in G. Die Initialisierung
v ← s im 2. Schritt stellt dabei sicher, dass dieser Pfad in s beginnt. Die
NTM akzeptiert genau dann, wenn der Pfad von s nach t führt. Damit ist


G = (V, E) ist ein gerichteter Graph, s, t ∈ V , 

L := (G, s, t) so dass in G ein Pfad von s nach t der


Länge ≤ |V | − 1 existiert.
die von Erreichbar entschiedene Sprache. Nun existiert in G ein Pfad von s
nach t genau dann, wenn es in G einen Pfad der Länge höchstens |V | − 1 von
s nach t gibt. Ein Tupel (G, s, t) wird also von Erreichbar genau dann akzeptiert, wenn (G, s, t) ∈ Pfad. Damit gilt L = Pfad und wir haben eine NTM
konstruiert, die Pfad akzeptiert. Der Platzbedarf von Erreichbar bei Eingabe (G, s, t) ist nun O(log(|V |), denn wir benötigen nur den Platz, um zwei
Knoten u, v ∈ V , den Index i ≤ |V | und die Schranke |V |−1 zu speichern.
Für spätere Zwecke betrachten wir jetzt die folgende Verallgemeinerung der
oben betrachteten NTM Erreichbar.
ErreichbarLänge :
Bei Eingabe G = (V, E), s, t ∈ V, l ∈ N :
1. Setze i ← 0, v ← s.
2. Wiederhole bis i = l oder akzeptiert wurde:
3. Wähle nichtdeterministisch Kante (v, u) ∈ E.
4 Falls u = t, akzeptiere.
5. Setze i ← i + 1, v ← u.
Die im Beweis von Satz 3.3.6 benutzten Argumente zeigen, dass die von
dieser NTM entschiedene Sprache


G = (V, E) ist ein gerichteter Graph, s, t ∈ V , 

PfadLänge := (G, s, t, l) so dass in G ein Pfad von s nach t der


Länge ≤ l existiert.
ist. Weiter hat die NTM ErreichbarLänge logarithmischen Platzbedarf.
Es gilt natürlich L ⊆ N L. Es ist aber nicht bekannt, ob L =
6 N L gilt.
In einer Übung werden Sie außerdem den folgenden Satz zeigen.
Satz 3.3.7 N L ⊆ P.
Es wird vermutet, dass die Inklusion in diesem Satz echt ist, also N L 6= P
gilt. Bislang konnte diese Vermutung jedoch nicht bewiesen werden.
53
Wir wollen nun die schwierigsten Probleme in N L identifizieren, die
so genannten N L-vollständigen Probleme. Diese spielen für N L dieselbe
Rollen wie die N P-vollständigen Probleme für N P. Zur Definition der
N L-vollständigen Probleme werden wir Reduktionen verwenden. Da aber
N L ⊆ P gilt, macht es keinen Sinn zur Charakterisierung der Schwierigkeit
von Problemen in N L polynomielle Reduktionen zu benutzen. Stattdessen
verwenden wir Reduktionen, die mit logarithmischem Platz berechnet werden können. Um dabei Reduktionen f berechnen zu können, deren Funktionswerte f (w) nicht durch log(|w|) beschränkt sind, benötigen wir spezielle
TMs mit Ausgabeband. Diese TMs, ihre Arbeitsweise sowie ihren Platzbedarf definieren wir in den folgenden vier Definitionen.
Definition 3.3.8 Eine TM M = (Q, Σ, Γ, δ) mit Eingabe-/Ausgabeband ist
eine 3-Band TM. Das erste Band einer TM mit Eingabeband heißt das Eingabeband, das zweite Band heißt das Arbeitsband und das dritte Band heißt
das Ausgabeband. Zu Beginn der Berechnung steht die Eingabe w auf dem
Eingabeband. Auf die Eingabe w folgt dann noch ein spezielles Symbol ♯.
Arbeits- und Ausgabeband enthalten zu Beginn einer Berechnung jeweils eine Folge von ⊔. Für die Übergangsfunktion δ gelten zusätzlich zu den Bedingungen an die Übergangsfunktion einer TM mit Eingabeband aus Definition 3.3.1 noch die folgenden Einschränkungen:
1. Im ersten Schritt der TM M wird der Lesekopf des Ausgabebandes
von der Zelle, die das Startsymbol ⊲ enthält, die erste Zelle, die ein
⊔ enthält, bewegt.
2. Der Lesekopf des Ausgabebandes kann nicht nach links bewegt werden.
3. Wird ein ⊔ auf dem Ausgabeband überschrieben, so muss der Lesekopf
des Ausgabebandes nach rechts bewegt werden.
Definition 3.3.9 Die TM M = (Q, Σ, Γ, δ) mit Eingabe-/Ausgabeband berechnet die Funktion f : Σ∗ → Γ∗ , wenn für alle w ∈ Σ∗ die folgende
Bedingung erfüllt ist: Wird M mit Eingabe w gestartet und hält sie im akzeptierenden Zustand, so ist bei Ende der Berechnung der Bandinhalt des
Ausgabebandes f (w).
Definition 3.3.10 Eine Konfiguration einer TM M = (Q, Σ, Γ, δ) mit Eingabe-/Ausgabeband bei Eingabe w ∈ Σ∗ wird beschrieben durch
1. den Zustand q ∈ Q,
2. die Positionen der Leseköpfe des Eingabe- und des Arbeitsbandes,
54
3. den Inhalt des Arbeitsbandes. Dabei werden wie üblich alle ⊔’s rechts
des letzten Symbols, das kein ⊔ ist, ignoriert.
Beschrieben wird eine solche Konfiguration durch ein Paar (K, pos). Dabei
ist pos die Binärdarstellung der Position des Lesekopfes auf dem Eingabeband. Weiter ist K von der Form αqβ mit α, β ∈ Γ∗ , q ∈ Q, wobei αβ der
Inhalt des Arbeitsbandes ist, q ist der Zustand und der Lesekopf des Arbeitsbandes steht auf der Zelle, die das erste Symbol von β enthält.
Die Größe einer Konfiguration (K, pos) ist wie bei TMs mit Eingabeband
die Länge der Folge αβpos über dem Alphabet Γ, wobei wir annehmen, dass
{0, 1} ⊆ Γ.
Definition 3.3.11 Sei s : N → N monoton wachsend mit s(n) ≥ ⌈log(n +
3)⌉ für alle n ∈ N. Eine TM M = (Q, Σ, Γ, δ) mit Eingabe-/Ausgabeband
heißt s(n)-platzbeschränkt, wenn für alle w ∈ Σ≤n die Konfigurationen von
M bei Eingabe w Länge höchstens s(n) besitzen.
In den Platzbedarf einer TM mit Eingabe-/Ausgabeband ist also weder die
Größe der Eingabe noch die Größe der Ausgabe mit eingeschlossen. Die
Bedingung s(n) ≥ ⌈log(n + 3)⌉ stellt sicher, dass der Index pos alle Werte
in {1, . . . , n} annehmen kann. Hierbei beachten wir, dass für den Lesekopf
des Eingabebandes n + 2 Positionen möglich sind, das Startsymbol ⊲, die
Symbole von w, sowie das Symbol ♯, das das Ende der Eingabe markiert.
Die TM M kann somit alle Symbole des Eingabebandes lesen.
Definition 3.3.12 Eine Funktion f : Σ∗ → Γ∗ heißt s(n)-platzberechenbar,
wenn es eine O(s(n))-platzbeschränkte DTM M mit Eingabe-/Ausgabeband
gibt, die f berechnet.
Wir kommen jetzt zum fundamentalen Begriff der L-Reduktionen.
Definition 3.3.13 Seien A ⊆ Σ∗1 und B ⊆ Σ∗2 Sprachen. Dann heißt A
auf B L-reduzierbar, wenn eine Funktion f mit den folgenden Eigenschaften
existiert
1. Für alle w ∈ Σ∗1 gilt w ∈ A ⇔ f (w) ∈ B,
2. Die Funktion f ist log(n)-platzberechenbar.
Die Funktion f heißt dann eine L-Reduktion von A auf B. Ist A auf B
L-reduzierbar, so schreiben wir A ≤L B.
55
Man überlegt sich leicht, dass jede L-Reduktion auch eine polynomielle Reduktion ist. L-Reduktionen verhalten sich auch sehr ähnlich wie polynomielle
Reduktionen. Insbesondere sind L-Reduktionen wie polynomielle Reduktionen transitiv (siehe Lemma 2.5.4).
Lemma 3.3.14 Seien f : Σ∗ → Γ∗ und g : Γ∗ → Ω∗ jeweils log(n)-platzberechenbare Funktionen. Dann ist auch g◦f : Σ∗ → Ω∗ log(n)-platzberechenbar.
Beweis: Seien Mf und Mg zwei log(n)-platzbeschränkte DTM mit Eingabe/Ausgabeband, die f bzw. g berechnen. Wir betrachten nun die folgende
DTM Mg◦f , die g ◦ f berechnet.
Mg◦f :
Bei Eingabe w:
Simuliere Mg mit Eingabe f (w). Wann immer Mg dabei
ein Symbol von f (w) lesen möchte, simuliere Mf mit
Eingabe w, um dieses Symbol zu berechnen.
Die Bedingungen 2. und 3. in Definition 3.3.8 garantieren, dass die Berechnung der Symbole von f (w) durch Mf Platz O(log(n)) erfordert. Da
auch Mg Platzbedarf O(log(n)) besitzt, folgt, dass die DTM Mg◦f Platzbedarf O(log(|f (w)|)) hat. Nun ist aber |f (w)| = |w|c = nc für eine Konstante §c, denn Mf hat Platzbedarf log(n) und ist damit polynomiell zeitbeschränkt. Daher ist die Länge von f (|w|) polynomiell in der Länge von n. Damit ist der Platzbedarf der DTM Mg◦f beschränkt durch O(log(|f (w)|)) =
O(log(nc )) = O(log(n)).
Bei polynomiellen Reduktionen kann die Transitivität gezeigt werden, indem zunächst f (w) mit Mf berechnet wird, um dann Mg auf f (w) zu simulieren. Bei diesem Ansatz muss f (w) auf einem Arbeitsband gespeichert
werden, was unter Umständen Platz Ω(s(n)) benötigt. Daher kann diese einfache Idee nicht zum Beweis von Lemma 3.3.14 benutzt werden. Stattdessen
muss Mf immer wieder aufgerufen werden, um die Symbole von f (w) zu
berechnen. Aus dem Lemma erhalten wir unmittelbar
Korollar 3.3.15 Seien A, B, C Sprachen mit A ≤L B und B ≤L C. Dann
gilt A ≤L C.
Beweis: Sei f die L-Reduktion von A auf B und g die L-Reduktion von
B auf C. Dann ist g ◦ f eine Reduktion von A auf C. Lemma 3.3.14 zeigt,
dass g ◦ f eine L-Reduktion ist.
Jetzt können wir die N L-vollständigen Sprachen definieren.
56
Definition 3.3.16 Eine Sprache A heißt N L-vollständig, wenn
1. A ∈ N L.
2. Alle Sprachen B ∈ N L auf A L-reduzierbar sind.
Die nächsten beiden Lemmata entsprechen Lemma 2.6.2 und Lemma 2.6.3
für polynomielle Reduktionen.
Lemma 3.3.17 Ist A N L-vollständig und gilt A ∈ L, so gilt L = N L.
Beweis: Da L ⊆ N L, genügt es zu zeigen, dass die Bedingungen des Satzes
N L ⊆ L implizieren. Sei nun B ∈ N L beliebig und sei f eine L-Reduktion
von B auf A. Die Funktion f werde durch die O(log(n))-platzbeschränkte
DTM Mf berechnet. Weiter sei MA die O(log(n))-platzbeschränkte DTM,
die A ∈ L zeigt. Kombinieren wir nun Mf und MA wie im Beweis von Lemma 3.3.14, so erhalten wir eine O(log(n))-platzbeschränkte DTM MB , die
B entscheidet. Damit gilt dann auch B ∈ L.
Lemma 3.3.18 Ist A ∈ N L und gilt B ≤L A für eine N L-vollständige
Sprache B, so ist auch A N L-vollständig.
Der Beweis dieses Lemmas folgt unmittelbar aus der Transitivität von LReduktionen. Wir werden nun zeigen, dass Pfad N L-vollständig ist. Der
Beweis dieses Satzes ist insbesondere im Vergleich zum Beweis des Satzes
von Cook-Levin (Satz 2.6.7) erstaunlich einfach.
Satz 3.3.19 Pfad ist N L-vollständig.
Beweis: Sei A ⊆ Σ∗ eine beliebige Sprache in N L und NA = (Q, Σ, Γ, δ)
eine c · log(n))-platzbeschränkte NTM, die A entscheidet. Hierbei ist c eine
Konstante. Gegeben w ∈ Σ werden wir einen Graphen G = (V, E) und
s, t ∈ V konstruieren, so dass NA die Eingabe w genau dann akzeptiert,
wenn es in G einen Pfad von s nach t gibt. Hierbei werden wir wie im
Beweis des Satzes von Savitch (Satz 2.7.2, Seite 37) ohne Beschränkung der
Allgemeinheit annehmen, dass NA unabhängig von der Eingabe nur eine
akzeptierende Konfiguration Ka besitzt.
Konfigurationen C von NA bei Eingabe w ∈ Σn werden beschrieben
durch ein Tupel (K, pos), wobei K = αqβ aus Γ∗ × Q × Γ∗ und pos aus
{0, 1}l für l = ⌈log(n+3)⌉ ist. Außerdem ist die Länge von αβ durch c log(n)
beschränkt.
Die Knotenmenge V des Graphen G besteht nun aus allen Elementen C = (K, pos), K = αqβ ∈ Γ∗ × Q × Γ∗ , wobei |αβ| ≤ c log(n) und
57
pos ∈ {0, 1}l . Diese Knotenmenge kann in logarithmischem Platz konstruiert werden, indem die Menge Γ≤c log(n) ×Q×Γ≤c log(n) ×{0, 1}l systematisch
durchlaufen wird.
Die Kantenmenge E des Graphen G besteht aus Paaren (C1 , C2 ) ∈ V ×V ,
so dass die NTM NA die Konfiguration C2 aus der Konfiguration C1 in einem
Rechenschritt erreichen kann. Die Kantenmenge E kann dann konstruiert
werden, indem alle Elemente (C1 , C2 ) ∈ V × V systematisch durchlaufen
werden, um durch Simulation von NA zu entscheiden, ob das Paar (C1 , C2 )
diese Eigenschaft besitzt. Insgesamt haben wir damit den Graphen G in
logarithmischem Platz berechnet.
Wir müssen noch die Knoten s und t bestimmen. Der Knoten t entspricht
der akzeptierenden Konfiguration KA von NA . Der Knoten s entspricht der
Startkonfiguration Kw von NA bei Eingabe w. Beide können in logarithmischen Platz konstruiert werden. Um den Beweis zu vervollständigen, müssen
wir noch zeigen, dass w ∈ A genau dann, wenn (G, s, t) ∈ Pfad. Nun gilt
aber
w ∈ A ⇔NA akzeptiert Eingabe w
⇔Aus der Startkonfiguration Kw kann NA
die akzeptierende Konfiguration Ka erreichen
⇔(G, s, t) ∈ Pfad.
Wie wir oben anmerkten, ist nicht bekannt, ob L =
6 N L oder N L 6= P.
?
?
Aber das dem Problem N P = co-N P entsprechende Problem N L = co-N L
ist gelöst. Dabei ist co-N L gemäß der Definition 3.1.2 (Seite 41) die Klasse
aller Sprachen A, deren Komplement A in N L liegt.
Satz 3.3.20 (Immerman/Szelepcsènyi) N L = co-N L.
Beweis: Wir bezeichnen mit Pfad das Komplement von Pfad. Worte, die
nicht von der Gestalt (G, s, t) sind, können wir ignorieren. Dann ist
G = (V, E) ist ein gerichteter Graph, s, t ∈ V , so
Pfad := (G, s, t)
.
dass in G kein Pfad von s nach t existiert.
Es genügt dann zu zeigen, dass Pfad ∈ co-N L oder äquivalent Pfad ∈ N L.
Dieses folgt wie im Beweis von Lemma 3.3.17 mit L ersetzt durch co-N L.
Wir zeigen Pfad ∈ N L.
58
Sei G = (V, E) ein beliebiger gerichteter Graph und s, t ∈ V . Wir setzen
m = |V | und definieren für i = 0, . . . , m − 1 die folgenden Mengen
In G existiert ein Pfad der Länge höchstens i
Ai := v ∈ V
.
von s nach v.
Weiter setzen wir
ci := |Ai |, i = 0, . . . , m − 1.
Es gilt A0 = {s} und c0 = 1. Weiter ist Am−1 die Menge aller Knoten v in
V , für die in G ein Pfad von s nach v existiert. Somit gilt (G, s, t) ∈ Pfad ⇔
t 6∈ Am−1 . Die NTM für Pfad wird nun folgendermaßen arbeiten.
1. Berechne sukzessive nichtdeterministisch die Werte c0 , c1 , . . . , cm−1 ,
dabei wird die Berechnung von ci nur von ci−1 abhängen.
2. Gegeben cm−1 , berechne nichtdeterministisch Am−1 , d.h., rate die einzelnen Elemente v von Am−1 und verifiziere v ∈ Am−1 .
3. Akzeptiere genau dann, wenn t 6∈ Am−1 .
Zunächst konstruieren wir eine NTM #Erreichbar, die bei Eingabe G, s, i,
ci−1 den Wert ci berechnet. Dieses ist folgendermaßen zu verstehen (siehe
Definition 3.3.9). Hält die NTM #Erreichbar im akzeptierenden Zustand,
so ist ihre Ausgabe immer ci . Außerdem gibt es mindestens eine Berechnung von #Erreichbar, die im akzeptierenden Zustand hält und somit dann
die Ausgabe ci liefert. Die etwas allgemeiner formulierte NTM #Erreichbar
ist in Abbildung 3.3 dargestellt und benutzt die nichtdeteministische TM
ErreichbarLänge (siehe Seite 53).
Nehmen wir an, dass l = ci−1 . Zunächst zeigen wir, dass c = ci gelten
muss, wenn ein Wert c ausgegeben wird. Nun wird der Zähler c bei einer
Wahl von u in 2. im 8. Schritt nur dann um 1 erhöht, wenn in 4. ein v
gewählt wird, so dass v ∈ Ai−1 (ErreichbarLänge (G, s, v, i − 1) akzeptiert in
5.) und (v, u) ∈ E. Damit gilt immer c ≤ ci . Wird nun für ein u in 10.
nicht abgelehnt, wurde für alle v ∈ Ai−1 überprüft, ob (v, u) ∈ E. Denn d
zählt die beim in 2. startenden Schleifendurchlauf für u in 5. gefundenen
v ∈ Ai−1 . Wenn ErreichbarLänge nicht ablehnt, wird daher für alle u ∈ V
korrekt entschieden, ob u ∈ Ai . Lehnt #Erreichbar nicht ab, muss deshalb
am Ende der Berechnungen von #Erreichbar gelten c = ci .
Wir müssen auch noch zeigen, dass es eine Berechnung von #Erreichbar
gibt, die zu einer Ausgabe führt. Dieses ist aber genau dann der Fall, wenn
für alle Durchläufe der in 2. beginnenden Schleife für alle v ∈ Ai−1 in 5. durch
59
#Erreichbar
Bei Eingabe (G, s, i, l) mit G = (V, E), s ∈ V, i, l ∈ N :
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Setze c ← 1.
Für alle u ∈ V \ {s}
d←0
Für alle v ∈ V
Falls ErreichbarLänge (G, s, v, i − 1)
d←d+1
Falls (v, u) ∈ E
c←c+1
Weiter bei 2. mit nächstem u.
Falls d 6= l, lehne ab.
Ausgabe c.
Abbildung 3.2: Die NTM #Erreichbar zur Berechnung der Werte ci
ErreichbarLänge (G, s, v, i − 1) ein Pfad der Länge höchstens i − 1 von s nach
v konstruiert wird. Damit berechnet #Erreichbar bei Eingabe G, s, i, ci−1
den Wert ci .
Ist der Wert cm−1 für einen gerichteten Graphen G bekannt, so kann
(G, s, t) ∈ Pfad bewiesen werden, indem cm−1 Knoten u 6= t konstruiert werden, die alle in Am−1 liegen. Dieses genau leistet die NTM Pfad-Komplement
in Abbildung 3.3, die zunächst auch mit Hilfe von #Erreichbar sukzessive
die Werte c0 , c1 , . . . , cm−1 berechnet.
Nach dem über die NTM #Erreichbar Bewiesenen gilt, dass die NTM
Pfad-Komplement entweder in den ersten drei Schritten bereits ablehnt
oder aber den Wert cm−1 korrekt berechnet. Nehmen wir an, dass sie den
Wert cm−1 berechnet hat. Akzeptiert die NTM Pfad-Komplement dann
im letzten Schritt, so hat sie in der in 4. beginnenden Schleife cm−1 Knoten
u 6= t bestimmt, die in Am−1 liegen. Somit wird nur dann akzeptiert, wenn
(G, s, t) ∈ Pfad.
Liegt andererseits (G, s, t) ∈ Pfad, so kann, wie wir oben gesehen haben,
die NTM Pfad-Komplement in den ersten drei Schritten cm−1 berechnen.
Wird dann außerdem für alle u ∈ Am−1 in 5. durch Erreichbar(G, s, u, m−1)
ein Pfad von s nach u bestimmt, so wird Pfad-Komplement auch akzeptieren. Damit ist Pfad die von Pfad-Komplement akzeptierte Sprache.
Wir müssen den Platzbedarf von #Erreichbar und Pfad-Komplement
bestimmen. In #Erreichbar wird ein Zähler für c und d benötigt. Wei-
60
Pfad-Komplement
Bei Eingabe (G, s, i, l) mit G = (V, E), s ∈ V, i, l ∈ N :
1.
2.
3.
4.
5.
6.
7.
8.
Setze c0 ← 1.
Für i ← 1 bis m − 1
ci ← #Erreichbar(G, s, i, ci−1 )
Für alle u ∈ V \ s
Falls ErreichbarLänge (G, s, u, m − 1) und u 6= t
d←d+1
Sonst lehne ab.
Falls d 6= cm−1 , lehne ab, sonst akzeptiere.
Abbildung 3.3: NTM für die Sprache Pfad
ter benötigen wir noch den Platz um den jeweilig aktuellen Knoten in 2.
und 4. zu speichern. Schließlich wird noch der Platz für die Aufrufe von
ErreichbarLänge in 5. benötigt. Da aber c, d ≤ m − 1, es nur m Knoten in G
gibt und außerdem Erreichbar logarithmischen Platzbedarf hat, folgt, dass
auch #Erreichbar logarithmischen Platzbedarf besitzt.
Ähnlich können wir jetzt den Platzbedarf von Pfad-Komplement analysieren. Neben dem logarithmischen Platz für die Aufrufe von ErreichbarLänge
und #Erreichbar, benötigt Pfad-Komplement den Platz um jeweils zwei
aufeinander folgende ci zu speichern, sowie den Platz für d und die Knoten
u in 4. All dieses erfordert Platz O(log(m)). Damit hat Pfad-Komplement
Platzbedarf O(log(m)). Es folgt Pfad ∈ N L.
Wird wie im Beweis des Satzes von Savitch 2.7.2 oder im Beweis des Satzes 3.3.6 zu einer NTM der Konfigurationsgraph betrachtet, so kann man
mit den gerade benutzten Techniken auch den folgenden allgemeinen Satz
beweisen.
Satz 3.3.21 (Immerman/Szelepcsènyi) Sei s : N → N mit s(n) ≥
log(n) für alle n ∈ N monoton wachsend. Dann gilt
N SPACE(s(n)) = co-N SPACE(s(n)).
61
Kapitel 4
Hierarchiesätze und
Diagonaliserung
In diesem Kapitel werden wir die so genannten Hierarchiesätze formulieren. Diese zeigen, dass die Vergrößerung der Platz- bzw. Zeitressourcen von
DTMs dazu führt, dass eine größere Klasse von Sprachen entschieden werden
kann. Dabei sind die Aussagen für die Platzkomplexität (wie üblich) etwas
schärfer als für die Zeitkomplexität. Beweisen werden wir nur den Platzhierarchiesatz. Der Beweis des Zeithierarchiesatzes ist sehr ähnlich, in den
technischen Details aber etwas schwieriger. Zunächst einige vorbereitende
Bemerkungen.
4.1
Vorbereitungen
Für zwei Funktionen f, g : N → N schreiben wir g = o(f ) genau dann, wenn
limn→∞ g(n)/f (n) = 0. Oder
g = o(f ) ⇔ ∀c > 0 ∃n0 ∈ N ∀n ≥ n0 : f (n) ≥ cg(n).
In diesem gesamten Kapitel,betrachten wir Turingmaschinen, deren Eingabealphabet Σ die Symbole 0, 1, # enthält. Dieses ist natürlich keine Einschränkung. Mit hM i bezeichnen wir die Gödelnummer einer TM M . Wir
werden Gödelnummern nicht genau definieren, da die genaue Form von
Gödelnummern für uns irrelevant ist. Möglichkeiten, Gödelnummern zu definieren, können in vielen Büchern nachgelesen werden. Für uns sind nur die
beiden folgenden Sätze relevant, auf deren Beweis wir ebenfalls verzichten.
62
Satz 4.1.1 Es existiert eine DTM U die bei Eingabe hM i#x mit x ∈ {0, 1}∗
die Rechnung von M bei Eingabe x simuliert. Hat M bei Eingabe x Platzbedarf sM (x) und Zeitbedarf tM (x), so hat U bei Eingabe hM i#x Platzbedarf
c|hM i|sM (x) und Zeitbedarf d|hM i|2 tM (x). Hierbei sind c, d Konstanten.
Satz 4.1.2 Es existiert eine DTM G, die w ∈ {0, 1}∗ genau dann akzeptiert,
wenn w die Gödelnummer einer TM M ist. Bei Eingabe w hat G Platzbedarf
O(log(|w|)) und Zeitbedarf O(|w| log(|w|)).
In den Aussagen der Hierarchiesätze wird auf platz- bzw. zeitkonstruierbare
Funktionen Bezug genommen. Platzkonstruierbarkeit haben wir bereits im
Zusammenhang mit dem Satz von Savitch kennen gelernt. Hier verfeinern
wir die Definition etwas, indem wir DTMs mit Eingabe- und Ausgabeband
zulassen.
Definition 4.1.3 Sei f : N → N mit f (n) ≥ log(n) für alle n ∈ N. Die
Funktion f heißt platzkonstruierbar, wenn es eine O(f (n))-platzbeschränkte
DTM M mit Eingabe-/Ausgabeband gibt, die bei Eingabe 1n (also n Einsen)
die Binärdarstellung von f (n) berechnet.
Ähnlich können wir zeitkonstruierbare Funktionen definieren. Hierbei benutzen wir allerdings normale 1-Band DTMs.
Definition 4.1.4 Sei f : N → N mit f (n) ≥ n log(n) für alle n ∈ N. Die
Funktion f heißt zeitkonstruierbar, wenn es eine O(f (n))-zeitbeschränkte 1Band DTM M gibt, die bei Eingabe 1n (also n Einsen) die Binärdarstellung
von f (n) berechnet.
Die Bedingung f (n) ≥ n log(n) in dieser Definition lässt sich leider nicht
umgehen, da selbst eine so einfache Funktion wie die Identität nicht zeitkonstruierbar ist. Fast jede uns interessierende Funktion f mit f (n) ≥ log(n)
bzw, f (n) ≥ n log(n) ist platz- bzw. zeitkonstruierbar. Hierauf wird in den
Übungen genauer eingegangen. Wir werden im übernächsten Abschnitt jedoch sehen, dass die Hierarchiesätze des folgenden Abschnitts falsch sind,
wenn die Platz- bzw. Zeitkonstruierbarkeit fallen gelassen wird.
4.2
Die Hierarchiesätze
Nun können wir die Hierarchiesätze formulieren und beweisen. Die Beweise
benutzen die Methode der Diagonalisierung. Diese Methode haben Sie bereits bei der Konstruktion von unentscheidbaren Sprachen in der Vorlesung
63
Einführung in Berechenbarkeit, formale Sprachen und Komplexität“ ken”
nen gelernt. Zur Vorbereitung auf die folgenden Beweise sollten Sie sich die
entsprechenden Teile aus dieser Vorlesung noch einmal anschauen.
Satz 4.2.1 Sei s : N → N mit s(n) ≥ log(n) für alle n ∈ N platzkonstruierbar. Dann existiert eine Sprache A, die auf einer deterministischen DTM
mit Eingabeband in Platz O(s(n)) nicht jedoch in Platz o(s(n)) entschieden
werden kann.
Beweis: Wir betrachten die Sprache A, die definiert ist als die von der
folgenden DTM MS entschiedene Sprache, d.h. A = L(MS ).
MS :
Bei Eingabe w ∈ {0, 1}∗ , |w| = n :
1. Falls w nicht von der Form hM i#0∗ für eine DTM M ,
lehne ab. Sonst sei M = (Q, Σ, Γ, δ).
2. Berechne s(n) = s(|w|).
3. Simuliere M mit Eingabe w. Müssen dabei mehr als
22s(n) Schritte von M simuliert werden oder benötigt
die Simulation mehr Platz als s(n), lehne ab.
4. Falls M die Eingabe w akzeptiert, lehne ab.
Falls M die Eingabe w ablehnt, akzeptiere.
Um den Satz zu beweisen, zeigen wir zwei Dinge:
1. MS hat Platzkomplexität O(s(n)), d.h. A ∈ DSPACE(s(n)).
2. A wird von keiner DTM mit Platzkomplexität o(s(n)) entschieden,
d.h. A 6∈ DSPACE(g(n)) für alle g mit g(n) = o(s(n)).
Betrachten wir 1. Aufgrund der Bedingung an die Laufzeit in 3. der Beschreibung von MS ist zunächst einmal sicher gestellt, dass MS die Sprache
A entscheidet und nicht nur akzeptiert. Betrachten wir nun den Platzbedarf der einzelnen Schritte. Nach Satz 4.1.2 benötigt der erste Schritt von
MS Platz O(log(|w|)) = O(s(|w|)). Aufgrund der Platzkonstruierbarkeit der
Funktion s wird auch für den zweiten Schritt Platz O(s(|w|) benötigt. Der
Zähler, der im 3. Schritt für die Anzahl der Schritt eingesetzt werden muss,
kann ebenfalls auf Platz O(s(|w|)) realisiert werden. Schließlich wird nach
Definition von MS , die Simulation im 3. Schritt Platzbedarf O(s(|w|)) haben. Da der letzte Schritt von MS keinen Platz benötigt, haben wir gezeigt,
dass MS Platzbedarf O(s(n)) hat.
Nun zu 2. Angenommen, es gibt eine DTM M0 = (Q, Σ, Γ, δ) mit Platzbedarf g(n) = o(s(n)), die A entscheidet. Sei nun n0 so gewählt, dass für
alle n ≥ n0 gilt
64
a) c|hM0 i|g(n) ≤ s(n)
b) n|Q|g(n)|Γ|g(n) ≤ 22s(n) .
Hier ist c die Konstante aus Satz 4.1.1. Beide Bedingungen können wegen
g(n) = o(s(n)) erfüllt werden. Betrachten wir nun das Verhalten von MS
bei Eingabe hM0 i#0n0 . Die Bedingung a) stellt sicher, dass die Simulation
von M0 durch MS Platz höchstens s(n0 ) benötigt (Satz 4.1.1). Bedingung
b) garantiert, dass M0 nur für 22s(n0 ) Schritte simuliert werden muss (siehe
Aufgabe 3, Blatt 0). Damit wird MS die Eingabe hM0 i#0n0 nicht im 3.
Schritt ablehnen, bevor fest steht, ob die DTM M0 die Eingabe hM0 i#0n0
ablehnt. Nach Definition des 4.Schritts gilt dann
hM0 i#0n0 ∈ L(MS ) = A ⇔ M0 lehnt Eingabe hM0 i#0n0 ab.
Dieses widerspricht der Annahme A = L(M0 ). Somit gibt es keine DTM mit
Platzbedarf o(s(n)), die A entscheidet.
Aus diesem Satz erhalten wir unmittelbar einige interessante Korollare. Das
erste Korollar ist nur eine Umformulierung des Platzhierarchiesatzes.
Korollar 4.2.2 Seien s1 , s2 : N → N platzkonstruierbar. Gilt s1 (n) =
o(s2 (n)), so ist
DSPACE(s1 (n))
DSPACE(s2 (n)),
d.h. DSPACE(s1 (n)) ist echt in DSPACE(s2 (n)) enthalten.
Korollar 4.2.3 Seien k, l ∈ N mit k < l. Dann gilt
DSPACE(nk )
DSPACE(nl ),
d.h. DSPACE(nk ) ist echt in DSPACE(nl ) enthalten.
Beweis:
k < l.
Folgt aus dem vorangegangenen Korollar mit nk = o(nl ) für
Korollar 4.2.4 N L ⊂ PSPACE, d.h. N L ist echt in PSPACE enthalten.
Beweis: Nach dem Satz von Savitch gilt N L ⊆ DSPACE(log(n)2 ). Nun
ist aber log(n)2 = o(n).
Als nächstes formulieren wir (ohne Beweis) den Zeithierarchiesatz.
65
Satz 4.2.5 Sei t : N → N zeitkonstruierbar. Dann existiert eine Sprache
A, die deterministisch in Zeit O(t(n)) nicht jedoch in Zeit o(t(n)/ log(t(n)))
entschieden werden kann.
Wiederum erhalten wir unmittelbar einige Korollare. Das erste Korollar ist
eine Umformulierung des Zeithierarchiesatzes.
Korollar 4.2.6 Seien t1 , t2 : N → N zeitkonstruierbar, wobei
t1 (n) = o(t2 (n)/ log(t2 (n))). Dann gilt
DT IME(t1 (n))
DT IME(t2 (n)),
d.h. DT IME(t1 (n)) ist echt in DT IME(t2 (n)) enthalten.
Korollar 4.2.7 Seien k, l ∈ N mit k < l. Dann gilt
DT IME(nk ) ⊂ DT IME(nl ),
d.h. DT IME(nk ) ist echt in DT IME(nl ) enthalten.
Beweis: Folgt unmittelbar aus dem vorangegangenem Korollar mit nk =
o(nl / log(nl ) für k < l.
Wir können etliche unserer Vermutung über das Verhältnis der uns bisher bekannten Komplexitätsklassen in der folgende Vermutung zusammen
fassen.
Vermutung 4.2.8 In der folgenden Kette von Inklusionen sind alle Inklusionen echt.
L N L P N P PSPACE.
Zu dieser Vermutung eine wichtige Bemerkungen.
Bemerkung 4.2.9 Da L ⊆ N L und N L echt in PSPACE enthalten ist,
ist auch L echt in PSPACE enthalten. Damit wissen wir, dass eine der vier
Inklusionen zwischen L und PSPACE in Vermutung 4.2.8 echt ist.
Die Annahmen der Platz- und Zeitkonstruierbarkeit sind für die Hierarchiesätze ganz wesentlich wesentlich. Dieses zeigt der folgende Satz (wiederum ohne Beweis).
Satz 4.2.10 Es existiert eine berechenbare Funktion f : N → N, so dass
DT IME(f (n)) = DT IME 2f (n) .
66
Kapitel 5
Orakel-Turingmaschinen,
Grenzen der
Diagonalisierung und die
Polynomialzeithierarchie
Orakel-Turingmaschinen sind eine wichtige Konstruktion der Komplexitätstheorie. Mit ihnen können Unterprogramme in der Terminologie von Turingmaschinen formalisiert werden. Wir werden in diesem Kapitel OrakelTuringmaschinen formal definieren und mit ihrer Hilfe dann zeigen, dass die
Methode der Diagonalisierung, wie wir sie im letzten Kapitel zum Beweis
des Platzhierarchiesatzes benutzt haben, vermutlich nicht genutzt werden
?
kann, um die P = N P-Frage zu klären. Weiter werden wir mit Hilfe von
Orakel-Turingmaschinen die Polynomialzeithierarchie definieren. Diese liefert uns eine ganze Hierarchie von Sprachklassen zwischen P und PSPACE.
Die Polynomialzeithierarchie wird uns erlauben, eine erste Einschätzung der
Mächtigkeit probabilistischer Algorithmen zu liefern. Dieses ist das Thema
des letzten Kapitels der Vorlesung.
5.1
Orakel-Turingmaschinen
In diesem Abschnitt werden wir die wichtigsten Definitionen für OrakelTuringmaschinen kennen lernen. Wir beginnen mit der Definition von OrakelTuringmaschinen selbst.
67
Definition 5.1.1 Eine Orakle-TM (OTM) M ? ist eine Mehrband TM mit
einem speziellen Band, dem Orakel- oder Anfrageband und drei ausgezeichneten Zuständen q? , qja , qnein . Eine Orakel TM M ? arbeitet wie eine normale
TM mit zusätzlichen durch das Orakelband und die drei Zustände q? , qja , qnein
gegebenen Fähigkeiten, die folgendermaßen definiert sind:
Sei A ⊆ {0, 1}∗ eine beliebige Sprache. Mit M A bezeichnen wir dann die
mit dem Orakel oder der Sprache A ausgestattete Orakel-TM M ? . Auch M A
nennen wir eine Orakel TM. Befindet sich die OTM M A im Zustand q? , so
geht sie im nächsten Schritt in den Zustand qja , wenn das aktuell auf dem
Orakelband geschriebene Wort in der Sprache A enthalten ist. Ist das Wort
auf dem Orakelband nicht in A, so geht die OTM M A im nächsten Schritt
in den Zustand qnein . Die OTM M A kann also in einem Schritt entscheiden,
ob ein Wort in A liegt oder nicht.
Wir erlauben bei einer Orakel-TM auch Nichtdeterminismus, dann schreiben wir NOTM. Ist die OTM deterministisch, so schreiben wir DOTM.
Zur Vereinfachung werden wir im Rest dieses Abschnitts annehmen, dass
alle OTMs Eingabealphabet {0, 1} besitzen. Dieses vereinfacht einige Argumente.
OTMs sind kein realistisches Rechenmodell, da wir annehmen, dass eine
OTM M A in einem Schritt entscheiden kann, ob ein Element x in A enthalten ist oder nicht. Dabei kann es sich bei A aber auch um eine Sprache
wie SAT oder auch eine unentscheidbare Sprache handeln. Allerdings sind
OTMs wie NTMs ein wichtiges Hilfsmittel der Komplexitätstheorie.
Wir können nun für OTMs (sowohl DOTMs als auch NOTMs) den Zeitund Platzbedarf definieren. Dieses geschieht wie bei normalem TMs, wobei nur zu beachten ist, dass Orakelanfragen in einem Schritt beantwortet
werden und das Orakelband beim Platzbedarf mit berücksichtigt wird.
Definition 5.1.2 Eine Orakel-TM M ? hat Laufzeit O(t(n)), wenn Konstanten c > 0, n0 ∈ N existieren, so dass für alle Sprachen A und alle
w ∈ {0, 1}≥n0 , die TM M A Laufzeit höchstens c · t(|w|) besitzt. Analog hat
eine Orakel-TM M ? hat Platzbedarf O(s(n)), wenn Konstanten c > 0, n0
existieren, so dass für alle Sprachen A und alle w ∈ {0, 1}≥n0 , die OTM
M A Platzbedarf höchstens c · s(|w|) besitzt.
Mit Hilfe dieser Definition können wir nun auch für jede Sprache A Komplexitätsklassen definieren, die auf OTMs M A ausgestattet jeweils mit Orakel A aufbauen. Dieses Komplexitätsklassen werden häufig auch relativierte
Klassen oder relativierte Welten genannt.
68
Definition 5.1.3
L ist eine Sprache, die von einer polynomiell zeitbeschränkA
P := L
.
ten Orakel DTM M ? mit Orakel A entschieden wird


L ist eine Sprache, die von einer polynomiell 

.
N P A := L zeitbeschränkten Orakel NTM M ? mit Orakel


A entschieden wird


L ist eine Sprache, die von einer polynomiell 

PSPACE A := L platzbeschränkten Orakel DTM M ? mit Orakel
.


A entschieden wird
Betrachten wir einige Beispiele.
Beispiel 5.1.4 Seinen A, B Sprachen mit B ≤p A. Dann gilt B ∈ P A . Es
gilt dann auch B ∈ P Ā . Dieses folgt, da eine OTM M A mit Orakel A sowohl
A als auch das Komplement Ā von A in einem Schritt entscheiden kann.
Man beachte, dass B ≤p A im Allgemeinen nicht B ≤p Ā impliziert.
Das folgende Beispiel werden wir im nächsten Kapitel noch weiter vertiefen.
Beispiel 5.1.5 Es gilt
N P ⊆ P SAT
und
co-N P ⊆ P SAT .
Betrachten wir jetzt noch eine konkrete Sprache. Zwei Boolesche Formeln
φ, ψ heißen äquivalent genau dann, wenn φ ⇔ ψ immer wahr ist. Nun definieren wir
EQ := {(φ, ψ) φ, ψ sind äquivalente Boolesche Formeln}.
Es gilt EQ ∈ co-N P oder, äquivalent, EQ ∈ N P. Um zu zeigen, dass
(φ, ψ) ∈ EQ muss nur eine Belegung der Variablen in φ, ψ geraten werden,
so dass φ, ψ bei dieser Belegung unterschiedliche Wahrheitswerte liefern.
Einigen wir uns nun auf irgendeine standardisierte Art Boolesche Formeln zu kodieren, so können wir auch von der Größe oder Länge einer Booleschen Formel reden. Dann definieren wir
MF := φ es existiert keine kürzere zu φ äquivalente Formel ψ ,
und somit
MF := φ
es existiert eine kürzere zu φ äquivalente Formel ψ
69
.
Die folgende OTM zeigt nun MF ∈ N P SAT .
? :
MMF
Bei Eingabe φ
1. Rate nichtdeterministisch eine Boolesche Formel ψ.
2. Teste, ob ψ kürzer ist als φ. Wenn nicht, lehne ab.
3. Berechne ¬(φ ⇔ ψ), schreibe diese Formel
auf das Orakelband und gehe in Zustand q? .
4. Aus Zustand qnein gehe in qaccept , aus Zustand qja
gehe in Zustand qreject .
SAT ) = MF, beobachtet man zunächst, dass
Um zu sehen, dass L(MMF
(φ, ψ) ∈ EQ genau dann, wenn ¬(φ ⇔ ψ) 6∈ SAT. Denn wenn φ und ψ
äquivalent sind, gibt es keine Belegung, die ¬(φ ⇔ ψ) erfüllt. Damit ist
φ ∈ MF genau dann, wenn es eine kürzere Formel ψ gibt, so dass ¬(φ ⇔
SAT überprüft.
ψ) 6∈ SAT. Diese Eigenschaft wird nun genau in der NOTM MMF
5.2
Orakel-Turingmaschinen und die Grenzen der
Diagonalisierung
?
Nun wollen wir die Frage beantworten, ob mit Diagonalisierung die P = N PFrage beantwortet werden kann. Im nächsten Satz werden wir zeigen, dass
es Orakel A, B gibt, so dass die relativierten Komplexitätsklassen P A und
N P A identisch sind, die relativierten Komplexitätsklassen P B und N P B
jedoch verschieden sind. Es kann daher P =
6 N P mit keiner Beweistechnik
bewiesen werden, die sich unmittelbar auf relativierte Komplexitätsklassen
übertragen lässt. Denn in diesem Fall müsste P B 6= N P B für alle Sprache
B gelten. Analoges gilt für Beweistechniken, die P = N P zeigen sollen.
Nun lässt sich aber die Diagonalisierung häufig leicht auf relativierte Komplexitätsklassen übertragen. Daher wird allgemein angenommen, dass mit
?
Hilfe von Diagonalisierung die P = N P-Frage nicht beantwortet werden
kann.
Satz 5.2.1 Es existieren Orakel A, B, so dass
1. P A = N P A
2. P B 6= N P B
Beweis: In einer Übung wird gezeigt, dass zum Beispiel für die Sprache
QBF gilt
P QBF = N P QBF .
70
Wir wollen nun eine Sprache B konstruieren, so dass P B 6= N P B . Hierzu
zunächst folgende allgemeine Konstruktion. Sei B eine beliebige Sprache.
Dann bezeichnen wir mit LB die Sprache
LB := {1n |n ∈ N, ∃x ∈ B mit |x| = n}.
Offensichtlich gilt für alle Sprachen B
LB ∈ N P B .
Wir konstruieren nun eine Sprache B mit LB 6∈ P B . Sei hierzu M1? , M2? , . . .
eine Aufzählung aller Orakel DTMs mit polynomieller Laufzeit. Genauer sei
die Laufzeit von Mi? bei Eingaben der Länge n beschränkt durch nei . Hierbei
beachte man, dass wir die Laufzeit einer Orakel DTM M ? unabhängig vom
verwendeten Orakel A definiert haben. Wir definieren nun induktiv endliche
Mengen B0 , B̃0 , B1 , B̃1 , . . . , mit
Bj ⊆ Bi
und B̃j ⊆ B̃i
für alle j < i,
(5.1)
und
Bi ∩ B̃i = ∅ für alle i.
(5.2)
Zunächst setzen wir
B0 = B̃0 = ∅.
Seien Bj , B̃j , j = 0, . . . , i − 1 mit den beiden Eigenschaften in (5.1) und
in (5.2) bereits definiert. Wir müssen nun Bi , B̃i definieren. Dazu setzen wir
ni := min n 2n > nei , und n > |x| für alle x in Bi−1 ∪ B̃i−1 .
Weiter setzen wir Xi := ∅. Zur Definition von Bi , B̃i simulieren wir die
Maschine Mi? mit Eingabe 1ni . Da wir noch kein Orakel spezifiziert haben,
müssen wir angeben, wie auf die Orakelanfragen von Mi? reagiert wird. Dazu
legen wir fest:
• Stellt Mi? Orakelanfrage x, wobei x ∈ Bi−1 , so geht die Simulation von
Mi? in den Zustand qja .
• Stellt Mi? Orakelanfrage x, wobei x ∈ B̃i−1 , so geht die Simulation von
Mi? in den Zustand qnein .
• Bei allen anderen Orakelanfragen x, geht die Simulation von Mi? in
den Zustand qnein und wir setzen Xi := Xi ∪ {x}.
71
Am Ende dieser Simulation von Mi? mit Eingabe 1ni beobachten wir, ob Mi?
mit den oben definierten Antworten auf die Orakelanfragen das Element 1ni
akzeptiert. Akzeptiert Mi? das Element 1ni , so setzen wir
Bi := Bi−1
und B̃i := Bi−1 ∪ {0, 1}ni .
Wird hingegen am Ende der Simulation 1ni abgelehnt, so wählen wir ein
wi ∈ {0, 1}ni \ Xi und setzen
Bi := Bi−1 ∪ {wi } und B̃i := Bi−1 ∪ Xi .
Solch ein wi existiert, da in der Simulation von Mi? höchstens nei i Orakelanfragen gestellt werden können und nach Definition von ni gilt 2ni > nei .
Da ni größer ist als die Länge jedes Elements aus der Vereinigung der
Bj , B̃j , j = 0, . . . , i − 1, sind unsere obigen Regeln für die Beantwortung
der Orakelanfragen konsistent und auch die Mengen Bi und B̃i erfüllen die
Eigenschaften in (5.1) und in (5.2).
Wir definieren nun
[
B :=
Bi .
i≥1
Aus der Definition der Mengen Bi folgt nun
1ni ∈ L(MiB ) ⇔ 1ni 6∈ LB .
Gilt nämlich 1ni 6∈ L(MiB ), so wird die oben beschriebene Simulation von
Mi? im ablehnenden Zustand enden. Dann aber führt unsere Wahl von wi zu
1ni ∈ LB . Gilt andererseits 1ni ∈ L(MiB ), so wird auch die oben beschriebene Simulation von Mi? im akzeptierenden Zustand enden. Aber dann sorgt
/ LB . Damit kann LB durch
die Setzung von B̃i = B̃i−1 ∪ {0, 1}ni für 1ni ∈
keine polynomiell zeitbeschränkte Orakel DTM mit Orakel B entschieden
werden. Es gilt also LB 6∈ P B .
5.3
Die Polynomialzeithierarchie
Um die Klassen der Polynomialzeithierarchie zu definieren, gehen wir zurück
zu Orakelmaschinen. Sei C eine beliebige Klasse von Sprachen, wir setzen
dann
es existiert eine polynomiell zeitbeschränkte
DOTM M ?
P(C) := L
.
und eine Sprache A ∈ C mit L M A = L
72
Analog erhalten wir
?
es existiert eine polynomiell zeitbeschränkte
NOTM
M
N P(C) := L
.
und eine Sprache A ∈ C mit L M A = L
Aus der Definition von Orakelmaschinen erhalten wir N P∪co-N P ⊆ P(N P).
Auf Seite 70 haben wir außerdem gesehen, dass MF ∈ N P(N P), denn wir
haben eine nichtdeterministische polynimiell zeitbeschränkte NOTM mit
Orakel SAT konstruiert, die MF entscheidet. Jetzt können wir die Klassen
der Polynomialzeithierarchie definieren.
Definition 5.3.1 Wir setzen Σ0 = Π0 = ∆0 = P und definieren dann
induktiv für k ∈ N
1. Σk = N P(Σk−1 )
2. Πk = co−Σk
3. ∆k = P(Σk−1 )
Schließlich setzen wir
PH :=
[
Σk .
k∈N
Es gilt also ∆1 = P, Σ1 = N P und Π1 = co-N P. Das folgende Lemma
fasst ohne Beweis (Übung) einige wichtige Relationen zwischen den Klasse
der Polynomialzeithierarche zusammen.
Lemma 5.3.2 Für alle k ∈ N gilt
1. ∆k = co-∆k ⊆ Σk ∩ Πk ⊆ Σk ∪ Πk ⊆ Σk+1
2. Σk ∪ Πk ⊆ ∆k+1
Insgesamt erhält man für die Polynomialzeithierarchie ein Bild wie in Abbildung 5.1. Kanten zwischen zwei Klassen bedeuten dabei Inklusion.
Der folgende Satz beschreibt eine alternative Charakterisierung der Klassen der Polynomialzeithierarchie. Dieser Satz verallgemeinert die Charakterisierung von N P aus Satz 3.1.4 und von co-N P aus Korollar 3.1.5.
Satz 5.3.3 Eine Sprache L liegt in Σk genau dann, wenn es ein Polynom
p : N → N und eine Sprache A ∈ Πk−1 gibt, so dass
L = {x ∃w ∈ {0, 1}p(|x|) : (x, w) ∈ A}.
73
Abbildung 5.1: Die Polynomialzeithierarchie
Beweis: Sei zunächst die Sprache L derart, dass ein Polynom p : N → N
und eine Sprache A ∈ Πk−1 existieren mit
L = {x ∃w ∈ {0, 1}p(|x|) : (x, w) ∈ A}.
Wir betrachten nun die folgende ONTM ML? mit Orakel Ā.
ML? :
Bei Eingabe x
1. Wähle w nichtdeterminitisch..
2. Schreibe (x, w) auf das Orakelband.
3. Aus qnein gehe in akzeptierenden Zustand,
aus qja gehen in ablehnenden Zustand.
74
Aus der Definition von L folgt, L(MLĀ ) = L. Außerdem gilt Ā ∈ Σk−1 ,
da A ∈ Πk−1 . Insgesamt folgt L ∈ Σk .
Sei nun umgekehrt L ∈ Σk . Wir müssen ein Polynom p und eine Sprache
A ∈ Πk−1 konstruieren, so dass
L = {x ∃w ∈ {0, 1}p(|x|) : (x, w) ∈ A}.
Wir beweisen dieses mit vollständiger Induktion über k. Für k = 1 ist aber
Σk = N P und die Aussage folgt unmittelbar aus Satz 3.1.4. Sei nun die
Aussage bereits für k − 1 bewiesen. Wir wollen sie auch für k beweisen.
Nach Voraussetzung liegt L ∈ Σk . Somit gibt es eine polynomiell zeitbeschränkte NOTM M ? und eine Sprache K ∈ Σk−1 mit L = L(M K ). Da
K ∈ Σk−1 , existiert nach Induktionsvorausssetzung ein Polynom q : N → N
sowie eine Sprache S ∈ Πk−2 mit
K = {z | ∃w ∈ {0, 1}q(|z|) : (z, w) ∈ S}.
(5.3)
Seien x, y ∈ {0, 1}∗ beliebig. Wir fassen dabei y auf als die Beschreibung
einer Berechnung von M K bei Eingabe x. Dabei beschreibt y nicht nur die
nichtdeterministischen Wahlen von M K , sondern auch die Orakelanfragen
die M K stellt. Außerdem werden auch Antworten auf die Orakelanfragen
protokolliert. Diese in y protokollierten Antworten müssen allerdings nicht
korrekt sein. Seien nun v1 , . . . , vs die Anfragen in y, für die in y die Antwort
qja protokolliert ist und u1 , . . . , ut die Anfragen aus y, für die in y die Antwort qnein protokolliert ist. Wir sagen, dass y eine akzeptierende Simulation
von M K bei Eingabe x ist, wenn der durch y beschriebenene Berechnungspfad von M K bei Eingabe x ein akzeptierender Berechnungspfad ist. Dabei
werden bei auf dem Berechnungspfad die Orakelanfragen gemäß den in y
protokollierten Antworten beantwortet. Wir setzen
y beschreibt eine akzeptieren Simulation
B := (x, y)
.
von M K bei Eingabe x
Da die NOTM M ? polynomiell zeitbeschränkt ist, gilt B ∈ P. Außerdem
gibt es ein Polynom h : N → N, so dass akzeptierende Simulationen von
M K bei Eingabe x durch y ∈ {0, 1}h(|x|) beschrieben werden können. Nun
gilt weiter
x ∈ L ⇔ ∃y ∈ {0, 1}h(|x|) : y beschreibt eine akzeptierende
Simulation von M K bei Eingabe x und
die in y protokollierte Antworten sind korrekt. (5.4)
75
Nun sind die Antworten qja auf die Frage vi , i = 1, . . . , s genau dann korrekt,
wenn vi ∈ K. Nach (5.3) ist dieses genau dann der Fall, wenn es ein wi gibt
mit (vi , wi ) ∈ S. Die Antworten qnein auf die Fragen ui , i = 1, . . . , t, sind
genau dann korrekt, wenn ui ∈ K̄. Wir definieren


(x, y) ∈ B, für die in y protokollierten mit qnein 







beantworteten Orakelanfragen u1 , . . . , ut gilt


A := (x, y, w1 , . . . , ws ) ui ∈ K̄, i = 1, . . . , t und für die in y protokol.




lierten
mit
q
beantworteten
Orakelanfragen


ja




v1 , . . . , vs gilt (vi , wi ) ∈ S, i = 1, . . . , s
Wir behaupten, A ∈ Πk−1 . Um dieses zu sehen, zeigen wir Ā ∈ Σk−1 .
Nach Definition gilt aber (x, y, w1 , . . . , ws ) ∈ Ā genau dann, wenn eine der
folgenden drei Bedingungen erfüllt ist
1. (x, y) ∈ B̄,
2. es existiert ein i ∈ {1, . . . , t mit ui ∈ K,
3. es existiert ein i ∈ {1, . . . , s} mit(vi , wi ) ∈ S̄.
Weiter gilt
• B̄ ∈ Σk−1 , da B ∈ P;
• K ∈ Σk−1 nach Voraussetzung;
• S̄ ∈ Σk−1 , da S ∈ Πk−2 ⊆ Πk−1 .
Damit liegt auch Ā in Σk−1 und somit A ∈ Πk−1 . Mit (5.4) erhalten wir
L := {x|∃y, w1 , . . . , ws : (x, y, w1 , . . . , ws ) ∈ A}.
Da die Länge von y, w1 , . . . , ws außerdem polynomiell durch die Länge von
x beschränkt ist, folgt der Satz.
Aus Satz 5.3.3 und der Definition von Πk erhalten wir unmittelbar
Korollar 5.3.4 Eine Sprache L liegt in Πk genau dann, wenn es ein Polynom p : N → N und eine Sprache A ∈ Σk−1 gibt, so dass
L = {x ∀w ∈ {0, 1}p(|x|) : (x, w) ∈ A}.
Aus Satz 5.3.3 und Korollar 5.3.4 erhalten wir durch vollständige Induktion
über k die folgende Charakterisierung der Klassen innerhalb der Polynomialzeithierarchie.
76
Korollar 5.3.5
1. Eine Sprache L liegt in Σk genau dann, wenn es ein
Polynom p : N → N und eine Sprache A ∈ P gibt, so dass
∃w1 ∈ {0, 1}p(|x|) ∀w2 ∈ {0, 1}p(|x|) · · · Qk wk ∈ {0, 1}p(|x|) :
L= x
,
(x, w1 , w2 , . . . , wk ) ∈ A
dabei ist Qk = ∃, wenn k ungerade ist, sonst gilt Qk = ∀.
2. Eine Sprache L liegt in Πk genau dann, wenn es ein Polynom p : N →
N und eine Sprache A ∈ P gibt, so dass
∀w1 ∈ {0, 1}p(|x|) ∃w2 ∈ {0, 1}p(|x|) · · · Qk wk ∈ {0, 1}p(|x|) :
,
L= x
(x, w1 , w2 , . . . , wk ) ∈ A
dabei ist Qk = ∀, wenn k ungerade ist, sonst gilt Qk = ∃.
Dieses Korollar hat weitere interessante Konsequenzen, die wir nun formulieren. Auf die Beweise wird in den Übungen genauer eingegangen.
Korollar 5.3.6 PH ⊆ PSPACE.
Korollar 5.3.7 Existiert ein k ∈ N mit Σk = Πk , so gilt Σl = Πl = Σk =
Πk für alle l ≥ k.
Korollar 5.3.8 Gilt P = N P, so folgt PH = P. Gilt N P = co-N P, so
folgt PH = N P.
77
Kapitel 6
Probabilistische
Komplexitätsklassen
Im letzten Kapitel des Skripts werden wir uns mit probabilistischen Algorithmen und Rechenmodellen befassen. Bei Berechnungen mit Hilfe probabilistischer Algorithmen werden wir Fehler zulassen. Je nachdem, ob wir
einseitige oder beidseitige Fehler erlauben, erhalten wir unterschiedliche Rechenmodelle. Die Laufzeit wird dabei immer (erwartet) polynomiell sein.
Wir werden auch probabilistische Komplexitätsklassen einführen. Nichtdeterministische Rechenmodelle und Klassen werden als Extremfälle probabilistischer Berechnungen auftauchen. Der Versuch, probabilistische Klassen
mit den Klassen P und N P zu vergleichen, wird uns zurück zur Polynomialzeithierarchie führen.
6.1
Einfache probabilistische Algorithmen
In diesem Abschnitt werden wir zur Vorbereitung auf die Definition probabilistischer Komplexitätsklassen einen einfachen probabilistische Algorithmen
kennen lernen. Dieser Algorithmus entscheidet, ob das Produkt zweier Matrizen A und B sich von eine dritten Matrix C unterscheidet. Um Probleme
mit der Darstellung der Matrixeinträge zu vermeiden, arbeiten wir über
dem Körper Z2 mit zwei Elementen. Der Algorithmus kann leicht auf andere Körper erweitert werden. Hier sind zunächst die Definitionen der für
diesen Algorithmus relevanten Sprachen. Die Sprache MM besteht aus allen
Tripeln (A, B, C) ∈ Z2n×n × Z2n×n × Z2n×n mit A · B = C, dabei ist n eine
beliebige natürliche Zahl.
MM := (A, B, C) ∈ Z2n×n × Z2n×n × Z2n×n n ∈ N, A · B = C
78
Wir sind allerdings hauptsächlich am Komplement MM von MM interessiert.
Dieses Komplement ist definiert als
MM := (A, B, C) ∈ Z2n×n × Z2n×n × Z2n×n n ∈ N, A · B 6= C
Natürlich kann sowohl MM als auch MM in Zeit O(n3 ) entschieden, indem
das Produkt A · B explizit berechnet und dann mit C verglichen wird. Die
folgende TM wird in gewisser Weise ebenfalls die Sprache MM entscheiden.
Die TM hat nur quadratische Laufzeit.
MMM :
Bei Eingabe A, B, C ∈ Z2n×n
1. Wähle x ∈ Zn2 zufällig gleichverteilt.
2. Berechne y := B · x, z := A · y und w := C · x.
3. Akzeptiere, falls z 6= w, sonst lehne ab.
Die Laufzeit von MMM ist, wie man leicht sieht, O(n2 ). D.h., da jede
der drei Matrizen selber bereits Größe n2 besitzt, ist die Laufzeit linear in
der Eingabegröße. Im ersten Schritt der Beschreibung von MMM hätten wir
auch schreiben können Wähle ein x nichtdeterministisch.“ Allerdings ist die
”
Formulierung zufällig gleichverteilt für unsere Zwecke angemessener. MMM
ist eine NTM, die die Sprache MM entscheidet. Allerdings haben wir im
Fall (A, B, C) ∈ MM nicht nur mindestens eine akzeptierende Berechnung.
Vielmehr ist mindestens die Hälfte aller Berechnungen akzeptierend. Dieses
ist die Aussage des folgenden Lemmas
Lemma 6.1.1 Für alle A, B, C ∈ Z2n×n gilt
1. Wenn (A, B, C) 6∈ MM, dann lehnt MMM das Tripel (A, B, C) ab.
2. Wenn (A, B, C) ∈ MM, dann akzeptiert MMM das Tripel (A, B, C) mit
Wahrscheinlichkeit 1/2, wobei die Wahrscheinlichkeit über die zufällige
Wahl von x genommen ist.
Beweis:
1. Folgt unmittelbar aus der Arbeitsweise von MMM , da in diesem Fall
A · B · x = C · x für alle x ∈ Zn2 .
2. Sei D := A · B − C ∈ Z2n×n . Es gilt D 6= 0. Damit ist der Kern
von D nicht der ganze Raum Zn2 . Dann aber kann der Kern von D
79
höchstens (n − 1)-dimensional sein, insbesondere enthält der Kern von
D höchstens 2n−1 Elemente. Schließlich gilt
Prn MMM akzeptiert (A, B, C) =
x∈Z2
1
2n−1
Prn x liegt nicht im Kern von D = A · B − C ≥ 1 − n = .
x∈Z2
2
2
6.2
Probabilistische Komplexitätsklassen
Wir werden probabilistische Berechnungen als Spezialfall nichtdeterministischer Berechnungen auffassen. Dazu benötigen wir zunächst eine (nicht
wesentliche) Einschränkung bei NTMs.
Definition 6.2.1 Sei N = (Q, Σ, Γ, δ) eine NTM. N heißt balanciert, wenn
es eine Funktion f : N → N gibt, so dass für alle x ∈ Σ∗ die möglichen Berechnungen von N bei Eingabe x immer die Länge f (|x|) besitzen. Berechnungspfade von N bei Eingabe x werden dann mit Elementen aus {0, 1}f (|x|)
identifiziert.
Jede NTM kann ersetzt werden durch eine balancierte NTM, die die gleiche
Sprache akzeptiert und etwa dieselbe Laufzeit besitzt. Insbesondere kann
jede NTM mit polynomieller Laufzeit durch eine balancierte NTM mit polynomieller Laufzeit simuliert werden. Daher werden wir in diesem Abschnitt
immer annehmen, dass NTMs balanciert sind. Ist die NTM N = (Q, Σ, Γ, δ)
balanciert und ist p : N → N ein Polynom, so dass für alle x ∈ Σ∗ die NTM
N Laufzeit p(|x|) hat, so nennen wir N p-balanciert.
Definition 6.2.2 Die Klasse RP besteht aus allen Sprachen L, so dass
es ein Polynom p : N → N und eine p-balancierte NTM N mit folgenden
Eigenschaften gibt
1. Ist w 6∈ L, so lehnen alle Berechnungspfade von N bei Eingabe w ab.
2. Ist w ∈ L, so akzeptieren mindestens die Hälfte aller Berechnungspfade, es gibt dann also mindestens 2p(|w|)−1 akzeptierende Berechnungspfade.
80
Wir können die Bedingungen an die NTM N aus Definition 6.2.2 auch anders
formulieren:
1. Ist w 6∈ L, so gilt
Pr
y∈{0,1}p(|x|)
(N akzeptiert w auf Berechnungspfad y) = 0.
2. Ist w ∈ L, so gilt
Pr
y∈{0,1}p(|x|)
1
(N akzeptiert w auf Berechnungspfad y) ≥ .
2
Dabei sind die Wahrscheinlichkeiten jeweils über die zufällige gleichverteilte
Wahl eines Berechnungspfades genommen. In der NTM MMM können wir
nun die zufällige Wahl von x ∈ Zn2 als zufällige Wahl eines Berechnungspfades einer NTM auffassen. Wir haben damit also im vorangegangenen
Abschnitt mit Hilfe der NTM MMM gezeigt, dass MM ∈ RP.
Aus der Definition von RP ergibt sich unmittelbar P ⊆ RP. Außerdem
gilt auch RP ⊆ N P, denn wenn mindestens die Hälfte aller Berechnungspfade akzeptierend sind, gibt es auch mindestens einen. Das genau Verhältnis
von P, RP und N P ist (natürlich) nicht bekannt.
In der Definition von RP gibt es ähnlich wie bei N P eine Asymmetrie
zwischen Akzeptieren und Ablehnen bzw. zwischen Worten in einer Sprache
L ∈ RP und den Worten, die nicht in L liegen. So kann man bei einer
NTM, die eine Sprache L in RP definiert, der Antwort akzeptiere“ immer
”
trauen. Der Antwort lehne ab“ kann hingegen nicht getraut werden. Dieses
”
ist analog wie bei N P. Aus diesem Grunde ist auch nicht klar, ob mit einer
Sprache auch ihr Komplement in RP liegt. Damit ist das Verhältnis zwischen
RP und co-RP nicht klar. Dabei liegt eine Sprache L liegt genau dann im
Komplement co-RP der Klasse RP, wenn es eine p-balancierte NTM N mit
folgenden Eigenschaften gibt
1. Ist w ∈ L, so akzeptieren alle Berechnungspfade von N bei Eingabe
w.
2. Ist w 6∈ L, so lehnen mindestens die Hälfte aller Berechnungspfade ab,
es gibt dann also mindestens 2p(|w|)−1 ablehnende Berechnungspfade.
Bei einer NTM N , die eine Sprache in co-RP entscheidet, kann also den
ablehnenden Antworten nicht jedoch den akzeptierenden Antworten getraut
werden. Interessant sind die Sprachen im Durchschnitt von RP und co-RP.
81
Definition 6.2.3 Die Klasse ZPP besteht aus allen Sprachen im Durchschnitt RP ∩ co-RP.
Man kann sich leicht überlegen, dass eine Sprache genau dann in ZPP liegt,
wenn es eine NTM N mit erwartet polynomieller Laufzeit gibt, die L entscheidet. Dabei sind die Antworten von N immer korrekt. Genaueres hierzu
kann in den Büchern von Papadimitriou und Sipser nachgelesen werden.
Sowohl bei RP als auch bei co-RP haben wir nur einen einseitigen Fehler
zugelassen. Damit war entweder nur akzeptierenden oder nur ablehnenden
Antworten zu trauen. In der folgenden Klasse lassen wir nun einen beidseitigen Fehler zu.
Definition 6.2.4 Die Klasse BPP besteht aus allen Sprachen L, so dass
es ein Polynom p : N → N und eine p-balancierte NTM N mit folgenden
Eigenschaften gibt
1. Ist w 6∈ L, so akzeptieren höchstens 1/4 aller Berechnungspfade ab, es
gibt dann also höchstens 41 2p(|w|) ablehnende Berechnungspfade.
2. Ist w ∈ L, so akzeptieren mindestens 3/4 aller Berechnungspfade, es
gibt dann also mindestens 43 2p(|w|) akzeptierende Berechnungspfade.
Wie bei RP können wir die Bedingungen an die NTM N aus Definition 6.2.4
auch durch Wahrscheinlichkeiten ausdrücken:
1. Ist w 6∈ L, so gilt
Pr
y∈{0,1}p(|x|)
1
(N akzeptiert w auf Berechnungspfad y) ≤ .
4
2. Ist w ∈ L, so gilt
Pr
y∈{0,1}p(|x|)
3
(N akzeptiert w auf Berechnungspfad y) ≥ .
4
BPP wird häufig als die Klassen aller effizient lösbaren Problemen angesehen. Dies mag zunächst angesichts der ober angeführten Wahrscheinlichkeiten etwas überraschend sein. Jedoch kann mit den so genannten ChernoffSchranken der Wahrscheinlichkeitstheorie folgendes Lemma gezeigt werden.
Satz 6.2.5 Eine Sprache L liegt genau dann in BPP, wenn es ein Polynom
p : N → N und eine p-balancierte NTM N mit folgenden Eigenschaften gibt
82
1. Ist w ∈ L, so besitzt N bei Eingabe w mindestens 1 − 2−|w| 2p(|w|)
akzeptierende Berechnungspfade.
2. Ist w 6∈ L, so besitzt N bei Eingabe w höchstens 2−|w| 2p(|w|) akzeptierende Berechnungspfade.
Wir können also die Fehlerwahrscheinlichkeiten für Sprachen in BPP sehr
klein machen. Damit spielen dann die Fehler fast keine Rolle mehr. Wir
entscheiden dann also Sprachen in polynimieller Zeit und machen dabei nur
vernachlässigbar kleine Fehler.
Aus der Definition von BPP folgt P ⊆ BPP. Ob BPP in N P enthalten
ist, ist unbekannt. Wollen wir BPP mit deterministischen und nichtdeterministischen Klassen vergleichen, müssen wir zur so genannten Polynomialzeithierarchie übergehen.
6.3
BPP und die Polynomialzeithierarchie
Ziel dieses Abschnitts ist der Beweis des folgenden Satzes.
Satz 6.3.1 BPP ⊆ Σ2 .
Beweis: Sei L ∈ BPP. Nach Definition von BPP und Satz 6.2.5 existiert
dann ein Polynom p : N → N und eine p-balancierte NTM N mit
1. Ist w ∈ L, so besitzt N bei Eingabe w mindestens 1 − 2−|w| 2p(|w|)
akzeptierende Berechnungspfade.
2. Ist w 6∈ L, so besitzt N bei Eingabe w höchstens 2−|w| 2p(|w|) akzeptierende Berechnungspfade.
Sei x mit |x| = n. Wir können dann Berechnungspfade von N bei Eingabe
x mit Elementen aus {0, 1}p(n) identifizieren. Wir bezeichnen weiter mit
p(n) w ist akzeptierender Berechnungspfad von N
A(x) := (w ∈ {0, 1}
.
bei Eingabe x
Damit gilt also
und
x ∈ L ⇒ |A(x)| ≥ 1 − 2−n 2p(n)
x 6∈ L ⇒ |A(x)| ≤ 2−n 2p(n) .
83
Sind y, z ∈ {0, 1}p(n) , so bezeichnen wir mit y ⊕z das komponentenweise Xor
von y und z. Außerdem setzen wir für ein beliebiges Element t ∈ {0, 1}p(n)
t ⊕ A(x) := {t ⊕ z v ∈ A(x)}.
Sind nun t1 , . . . , tp(n) ∈ {0, 1}p(n) und ist x 6∈ L, so gilt
p(n)
[
i=1
ti ⊕ A(x) ≤ p(n)2−n 2p(n) .
Wir nehmen nun an, dass für alle n gilt p(n) < 2n . Für n groß genug ist
dieses sicherlich der Fall. Die Annahme, dass die Ungleichung für alle n gilt,
vereinfacht die Notation etwas. Damit gilt


p(n)
[
x 6∈ L ⇒ ¬ ∃t1 . . . , tp(n) ∈ {0, 1}p(n) :
ti ⊕ A(x) = {0, 1}p(n)  . (6.1)
i=1
Wir wollen nun zeigen, dass im Fall x ∈ L Elemente t1 , . . . , tp(n) existieren
mit
p(n)
[
i=1
ti ⊕ A(x) = {0, 1}p(n) .
(6.2)
Wir zeigen dieses, indem wir zeigen, dass für eine zufällige Wahl von t1 , . . . , tp(n)
mit Wahrscheinlichkeit echt größer 0 die Gleichung (6.2) erfüllt ist.
Seien also t1 , . . . , tp(n) ∈ {0, 1}p(n) unabhängig gleichverteilt gewählt.
Weiter sei y ∈ {0, 1}p(n) fest. Dann gilt y 6∈ ti ⊕ A(x) ⇔ ti 6∈ y ⊕ A(x). Da
aber das Komplement von y ⊕ A(x) für x ∈ L höchstens 2−n 2p(n) Element
enthält, gilt über die zufällige Wahl von ti für alle i = 1, . . . , p(n)
Pr y 6∈ ti ⊕ A(x) = P r ti 6∈ y ⊕ A(x) le2−n .
Da die ti unabhängig gewählt werden, folgt weiter
p(n)
Pr y 6∈
[
i=1
ti ⊕ A(x) ≤ 2−np(n) .
Damit können wir für x ∈ L schließen
p(n)
p(n)
Pr ∃y ∈ {0, 1}
: y 6∈
[
i=1
ti ⊕ A(x) ≤ 2n · 2−np(n) = 2−n(p(n)−1) < 1
84
oder
p(n)
Pr
[
i=1
ti ⊕ A(x) = {0, 1}p(n) > 0.
Damit erhalten wir
p(n)
p(n)
x ∈ L ⇒ ∃t1 . . . , tp(n) ∈ {0, 1}
:
[
i=1
ti ⊕ A(x) = {0, 1}p(n) .
(6.3)
Wir können nun (6.1) und (6.3) zusammenfassen durch
2
x ∈ L ⇔ ∃t = (t1 , . . . , tp(n) ) ∈ {0, 1}p(n) ∀y ∈ {0, 1}p(n) :
p(n)
y∈
[
i=1
ti ⊕ A(x). (6.4)
Betrachten nun die Sprache


p(n)


[
2
A := (x, y, t) ∈ {0, 1}n×p(n)×p(n) t = (t1 , . . . , tp(n) ), y ∈
ti ⊕ A(x) .


i=1
Die Sprache A liegt in P, denn um zu entscheiden, ob ein Tripel (x, y, t)
mit t = (t1 , . . . , tp(n) ) in A liegt, muss die NTM N nur mit Eingabe x und
den durch y ⊕ ti , i = 1, . . . , p(n), gegebenen Berechnungspfaden simuliert
werden. Dieses sind aber insgesamt nur polynomiell viele Berechnungen der
polynomiell zeitbeschränkten NTM N . Wir können (6.4) umschreiben zu
2
x ∈ L ⇔ ∃t = (t1 , . . . , tp(n) ) ∈ {0, 1}p(n) ∀y ∈ {0, 1}p(n) : (x, y, t) ∈ A.
Da A ∈ P, folgt mit Korollar 5.3.5, dass L in Σ2 liegt.
Korollar 6.3.2 BPP ⊆ Σ2 ∩ Π2 .
Beweis: Da BPP unter Komplementbildung abgeschlossen ist, d.h. BPP =
co-BPP, folgt aus BPP ⊆ Σ2 auch BPP ⊆ Π2 und somit BPP ⊆ Σ2 ∩Π2 .
Korollar 6.3.2 ist etwas enttäuschend. Vermutet werden auch viel stärkere
Resultate. Allgemein angenommen wird BPP ⊆ N P. Außerdem gibt es
Indizien, die sogar auf BPP = P hindeuten.
85
Herunterladen