Computational Complexity 1 Einleitung

Werbung
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
1 Einleitung
Motivation
Computational Complexity
◮
Andreas Jakoby
◮
[email protected]
Sprechstunde: Dienstag 10:30-12:00
Sommer Semester 08
◮
Eine wesentliche Aufgabe der Informatik ist die Analyse von
Problemen mit der Zielsetzung eine effiziente algorithmische Lösung
für diese Probleme zu entwickeln.
Die erreichbare Effizienz einer algorithmischen Lösung hängt oft vom
Typ des Problems ab. Für manche Probleme können wir nicht
erwarten eine effiziente Lösung zu finden.
Abhängig von der erreichbaren Effizienz einer algorithmischen
Lösung, können wir Probleme verschiedenen Klassen – sogenannten
Komplexitätsklassen – zuordnen.
1
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
zentrale Methoden zur Analyse von Problemen
wichtige Ressourcen
wichtige Komplexitätsklassen
◮
Beispiele für Probleme und deren Analyse
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Scheinvergabe:
◮ Um einen Schein für diese Vorlesung zu erhalten, ist die erfolgreiche
Teilnahme an der abschließenden Prüfung erforderlich.
◮ Um zur Prüfung zugelassen zu werden, ist eine erfolgreiche
Teilnahme an den Übungen erforderlich. Die Kriterien für eine
erfolgreiche Übungsteilnahme sind:
Ziele der Vorlesung:
◮
2
alle bis auf maximal zwei Übungsblätter wurden erfolgreich
bearbeitet — ein Übungsblatt gilt als erfolgreich
bearbeitet, wenn auf diesem Blatt mindestens 50% der
Punkte erreicht wurden und diese Lösungen auch von dem
Studierenden vorgetragen werden können.
3
4
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
2 Die Turing-Maschine
2.1 Das Modell der Turing-Maschine
Definition 1 [Turing-Maschine (TM)] (Teil 2)
Zunächst wollen wir das Maschinenmodell der Turing-Maschine
einführen, die uns über wesentliche Teile dieser Vorlesung begleiten wird.
◮
Definition 1 [Turing-Maschine (TM)]
◮
Eine Speicherzelle ist ein Medium, das ein Symbol eines endlichen
Alphabets speichern kann.
◮
Ein Kopf ist eine Vorrichtung, die auf eine Speicherzelle zugreifen
kann. Je nach Spezifikation kann ein Kopf den Inhalt einer
Speicherzelle lesen oder/und verändern (neu beschreiben).
Eine unendliche Folge von Speicherzellen heißt ein einseitig
unendliches lineares Band.
◮
◮
Für die Eingabe und die Ausgabe besitzt eine TM (in der Regel) je
ein einseitig unendliches lineares Band, ein Eingabeband mit einem
Eingabekopf und ein Ausgabeband mit einem Ausgabekopf. Der
Eingabekopf ist eine reiner Lesekopf – er kann den Inhalt einer
Speicherzelle nicht verändern – und der Ausgabekopf ist eine reiner
Schreibkopf – er kann den Inhalt einer Speicherzelle nicht lesen.
Die Eingabe für eine TM befindet sich vor der Berechnung auf den
ersten n Speicherzellen des Eingabebands.
5
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
6
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 1 [Turing-Maschine (TM)] (Teil 4)
◮
Definition 1 [Turing-Maschine (TM)] (Teil 3)
◮ Ein lineares Band nennen wir Zweiweg-Band, wenn sich der
dazugehörige Kopf sowohl nach rechts als auch nach links bewegen
kann, dass heißt, er kann sich von der i-ten Speicherzelle sowohl auf
die (i + 1)-te als auch auf die (i − 1)-te Speicherzelle bewegen.
◮
◮
Eine Turing-Maschine (TM) M beschreiben wir durch ein Tupel
M = (G , Σ, ΣE , ΣA , Q, q0 , Qf , ∆).
◮
◮
Kann sich der Kopf nur nach rechts bewegen, so nennen wir das
Band ein Einweg-Band.
Das Ausgabeband ist in der Regel ein Einweg-Band. Beim
Eingabeband unterscheiden wir zwischen einer TM mit Einweg- und
einer TM mit Zweiweg-Band.
◮
◮
◮
G bezeichnet den Speicher der Maschine.
Σ bezeichnet das (Arbeits-)Alphabet, ΣE das Eingabe- und ΣA das
Ausgabealphabet. Jedes dieser Alphabete beinhaltet das
Blanksymbol β.
Q bezeichnet die Menge der Zustände.
q0 ∈ Q bezeichnet den Startzustand und Qf ⊆ Q die Menge der
Endzuständen, in denen M hält.
∆ gibt die Übergangsrelation an.
Auf den Speicher und die Übergangsrelationen müssen wir näher
eingehen.
7
8
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 1 [Turing-Maschine (TM)] (Teil 5)
◮
◮
Der Speicher ist eine Menge von Speicherzellen mit interner
Verbindungsstruktur, auf die M mit Hilfe von Köpfen zugreifen kann.
Die Köpfe können von M entlang der Verbindungen bewegt werden.
In dieser Vorlesung werden wir uns auf Speicher beschränken, die
aus k Zweiweg-Bändern mit jeweils einem Lese/Schreibkopf
bestehen. Wir nennen eine solche TM auch k-Band TM.
Definition 1 [Turing-Maschine (TM)] (Teil 6)
◮
◮
Die Übergangsrelation ∆ einer k-Band TM definieren wir als
Wir beschreiben die möglichen Bewegungen mit Hilfe von
R, RE , RA ⊆ {−1, 0, +1}, wobei wir mit −1 eine Bewegung nach
links und mit +1 eine Bewegung nach rechts darstellen. Eine 0
symbolisiert, dass der Kopf stehen bleibt.
Mit der Übergangsrelation ∆ assoziieren wir eine partielle
mehrdeutige Abbildung
∆ ⊆ Q × ΣE × Σk × Q × RE × Σk × R k × ΣA × RA ,
∆ : Q × ΣE × Σk → 2Q×RE ×Σ
wobei sich RE auf die möglichen Bewegungen des Eingabekopfes, RA
auf die möglichen Bewegungen des Ausgabekopfes und R k auf die
möglichen Bewegungen der k Köpfe im Speicher der TM bezieht.
k
×R k ×ΣA ×RA
.
9
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
10
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 1 [Turing-Maschine (TM)] (Teil 7)
◮
TM
Eingabeband
β @1 # X 1 0 0 # X 1 0 1 # # 1 0 # v 1 # X 1 1 0 # # 1
Für q, q ′ ∈ Q, a ∈ ΣE , b1 , . . . , bk , c1 , . . . , ck ∈ Σ, d ∈ ΣA , u ∈ RE ,
v1 , . . . , vk ∈ R und w ∈ RA sei
(q ′ , u, c1 , . . . , ck , v1 , . . . , vk , d, w ) ∈ ∆(q, a, b1 , . . . , bk )
dann bedeutet dies, dass
◮
∆
◮
β @1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 β β β β β β β
Ausgabeband
◮
◮
11
wenn M im Zustand q das Eingabesymbol a und die Symbole
b1 , . . . , bk mit den k Köpfen im Speicher liest,
sie in Zustand q ′ wechselt und den Eingabekopf in Richtung u
bewegt – er geht von Position pE auf Position pE + u.
Gleichzeitig schreiben jeweils der i-te Kopf im Speicher das Symbol
ci in die Speicherzelle, an der er sich unmittelbar vor diesem Schritt
befunden hat und bewegt diesen Kopf in die Richtung vi – er geht
von Position pi auf Position pi + vi .
Auf das Ausgabeband wir zudem d geschrieben und der Kopf in
Richtung w bewegt – er geht von Position pA auf Position pA + w .
12
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
Ist die Übergangsrelation eindeutig, d.h. zu jedem q, a, b1 , . . . , bk
existiert maximal ein q ′ , u, c1 , . . . , ck , v1 , . . . , vk , d, w , so dass
(q, a, b1 , . . . , bk , q ′ , u, c1 , . . . , ck , v1 , . . . , vk , d, w ) ∈ ∆
∆ : Q × ΣE × Σ
◮
k
Eine partielle Konfiguration C beschreibt den Zustand, die
Beschriftung der Zellen des Speichers und der Kopfpositionen im
Speicher, dem Eingabe- und dem Ausgabeband. Für eine k-Band
TM deren Speicherzellen wir mit V bezeichnen gilt
C
ist, so nennen wir die TM deterministisch und verwenden das Kürzel
DTM. Wir schreiben dann auch
k
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 2 [Konfiguration, Berechnung]
Definition 1 [Turing-Maschine (TM)] (Teil 8)
◮
Andreas Jakoby
Universität zu Lübeck
◮
k
→ Q × RE × Σ × R × ΣA × RA
◮
bzw. (q ′ , u, c1 , . . . , ck , v1 , . . . , vk , d, w ) = ∆(q, a, b1 , . . . , bk ).
Ist die Übergangsrelation nicht eindeutig, so nennen wir die TM
nichtdeterministisch und verwenden das Kürzel NTM.
∈ Q × Σ|V | × Nk+2
Spezifizieren wir zudem noch den Inhalt der Eingabe- und
Ausgabebandes, so erhalten wir die totale Konfiguration der TM.
C ′ heißt direkte Nachfolgekonfiguration der totalen Konfiguration C ,
kurz C ⊢ C ′ , falls sich C ′ aus C durch einmalige Anwendung der
Übergangsrelation ∆ erzeugen läßt. Einen solchen Übergang
bezeichnen wir auch als Rechenschritt oder einfacher als Schritt der
Maschine.
13
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
14
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 2 [Konfiguration, Berechnung] (Teil 2)
◮ Gibt es eine Folge von Konfigurationen C1 , . . . , Cm , so dass
Zustand
q
q′
Eingabeband
a
a
Arbeitsband 1
b1
Arbeitsband 2
b2
Ausgabeband
?
(q ′ , −1, c1 , c2 , +1, −1, d, 0)
C ⊢ C1 ⊢ · · · ⊢ Cm ⊢ C ′
c1
◮
∈ ∆(q, a, b1 , b2 )
c2
gilt, so ist C ′ eine Nachfolgekonfiguration von C und wir schreiben
C ⊢∗ C ′ .
In der Anfangskonfiguration C0 = C0 (x)
◮
d
◮
◮
◮
15
steht die Eingabe x = x1 . . . xn in den ersten n Zellen des
Eingabebandes, alle anderen Speicherzellen (des Eingabebandes, der
Arbeitsbänder und des Ausgabebandes) tragen das Blanksymbol,
steht der Eingabe- und Ausgabekopf am Anfang des jeweiligen
Bandes,
stehen die Köpfe der Arbeitsbänder an ausgezeichneten
Anfangspositionen
und befindet sich die TM im Zustand q0 .
16
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 2 [Konfiguration, Berechnung] (Teil 3)
◮
◮
Andreas Jakoby
Universität zu Lübeck
Definition 2 [Konfiguration, Berechnung] (Teil 4)
Eine Konfiguration, in der sich die TM in einem Endzustand befindet
nennen wir Endkonfiguration.
Eine Berechnung einer TM M auf einer Eingabe x ∈ Σ∗E ist eine
Folge C direkter Nachfolgekonfigurationen
◮
Die Menge der Speicherzellen, in denen M in C Informationen
speichert, besteht aus genau den Zellen, die in C von einem Kopf
betreten werden.
◮
Wird eine Zelle betreten, aber nie wieder verlassen, und zudem deren
Anfangsbeschriftung mit dem Blanksymbol nicht verändert, so
zählen wir diese Zelle nicht mit.
Für eine (endliche) haltende Berechnung CM (x) einer TM M auf
Eingabe x ∈ Σ∗E sei Res(CM (x)) das Resultat von CM (x) und für
eine DTMs M sei ϕM : Σ∗E → Σ∗A die von M berechnete
(partiell-rekursive) Funktion, mit

 Res(CM (x)) wenn die Berechnung CM (x)
von M auf x ∈ Σ∗E hält,
ϕM (x) :=

undefiniert sonst.
C = C0 (x) ⊢ C1 ⊢ · · · .
◮
◮
◮
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
Ist die Folge endlich und die letzte Konfiguration eine
Endkonfiguration, so ist die Berechnung vollständig ausgeführt. Wir
sagen, M hält in C.
Die Beschriftung des Ausgabebands in der Endkonfiguration heißt
das Ergebnis der Berechnung C.
Beachte, dass das Ergebnis einer NTM nicht eindeutig sein muss.
Bei einer DTM die auf einer Eingabe hält, ist das Ergebnis jedoch
eindeutig und definiert.
17
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 2 [Konfiguration, Berechnung] (Teil 5)
◮ Ist das Ergebnis einer TM für alle Eingaben auf 0 oder 1 beschränkt,
d.h. für alle haltenden Berechnungen C ist Res(C) ∈ {0, 1}, so
nennen wir die TM auch einen Akzeptor.
◮ Eine Berechnung C mit Res(C) = 1 nennen wir akzeptierende und
eine Berechnung C mit Res(C) = 0 verwerfende Berechnung.
◮
◮
18
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 3 [Simulation]
◮ Eine Maschine M ′ simuliert eine Maschine M, falls M ′ dieselbe
Funktion wie M berechnet. Für Turing-Maschinen bedeutet dieses,
dass für alle x ∈ Σ∗E gilt
Bei Akzeptoren verzichten wir auf das Ausgabeband und unterteilen
die Menge der Endzustände in die Teilmenge Qa der akzeptierenden
und in die Teilmenge Qv der verwerfenden Zustände.
Wir nennen
ϕM ′ (x) = ϕM (x) .
L(M) := { x ∈ Σ∗E | es existiert CM (x) mit Res(CM (x)) = 1 }
die von M akzeptierte Sprache.
19
20
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beispiel TM für die Sprache {w #w |w ∈ {0, 1}∗ } mit Qf = {q3 } und
Definition 4 [Berechnungszeit einer TM]
◮
Andreas Jakoby
Universität zu Lübeck
◮
Wir nennen eine DTM M T -zeitbeschränkt, wenn auf jede Eingabe
x ∈ Σ∗E die DTM M auf C0 (x) nach maximal T (|x|) Schritten hält,
d.h. es existiert eine Konfigurationsfolge C1 , . . . , Cm mit m ≤ T (|x|),
so dass
C0 (x) ⊢ C1 ⊢ · · · ⊢ Cm
◮
◮
◮
◮
eine Berechnung von M ist und Cm eine Endkonfiguration von M
darstellt.
◮
Wir werden auf das Thema Komplexitätsmasse für TMs im Verlauf
der Vorlesung noch näher eingehen.
◮
◮
◮
∆(q0 , 0, β) = (q0 , +1, 0, +1, β, 0)
∆(q0 , 1, β) = (q0 , +1, 1, +1, β, 0)
∆(q0 , #, β) = (q1 , 0, β, −1, β, 0)
∆(q1 , #, 0) = (q1 , 0, 0, −1, β, 0)
∆(q1 , #, 1) = (q1 , 0, 1, −1, β, 0)
∆(q1 , #, β) = (q2 , +1, β, +1, β, 0)
∆(q2 , β, β) = (q3 , 0, β, 0, 1, 0)
∆(q2 , 0, 0) = ∆(q2 , 1, 1) = (q2 , +1, β, +1, β, 0)
∆(q2 , β, 0) = ∆(q2 , β, 1) = ∆(q2 , 0, β) = ∆(q2 , 0, 1)
= ∆(q2 , 1, β) = ∆(q2 , 1, 0) = (q3 , 0, β, 0, 0, 0)
21
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
22
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beispiel (Teil 3)
Beispiel (Teil 2)
q0
Schritt 0: Zustand q0
Eingabe:
Speicher:
Ausgabe:
(a, β) → (+1, a, +1, β, 0) für alle a 6= #
(#, β) → (0, β, −1, β, 0)
q1
0
β
β
1
β
β
#
β
β
0
β
β
1
β
β
β
β
β
β
β
β
0
0
β
1
β
β
#
β
β
0
β
β
1
β
β
β
β
β
β
β
β
0
0
β
1
1
β
#
β
β
0
β
β
1
β
β
β
β
β
Schritt 1: Zustand q0
(#, a) → (0, a, −1, β, 0) für alle a 6= β
Eingabe:
Speicher:
Ausgabe:
(#, β) → (+1, β, +1, β, 0)
q2
β
β
β
(a, a) → (+1, β, +1, β, 0) für alle a 6= β
Schritt 2: Zustand q0
(a, b) → (0, β, 0, 0, 0) für alle a 6= b
(β, β) → (0, β, 0, 1, 0)
Eingabe:
Speicher:
Ausgabe:
q3
23
24
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beispiel (Teil 4)
Beispiel (Teil 5)
Schritt 3: Zustand q1
Schritt 6: Zustand q2
Eingabe:
Speicher:
Ausgabe:
β
β
β
0
0
β
1
1
β
#
β
β
0
β
β
1
β
β
β
β
β
Eingabe:
Speicher:
Ausgabe:
β
β
β
0
0
β
1
1
β
#
β
β
0
β
β
1
β
β
Eingabe:
Speicher:
Ausgabe:
β
β
β
1
1
β
#
β
β
0
β
β
1
β
β
β
β
β
β
β
β
0
β
β
1
1
β
#
β
β
0
β
β
1
β
β
β
β
β
β
β
β
0
β
β
1
β
β
#
β
β
0
β
β
1
β
β
β
β
β
Schritt 8: Zustand q2
Schritt 5: Zustand q1
Eingabe:
Speicher:
Ausgabe:
0
0
β
Schritt 7: Zustand q2
Schritt 4: Zustand q1
Eingabe:
Speicher:
Ausgabe:
β
β
β
β
β
β
0
0
β
1
1
β
#
β
β
0
β
β
1
β
β
Eingabe:
Speicher:
Ausgabe:
β
β
β
25
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
26
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 5 [Platzbedarf einer TM]
◮ Wir nennen eine DTM M S-platzbeschränkt, wenn auf jede Eingabe
x ∈ Σ∗E die DTM M maximal S(n) Speicherzellen im Speicher
besucht, d.h. auf der haltende Berechnung
Beispiel (Teil 9)
C0 (x) ⊢ C1 ⊢ · · · ⊢ Cm
Schritt 8: Zustand q3
Eingabe:
Speicher:
Ausgabe:
β
β
β
0
β
1
1
β
β
#
β
β
0
β
β
1
β
β
β
β
β
◮
von M speichert M in maximal S(n) Speicherzellen des Speichers
Informationen.
Wollen wir die Platzbeschränktheit einer TM näher untersuchen, so
ist es gewissermaßen unfair, wenn wir Eingabe und Ausgabe bei
dieser Schranke mit berücksichtigen müssen:
◮
◮
27
Wollen wir testen, ob die Anzahl der Einsen in einem binären String
gerade ist, so benötigen wir nur ein Bit aktiven Speicher. Die Länge
der Eingabe ist jedoch linear.
Wollen wir die Eingabe nur bitweise negieren so benötigen wir keinen
aktiven Speicher. Die Länge der Ausgabe ist jedoch linear in der
Eingabelänge.
28
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
2.2 Elementare Techniken
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 2 [Ausgabe im Speicher]
◮
Technik 1 [Eingabe im Speicher]
◮
Andreas Jakoby
Universität zu Lübeck
Interessieren wir uns nicht für den Platzbedarf einer TM oder ist
diese so oder so nur S-platzbeschränkt für ein S ∈ Ω(n), so
verzichten wir oft auf das separate Eingabeband, und gehen davon
aus, dass die Eingabe auf dem ersten Band des Speichers zur
Verfügung gestellt wird. Wir können somit den Eingabestring im
Verlauf der Berechnung verändern. Die Startposition des Kopfes auf
diesem Band ist dann die erste Position der Eingabe.
Interessieren wir uns nicht für den Platzbedarf einer TM oder ist
diese so oder so nur S-platzbeschränkt für ein S ∈ Ω(h(n)), wobei
h(n) die maximale Länge einer Ausgabe auf Eingaben der Länge n
ist, so verzichten wir oft auf das separate Ausgabeband, und gehen
davon aus, dass die Ausgabe auf dem ersten (oder letzten) Band des
Speichers nach der Berechnung zur Verfügung gestellt wird. Wir
können somit den Ausgabestring im Verlauf der Berechnung
verändern. Die Ausgabe besteht dann aus dem String, den wir nach
der Berechnung auf diesem Band vorfinden.
29
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
Für die Analyse von TMs ist es oft hilfreich, wenn die TM in einer
ausgezeichneten Konfiguration hält. Hierzu modifizieren wir die TM
wie folgt:
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 4 [Speichern im endlichen Gedächtnis]
Technik 3 [Halten in einer ausgezeichneten Konfiguration]
◮
30
Eine TM kann eine beschränkte Menge an Information in ihrem
Zustand speichern.
Ist es zum Beispiel erforderlich, dass sie in ihrem Zustand bis zu fünf
Symbole aus dem Speicheralphabet Σ speichern
S kann, so ergänzen
wir die Zustandsmenge Q um die Zustände i∈[1..5] Q × Σi .
◮ In einem zweiten Beispiel wollen wir zeigen, wie eine TM in ihrem
Zustand ein Symbol speichern kann. Sei Q die ursprüngliche
Zustandsmenge der TM, dann ersetzen wir diese Menge durch
(Q ∪ {qS , qL }) × {0, 1, β}. Den Zustand (q, a) interpretieren wir wie
folgt: die TM befindet sich im Zustand q und speichert im endlichen
Gedächtnis das Symbol a. Sei ∆(q, b) = (q ′ , b ′ , r ) der Übergang der
ursprünglichen TM, dann erhalten wir die neue Übergangsrelation
über
8
′
′
< ((q , a), b , r ) falls q ∈ Q
′
ˆ
((q , b), b ′ , r ) falls q = qL (lese und speichere)
∆((q, a), b) =
:
((q ′ , β), a, r ) falls q = qS (schreibe und lösche).
◮
Im Verlauf der Berechnung markiert die TM alle Speicherzellen die
von ihr besucht werden. Hierfür kann es erforderlich sein, dass wir ein
zweites Blanksymbol einführen, welches wir während der Berechnung
beim Schreiben im Speicher anstelle des eigentlichen Blanksymbols
benutzen. Nach Abschluß der Berechnung kann die TM die
Beschriftung des Speichers löschen, d.h. mit Blanksymbolen
überschreiben.
Bei einem Akzeptor ersetzen wir alle akzeptierende Zustände durch
einen ausgewählten akzeptierenden Zustand, und alle verwerfende
Zustände durch einen ausgewählten verwerfenden Zustand. Bei einer
TM, die eine Ausgabe erzeugt ersetzen wir alle Endzustände durch
einen ausgewählten Endzustand.
31
32
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 5 [Zusatzinformationen in Zuständen]
◮
◮
Eine TM kann eine beschränkte Menge an zusätzlichen Information
in ihrem Zustand speichern.
◮
Eine weitere Anwendung der Technik 5 ist die schnellen Berechnung
von Funktionen auf Eingaben konstanter Größe.
◮
Betrachten wir eine TM M, die eine (m + n)-parametrische Funktion
f (x1 , . . . , xm+n ) berechnet deren erste m Parameter xi = ci fest sind,
so können wir diese m Parameter analog zur Technik 4 im
Startzustand speichern, und die Eingabe für f um diese Parameter
verkürzen. Anstelle den Wert eines Parameters xi mit i ∈ [1..m] von
der Eingabe zu lesen, kann die neue TM den Wert ci aus ihrem
Zustandsgedächtnis lesen. Ansonsten simuliert die neue TM die alte
TM Schritt für Schritt. Wir erhalten dann eine TM zur Berechnung
einer Funktion
fc1 ,...,cm (xm+1 , . . . , xm+n ) = f (c1 , . . . , cm , xm+1 , . . . , xm+n ).
Mit Hilfe von zusätzlichen Zuständen kann eine Abbildung
g : Σs → Σr direkt in die Übergangsrelation codiert werden. In einem
Zustand qL liest die TM s Symbole y1 , . . . , ys aus dem Speicher und
geht dabei in die Zustände (qL , λ), . . . , (qL , y1 . . . ys ) über. Im
Zustand (qL , y1 . . . ys ) geht sie in den Zustand (qE , g (y1 . . . ys )) über.
Sie erhält somit in s Schritten das Ergebnis von g auf Eingabe
y1 , . . . , ys , unabhängig von der Komplexität der Funktion g . Beachte,
dass diese schnelle Berechnung der Funktion jedoch nur für Eingaben
konstanter Länge möglich ist.
33
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
34
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 6 [Einteilung von Arbeitsbändern in Spuren]
◮
Vergrößern wir das Bandalphabet von Σ auf Σk für einen festen
Wert k ∈ N, so können wir k Symbole x1 , . . . , xk ∈ Σ des alten
Alphabets in einer Zelle in Form eines k-Tupels (x1 , . . . , xk )
speichern und somit auch in einem Schritt lesen, schreiben und
bearbeiten. Die jeweiligen i-ten Symbole dieser Tupel bilden dann
die i-te Spur.
Spur 1:
Spur 2:
Spur k:
···
···
ai−1,1
ai−1,2
..
.
···
ai−1,k
ai,1
ai,2
..
.
ai+1,1
ai+1,2
..
.
Technik 7 [Einseitig versus zweiseitig unendliche Bänder]
◮
Ein zweiseitig unendliches Band kann durch ein einseitig unendliches
Band ersetzt werden, indem wir das zweiseitig unendliche Band an
der 0-Position falten:
2-seitiges Band:
···
···
1-seitiges Band:
ai+1,k
···
↑
Speicherzelle i mit Symbol (ai,1 , . . . , ai,k ) ∈ Σk
ai,k
35
···
a−2
a−1
a0
a1
a2
···
a0
#
a1
a−1
a2
a−2
···
···
36
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 9 [Verschieben und Kopieren von Teilen der Bandinschrift]
Technik 8 [Markieren von Speicherzellen]
◮
◮
Mit Hilfe einer zusätzlichen Spur können wir Positionen auf einem
Band markieren. Wir erweitern daher das Alphabet in
Σ × (M ∪ {β}), wobei mit M die Menge der Marken bezeichnen
und mit β die nichtgesetzte Marke.
Arbeitsspur:
Spur für Marken:
···
···
a−2
♥
a−1
β
a0
β
a1
♣
a2
♠
Ein Block auf einem Band ist eine Folge von benachbarten
Speicherzellen. Durch Verwendung von Marken kann eine TM die
Inschrift eines Blockes in einen anderen Block gleicher Länge
kopieren oder verschieben.
◮
···
···
◮
Bei einer 1-band TM muss die TM dafür sukzessive die Inhalte aller
Zellen von einem Block an die Position des anderen Blockes mit Hilfe
eines erweiterten Zustands transportieren.
Bei einer 2-band TM können wir den Block zunächst auf das zweite
Band kopieren und anschließend an dessen Zieladresse abspeichern.
Beachte, dass wir diese Operationen auch auf Blöcke einer Spur
ausführen können.
37
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
38
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 10 [Zähler]
◮
···
···
a1
♣
···
···
Original
ai−1 ai
β
↑
···
···
ai wird im Zustand
gespeichert und transportiert
am
♠
···
···
l
(q, ai )
a1
♥
Kopie
· · · ai−1
···
♦
···
···
Auf einer zusätzlichen Spur können wir einen binären Zähler zk . . . z0
implementieren. Damit dieser Zähler sich immer an einer
ausgezeichneten Position befindet, verschieben wir diese Spur immer
so, dass sich z0 genau an der aktuellen Position des Kopfes befindet:
Arbeitsspur:
Zählerspur:
···
β
···
zk
···
ai−1
z1
ai
z0
l
q
ai+1
β
···
···
Will eine TM beispielsweise die Anzahl spezieller Schritte zählen, so
kann sie nach solch einem Schritt den Zähler um 1 erhöhen.
39
40
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 12 [Schritt-für-Schritt Simulation]
Technik 11 [Weiterrechnen in einer Endkonfiguration]
◮
Andreas Jakoby
Universität zu Lübeck
◮
Kennen wir von einer TM eine obere Schranke t jedoch nicht die
exakte Laufzeit, so können wir mit Hilfe eines Zählers die
Berechnung nach ihrem eigentlichen Ende so fortsetzen, dass die
Berechnung genau t Schritte benötigt.
Eine TM M ′ simuliert eine TM M Schritt-für-Schritt, wenn für jeden
Schritt Ci ⊢ Ci+1 von M eine Folge von Schritten
Cj′i ⊢ Cj′i +1 ⊢ · · · ⊢ Cj′i+1 von M ′ existiert, wobei Cj′i eindeutig der
Konfiguration Ci und Cj′i+1 eindeutig der Konfiguration Ci+1
zugeordnet ist.
41
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
42
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Technik 13 [Hintereinanderschalten]
◮
Seien M1 und M2 zwei TMs mit Übergangsrelation ∆i ,
Zustandsmenge Qi , Startzustand q0,i und Endzustände Qf ,i .
◮
Sei nun M die TM die zunächst M1 Schritt-für-Schritt simuliert und
nach dem erreichen eines Endzustands aus Qf ,1 die Simulation der
TM M2 startet. Hierzu benutzt M die Zustandsmenge
Q
◮
Technik 14 [Unterprogramme]
◮
◮
:= (Q1 × {1}) ∪ (Q2 × {2}) .
Die Übergangsrelation von M besteht aus den Übergangsrelationen
∆1 ∪ ∆2 , wobei wir die Zustände q der Relationen aus ∆i zu (q, i)
und ferner die Zustände (q, 1) mit q ∈ Qf ,1 (d.h. die Endzustände
von M1 ) in (q0,2 , 2) (d.h. dem Startzustand von M2 ) abändern.
Sollen M2 nicht durch die von M1 beschriebenen Speicherzellen
beeinflußt werden, so können wir M1 und M2 auf zwei unabhängigen
Spuren arbeiten lassen.
◮
43
Die Technik des Unterprogramms ist mit der Technik des
Hintereinanderschaltens verwandt. Hierzu fügen wir in M1 zwei neue
Zustände qsub und qret und geeignete Übergänge für diese Zustände
ein.
Im Zustand qsub geht M in den modifizierten Startzustand (q0,2 , 2)
der zweiten TM über und im Zustand (q, 2) mit q ∈ Qf ,2 in den
Zustand qret .
Soll bei einem Unterprogrammaufruf der Speicherzustand der
Aufrufstelle erhalten bleiben, so muss die TM vor dem Start des
Unterprogramms noch in einen separaten Speicherbereich gehen,
und bei Bedarf den von M1 benutzten Speicherbereich verschieben.
44
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
◮
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Satz 1 [Bandreduktion] Jede t-zeit- und s-platzbeschränkte k-Band
TM M kann von einer O(t 2 )-zeit- und O(s)-platzbeschränkten 1-Band
TM M ′ simuliert werden.
Technik 15 [Nichtdeterministisches Raten]
◮
Andreas Jakoby
Universität zu Lübeck
Eine NTM rät in einer Konfiguration C nichtdeterministisch ein
Element aus einer Menge M, wenn sie von C aus eine Folge
nichtdeterministischer Schritte ausführt, die sie in eine von |M|
möglichen Konfigurationen C1 , . . . , C|M| überführt. Zu jedem
ai ∈ M korrespondiert eindeutig eine Konfiguration Ci .
Im Allgemeinen gehen wir bei einem solchen Rateschritt davon aus,
dass die TM das geratene Element entweder im Zustand oder im
Speicher abspeichert.
Beweis von Satz 1: Wir konstruieren eine TM M ′ mit 2k + 1 Spuren,
die M Schritt-für-Schritt simuliert. Nach der Simulation des i-ten
Rechenschritts sollen die Beschriftung des Arbeitsbandes von M ′ die
folgenden Bedingungen erfüllen:
◮
◮
Die Beschriftung der ungeraden Spuren entspricht der Beschriftung
des Speichers von M, d.h. Spur 2j − 1 speichert die Beschriftung des
j-ten Bandes von M (für alle j ∈ [1..k]) nach dem i-ten Schritt.
Die Beschriftung der geraden Spuren markiert die Kopfpositionen
der Köpfe von M, d.h. in Spur 2i steht an der Position des Kopfes
des j-ten Bandes von M das Symbol ↑ (für alle j ∈ [1..k]) nach dem
i-ten Schritt.
45
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beweis von Satz 1 (Teil 2)
◮ Auf der (2k + 1)-te Spur ist die am weitesten links stehende bisher
besuchte Speicherzelle mit einem $ und die am weitesten rechts
stehende bisher besuchte Speicherzelle mit einem # markiert. Sind
diese beiden Adressen gleich, so steht hier ein △.
46
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beweis von Satz 1 (Teil 3) Simulation des (i + 1)-ten Schritts:
◮ Phase 1 – Lesen des Speichers:
◮
◮
Der Kopf auf dem Arbeitsband von M ′ befindet sich auf der am
weitesten links stehenden bisher besuchten Position.
◮ Dem Zustand von M ′ ist eindeutig der Zustand von M nach dem
i-ten Schritt zugeordnet, d.h. M ′ speichert diesen Zustand von M im
endlichen Gedächtnis (Technik 4).
Es ist einfach zu sehen, dass die Initialisierung des Arbeitsbandes von M ′
in konstanter Zeit möglich ist. Wir wollen nun zeigen, dass jeder Schritt
von M in Zeit O(t) und auf Platz O(s) simuliert werden kann. Da der
Platz in jedem Simulationsschritt wieder benutzt werden kann, folgt die
Behauptung des Satzes unmittelbar.
◮
◮
◮
47
Der Kopf von M ′ läuft von der mit $ markierten Zelle nach rechts
bis sie die mit # markierte Zelle erreicht.
Bei diesem Durchlauf merkt sich M ′ die Inhalte der Spuren, die mit ↑
markierten sind im endlichen Gedächtnis (Technik 4).
Beim erreichen der mit # markierten Zelle speichert M ′ somit im
endlichen Gedächtnis den Inhalte der Speicherzellen, die M im
(i + 1)-ten Schritt liest.
Phase 2 – Ausführen des Rechenschritts:
Wie in Technik 5 beschrieben, kann M ′ nun den Rechnenschritt von
M simulieren. Hierbei speichert sie im endlichen Gedächtnis die
Auswirkungen dieses Schritts von M auf den Speicher – was wird
geschrieben, wie bewegen sich die Köpfe.
48
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beweis von Satz 1 (Teil 4)
◮ Phase 3 – Aktualisierung des Speichers:
◮
◮
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Beweis von Satz 1 (Teil 5)
Der Kopf von M ′ läuft von der mit # markierten Zelle nach links bis
sie die mit $ markierte Zelle erreicht.
Bei diesem Durchlauf aktualisiert M ′ die Inhalte der Spuren, die mit
↑ markiert sind, mit Hilfe ihres endlichen Gedächtnisses.
Ferner werden die ↑-Markierungen entsprechend der
Kopfbewegungen von M verschoben – je nach Bewegungsrichtung
um eine Zelle nach links oder nach rechts oder sie bleiben stehen.
Hierbei wandert der Kopf von M ′ bei einer Verschiebung einer Marke
nach rechts auch um eine Zelle nach rechts und setzt dann seine
Wanderung nach links fort.
Beachte, dass durch den simulierten Rechenschritt in manchen
Situationen es nötig sein kann die Marke # nach rechts und die
Marke $ nach links zu verschieben.
Nach dem Abschluß dieser Phase erfüllt die Konfiguration von M ′
unsere zu Beginn festgelegten Bedingungen bezüglich der
Speicherbeschriftung und des Zustandes von M nach dem (i + 1)-ten
Schritt.
Wie viel Platz benötigt die Simulation?
◮
Für jede Speicherzelle, die M ′ bei der Simulation besucht, existiert
zumindest eine Speicherzelle von M, die durch eine Spur der Zelle
von M ′ eineindeutig repräsentiert wird. M ′ benötigt somit maximal
soviel Platz wie M.
Wie viel Zeit benötigt die Simulation?
◮
Für jeden Schritt von M muss M ′ maximal viermal jede
Speicherzelle von M besuchen. Der Zeitbedarf ist somit beschränkt
durch 4 · ℓ · t, wobei ℓ der Anzahl der von M besuchten
Speicherzellen entspricht. Da diese Anzahl jedoch durch k · t
beschränkt ist – in einem Schritt kann M maximal k neue Zellen
besuchen, folgt die Zeitschranke von 4 · k · t 2 = O(t 2 ).
49
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
50
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
2.3 Komplexitätsmaße und -klassen
Bei der Simulation in Satz 1 werden die Eingabe und die Ausgabe der
TM M nicht gesondert betrachtet. Wir gehen hierbei davon aus, dass
beide TMs entweder über ein gesondertes Eingabe- bzw. Ausgabeband
verfügen oder beide nicht. Verfügt M über ein gesondertes Eingabe- und
Ausgabeband, die simulierende TM M ′ jedoch über keine solchen
Bänder, so müssen wir die Länge der Eingabe und der Ausgabe noch bei
der Platz- und somit bei der Zeitschranke berücksichtigen. Wir erhalten:
Wir erweitern zunächst unsere Definition von CM (x) auf
nichtdeterministische Maschinen:
Definition 6 Eine haltende Berechnung einer NTM M auf eine Eingabe
x ist eine Folge von Konfigurationen
C0 ⊢ C1 ⊢ · · · ⊢ Cm
Satz 2 [Bandreduktion – Teil 2] Jede t-zeit- und s-platzbeschränkte
k-Band TM M (mit separaten Eingabe- und Ausgabeband) kann von
einer O(t 2 + n · t)-zeit- und O(s + t + n)-platzbeschränkten 1-Band TM
M ′ (ohne separates Eingabe- und Ausgabeband) simuliert werden.
der NTM, wobei C0 die Startkonfiguration und Cm eine Endkonfiguration
von M auf x ist, d.h. M ist in Cm in einem Endzustand. Zur
Vereinfachung der Notation bezeichnen wir eine solche Berechnung auch
mit CM (x). Beachte, dass CM (x) nicht eindeutig sein muss! Die von einer
NTM berechnete Funktion ist demnach eine Relation, welche jeder
Eingabe mehrere Ergebnisse zuweisen kann.
51
52
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 2) Das Zeitkomplexitätsmaß mißt die Anzahl der
Rechenschritte einer TM M und das Platzkomplexitätsmaß mißt die
Anzahl der Speicherzellen im Speicher, die M während der Berechnung
besucht, d.h. in denen M Informationen speichert:
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 3) Die Zeitkomplexität TM und Platzkomplexität SM
einer TM M definieren wir für alle n ∈ N als
TM (n) :=
Für eine DTM M auf Eingabe x definieren wir:
SM (n) :=
timeM (x) :=
spaceM (x) :=
◮
Anzahl der Schritte in der Berechnung CM (x)
Anzahl der besuchten Speicherzellen in der
Berechnung CM (x) .
spaceM (x) :=
max spaceM (x) .
x∈ΣnE
Eine TM M nennen wir
◮ T -zeitbeschränkt, falls TM ≤ T ist und
S-platzbeschränkt, falls SM ≤ S ist.
Einen nichtdeterministischer Akzeptor M nennen wir
◮ schwach T -zeitbeschränkt, falls für alle x ∈ L(M)
timeM (x) ≤ T (|x|) ist.
◮
Für eine NTM M auf Eingabe x definieren wir:
timeM (x) :=
max timeM (x)
x∈ΣnE
maximale Anzahl der Schritte in jeder
Berechnung CM (x)
maximale Anzahl der besuchten Speicherzellen
in jeder Berechnung CM (x) .
◮
schwach S-platzbeschränkt, falls für alle x ∈ L(M)
spaceM (x) ≤ S(|x|) ist.
53
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
54
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 5) Sei Mk die Menge der k-Band TMs ohne
separates Ein- und Ausgabeband.
◮
Definition 6 (Teil 4) Sind T und S Mengen von Funktionen, so nennen
wir eine TM M
◮ (schwach) T -zeitbeschränkt, falls ein T ∈ T existiert, so dass M
(schwach) T -zeitbeschränkt ist und
◮ S-platzbeschränkt, falls ein S ∈ S existiert, so dass M (schwach)
S-platzbeschränkt ist.
Für die Teilmenge der Akzeptoren in Mk mit k ∈ N definieren wir
DTimek (T ) := { L ⊆ Σ∗ | es existiert eine T -zeitb. DTM
M in Mk mit L(M) = L }
DSpacek (S) := { L ⊆ Σ∗ | es existiert eine S-platzb. DTM
M in Mk mit L(M) = L }
DTimeSpacek (T , S) := { L ⊆ Σ∗ | es existiert eine T -zeitb. und
S-platzb. DTM M in Mk mit
L(M) = L }
55
56
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 6)
◮
Für die Teilmenge der DTMs M in Mk mit k ∈ N, die eine Funktion
ϕ : Σ∗ → Σ∗ berechnen, definieren wir
FDTimek (T ) :=
FDSpacek (S) :=
FDTimeSpacek (T , S) :=
Definition 6 (Teil 7)
◮ In vielen Fällen (und auch Dank des Bandreduktionssatzes)
interessieren wir uns nicht für die Anzahl der Bänder. Wir definieren
daher
[
DTimek (T )
DTime(T ) :=
{ ϕ : Σ∗ → Σ∗ | es existiert eine T -zeitb.
DTM M in Mk mit ϕM = ϕ }
{ ϕ : Σ∗ → Σ∗ | es existiert eine S-platzb.
DTM M in Mk mit ϕM = ϕ }
k∈N
als die Menge von Sprachen, die wir von einer T -zeitbeschränkten
DTM mit konstanter Anzahl von Bändern akzeptieren können.
Analog definieren wir auch die Varianten der anderen
Komplexitätsklassen.
{ ϕ : Σ∗ → Σ∗ |es existiert eine T -zeitb. und
S-platzb. DTM M in Mk mit ϕM = ϕ }
Für NTMs definieren wir analog die Komplexitätsklassen NTimek (T ),
NSpacek (S), NTimeSpacek (T , S) sowie die entsprechenden
Komplexitätsklassen für Funktionen FNTimek (T ), FNSpacek (S),
FNTimeSpacek (T , S).
57
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 8)
◮ Mit Mk+E bezeichnen wir die Menge der k-Band TMs mit
separatem zweiweg Ein- aber ohne Ausgabeband und mit Mk+E +O
die Menge der k-Band TMs mit separatem zweiweg Ein- und
Ausgabeband. Wollen wir uns auf ein einweg Eingabeband
~.
beschränken, so ersetzen wir E durch E
◮ Analog zu den bisher definierten Komplexitätsklassen können wir
nun auch die entsprechenden Varianten für TMs mit Eingabe- bzw.
Ausgabeband definieren. Wir ersetzen in diesen Fällen in den
~ oder k + E
~ + O. Wir
Definitionen k durch k + E , k + E + O, k + E
müssen hierbei noch beachten, dass eine solche Ersetzung oft auch
mit einer Änderung des Eingabe- bzw. Ausgabealphabets verbunden
ist. Wir müssen daher in den Definitionen noch an einigen Stellen Σ
gegen ΣE bzw. gegen ΣA ersetzen.
58
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Definition 6 (Teil 9)
◮
Von zentralem Interesse sind oft nicht nur die Komplexitätsklassen,
die wir durch eine einzelne Funktion T oder S erhalten, sondern die
wir durch Funktionsmengen erhalten. Für eine Menge T von
Funktionen definieren wir daher:
DTimek (T ) = { L ⊆ Σ∗ | es existiert ein T ∈ T und eine
T -zeitb. DTM M in Mk mit
L(M) = L }
◮
59
Analog erweitern wir auch die anderen Komplexitätsklassen auf
Funktionenmengen.
60
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Sei N die Funktion, die die Eingabelänge angibt, dann sind die
folgenden Funktionenklassen von besonderer Bedeutung:
CON
Log
Lin
Pol
◮
= O(1)
= Θ(log(N ))
= S
Θ(N )
c
=
c∈N O(N )
3.1 Basistypen von Reduktionen
Ein wesentliches Hilfsmittel um Probleme miteinander vergleichen zu
können stellt die Reduktion dar:
(konstant)
(logarithmisch)
(linear)
(polynomial).
Definition 7 [Many-One-Reduktion]
◮
Die bekanntesten Komplexitätsklassen sind:
L
NL
P
NP
PSPACE
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
3 Reduzierbarkeit
Definition 6 (Teil 10) Ein kleiner Vorgriff:
◮
Andreas Jakoby
Universität zu Lübeck
:=
:=
:=
:=
DSpace(Log)
NSpace(Log)
DTime(Pol)
NTime(Pol)
:=
DSpace(Pol)
Seien L1 ⊆ Σ∗1 und L2 ⊆ Σ∗2 zwei Sprachen. Wir nennen L1
many-one-reduzierbar auf L2 , wenn es eine 1-stellige (totale)
rekursive Funktion f : Σ∗1 → Σ∗2 gibt, so dass
∀w ∈ Σ∗1 :
(w ∈ L1 ⇐⇒ f (w ) ∈ L2 )
gilt. Wir sagen dann auch, dass L1 auf L2 (via f ) m-reduzierbar ist
und schreiben kurz L1 ≤m L2 .
An Stelle von Σ∗1 und Σ∗2 können wir natürlich auch die Menge N
wählen.
61
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
62
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Eine Verallgemeinerung der Many-One-Reduktion erhalten wir über die so
genannte Turing-Reduktion:
Illustration der Many-One-Reduktion:
Σ∗1 :
Definition 8 [Turing-Reduktion]
◮ Seien L1 ⊆ Σ∗ und L2 ⊆ Σ∗ zwei Sprachen. Wir nennen L1
1
2
Turing-reduzierbar auf L2 (kurz L1 ≤T L2 ), wenn es eine DTM M1
gibt, die auf die charakteristischen Funktion von L2 (ähnlich wie auf
ein Unterprogramm) zurückgreifen kann, und die die
charakteristischen Funktion von L1 berechnet.
Σ∗2 :
L2
L1
◮
f
L1
L2
◮
◮
63
Wir nehmen hierbei an, dass das Unterprogramm für χL2 zur
Verfügung steht – unabhängig davon, ob L2 entscheidbar, nur
rekursiv aufzählbar oder nicht rekursiv aufzählbar ist.
Die Anfrage u ∈ L2 ? können wir somit als eine Art Orakelbefragung
verstehen. Daher auch der in der Literatur für M1 gebräuchliche
Ausdruck der Orakel Turing-Maschine.
Die Turing-Reduktion wie auch die Many-One-Reduktion können
naheliegend auch auf Funktion übertragen werden.
64
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
Die Reduktionen stellen ein sehr mächtiges Hilfsmittel dar, um die Frage
der Entscheidbarkeit zu entscheiden. Es gilt:
Im Zentrum unserer folgenden Untersuchungen steht die Frage: Wie
können wir zeigen, dass ein Problem nicht in einer vorgegebenen
Komplexitätsklasse liegt?
1. Ist L2 entscheidbar, dann ist auch L1 entscheidbar.
2. Ist L2 rekursiv aufzählbar, dann ist auch L1 rekursiv aufzählbar.
Satz 4 Seien L1 , L2 zwei Sprachen und L1 ≤T L2 , dann gilt:
1. Ist L2 entscheidbar, dann ist auch L1 entscheidbar.
◮
Korollar 1 Seien L1 , L2 zwei Sprachen, dann gilt:
◮
Wir versuchen es mit einer Diagonalisierung und einem
Widerspruchsbeweis.
Wie können wir verfahren, wenn wir keinen solchen Beweis finden?
◮ Wir versuchen das Problem mit anderen bekannten schwierigen
Problemen zu vergleichen.
Es folgt unmittelbar:
◮
Computational Complexity SS 08
1. Vorlesung, 07.04.2008
3.2 Einschränkungen von Reduktionen
Satz 3 Seien L1 , L2 zwei Sprachen und L1 ≤m L2 , dann gilt:
◮
Andreas Jakoby
Universität zu Lübeck
Ist L1 ≤m L2 und L1 nicht entscheidbar, dann ist auch L2 nicht
entscheidbar.
Ist L1 ≤T L2 und L1 nicht entscheidbar, dann ist auch L2 nicht
entscheidbar.
Ist L1 ≤m L2 und L1 nicht rekursiv aufzählbar, dann ist auch L2
nicht rekursiv aufzählbar.
◮
Wir versuchen ein bekanntes schwieriges Problem mit Hilfe der
Lösung unseres Problems zu lösen, indem wir einen Algorithmus
entwerfen, der auf die Lösungen zu unserem Problem zurückgreifen
kann. Hierbei darf der entworfene Algorithmus nicht an sich schon
zuviel Ressourcen benötigen.
65
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Für eine Relation ∼⊆ U × U sei ∼∗ ⊆ U × U der reflexiv-transitive
Abschluß dieser Relation, d.h. für alle u, v ∈ U mit u 6= v gilt
(u, v ) ∈∼∗
⇐⇒
∃w1 , . . . , wn ∈ U : (u, w1 ), (w1 , w2 ), . . . ,
(wn−1 , wn ), (wn , v ) ∈∼ .
Zudem ist (v , v ) ∈∼∗ für alle v ∈ U.
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Zurück zu den Reduktionen:
◮ Die Reduktionsrelationen ≤m und ≤T sind Beispiele für Relationen,
wie sie in der Definition 9 betrachtet wurden. Hierbei ist da
Universum U die Menge aller Sprachen über endlichen Alphabeten
Σ.
◮ Wollen wir eine Komplexitätsklasse C mit Hilfe einer Reduktion
untersuchen, so beschränken wir uns im Allgemeinen auf
Reduktionen ≤, die nicht zu mächtig sind, d.h. wir fordern in den
meisten Fällen
C = Γ≤ (C) .
Bevor wir uns näher mit der Suche nach sinnvollen Reduktionen
beschäftigen wollen wir noch einige hilfreiche Notationen einführen:
Definition 9 Sei U ein Universum. Wir definieren
◮
66
◮
Anstelle von (u, v ) ∈∼ und (u, v ) ∈∼∗ schreiben wir auch u ∼ v
und u ∼∗ v .
Für eine Teilmenge V ⊆ U sei
Zudem schränken wir die Reduktionen soweit ein, dass wir nicht mit
Hilfe der Reduktion ≤ alle Probleme aus einer Komplexitätsklasse C
lösen können, d.h. wir fordern für C ′ = {{0}}
Γ≤ (C ′ ) ⊂ C .
Γ∼ (V ) := { u ∈ U | ∃v ∈ V : u ∼∗ v } .
◮
Beobachtung 1 Ist eine Relation ∼ reflexiv und transitiv, so gilt ∼=∼∗ .
Wollen wir zwei Komplexitätsklasse C, C ′ mit Hilfe einer Reduktion
≤ miteinander vergleichen, so fordern wir
C′ ⊂ C
67
=⇒
Γ≤ (C ′ ) ⊂ C .
68
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Wir wollen nun auf drei besondere Formen der Many-One-Reduktion
eingehen:
Definition 10 [Polynomialzeit-Reduktion]
Beobachtung 2 Sei L0 = {0} und U ein Universum mit 0 ∈ U und
|U| ≥ 2, dann gilt
◮
P, N P, PSPACE ⊂ Γ≤m ({{0}}) und
P, N P, PSPACE ⊂ Γ≤T ({{0}}).
Somit sind die allgemeine Many-One-Reduktion die allgemeine
Turing-Reduktion nicht geeignet um die für uns interessanten
Komplexitätsklassen zu untersuchen.
◮
◮
Seien L1 ⊆ Σ∗1 und L2 ⊆ Σ∗2 zwei Sprachen. Wir nennen L1
polynomialzeit-reduzierbar auf L2 , kurz L1 ≤pol L2 , falls es eine in
polynomieller Zeit deterministisch berechenbare Funktion
f : Σ∗1 → Σ∗2 gibt, so dass
∀w ∈ Σ∗1 :
◮
(w ∈ L1 ⇐⇒ f (w ) ∈ L2 )
gilt.
L1 und L2 heißen äquivalent bezüglich der Reduktionsrelation ≤pol ,
kurz ≡pol , wenn L1 ≤pol L2 und L2 ≤pol L1 gilt.
69
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Illustration der Polynomialzeit-Reduktion:
L2
L1
f
L2
L1
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Warum diese Einschränkung der Reduktion?
◮ Ohne eine solche Einschränkung der Reduktionsfunktion f auf
Funktionen, die in polynomieller Zeit berechnet werden können,
könnten wir mit der Funktion f schon das zu reduzierende Problem
lösen, dann könnten wir jede entscheidbare Sprache auf die triviale
Sprache {1} reduzieren.
◮ Im Allgemeinen wird angenommen, dass P =
6 N P ist, d.h.,
deterministische polynomielle Zeit genügt nicht um alle Probleme
aus N P zu lösen. Vergleichen wir also ein besonders schweres
Problem aus N P mit einem neuen Problem, so stellte die
Polynomialzeit-Reduktion eine adäquate Reduktion dar.
Σ∗2 :
Σ∗1 :
70
f ist in polynomialer
Zeit berechenbar
71
72
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 11 [Logspace-Reduktion]
Seien L1 ⊆ Σ∗1 und L2 ⊆ Σ∗2 zwei Sprachen. Wir nennen L1
logspace-reduzierbar auf L2 , kurz L1 ≤log L2 , falls es eine auf
logarithmischem Platz deterministisch berechenbare Funktion
f : Σ∗1 → Σ∗2 gibt, so dass
∀w ∈ Σ∗1 :
◮
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Lemma 1 L1 ≤log L2 impliziert L1 ≤pol L2 .
Beweis von Lemma 1: Da jede logarithmisch-platzbeschränkte DTM,
die auf jede Eingabe hält, nur polynomiell viele unterschiedliche
Konfigurationen annehmen kann (ohne in eine Endlosschleife zu geraten),
muss diese DTM auch polynomiell-zeitbeschränkt sein.
Satz 5 ≤log und ≤pol sind transitiv.
Beweis von Satz 5: Die Transitivität bedeutet, dass für beliebige
Sprachen L1 , L2 , L3
Wollen wir Probleme aus P oder einer noch weiter eingeschränkten
Komplexitätsklasse miteinander vergleichen, so müssen wir auch die
Berechnungskapazität der Reduktionsfunktion weiter einschränken:
◮
Andreas Jakoby
Universität zu Lübeck
L1 ≤log L2
L1 ≤pol L2
(w ∈ L1 ⇐⇒ f (w ) ∈ L2 )
und L2 ≤log L3
und L2 ≤pol L3
=⇒
=⇒
L1 ≤log L3
L1 ≤pol L3
bzw.
gilt. Ist f1 eine Reduktion von L1 auf L2 und f2 eine Reduktion von L2 auf
L3 , dann ist f2 ◦ f1 eine Reduktion von L1 auf L3 , es gilt
gilt.
L1 und L2 heißen äquivalent bezüglich der Reduktionsrelation ≤log ,
kurz ≡log , wenn L1 ≤log L2 und L2 ≤log L1 gilt.
∀w ∈ Σ∗1 :
(w ∈ L1 ⇐⇒ f1 (w ) ∈ L2 ⇐⇒ f2 (f1 (w )) ∈ L3 ) .
Wir müssen noch zeigen, dass f2 ◦ f1 in den geforderten Schranken
berechnet werden kann.
73
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
◮
◮
◮
◮
in Zeit T1 (|w |) das Ergebnis f1 (w ) und dann
in Zeit T2 (|f1 (w )|) das Ergebnis f2 (f1 (w )).
Da |f1 (w )| maximal T1 (|w |) ist, ist die Laufzeit der
Hintereinanderschaltung O(T1 + T2 ◦ T1 ) = Pol.
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Beweis von Satz 5 (Teil 3): Wie können wir das Problem der
Platzschranke bei der Berechnung von f1 (w ) in den Griff bekommen?
Beweis von Satz 5 (Teil 2): Sei Mi eine logarithmisch-platzbeschränkte
bzw. polynomiell-zeitbeschränkte DTM, die fi berechnet. Die
Hintereinanderschaltung von M1 und M2 berechnet die Komposition
beider Funktionen.
◮ Im Fall der ≤pol -Reduktion sei das Polynom Ti die Zeitschranke für
Mi , dann berechnet die Hintereinanderschaltung von M1 und M2
◮
74
Bei einer Platzschranke unterhalb der Länge der Ausgabe,
betrachten wir TMs mit separatem Write-Only-Ausgabeband.
Die Ausgabe bei einer solchen TM M steht auf den
Ausgabepositionen 1 bis |fM (w )| auf dem Ausgabeband — fM sei die
von M berechnete Funktion.
Für ein gegebenes i ∈ [1..|fM (w )|] können wir M auch ohne
Ausgabeband simulieren, wenn wir log2 (|fM (w )|)/c Platz zur
Verfügung haben (c ∈ N konstant) und nur die i-te Position der
Ausgabe bestimmen wollen:
◮
Im Fall der ≤log -Reduktion ist der Beweis aufwendiger, da die
Ausgabe von M1 im Allgemeinen die Platzschranke überschreiten
wird.
◮
◮
75
Simuliere die Berechnung von M ohne auf das Ausgabeband zu
schreiben.
Wenn sich der Kopf auf dem Ausgabeband bewegt, dann simuliere
diese Kopfbewegung durch das Erhöhen bzw. Verkleinern eines
Zählers z, der die Kopfposition von M auf dem Ausgabeband angibt.
Ist z = i, dann merke das Symbol, welches M auf das Ausgabeband
schreiben will.
76
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
◮
◮
◮
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Beweis von Satz 5 (Teil 5):
◮ Die Hintereinanderschaltung von M1 und M2 arbeitet wie folgt:
Beweis von Satz 5 (Teil 4): Jetzt können wir die
Hintereinanderschaltung von M1 und M2 betrachten:
◮
Andreas Jakoby
Universität zu Lübeck
◮
Da M1 logarithmisch-platzbeschränkt ist, ist diese DTM auch
polynomiell-zeitbeschränkt.
Die Länge der Ausgabe von M1 ist somit polynomiell in der
Eingabelänge n.
Es gilt ⌈log2 |f1 (w )|⌉ = O(log2 |w |). Wir haben somit den benötigten
Platz für den Zähler z aus der Simulation von Folie 76 zur
Verfügung.
◮
◮
◮
Beachte, dass wir uns auf 1-Band DTMs beschränken können, die
über separate Ein- und Ausgabebänder verfügen.
Für die Platzschranke der Hintereinanderschaltung gilt:
◮
◮
◮
◮
Wir teilen das Arbeitsband in drei Spuren. Auf der ersten Spur
simulieren wir M2 , auf der zweiten Spur bestimmen wir mit Hilfe
eines Zählers welche (Eingabe-)Position i M2 von f1 (w ) zur Zeit
lesen möchte und auf Spur 3 simulieren wir M1 auf w für die
Ausgabeposition i (Folie 76).
Wenn M2 eine Position i aus f1 (w ) lesen möchte, starten wir die
Simulation von M1 auf w für die Ausgabeposition i und lassen die
Berechnung von M2 so lange pausieren.
Nach Abschluß der Simulation von M1 können wir mit der
Berechnung von M2 fortfahren.
Die Simulation von M1 benötigt Platz O(log2 (|w |) + log2 (|f1 (w )|)).
Für den Zähler benötigen wir Platz O(log2 (|f1 (w )|)).
Die Simulation von M2 benötigt Platz O(log2 (|f1 (w )|)).
Es gilt O(log2 (|w |) + log2 (|f1 (w )|)) = O(log2 |w |).
77
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
78
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Lemma 2 Die Relation L1 ≤pol L2 hat die folgenden Implikationen:
L2 ∈ P
L2 ∈ N P
L2 ∈ PSPACE
Noch aufwendiger wird unser Unterfangen eine adäquate Reduktion zu
finden, wenn wir uns für Komplexitätsklassen unterhalb von P oder noch
unterhalb von L interessieren.
Betrachten wir zum Beispiel eine Boolesche Funktion
f : {0, 1}n → {0, 1}m , so stellt ich uns zunächst das Problem, dass diese
Funktion nur auf Eingaben der Länge n definiert ist. Wir definieren
zunächst:
Definition 12 [Familien Boolescher Funktionen] Eine Familie
F = f1 , f2 , . . . von Booleschen Funktionen fi : {0, 1}i → {0, 1}mi
spezifiziert für jedes i ∈ N \ {0} eine solche Funktion fi . Analog
definieren wir eine Familie F = f1 , f2 , . . . von Funktionen fi : Ui → Ui′ ,
wobei der Definitionsbereich und der Wertebereich der Funktion fi von i
abhängt (und nicht die Kardinalität i haben muss).
=⇒ L1 ∈ P,
=⇒ L1 ∈ N P,
=⇒ L1 ∈ PSPACE.
Ferner gilt für k ≥ 1 und L1 ≤log L2
L2 ∈ DSpace(Logk )
L2 ∈ NSpace(Logk )
=⇒
=⇒
L1 ∈ DSpace(Logk ),
L1 ∈ NSpace(Logk ).
Beweis von Lemma 2: Der Beweis verläuft analog zum Beweis von Satz
5, nur dass wir jetzt an Stelle der DTM M2 für f2 eine DTM M2 zur
Lösung von L2 betrachten, diese DTM berechnet dann die Funktion χL2
und die Hintereinanderschaltung der TMs berechnet χL2 ◦ f . Beachte,
dass die Platz- und Zeitschranken bei dieser Hintereinanderschaltung in
den meisten Fällen von M2 bestimmt wird.
79
80
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 13 [Projektive-Reduktion]
◮ Seien F = f1 , f2 , . . . und G = g1 , g2 , . . . zwei Familien von
Booleschen Funktionen fi : {0, 1}i → {0, 1}mi und
′
gi : {0, 1}i → {0, 1}mi . Wir nennen F projektiv-reduzierbar auf G ,
kurz F ≤proj G , falls es ein Polynom p und eine Familie
Π = π1 , π2 , . . . mit
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Mit Hilfe der Projektive-Reduktion können wir nur sehr wenige Probleme
direkt lösen oder auf die einfache Sprache L0 = {0} bzw. auf deren
charakteristische Funktion
0 für w ∈ {0, 1}∗ \ {0}
χL0 (w ) =
1 für w = 0
πi : {y1 , . . . , yp(i) } −→ {x1 , x 1 , . . . , xi , x i , 0, 1}
von einstelligen Projektionsfunktionen gibt, so dass
fi (x1 , . . . , xi ) = gp(n) (πi (y1 ), . . . , πi (yp(n) ))
reduzieren. Um dieses einzusehen transformieren wir χL0 zunächst in die
benötigte Darstellung als Familie Boolescher Funktionen χL0 = χ1 , χ2 , . . .:
0 für w = 1
χ1 (w ) =
und ∀i > 1 : χi ≡ 0 .
1 für w = 0
ist, und eine linear zeitbeschränkte DTM existiert, die auf Eingabe
von (i, j) den Wert πi (yj ) berechnet.
◮ F und G heißen äquivalent bezüglich der Reduktionsrelation ≤proj ,
kurz ≡proj , wenn F ≤proj G und G ≤proj F gilt.
Die Projektive-Reduktion stellt eine sehr einfache Form einer
Many-One-Reduktion dar, bei der wir unabhängig von der konkreten
Eingabe nur die einzelnen Bits einer Eingabe vertauschen und duplizieren
können. Zudem können wir einige Bits der neuen Eingabe auf konstante
Werte setzen.
81
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
82
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Beweis von Beobachtung 3 Der Beweis erfolgt über einen
Widerspruch. Angenommen es gäbe eine solche Reduktion, dann müßte
p(n) = 1 sein und aufgrund von
Beobachtung 3 Sei nun F = f1 , f2 , . . . eine beliebige Familie Boolescher
Funktionen, so dass für zumindest eine Eingabelänge n > 1 eine Eingabe
x1 , . . . , xn ∈ {0, 1} und zwei Eingabepositionen i 6= j existieren, so dass
fn (x1 , . . . , xn ) 6= fn (x1 , . . . , xi−1 , x i , xi+1 , . . . , xn )
fn (x1 , . . . , xn ) 6= fn (x1 , . . . , xi−1 , x i , xi+1 , . . . , xn )
müssen wir
πn (y1 ) = xi
und
oder πn (y1 ) = x i
wählen. Da jedoch
fn (x1 , . . . , xi−1 , x i , xi+1 , . . . , xn ) = fn (x1 , . . . , xj−1 , x j , xj+1 , . . . , xn ),
fn (x1 , . . . , xn ) 6= fn (x1 , . . . , xj−1 , x j , xj+1 , . . . , xn )
dann gilt
F
6≤proj
gilt müssen wir auch
χL0 .
πn (y1 ) = xj
oder πn (y1 ) = x j
setzen. Beides ist jedoch nicht gleichzeitig möglich – ein Widerspruch. 83
84
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Sei mult die Familie der Booleschen Funktionen, die Multiplikation
zweier Binärzahlen realisieren.
Da schon so einfache Boolesche Funktionen wie das or oder das xor die
Bedingungen aus der Beobachtung 3 erfüllen, erhalten wir:
Wir wollen zeigen, dass xor projektiv auf mult reduziert werden
kann.
◮ Da xori nur ein Bit als Ausgabe liefert, müssen wir mult noch
adäquat modifizieren. Wir gehen davon aus, dass die Eingabe von
multi aus drei Teilen besteht: die beiden Faktoren y und z sowie die
Position des Ergebnisbits im Produkt y · z für das wir uns
interessieren.
Satz 6 xor ≤proj mult.
◮
Korollar 2 Sei or = or1 , or2 , . . . und ori das Oder über i Bits, dann ist
or nicht projektiv auf χL0 reduzierbar.
Korollar 3 Sei xor = xor1 , xor2 , . . . und xori die Paritätsfunktion über i
Bits, dann ist xor nicht projektiv auf χL0 reduzierbar.
85
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Beweis von Satz 6 Sei x1 , . . . , xi die Eingabe von xori , dann wählen wir
y , z als Binärzahlen der Länge i log i, wobei wir mit log i die Länge der
Binärdarstellung von i bezeichnen. Wir wählen
y =
i
X
j=1
xj · 2(j−1)·log i
und z =
i
X
w =
j=1
wobei
2(j−1)·log i .
Definition 14 [Boolesche Schaltkreise] Ein Boolescher Schaltkreis C
mit n Eingaben x1 , . . . , xn und m Ausgaben y1 , . . . , ym ist ein endlicher
gerichteter azyklischer Graph mit m Senken. Jeder Knoten v im Graph ist
mit einer Funktion σ markiert, hierbei gilt:
1. Ist der Eingrad von v gleich 0, so ist σ(v ) ∈ {x1 , . . . , xn , 0, 1}.
2. Ist der Ausgrad von v gleich 0, so ist σ(v ) ∈ {y1 , . . . , ym }. Der
Einfachheit halber nehmen wir an, dass alle Senken einen Eingrad
von 1 haben.
3. Ist der Eingrad d + (v ) ≥ 1 und der Ausgrad d − (v ) ≥ 1, so ist σ(v )
+
eine Funktion von {0, 1}d (v ) nach {0, 1}.
Die Knoten nennen wir auch Gatter. Der Einfachheit halber identifizieren
wir die Eingabe- und Ausgabegatter v mit den entsprechenden Werten
σ(v ).
(j−1)·log i
wj · 2
k=j−i+1 xk
für j ≤ i
für j > i
Pi
ist. Somit ist wi = k=1 xk und das niederwertigste Bit von wi ist das
Ergebnis der Paritätsfunktion auf Eingabe x1 , . . . , xi .
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
4.1 Das Schaltkreismodell
j=1
( P
j
xk
Pk=1
wj =
j
Andreas Jakoby
Universität zu Lübeck
4 Schaltkreiskomplexität
Es ist einfach zu erkennen, dass wir die beiden Binärzahlen y und z
einfach mit Hilfe einer Projektiven-Reduktion bestimmen können.
Für das Produkt w = y · z gilt
2i−1
X
86
87
88
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 14 (Teil 2) Über die Funktion σ(v ) können wir bei einer
gegebenen Eingabe x jedem Gatter C einen Wert Valv (x) zuordnen. Es
gilt:
1. Ist σ(v ) ∈ {x1 , . . . , xn , 0, 1}, so weisen wir Valv (x) den
entsprechenden Wert aus x bzw. den Wert der Konstante aus {0, 1}
zu.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Die in einem Schaltkreis benutzten Funktionen σ schränken wir im
Allgemeinen durch die Wahl einer Basis ein. Beschränken wir uns auf die
binären Operationen {∧, ∨} und auf die unäre Operation ¬, so nennen
wir diese Basis auch Standardbasis.
Um die Komplexität eines Schaltkreises zu messen, benutzen wir die
Maße
◮ Tiefe depth(C ) als die Länge des längsten Quellen-Senken Pfads,
und
2. Ist σ(v ) ∈ {y1 , . . . , ym }, so weisen wir Valv (x) den Wert des
Vorgängergatters zu.
3. In den verbleibenden Fällen berechnen wir Valv (x), indem wir die
Funktion σ(v ) auf Eingabe der Werte der Vorgängerknoten
auswerten.
Die durch den Schaltkreis C berechnete Funktion fC ergibt sich durch
Größe size(C ) als die Anzahl der (internen) Gatter in C .
Die Tiefe entspricht der parallelen Zeit einer Berechnung und die Größe
der parallelen Arbeit.
Beobachtung 4 Im Gegensatz zu dem Modell der Turing-Maschine
können Schaltkreise nur Berechnungen auf einer festen Eingabelänge
durchführen.
◮
fC (x) = ValC (x) = (Valy1 (x), Valy2 (x), . . . , Valym (x)) .
89
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 15 Eine Boolesche Schaltkreisfamilie C = (Ci )i∈N ist eine
unendliche Sequenz von Booleschen Schaltkreisen Ci , wobei Ci eine
Funktion von i Eingabewerten auf m(i) Ausgabewerten ist, d.h.
fCi : {0, 1}i → {0, 1}m(i) .
Die durch die Schaltkreisfamilie berechnete Funktion fC ergibt sich über
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 16 Eine Schaltkreisfamilie C = (Ci )i∈N nennen wir
fC (x) = fC|x| (x) .
◮
uniformen, wenn eine Turing-Maschine existiert, die auf Eingabe von
1n den Schaltkreis Cn generiert.
◮
nicht-uniform, wenn eine solche Turing-Maschine nicht existiert.
log-platzkonstruierbar, wenn eine log-platzbeschränkt
Turing-Maschine existiert, die auf Eingabe von 1n den Schaltkreis Cn
generiert.
◮
Die Komplexität einer Schaltkreisfamilie definieren über
depthC (n) = depth(Cn )
90
und sizeC (n) = size(Cn ) .
91
92
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 17 Für k ∈ N bezeichnet N C k die Menge aller Booleschen
Sprachen, d.h. Funktionen f : {0, 1}∗ → {0, 1}, die durch eine
log-platzkonstruierbare Schaltkreisfamilie C über der Standardbasis
akzeptiert werden kann. Hierbei gilt, dass depthC (n) ∈ O(logk (n)) und
sizeC (n) polynomiell sind.
Die Klasse N C, auch Nicks-Klasse genannt, ist
[
NC =
N Ck .
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
2. Vorlesung, 14.04.2008
Definition 18 Für k ∈ N bezeichnet AC k die Menge aller Booleschen
Sprachen, d.h. Funktionen f : {0, 1}∗ → {0, 1}, die durch
log-platzkonstruierbare Schaltkreisfamilien C über der Basis
{and, or, not} akzeptiert werden können, wobei wir den Eingrad der
and- und or-Gatter nicht beschränken. Ferner gelte, dass
depthC (n) ∈ O(logk (n)) und sizeC (n) polynomiell sind.
Die Klasse AC ist
[
AC =
AC k .
k∈N
k∈N
Die Klasse N C wird auch als die Klasse aller effizient parallel
entscheidbarer Sprachen angesehen. Aufgrund der Größenbeschränkung
können wir folgern:
Beobachtung 5 N C ⊆ P.
Beobachtung 6 Für alle i ∈ N gilt N C i ⊆ AC i ⊆ N C i+1 .
Und somit folgt aus Beobachtung 5:
Beobachtung 7 AC ⊆ P.
93
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
4.2 Grenzen Effizienter Schaltkreise
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Analog zur Normalform einer Booleschen Formel können wir auch eine
Normalform für Schaltkreise definieren:
Definition 20 Wir sagen, dass ein Schaltkreis in Normalform ist, wenn
◮ Negationen finden nur auf den Eingaben stattfinden, d.h. wenn wir
sowohl die negierten als auch die nicht-negierten Variable als
Eingabe zur Verfügung haben, dann existieren keine not-Gatter.
◮ Interne Gatter sind entweder or- oder and-Gatter.
◮ Auf jedem Pfade von einem Eingabegatter zum Ausgabegatter
alterniert die Gatter-Funktion von Gatter zu Gatter.
Definition 19 Sei F eine Boolesche Formel.
◮ Ein Literal ist eine Variable oder deren Negation.
◮ Eine Klausel ist eine Disjunktion, d.h. eine or-Verknüpfung, von
Literalen.
◮ Eine Monom ist eine Konjunktion, d.h. eine and-Verknüpfung, von
Literalen.
◮
94
F ist in konjunktiver Normalform, wenn F eine Konjunktion von
Klauseln ist.
F ist in disjunktiver Normalform, wenn F eine Disjunktion von
Monomen ist.
◮
95
Alle Pfade von einem Eingabegatter zum Ausgabegatter haben die
gleiche Länge.
96
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
◮
◮
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 3 (Teil 2):
Lemma 3 Für jeden Schaltkreis C auf n Variablen existiert ein funktionsäquivalenter Schaltkreis C ′ in Normalform mit depth(C ) ≥ depth(C ′ ) und
2 · size(C ) · (2 · depth(C ) + 1) + n ≥ size(C ′ ).
Beweis von Lemma 3:
◮
Andreas Jakoby
Universität zu Lübeck
◮
Mit Hilfe der Regeln von De Morgan können wir alle not-Gatter zu
den Eingabegattern schieben.
◮
Diese Aktion vergrößert nicht die Tiefe des Schaltkreises. Die Größe
wird um maximal size(C ) + n vergrößert, da im ungünstigsten Fall
nun jedes Gatter im Originalzustand und negiert vorkommt.
Der resultierende Schaltkreis erfüllt die erste zwei Bedingungen eines
Schaltkreises in Normalform.
◮
◮
Gibt es auf einem Pfad zwei Gatter die aufeinander folgen, und die
vom gleichen Gattertyp sind, wo vereinigen wir diese. Unter
Umständen muss jedoch eine Kopie des ersten Gatters erstellt
werden.
Der resultierende Schaltkreis erfüllt die dritte Bedingung eines
Schaltkreises in Normalform.
Durch diesen Schritt wird weder die Größe noch die Tiefe des
Schaltkreises erhöht.
Im letzten Schritt ergänzen wir zu kurze Pfade an den richtigen
Stellen mit and- und or-Gattern von Eingrad 1.
97
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Mit Hilfe der konjunktiven bzw. disjunktiven Normalform können wir für
jede Funktion einen Schaltkreis der Tiefe 2 (mit Negationen 3) angeben,
der diese Funktion berechnet. Ein solcher Schaltkreis hat jedoch oft
exponentielle Größe.
Satz 7 Die Paritätsfunktion kann nicht durch einen zweistufigen and-oroder or-and-Schaltkreis polynomieller Größe berechnet werden. Zudem
müssen bei einem zweistufigen Schaltkreis zur Berechnung der Paritätsfunktion
in der ersten Ebene immer alle n Variablen miteinander verknüpft werden.
Vℓ
Beweis von Satz 7: Sei C eine Konjunktion i=1 Di von Disjunktionen
welche die Paritätsfunktion berechnet. Wir betrachten zunächst die Frage,
ob eine der Disjunktionen von C weniger als n Variablen beinhalten darf.
◮ Sei Di eine solche Disjunktion und xj eine der Variablen, welche in
Di nicht vorkommen.
◮ Dann gibt es eine Belegung der verbleibenden Variablen (alle bis auf
xj ), so dass Di nicht erfüllt ist und somit auch C , ohne dass wir den
Wert von xj festlegen müssen.
◮ C ist somit nicht erfüllt für die obige Belegung mit xj = 0 und
xj = 1. Die Paritätsfunktion ist jedoch für eine der Belegungen 0
und für die andere 1.
99
98
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Satz 7 (Teil 2):
◮
◮
◮
Jede Disjunktion muß alle n Variablen beinhalten.
Eine Disjunktion über n Variablen ist jedoch nur bei genau einer
Belegung erfüllt.
Die Paritätsfunktion über n Variablen weist jedoch 2n−1 erfüllende
Belegungen auf.
Somit muß ein zweistufiger or-and-Schaltkreis der die
Paritätsfunktion berechnet eine Größe ≥ 2n−1 + 1 haben.
Wℓ
Analog können wir eine Disjunktion i=1 Ki von Konjunktionen
analysieren.
◮
100
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beobachtung 8 Sei C ein Schaltkreis, der die Paritätsfunktion
berechnet. Dann können wir mit C auch die negierte Paritätsfunktion
berechnen, indem wir eine der Eingabevariablen bei jedem vorkommen in
C negieren (ursprünglich negierte Literale kommen dann unnegiert vor
und alle ursprünglich unnegierte dann negiert). Analog können wir jeden
Schaltkreis zur Berechnung der negierten Paritätsfunktion nutzen, um die
Paritätsfunktion zu berechnen.
Beweis von Beobachtung 8:
x1 ⊕ x2 ⊕ · · · ⊕ xn
=
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beobachtung 9 Sei C ein Schaltkreis, der die Paritätsfunktion
berechnet. Wählen wir einige der Eingabevariablen xi fest auf 0 und
einige auf 1 und einige weiter variabel, so berechnet C auf den
verbleibenden Variablen immer noch die Paritätsfunktion bzw. deren
Negation. Ist C ein Schaltkreis über der Standardbasis, so können wir
durch die oben beschriebene Vorbelegung einige Gatter streichen, da ihr
Wert bereits durch diese Belegung fest bestimmt ist. Der resultierende
Schaltkreis hat entsprechend weniger Variablen jedoch ist dessen Größe
und Tiefe durch die Größe und Tiefe von C nach oben beschränkt.
1 ⊕ (x1 ⊕ x2 ⊕ · · · ⊕ xn )
= (1 ⊕ x1 ) ⊕ x2 ⊕ · · · ⊕ xn
= x 1 ⊕ x2 ⊕ · · · ⊕ x n .
101
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Satz 8 Die Paritätsfunktion ist nicht in AC 0 .
Beweisidee für Satz 8: Für jede Variable xi würfeln wir eine von drei
Belegungen: xi = 1, xi = 0, oder xi (d.h. xi ist noch variabel).
◮ Starten wir mit einem Schaltkreis, dessen Gatter auf der untersten
Ebene einen konstanten Eingrad haben, so wollen wir mit Hilfe
dieser Zufallsbelegung zeigen, dass wir mit positiver
Wahrscheinlichkeit einen Schaltkreis erhalten, dessen Gatter auf der
zweit untersten Ebene ebenfalls konstanten Eingrad haben.
◮ Mit Hilfe der Distributivgesetze
x1 ∧(x2 ∨x3 ) = (x1 ∧x2 )∨(x1 ∧x3 )
◮
◮
◮
und x1 ∨(x2 ∧x3 ) = (x1 ∨x2 )∧(x1 ∨x3 )
können wir die Gattertypen der beiden untersten Ebenen tauschen.
Die Gatter auf der untersten Ebene haben nun immer noch einen
konstanten Eingrad (auch wenn dieser viel größer ist) und die Größe
ist noch polynomial in der ursprünglichen Größe, aber wir können die
Gatter der zweit und dritt untersten Ebene verschmelzen.
Somit erhalten wir einen Schaltkreis, der um 1 flacher ist als der
ursprüngliche Schaltkreis.
Dieses können wir nutzen, um einen Widerspruch herzuleiten.
102
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Wie auf der letzten Folie dargelegt, wollen wir die Eingabe für einen
Schaltkreis würfeln. Daher benötigen wir ein Paar Hilfsmittel aus der
Wahrscheinlichkeitsrechnung.
◮ Sei p die Wahrscheinlichkeit für einen Erfolg – was Erfolg bedeutet
soll später näher beschrieben werden – dann ist die
Wahrscheinlichkeit, dass wir bei n-maligem Wiederholen des
Experiments k mal Erfolg haben binomialverteilt, d.h.
n k
p (1 − p)n−k .
Pr[X = k] =
k
◮
◮
Für Erwartungswert und Varianz gilt E(X ) = np und V (X ) = np(1 − p).
Die Tschebyscheff-Ungleichung besagt
Pr[|X − E(X )| ≥ a] ≤
V (X )
.
a2
Zudem gilt
n n n X
X
X
n
n k
n k
p ≤ pa
p (1−p)n−k ≤
Pr[X ≥ a] =
≤ p a 2n .
k
k
k
◮
k=a
103
k=a
k=a
104
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Wir wollen nun die Zufallsbelegung bzw. Zufallssubstitution der Variablen
näher beschreiben. Diese Substitution wird auch Zufallsrestriktion
genannt. Für jede Variable xi führen wir unabhängig von allen anderen
Variablen das folgende Zufallsexperiment durch:
◮ mit Wahrscheinlichkeit √1 lassen xi variable,
n
◮
mit Wahrscheinlichkeit
◮
mit Wahrscheinlichkeit
1− √1n
◮
◮
setzen wir xi = 1.
2
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Betrachten wir jetzt die Frage, wieviele Variablen in C r noch vorhanden
sind.
setzen wir xi = 0 und
2
1− √1n
Andreas Jakoby
Universität zu Lübeck
◮
Mit r bezeichnen wir eine solche Zufallsrestriktion, mit xir das Resultat
von xi nach der Restriktion und C r den Schaltkreis C nach dem
Ausführen der Zufallsrestriktion und dem streichen der Gatter, deren
Wert durch r bestimmt ist. 1
◮
Im ungünstigsten Fall legt r den Wert von C fest, und C r hängt von
keiner Variablen mehr ab.
Da das Ergebnis der Paritätsfunktion von jeder einzelnen Variable
abhängt, sind in C r so viele Variablen übrig, wie in r vorkommen.
Für unsere Zwecke genügt es zu zeigen, dass mit positiver
Wahrscheinlichkeit in r hinreichend viele Variablen übrig bleiben.
Hieraus werden wir schließen, dass es eine geeignete Restriktion gibt.
1 Wie wir bereits oben gesehen haben, berechnet C r entweder die Paritätsfunktion,
oder deren Komplement. Im letzten Fall können wir C r so umgestalten, dass der modifizierten Schaltkreis wieder die Paritätsfunktion berechnet.
105
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
√
n,
V (X ) ≤
√
n
und
Pr[X ≤
√
n
2 ]
∈ O( √1n ) .
Beweis von Lemma 4
√
1
= n· √ = n
n
√
1
1
V (X ) = n · √ · 1 − √
≤ n
n
n
E(X )
Pr[X ≤
√
n
2 ]
≤ Pr[E(X ) − X ≥
√
n
2
=
Pr[C r 6≡ 0]
und E(X ) > X ]
+Pr[X − E(X ) ≥
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Vℓ
Lemma 5 Sei C eine Konjunktion i=1 Di von Disjunktionen wobei jede
Disjunktion nur von maximal c Variablen abhängt, dann existiert eine
Konstante ec , so dass die Wahrscheinlichkeit, dass das and-Gatter nach
der Zufallsrestriktion von mehr als ec Variablen abhängt, höchstens
1
) ist.
O( nk+1
Beweis von Lemma 5: Der Beweis erfolgt über eine Induktion über c.
Induktionsanfang c = 1 (Eingrad der or-Gatter ist 1):
Fall 1: Das and-Gatter hängt von ≥ 4(k + 1) ln n Variablen ab.
Lemma 4 Sei X eine Zufallsvariable, die die Anzahl der Variablen in Cnr
nach der Restriktion beschreibt, dann gilt
E(X ) =
106
=
≤
≤
√
n
2
und E(X ) < X ]
√
√
V (X )
4 n
∈ O(1/ n) .
≤
Pr[|X − E(X )| ≥ 2n ] ≤ √n
n
( 2 )2
√
107
=
Pr[alle Eingänge des and-Gatters in r sind 6= 0]
Pr[eine beliebige aber feste Variable xi wird nicht 0]4(k+1) ln n
!4(k+1) ln n
„ «4(k+1) ln n
1 − √1n
3
≤
1−
2
4
n4(k+1) ln 3/4 ≤ n−(k+1)
Diese Abschätzung gilt für n ≥ 4. Die letzte Ungleichung folgt aus
ln(1 − x) ≤ −x.
Somit ist das Ergebnis mit großer Wahrscheinlichkeit konstant 0!
108
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Pr[and-Gatter in C r hängt von mehr als a Variablen ab]
!„
«i „
«n−i
«a
„
4(k+1) ln n
X
n
1
1
1
√
√
≤
1− √
≤
· 24(k+1) ln n
i
n
n
n
i=a
≤ n
·n
4(k+1)
= n
4(k+1)−a/2
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 5 (Teil 3):
Induktionsschritt c > 1
Wir gehen im folgenden davon aus, dass für c − 1 eine entsprechende
Konstante ec−1 existiert.
Fall 1: Das and-Gatter hängt (vor der Restriktion) von mindestens
2c (k + 1) ln n variablendisjunkten or-Gattern ab.
Wie im ersten Fall des Induktionsanfangs wollen wir zeigen, dass in
diesem Fall mit großer Wahrscheinlichkeit, das and-Gatter konstant 0 ist.
Beweis von Lemma 5 (Teil 2):
Fall 2: Das and-Gatter hängt von < 4(k + 1) ln(n) Variablen ab.
−a/2
Andreas Jakoby
Universität zu Lübeck
Pr[C r 6≡ 0]
.
≤
≤
≤
Wählen wir a = 10(k + 1) so ist die Wahrscheinlichkeit, dass das
and-Gatter in C r von mehr als a Variablen abhängt in O(n−(k+1) ). Somit
bleiben mit großer Wahrscheinlichkeit nur noch eine konstante Anzahl
von Variablen übrig.
=
≤
≤
Pr[keines der oben genannten or-Gatter ist in C r konstant 0]
(Pr[ein beliebiges, festes or-Gatter ist in C r nicht 0])2
c
(k+1) ln n
(1 − (Pr[eine beliebige, feste Variable in C r ist nicht 0])c )2
!c !2c (k+1) ln n
1 − √1n
1− 1−
2
c
`
´
c
−c
2
(k+1)
ln n
= n2 (k+1) ln(1−2 )
1 − 2−c
n−2
c
(k+1)2−c
c
(k+1) ln n
= n−(k+1)
109
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 5 (Teil 4):
Fall 2: Dieser Fall wird uns bis zum Ende dieses Beweises beschäftigen!
Das and-Gatter hängt von weniger als 2c (k + 1) ln n variablendisjunkten
or-Gattern ab.
◮ Wir wählen eine maximale Menge solcher or-Gatter. Sei H die Menge
der Variablen die durch diese Disjunktionen zusammengefaßt werden.
◮ Da wir die Menge maximal gewählt haben, muss jede Disjunktion in
C eine Variable aus H besitzen.
◮ Da jede Disjunktion maximal c Variablen besitzt und die maximale
Anzahl der variablendisjunkten or-Gattern durch 2c (k + 1) ln n
beschränkt ist, gilt:
110
Andreas Jakoby
Universität zu Lübeck
Beweis von Lemma 5 (Teil 5):
◮
Da jede Disjunktion in Si von maximal c − 1 Variablen abhängt,
hängt nach einer Zufallsrestriktion das and-Gatter in Sir mit einer
Wahrscheinlichkeit O(n−(k+1) ) von mehr als einer konstanten
Anzahl ec−1 von Variablen ab (Induktionsvoraussetzung).
◮
Durch eine neue Numerierung der Variablen können wir erreichen,
dass H = {x1 , x2 , . . . , x|H| } ist.
◮
Wir definieren xi
◮
◮
Wir betrachten die ℓ := 2|H| möglichen Belegungen α1 , . . . , αℓ von
diesen Variablen.
Mit Si bezeichnen wir den Schaltkreis, den wir erhalten, wenn wir
die Variablen aus H mit αi belegen.
Da jede Disjunktion in C zumindest eine Variable aus H beinhaltet,
hat jede Disjunktion in Si noch maximal c − 1 Variablen.
h0i
F :=
h1i
= x i , xi = xi und schließlich:
_ hα [1]i
hα [2]i
hα [|H|]i
x 1 i ∧ x2 i
∧ . . . ∧ x|H|i
∧ Si ,
i∈{1,...,ℓ}
|H| ≤ c · 2c (k + 1) · ln n .
◮
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
wobei αi [j] die Belegung für xj in der partiellen Belegung αi ist.
◮
Beispiel: H = {x1 , x2 }, α1 = 00, α2 = 01, α3 = 10 und α4 = 11,
dann ist:
F = (x 1 ∧x 2 ∧S1 ) ∨ (x 1 ∧x2 ∧S2 ) ∨ (x1 ∧x 2 ∧S3 ) ∨ (x1 ∧x2 ∧S4 ) .
111
112
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
◮
◮
F und C berechnen die gleiche Funktion.
◮
Mit Hilfe des Terms x1 i ∧ . . . ∧ x|H|i
schalten wir den
entsprechenden Teilschaltkreis Si an oder aus.
◮
Wir wollen nun der Frage nachgehen, wieviele Variablen von H nach
einer Zufallsrestriktion noch keinen Wert haben.
Sei Y die Zufallsvariable, die angibt, wieviele Variablen in H übrig
bleiben, dann gilt:
a
c
c
1
·2|H| ≤ n−a/2 ·2c·2 (k+1)·ln n ≤ nc·2 (k+1)−a/2 .
Pr[Y > a] ≤ √
n
◮
◮
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 5 (Teil 7):
Beweis von Lemma 5 (Teil 6):
α [1]
Andreas Jakoby
Universität zu Lübeck
α [|H|]
◮
Dieses bedeutet auch, dass F nach einer Zufallsrestriktion mit einer
c
Wahrscheinlichkeit von O(nk+1 ) mehr als m := 22c·2 ·(k+1)+2(k+1)
r
Teilschaltkreise Si besitzt, die den Wert von F noch mitbestimmen
können. Dieses sind die Teilschaltkreise, deren Term
α [1]
α [|H|]
x1 i ∧ . . . ∧ x|H|i
noch nicht konstant 0 ist.
Wir fügen nun die einzelnen Abschätzungen zusammen:
Pr[C r hängt von mehr als ec = m · ec−1 Variablen ab]
= Pr[F r hängt von mehr als ec Variablen ab]
≤ Pr[es bleiben mehr als 2c · 2c · (k + 1) + 2(k + 1) Variablen in H
übrig oder ein Si hängt von mehr als ec−1 Variablen ab]
≤ Pr[Y > 2c · 2c · (k + 1) + 2(k + 1)]
+ m · Pr[ein festes Si hängt von mehr als ec−1 Variablen ab
≤ O(n−(k+1) ) + m · O(n−(k+1) ) = O(n−(k+1) ) .
Wählen wir a = 2c · 2c · (k + 1) + 2(k + 1) so ist die
Wahrscheinlichkeit, dass in H nach einer Zufallsrestriktion noch
mehr als a = 2c · 2c · (k + 1) + 2(k + 1) Variablen nicht mit einem
Wert belegt sind in O(n−(k+1) ).
Die letzte Zeile folgt aus der Induktionsvoraussetzung und der
Beobachtung, dass m konstant ist.
113
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
114
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Satz 8 folgt nun unmittelbar aus dem folgenden Lemma:
Beweis von Lemma 5 (Teil 8):
Man beachte, dass dieser Induktionsschritt nur c-mal wiederholt werden
muß – c ist konstant. Es werden also zur Berechnung von ec nur
konstant viele Konstanten miteinander multipliziert. Zudem wird der
Wert der Wahrscheinlichkeit O(n−(k+1) ) nur konstant oft mit einer
Konstanten multipliziert.
Lemma 6 Für alle Konstanten t und c und für alle Polynome p gilt: Die
Paritätsfunktion kann nicht durch eine p(n)-größen- und
t-tiefenbeschränkte Schaltkreisfamilie in Normalform berechnet werden,
deren Gatter auf der untersten Ebene einen Eingrad von höchstens c
haben.
Beweis von Lemma 6 (Teil 1) Der Beweis folgt über eine Induktion.
Für t = 2 folgt die Aussage direkt aus Satz 7.
115
116
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 6 (Teil 3) Wir generieren einen Hilfsschaltkreis Hn′ :
◮ Wir wollen mit Hilfe einer geschickten Belegung einiger Variablen
aus einer t-tiefen- und polynomiell größenbeschränkten
Schaltkreisfamilie C1 , C2 , C3 , . . . in Normalform eine (t − 1)-tiefenund polynomiell größenbeschränkten Schaltkreisfamilie C1′ , C2′ , C3′ , . . .
in Normalform konstruieren.
◮ Durch die Vorbelegung einiger Variablen können wir den Schaltkreis
Ci nicht nutzen, um den Schaltkreis Ci′ zu generieren. Stattdessen
wollen wir durch eine geeignete Belegung von 4n2 − n Variablen aus
C4n2 einen Hilfsschaltkreis Hn′ über n Variablen generieren.
◮ Die Gatter der zweit untersten Ebene von H ′ hängen hierbei von nur
n
konstant vielen Variablen ab.
Beweis von Lemma 6 (Teil 2) Um die Aussage für ein t > 2 zu zeigen
nehmen wir an, dass sie falsch ist.
◮ Sei also t minimal, so dass es eine Konstante c und ein Polynom p
gibt und die Paritätsfunktion durch eine p(n)-größen- und
t-tiefenbeschränkte Schaltkreisfamilie in Normalform berechnet
werden kann, deren Gatter auf der untersten Ebene einen Eingrad
von höchstens c haben.
◮ Sei k der Grad dieses Polynoms.
◮ Da wir t minimal gewählt haben, gibt es für t − 1 somit keine solche
Konstante c und auch kein solches Polynom.
◮ Dieses soll im folgenden widerlegt werden.
◮
Mit Hilfe des Distributivgesetzes können wir die Gattertypen der
beiden untersten Ebenen vertauschen ohne die Größe des
Schaltkreises um mehr als einen konstanten Faktor aufzublähen.
117
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
118
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 6 (Teil 5) Anmerkungen zur Restriktion:
◮
Beweis von Lemma 6 (Teil 4) Wir generieren Ci′ :
◮ Nach Anwendung des Distributivgesetzes können wir dafür
garantieren, dass
◮
◮
◮
die Gatter der untersten Ebene nur von konstant vielen Variablen
abhängen und
die Typen der Gatter auf der zweit und dritt untersten Ebene gleich
sind.
◮
Durch verschmelzen dieser Ebenen erhalten wir den Schaltkreis Cn′ .2
Wir können
√ aus Lemma 4 schließen, dass mit hoher Wahrscheinlichkeit
mehr als 2n Variablen in Cnr übrig bleiben. Man beachte, dass bei
einer Restriktion auch mehr als die benötigten Variablen übrig
bleiben, um aus C4n2 den Schaltkreis Cn′ zu generieren. In diesem
Fall belegen die Variablen, die zuviel sind, mit 0.
Aus Lemma 4 können wir auch ersehen, dass wir das auftreten einer
ungünstigen Restriktion nicht gänzlich verhindern können. Dieses
wird auch bei den weiteren Schritten immer wieder passieren.
Können wir garantieren, dass die Summe dieser Wahrscheinlichkeiten
gegen 0 strebt, so haben wir bewiesen, dass zumindest eine
Restriktion mit einem positiven Ausgang existiert. Die Existenz
reicht jedoch aus, um die Existenz eines geeigneten Schaltkreises
nachzuweisen.
2 Die Größe von C ′ ist weiter polynomiell in n und der der Grad des Polynoms von
n
Cn′ ist höchstens doppelt so groß wie der Grad des Polynoms von Cn .
119
120
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
◮
◮
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 6 (Teil 7) Noch einmal zur Wiederholung:
Beweis von Lemma 6 (Teil 6) Lemma 5 kommt ins Spiel:
◮
Andreas Jakoby
Universität zu Lübeck
◮
Um den Beweis zu vereinfachen werden wir uns auf Schaltkreise
beschränken, deren unterste Schicht aus or-Gatter bestehen. Die
zweit unterste Schicht besteht folglich aus and-Gatter.
Nach dem Dualitätsprinzip folgt, dass wir durch tauschen von 0 mit
1, xi mit x i und and mit or eine analoge Aussage für Schaltkreise
herleiten können, deren untere Schicht aus and-Gattern besteht.
◮
Betrachten wir zunächst eines dieser and-Gatter so kommt Lemma 5
zum Einsatz:
Vℓ
Lemma 5 Sei C eine Konjunktion i=1 Di von Disjunktionen
wobei jede Disjunktion nur von maximal c Variablen abhängt,
dann existiert eine Konstante ec , so dass die Wahrscheinlichkeit,
dass das and-Gatter nach der Zufallsrestriktion von mehr als ec
1
) ist.
Variablen abhängt, höchstens O( nk+1
Es verbleibt also noch zu zeigen, wie wir Lemma 5 nutzen können,
um einen beliebigen Schaltkreis in Normalform zu transformieren.
◮
Wir haben die Konstanten k, t und c so gewählt, dass t minimal war
und es einen polynomiell größenbeschränkte und t tiefenbeschränkte
Schaltkreisfamilie in Normalform gibt, die die Paritätsfunktion
berechnet.
Hierbei war das Polynom, welches die Größe beschränkt, aus O(nk )
und die Gatter der untersten Stufe hingen von maximal c Variablen
ab.
Wir haben dann gezeigt, dass wir mit Hilfe einer Zufallsrestriktion
dafür sorgen können, dass ein beliebiges aber festes Gatter der zweit
untersten Stufe nur noch von einer konstanten Anzahl von Variablen
abhängt.
Die Wahrscheinlichkeit eines Fehlschlags war hierbei durch
O(n−(k+1) ) beschränkt.
Führen wir die Restriktion an allen Gattern der zweit untersten Ebene aus,
so ist die Wahrscheinlichkeit, dass es an einem solchen Gatter zu einem
Fehlschlag kommt, durch O(nk ) · O(n−(k+1) ) = O(n−1 ) beschränkt.
◮
121
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 6 (Teil 8) Wiederholen wir noch einmal diese
Beobachtung: Mit einer Wahrscheinlichkeit von 1 − O(n−1 ) hat C r auf
der untersten Ebene nur einen konstanten Eingrad und jedes Gatter auf
der zweit untersten Ebene hängen nur noch von einer konstanten Anzahl
von Variablen ab.
Somit gilt:
◮ Da der Eingard auf den beiden untersten Ebenen somit Konstant ist,
können wir mit Hilfe des Distributivgesetzes die Typen der Gatter
auf den untersten Ebenen vertauschen, und die Gatter der zweit und
dritt untersten Ebene verschmelzen.
◮ Der resultierende Schaltkreis hat also eine Tiefe von t − 1 und die
Gatter der untersten Ebene haben immer noch einen konstanten
Eingrad.
◮ Wir haben zudem gesehen, dass die Anzahl der Variablen, die in C r
√
übrig bleiben,
mit einer Wahrscheinlichkeit von O(1/ n) nach unten
√
durch 2n beschränkt werden kann.
122
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
3. Vorlesung, 21.04.2008
Beweis von Lemma 6 (Teil 9) Fassen wir zusammen:
◮
◮
◮
123
Die Wahrscheinlichkeit, dass eine Restriktion entweder zu wenige
Variablen übrig läßt oder die falschen Variablen mit Werte belegt ist
durch
O(n−1 ) + O(n−1/2 ) = O(n−1/2 )
beschränkt.
Mit einer Wahrscheinlichkeit von O((n2 )−1/2 ) können wir mit einer
r
′
Zufallsrestriktion C4n
2 so modifizieren, dass wir einen Schaltkreis Cn
polynomieller Größe und Tiefe t − 1 erhalten, der die
Paritätsfunktion oder deren Kompliment berechnet.
Da über die Konstruktion sicher gestellt ist, dass der Eingrad der
Gatter der untersten Stufe wieder konstant ist, erhalten wir einen
Widerspruch zu der Annahme, dass t minimal gewählt wurde.
124
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Definition 21 Seien n, m, s ∈ N.
◮
Wir wollen nun die Frage untersuchen, inwieweit alle Booleschen
Funktionen mit Hilfe von Schaltkreisen effizient berechnet werden
können.
◮
Satz 9 Jede Boolesche Funktion fn : {0, 1}n → {0, 1} kann von einem
Schaltkreise der Tiefe 3 bestehend aus or- und and-Gattern mit
unbeschränktem Eingard und not-Gattern berechnet werden.
Beweis von Satz 9 Um einen solchen Schaltkreis zu erhalten betrachten
wir einfach die Disjunktive- oder die Konjunktive-Normalform der
gewünschten Funktion.
◮
Bnm bezeichnet die Menge aller Booleschen Funktionen
f : {0, 1}n → {0, 1}m
m
Bn,s
⊆ Bnm bezeichnet die Teilmenge dieser Funktionen, für die ein
Schaltkreis der Größe ≤ s über der Basis bestehend aus allen
2-stelligen Booleschen Funktionen existiert.
1
Zur Vereinfachung sei Bn := Bn1 und Bn,s := Bn,s
.
n
Lemma 7 |Bn | = 22 .
Beweis von Lemma 7
◮
◮
Wir müssen uns hierbei jedoch die Frage stellen, wie groß diese
Schaltkreise werden können.
◮
Es gibt 2n mögliche Eingaben x ∈ {0, 1}n für jede Funktion f ∈ Bn .
Für jede Teilmenge I ⊆ {0, 1}n beschreibt Funktion f mit
f (x) = 1 ⇐⇒ x ∈ I eine neue Funktion aus Bn .
Über dieses Verhalten können wir über die Menge I alle Funktionen
aus Bn beschreiben.
n
◮
Es gibt 22 viele verschiedene Teilmengen I von {0, 1}n .
125
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Lemma 8 |Bn,s | ≤ 2n · e n · (16 · e · (n + s))s .
Beweis von Lemma 8
◮ Für jeden Schaltkreis der Größe s ′ < s können wir einen Schaltkreis
konstruieren, der aus exakt s Gattern besteht. Somit existiert für
jede Funktion f ∈ Bn,s ein Schaltkreis der Größe s.
◮
◮
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Lemma 8 (Teil 2)
◮
Wir wollen nun die Anzahl der Schaltkreise Cn,s der Größe s mit n
Eingabegattern untersuchen, die unterschiedliche Funktionen berechnen.
Jeder Schaltkreis aus Cn,s kann dadurch beschrieben werden, dass
wir für jedes interne Gatter dessen Funktionalität und dessen zwei
Vorgängergatter angeben. Zudem muß der Index des Ausgabegatters
spezifiziert werden.
Es gibt somit maximal 16s · (s + n)2s · s viele Beschreibungen, wobei
bei einer solchen Beschreibung die Gatter im Allgemeinen nicht
topologisch geordnet sind.
Es gilt
∞
X
sℓ
ss
<
= es
s!
ℓ!
and
ℓ=0
◮
1+
n s
≤ en .
s
Somit gilt
|Bn,s |
◮
Somit existieren für jede Funktion f ∈ Bn,s mindestens s! viele
Beschreibungen von Schaltkreisen C mit fC ≡ f .
Wir erhalten somit |Bn,s | ≤
126
s · 16s · (s + n)2s
≤
s s /e s
s
s +n
≤ s · (16e(n + s))s ·
s
≤ s · e n · (16e(n + s))s .
≤
s · 16s · (s + n)2s
s!
Für hinreichend große Werte n erhalten wir
|Bn,s | ≤ 2n · e n · (16e(n + s))s .
s·16s ·(s+n)2s
.
s!
127
128
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Satz 10 Als Basis betrachten wir die Menge aller 2-stelligen Booleschen
Funktionen. Für jedes δ > 0 existiert ein n0 (δ), so dass für alle n ≥ n0 (δ)
und für alle Booleschen Funktionen fn ∈ Bn bis auf einen Bruchteil von
n
23n−δ2 gilt
2n
size(fn ) > (1 − δ) ·
.
n
Beweis von Satz 10: Für s = (1 − δ) · 2n /n schließen wir aus Lemma 8:
2n
|Bn,s | ≤ 2 · e · 16e n + (1 − δ) ·
n
n
n
(1−δ)·2n /n
In den Beobachtungen 5 und 7 habe wir die Klassen N C und AC mit der
Klasse P verglichen. Wir wollen nun untersuchen, ob sich die
Schaltkreiskomplexität noch besser mit der Komplexität von
Turing-Maschinen vergleichen läßt.
Satz 11 Sei C eine s-platzkonstruierbare Familie von
d-tiefenbeschränkten Schaltkreisen (mit einem Ausgabegatter), wobei die
Eingrad aller Gatter durch eine Konstante κ beschränkt ist. Dann kann
die durch F beschriebene Funktion auch durch eine
O(d + s)-platzbeschränkte DTM berechnet werden.
Korollar 4 N C 1 ⊆ L.
(1−δ)·2n /n
= 23n+2
n
(1−δ)
.
Aus Lemma 7 schließen wir
|Bn,s |
|Bn |
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
4.3 Die Klassen N C 1 und AC 1
und somit gilt für hinreichend große Werte von n
|Bn,s | ≤ 23n · (2n )
Andreas Jakoby
Universität zu Lübeck
n
≤
23n+2 (1−δ)
22 n
n
≤ 23n−δ2 .
129
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 11 (Teil 1): Um den Wert des Ausgabegatter zu
bestimmen wollen wir eine rekursive Prozedur vorstellen, die mit einem
möglichst kleinen Speicherbedarf versucht alle Quelle-Senke-Pfade eines
Schaltkreises zu durchlaufen. Hierbei müssen wir zunächst untersuchen,
wie der Schaltkreis gegeben ist:
◮ M ′ sei die s-platzbeschränkte DTM, die auf Eingaben x der Länge n
eine Beschreibung von Cn generiert.
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 11 (Teil 2): Die nachfolgende rekursive Prozedur
berechnet den Wert eines Gatters v auf Eingabe x:
Algorithmus Value(v )
Eingabe: Gatter v
Ergebnis: Wert Valv (x)
1: simuliere M ′ auf Eingabe x#v
2:
um Γ− (v ) = (u1 , . . . , uk ) und σ(v ) zu bestimmen
3: if σ(v ) ∈ {x1 , . . . , xn , 0, 1} then
4:
bestimme den entsprechenden Wert Valv (x) aus x
5: else
6:
for i := 1 to k by +1 do
7:
Valui (x) := Value(ui )
8:
end for
9:
Valv (x) := σ(v )(Valu1 (x), . . . , Valuk (x))
10: end if
11: Return(Valv (x))
Wir erweitern M ′ insoweit, dass wir festlegen, welchen Teil der
Ausgabe uns interessiert: Sei v ein Gatter von Cn , dann berechnet
M ′ auf Eingabe von x#v alle Vorgänger Γ− (v ) von v in Cn .
Da C eine Familie von d-tiefenbeschränkten κ-eingradbeschränkten
Schaltkreisen und κ eine Konstante ist, gibt es in C maximal κd viele
Gatter. Wir gehen daher von den folgenden Vereinfachungen aus:
◮
130
Jedes Gatter kann durch einen Binärstring der Länge O(d)
spezifiziert werden.
M ′ kann die Folge Γ− (v ) der Vorgänger von v sowie die Funktion
σ(v ) auf Platz O(d + s) bestimmen, auch wenn die Ausgabe auf
einem Arbeitsband erfolgt.
131
132
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
◮
◮
◮
◮
◮
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Value(v ) bestimmt den Wert Valv (x) korrekt.
Ist v das Ausgabegatter, so bestimmt Value(v ) den Wert fC (x).
Die maximale Rekursiontiefe von ist durch die Tiefe von C gegeben.
Jede Stufe der Rekursion benötigt maximal κ · O(d) Speicherplätze
um die jeweiligen Listen Γ− (v ) sowie die Werte Valui (x) zu
speichern.
Der Speicherplatz den wir für die Simulation von M ′ benötigen
können wir bei jeder Simulation recyclen. Er fällt somit nur einmal
an!
◮
Der Gesamtplatzbedarf ist somit in O(d 2 + s).
◮
◮
simuliere M ′ auf x#v um Γ− (v ) = (u1 , . . . , uk ) und σ(v ) zu bestimmen
if σ(v ) ∈ {x1 , . . . , xn , 0, 1} then
bestimme den entsprechenden Wert Valv (x) aus x
else
for i := 1 to k by +1 do
Valui (x) := Value(ui )
end for
Valv (x) := σ(v )(Valu1 (x), . . . , Valuk (x))
end if
Return(Valv (x))
Wir können zwar Γ− (v ) beliebig berechnen aber nicht länger speichern.
Auch können wir nicht den Namen von v innerhalb des Aufrufs
Value(ui ) speichern!
Wenn wir auf diesen Speicher verzichten, benötigen wir für jede
Stufe der Reduktion nur O(κ) Platz und erhalten einen
Gesamtplatzbedarf von O(d + s).
133
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 11 (Teil 5): Um den Speicherbedarf zu reduzieren
müssen wir den Algorithmus so umgestalten, dass in jeder Stufe der
Rekursion nur konstanter Speicherplatz benötigt wird:
Beweis von Satz 11 (Teil 3): Wir beobachten:
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 11 (Teil 6): Anstelle der Gatternamen speichern wir
im folgenden nur einen Pfad Πv in Cn vom Ausgabegatter y zum Gatter
v . Sei y = v0 , v1 , v2 , . . . , vℓ = v ein Pfad in Cn , dann kodieren wir Πv wie
folgt:
Πv = k1 #k2 # . . . #kℓ
wobei vi+1 der ki+1 Vorgänger von vi ist. Um den Namen eines Gatters
bei gegebenen Πv zu rekonstruieren wenden wir den folgenden
O(s + d)-platzbeschränkten Algorithmus an:
Algorithmus GiveGate(Πv )
Eingabe: Kodierung vom Pfad Πv = k1 #k2 # . . . #kℓ
Ergebnis: Name vom Gatter v
1: setze v auf das Ausgabegatter y
2: for i := 1 to ℓ by +1 do
3:
simuliere M ′ um x#v um Γ− (v ) = (u1 , . . . , uk ) zu bestimmen
4:
setze v auf uki
5: end for
6: Return(v )
135
134
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 11 (Teil 7):
Algorithmus Value-2(Πv )
Eingabe: Gatter v
Ergebnis: Wert Valv (x)
1: v := GiveGate(Πv )
2: simuliere M ′ auf x#v um k = |Γ− (v )| und σ(v ) zu bestimmen
3: if σ(v ) ∈ {x1 , . . . , xn , 0, 1} then
4:
bestimme den entsprechenden Wert Valv (x) aus x
5: else
6:
for i := 1 to k by +1 do
7:
v := GiveGate(Πv )
8:
simuliere M ′ auf x#v um den i-ten Vorgänger ui von v zu bestimmen
9:
ergänze Πv um ui zu Πui
10:
Valui (x) := Value-2(Πui )
11:
reduziere Πui um ui zu Πv
12:
end for
13:
Valv (x) := σ(v )(Valu1 (x), . . . , Valuk (x))
14: end if
15: Return(Valv (x))
136
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
In einem zweiten Schritt wollen wir jetzt untersuchen, ob jede Sprache in
L auch effizient parallel entschieden werden kann. Wie schon im Satz 11
wollen wir einen etwas allgemeineren Satz beweisen.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 12 (Teil 1): Wir betrachten zunächst die NTM und
beobachten:
∗
Satz 12 Sei s ≥ log und L ⊆ {0, 1} eine Sprache, die von einer s-platzund t-zeitbeschränkten NTM entschieden werden kann. Dann gibt es eine
uniforme Familie C von 2O(s) -größen- und O(log t)-tiefenbeschränkten
Schaltkreisen über der Basis {and, or, not} die L akzeptiert, wobei wir
den Eingrad der and- und or-Gatter nicht beschränken. Sind s und t auf
Platz s berechenbar (oder zumindest auf Platz s bis auf einen konstanten
Faktor approximierbar), so ist C auch s-platzkonstruierbar.
◮
◮
◮
Es gilt s ≤ t.
Wir können somit die NTM so modifizieren, dass sie nur in einer
festen partiellen Konfiguration Ca akzeptiert (ohne hierbei den Zeitoder Platzbedarf der NTM um mehr als den Faktor 2 zu erhöhen).
Mit C1 bezeichnen wir im Folgenden die partielle Startkonfiguration.
Korollar 5 N L ⊆ AC 1 .
Korollar 6 N C 1 = AC 1 =⇒ L = N L.
137
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 12 (Teil 2): Wir betrachten weiter:
◮
Andreas Jakoby
Universität zu Lübeck
Für s ≥ log kann jede s-platzbeschränkten NTM kann nur 2
viele verschiedene partielle Konfigurationen annehmen. Genauer
können wir einfach zeigen:
Für eine 1-Band NTM mit einseitig unbeschränktem Arbeitsband ist
Anzahle der verschiedenen möglichen partiellen Konfigurationen
gegeben durch
◮
Sei C1 , . . . , Cτ (n) eine Aufzählung aller möglichen partiellen
Konfigurationen, wobei wir annehmen, dass die partielle
Startkonfiguration C1 und die einzige partielle akzeptierende
Konfiguration Cτ (n) ist.
◮
Wir definieren nun die Übergangsmatrix AM (x) = (ai,j )1≤i,j≤τ (n) der
NTM M auf Eingabe x

 1 falls i = j ist oder die Übergang Ci ⊢ Cj bei
ai,j :=
der Eingabe x prinzipiell möglich ist

0 sonst.
τ (n) := n · |Q| · s(n) · |Σ|s(n) .
◮
Für eine k-Band NTM mit beidseitig unbeschränkten Arbeitsbändern
ist Anzahle der verschiedenen möglichen partiellen Konfigurationen
durch
τ (n) := n · |Q| · 2k · s(n) · |Σ|2k·s(n)
∈ 2O(s)
gegeben. Wir erhalten den Faktor 2k aus der Überlegung, dass wir
nicht wissen wie sich der Platzbedarf auf die k Bänder und auf die
zwei möglichen Richtungen verteilt.
◮
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 12 (Teil 3):
O(s)
◮
138
◮
Es gilt t ≤ τ (n).
139
Die Frage, ob Ci ⊢ Cj bei der Eingabe x möglich ist, hängt von dem
Symbol der Eingabe ab, welches M in der Konfiguration Ci von
gerade x ließt.
Die Übergangsmatrix kann von einer DTM auf Platz O(s(n))
konstruiert werden. Sie ist somit s-platzkonstruierbar, wenn wir s
berechnen oder approximieren können.
140
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Für t ∈ N mit t ≥ 1 definieren wir die Übergangsmatrix
[t]
[t]
AM (x) = (ai,j )1≤i,j≤τ (n) der NTM M auf Eingabe x
ai,j
:=

 1
falls i = j ist oder Cj in ≤ t Übergängen von Ci
bei Eingabe x erreicht werden kann

0 sonst.
1≤k≤τ (n)
[τ (n)]
◮
M akzeptiert genau dann die Eingabe x, wenn a1,τ (n) = 1 ist.
◮
Beachte, dass für den Fall, dass für ein t ∈ N ai,j = 1 ist, auch für
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 12 (Teil 5): Im nächsten Schritt fragen wir uns, wie
[t]
wir AM (x) berechnen können.
◮ Angenommen, wir wissen, dass wir in ≤ t − 1 Schritten auf Eingabe
x die partielle Konfiguration Ck von Ci erreichen und in einem Schritt
auf Eingabe x die partielle Konfiguration Cj von Ck erreichen, dann
können wir in ≤ t Schritten auf Eingabe x Cj von Ci erreichen, d.h.
_
[t]
[t−1]
[1]
ai,j =
(ai,k ∧ ak,j ) .
Beweis von Satz 12 (Teil 4): Im nächsten Schritt wollen wir die
Übergangsmatrix verallgemeinern.
◮
Andreas Jakoby
Universität zu Lübeck
◮
[t]
Somit erhalten wir AM (x) mit Hilfe des Booleschen Matrizenprodukts
[t]
[t]
[t−1]
AM (x) = AM
[t ′ ]
◮
alle anderen t ′ ≥ t ai,j = 1 ist.
Unser Ziel ist es jetzt für einen Wert t ≥ τ (n) zu entscheiden, ob
[t]
a1,τ (n) = 1 ist. Wir müssen also nicht unbedingt die Matrix
[1]
[1]
t-mal
◮
ℓ
Ist t = 2 , dann können wir aufgrund der Assoziativität des
[t]
Booleschen Matrizenprodukts AM (x) auch wie folgt bestimmen:
[τ (n)]
AM (x) konstruieren. Es ist vielmehr ausreichend für irgendeinen
[t]
Wert t ≥ τ (n) die Matrix AM (x) zu konstruieren.
[t]
[1]
AM (x) = ((. . . (AM (x) )2 . . .)2 )2 .
| {z }
ℓ-mal
141
Andreas Jakoby
Universität zu Lübeck
[1]
(x) · AM (x) = AM (x) · . . . · AM (x) .
{z
}
|
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Andreas Jakoby
Universität zu Lübeck
142
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beweis von Satz 12 (Teil 7): Und jetzt setzen wir alles zusammen.
◮
Beweis von Satz 12 (Teil 6):
◮ Für t ≥ 1 erhalten wir
[2t]
ai,j
=
_
1≤k≤τ (n)
◮
◮
[t]
◮
[t]
(ai,k ∧ ak,j ) .
◮
[2t]
Wir können somit AM (x) mit einem Schaltkreis der Größe O(τ (n)3 )
und Tiefe 2 berechnen, wenn wir auf and- und or-Gatter mit
unbeschränkten Eingrad zurückgreifen können.
Dieser Schaltkreis ist zudem s-platzkonstruierbar – im Wesentlichen
benötigen wir nur ein paar Zähler, die bis τ (n) zählen.
◮
[t ]
Durch iteriertes Quartieren können wir aus AM (x) die Matrix AM0 (x)
berechnen, wobei t0 die kleinste Zweierpotenz größer gleich τ (n) ist.
Es gilt somit τ (n) ≤ t0 = 2ℓ0 < 2τ (n) oder ℓ0 < 1 + log τ (n).
Es genügen folglich ℓ0 Iterationen.
Aufgrund unserer Beobachtungen auf der letzten Folie ist der
resultierende Schaltkreis s-platzkonstruierbar, O(ℓ0 )-tiefen- und
O(ℓ0 · τ (n)3 )-größenbeschränkt.
Aufgrund unserer Konstruktion gilt:
O(ℓ0 ) = O(log t)
und
O(τ (n)3 · ℓ0 ) = O(τ (n)3 · log τ (n)) = O(τ (n)4 ) = 2O(s) .
143
144
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Computational Complexity SS 08
4. Vorlesung, 28.04.2008
Beobachtung 12 In AC 0 liegen die folgenden Funktionen:
Wir wollen jetzt der Frage nachgehen, welche Funktionen in welcher
Komplexitätsklasse liegen.
Beobachtung 10 In N C 1 liegen die folgenden Funktionen:
◮
Andreas Jakoby
Universität zu Lübeck
◮
◮
die Addition zweier n-Bit Binärzahlen,
◮
die Multiplikation zweier n-Bit Binärzahlen,
die Summe von n n-Bit Binärzahlen und
◮ das Produkt zweier Matrizen bestehend aus n-Bit Binärzahlen.
Beobachtung 11 In N C 2 liegen die folgenden Funktionen:
die Addition zweier n-Bit Binärzahlen,
die Vergleich zweier n-Bit Binärzahlen,
die Maximum zweier n-Bit Binärzahlen und
das Mergen (Zusammenfügen) zweier sortierter Folgen aus m n-Bit
Binärzahlen.
Beobachtung 13 In AC 1 liegen die folgenden Funktionen:
◮ die Parität über n-Bits,
◮ die Multiplikation von zwei n-Bit Binärzahlen,
◮
◮
◮
die Division zweier n-Bit Binärzahlen,
die Determinante einer Matrix bestehend aus n-Bit Binärzahlen,
◮ die Inverse einer Matrix bestehend aus n-Bit Binärzahlen und
◮ der Abschluß einer Booleschen Matrix bezüglich des Booleschen
Matrizenprodukts.
Abhängig von den Konstruierbarkeitsbedingungen kann für die Division
auch ein N C 1 -Schaltkreis angegeben werden.
◮
◮
◮
◮
◮
◮
◮
die Summe von m n-Bit Binärzahlen,
das Sortieren von m n-Bit Binärzahlen,
Pn
die Majorität von n Bits, d.h. i=1 xi ≥ n/2,
der Abschluß einer Booleschen Matrix bezüglich des Booleschen
Matrizenprodukts und
der Zusammenhang von Graphen.
145
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
146
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 22 Seien f , g zwei Funktionen. Wir sagen
◮ f ist bezüglich der Schaltkreistiefe reduzierbar auf g , kurz f ≤d g ,
wenn jede log-platzkonstruierbare Schaltkreisfamilie C mit
depthC (n) = d(n) für g in eine log-platzkonstruierbare
Schaltkreisfamilie C ′ mit depthC ′ (n) = O(d(n)) für f transformiert
werden kann.
4.4 Die N C 1 -Reduktionen
Im Folgenden wollen wir noch eine weitere Reduktion vorstellen, die vor
allem bei der Analyse von Schaltkreiskomplexitätsklassen und für die
Klassen L und P von Bedeutung ist.
Oft ist es hilfreich, anstelle des gesamten Schaltkreises nur eine Art
Hauptschaltkreis, der auf Hilfsschaltkreise zurückgreift, zu betrachten.
Dieses führt uns der Folgenden Form von Reduktionen.
◮
f ist bezüglich der Schaltkreisgröße reduzierbar auf g , kurz f ≤s g ,
wenn jede log-platzkonstruierbare Schaltkreisfamilie C mit
sizeC (n) = s(n) für g in eine log-platzkonstruierbare
Schaltkreisfamilie C ′ mit sizeC ′ (n) = O(s(n)) für f transformiert
werden kann.
f ist bezüglich der Schaltkreistiefe und -größe reduzierbar auf g ,
kurz f ≤sd g , wenn jede log-platzkonstruierbare Schaltkreisfamilie C
mit sizeC (n) = s(n) und depthC (n) = d(n) für g in eine
log-platzkonstruierbare Schaltkreisfamilie C ′ mit sizeC ′ (n) = O(s(n))
und depthC ′ (n) = O(d(n)) für f transformiert werden kann.
f nennen wir genau dann s-äquivalent zu g (kurz f ≡s g ), wenn f ≤s g
und g ≤s f ist. Analog definieren wir f ≡d g und f ≡sd g .
◮
147
148
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Eine Reduktion von f auf g ist eine uniforme Schaltkreisfamilie (Ci )i∈N ,
welche f unter Zuhilfenahme von Orakel-Gattern für g berechnet. Ein
Orakel-Gatter für g berechnet auf Eingabe von (y1 , . . . , yr ) ∈ {0, 1}r das
Binärwort (z1 , . . . , zs ) = g (y1 , . . . , yr ). In der Analyse der Tiefe der
Schaltkreise von (Ci )i∈N berücksichtigen wir jedes Orakel-Gattern mit
einem logarithmischen Anteil in r . Für die Tiefe von Ni erhalten wir
somit:
depth(Ci ) =
max
(v1 ,...,vd ) ist
d
X
j=1
Eingabe-Ausgabe-Pfad in Ci
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 23 f nennen wir genau dann N C 1 -reduzierbar auf g (kurz
f ≤N C 1 g ), wenn eine log-platzkonstruierbare Schaltkreisfamilie
C = (Ci )i∈N für f mit depthC (n) = O(log(n)) und sizeC (n) = O(nO(1) )
existiert, welche auf Orakelgatter für g zurückgreifen kann.
Ferner nennen wir f N C 1 -äquivalent zu g (kurz f ≡N C 1 g ), wenn
f ≤N C 1 g und g ≤N C 1 f ist.
Satz 13 ≤N C 1 ist reflexiv und transitiv.
Satz 14 Für alle k ≥ 1 ist N C k abgeschlossen unter der N C 1 -Reduktion,
d.h. N C k = ΓN C 1 (N C k ).
⌈log2 max{2, Eingrad(vi )}⌉ .
149
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
◮
Bei der Betrachtung der Platzkomplexität von Problemen werden nicht
nur die bereits definierten Klassen L, N L und PSPACE untersucht. Um
einen kleinen Eindruck von der Vielfältigkeit der untersuchten
Platzkomplexitätsklassen zu geben, wollen wir im Folgenden drei weitere
Klassen einführen und untersuchen.
◮
Definition 24 Eine NTM nennen wir symmetrisch, wenn für jedes Paar
C1 , C2 von totalen Konfiguration der NTM gilt:
⇐⇒
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 24 (Teil 2) Eine Randomisierte Turing-Maschine (kurz RTM) M
definieren wir analog zum Modell der NTM mit der folgenden Änderung:
5 Das Labyrinth der logarithmischen
Platzklassen
C1 ⊢ C2
150
◮
C2 ⊢ C1 ,
d.h. jede Konfigurationsänderung, die die NTM vollziehen kann, muss
von ihr auch zurückgenommen werden können.
Für eine totale Konfiguration C sei S(C ) die Menge aller direkten
Nachfolgekonfigurationen C ′ von M auf C , d.h. aller C ′ mit C ⊢ C ′ .
Die Übergangswahrscheinlichkeit Pr[C ⊢ C ′ ] für zwei totale
Konfigurationen C und C ′ definieren wir wie folgt
0
falls C ′ 6∈ C(C ),
Pr[C ⊢ C ′ ] :=
1
sonst.
|S(C )|
Die Wahrscheinlichkeit für eine Berechnung Π = C0 , C1 , . . . , Cm
definieren wir als
Pr[Π] :=
m−1
Y
i=0
151
Pr[Ci ⊢ Ci+1 ] .
152
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 24 (Teil 3)
◮ Sei C0 (x) die Startkonfiguration von M auf Eingabe x und sei
Cakz (x) die Menge aller akzeptierenden Berechnungen von M auf
Eingabe x, d.h. die Menge aller Konfigurationsfolgen von M die in
C0 (x) beginnen und in einer akzeptierenden Konfiguration enden.
Dann definieren wir die Wahrscheinlichkeit pakz (x), dass M die
Eingabe x akzeptiert über
X
pakz (x) :=
Pr[Π] .
SL ist die Menge aller Sprachen, die von einer symmetrischen
logarithmisch-platzbeschränkten NTM akzeptiert werden.
◮ RL ist die Menge aller Sprachen L, für die von einer
logarithmisch-platzbeschränkten RTM M mit einseitigen Fehler von
1
2 akzeptiert werden.
Die Klasse SL scheint auf dem ersten Blick sehr nahe mit der Klasse N L
verwandt zu sein. Beiden Klassen liegt eine logarithmisch-platzbeschränkten NTM zugrunde. Es ist daher auf dem ersten Blick etwas
verwunderlich, dass vor kurzem SL = L gezeigt wurde, und die Frage, ob
SL = N L ist, immer noch offen ist. Das wesentliche Problem einer
platzbeschränkten symmetrischen NTM ist das Zählen, da sie jeden
Schritt wieder zurück nehmen können muss, könnte sie also
1, 2, 3, 2, 3, 2, 3, 4, 5, . . . zählen ohne es zu merken.
◮
Sei M eine RTM, dann definieren wir für einen Fehlerschranke ε mit
0 ≤ ε ≤ 1:
Lε (M) := { x | M akzeptiert x mit pakz (x) ≥ ε } .
◮
◮
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 24 (Teil 4) Die Zeit- und Platzbeschränkung einer
symmetrischen NTM und einer RTM definieren wir analog zur Zeit- bzw.
Platzbeschränkung einer NTM.
Mit Hilfe der so definierten Turing-Maschinen können wir nun zwei
weitere Komplexitätsklassen definieren:
Π∈Cakz (x)
◮
Andreas Jakoby
Universität zu Lübeck
Wir sagen, dass eine RTM M eine Sprache L mit einseitigem Fehler
ε akzeptiert, wenn L = Lε (M) ist und zudem für alle x 6∈ L
pakz (x) = 0 ist.
Wir erweitern die Menge Mk um alle k-Band RTMs und
symmetrische k-Band NTMs.
153
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
154
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Wir wollen nun noch ein paar weitere Komplexitätsklasse einführen, die
im Umfeld der logarithmischen Platzklassen untersucht wird.
Definition 25 Sei C eine Komplexitätsklassen und F eine Menge von
Funktionen, dann definieren wir die C/F als die Menge der Sprachen L,
für die
◮ es eine Funktion f ∈ F,
In Definition 2 haben wir definiert, dass eine TM hält, sobald eine
Endkonfiguration erreicht ist, egal, ob dieses eine akzeptierende oder
verwerfende Konfiguration ist. Da für jede Konfiguration C einer DTM
M maximal eine Konfiguration C ′ existiert, so dass C ⊢ C ′ gilt, kann für
ein x 6∈ L(M) eine akzeptierende Endkonfiguration nicht ein von der
Startkonfiguration C0 (x) erreichbar sein, auch wenn wir der TM erlauben,
jeden gemachten Konfiguartionsübergang zurück zu nehmen, d.h., wenn
wir das der DTM eine symmetrische NTM machen. Es folgt:
eine TM M, die die Einschränkungen von C erfüllt, und
◮ eine Folge von Zeichenketten w0 , w1 , . . . mit f (i) = |wi | gibt,
so dass M die Sprache L akzeptiert, wobei M für jede Eingabe x die
Zeichenkette w|x| zur Verfügung hat. Die Zeichenkette w|x| wird auch
Advice genannt. Beachte, dass der Advice nicht konstruierbar sein muss,
und dass die Zeichenkette w|x| nur von der Länge jedoch nicht von der
konkreten Eingabe x abhängig ist.
Von besonderen Interesse sind hier die Klassen
◮
Beobachtung 14
L ⊆ SL ⊆ N L .
L/poly , N L/poly , RL/poly und P/poly .
155
156
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
5.1 Das Labyrinth-Problem
Wir wollen nun ein einfache und natürliches Problem vorstellen, welches
auf sehr einfache Art und Weise jeweils ein vollständiges Problem für L,
SL und N L liefert.
Um das Labyrinth-Problem zu lösen, betrachten wir den folgenden
nicht-deterministischen Algorithmus:
Algorithmus Walk-Labyrinth(s, t)
Eingabe: Graph G (global gegeben), Startknoten s, Zielknoten t
Ergebnis: 1 falls t von s erreichbar ist, 0 oder undefiniert sonst
1: if s 6= t then
2:
if es existiert ein Knoten, der von s aus direkt erreichbar ist then
3:
wähle einen Knoten z, der von s aus direkt erreichbar ist
4:
Return(Walk-Labyrinth(z, t))
5:
else
6:
Return(0)
7:
end if
8:
Return(1)
9: end if
Definition 26 [Labyrinth-Problem] Gegeben ist ein Graph G = (V , E )
und zwei ausgezeichnete Knoten s, t ∈ V . Wir nennen t von s in G
erreichbar, wenn es eine Folge von Konten v0 , . . . , vk+1 ∈ V mit s = v0
und t = vk+1 gibt, so dass für alle i ∈ {0, . . . , k}
◮ (vi , vi+1 ) ∈ E ist, falls G gerichtet ist, und
◮ {vi , vi+1 } ∈ E ist, falls G ungerichtet ist.
Wir untersuchen die folgenden Varianten des Labyrinth-Problems:
GAP := { (G , s, t) | G ist ein gerichteter Graph
und t ist von s erreichbar }
TREE-GAP := { (G , s, t) | G ist ein zur Wurzel gerichteter Baum
und t ist von s erreichbar }
UGAP := { (G , s, t) | G ist ein ungerichteter Graph
und t ist von s erreichbar }
Andreas Jakoby
Universität zu Lübeck
157
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Es ist einfach zu erkennen, dass dieser Algorithmus das LabyrinthProblem löst. Betrachten wir den Algorithmus Walk-Labyrinth etwas
näher, so erkennen wir, dass bei einer herkömmlichen Kodierung des
Graphen, z.B. Adjazenzmatrix mit Knotennahmen der Länge O(log |V |),
der Platzbedarf dieses Verfahrens logarithmisch ist. Ferner fällt aus:
◮ Ist von jedem Knoten maximal ein anderer Knoten direkt erreichbar,
dann ist der Algorithmus deterministisch.
◮ Ist der Graph ungerichtet, dann ist der Algorithmus symmetrisch
nichtdeterministisch.
◮ Ist der Graph gerichtet, dann ist der Algorithmus
nichtdeterministisch.
◮
158
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Fassen wir zusammen, so folgt:
Beobachtung 15
GAP ∈
UGAP ∈
TREE-GAP ∈
NL
SL
L
Im Folgenden werden wir zunächst zeigen, dass diese Probleme auch hart
für die entsprechenden Klassen sind.
Wählen wir den Knoten z zufällig unter allen Knoten, die von s aus
direkt erreichbar sind, und ist der Graph ungerichtet, dann ist der
Algorithmus randomisiert mit einseitigem Fehler.
159
160
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Im Beweis von Satz 12 haben wir die Übergangsmatrix einer
logarithmisch-platzbeschränkten NTM kennen gelernt. In einer
Übungsaufgabe wurde gezeigt, dass es für jede
logarithmisch-platzbeschränkten NTM die Konstruktion dieser
Übergangsmatrizen in AC 0 und somit in N C 1 möglich ist. Interpretieren
wir nun die partiellen Konfigurationen als Knoten eines Graphen und die
Übergangsmatrix als Adjazenzmatrix dieses Graphen, dann erkennen wir:
Definition 27 Wir nennen ein Problem L hart oder schwer für eine
Komplexitätsklasse C bezüglich eines Reduktionstyps ≤, falls für alle
Probleme L′ ∈ C gilt:
L′ ≤ L .
Ein Problem L ist vollständig für eine Komplexitätsklasse C bezüglich
eines Reduktionstyps ≤, falls
◮ L hart für C bezüglich ≤ ist und ferner
◮
L in C liegt.
Frage: Wie können wir in endlicher Zeit zeigen, dass sich jedes Problem
einer unendlich großen Klasse auf ein Problem reduzieren läßt?
◮
◮
Der resultierende Graph einer NTM ist ein gerichteter Graph – für
einen Übergang C ⊢ C ′ muss es den Übergang C ′ ⊢ C nicht
unbedingt geben.
Der resultierende Graph einer symmetrischen NTM ist ein
ungerichteter Graph – für jeden Übergang C ⊢ C ′ muss es den
Übergang C ′ ⊢ C geben.
161
Andreas Jakoby
Universität zu Lübeck
◮
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
162
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Der resultierende Graph einer DTM ist ein gerichteter Graph bei
dem jeder Knoten einen Ausgrad von maximal 1 hat.
◮
◮
Da es für jede Sprache in L, in SL oder in N L eine entsprechende TM
existiert, können wir folgern:
Fügen wir zu der DTM noch einen Schrittzähler hinzu, dann ist der
resultierende Graph G ein Wald aus Bäumen, die alle in Richtung zur
Wurzel gerichtet sind.
Addieren wir zu diesem Graph noch eine ausgezeichnete neue Wurzel
r , und verbinden wir jeden Knoten u aus G mit Ausgrad 0 mit r
durch eine Kante (u, r ), dann ist der resultierende Graph ein Baum,
der in Richtung zur Wurzel r gerichtet sind.
Satz 15
◮ GAP ist N L-vollständig bezüglich der N C 1 -Reduktion.
◮ UGAP ist SL-vollständig bezüglich der N C 1 -Reduktion.
◮ TREE-GAP ist L-vollständig bezüglich der N C 1 -Reduktion.
Wir haben bereits gesehen, dass wir jede TM durch eine TM ersetzen
können, die die gleiche Sprache akzeptiert und die gleichen
Platzschranken einhält, welche jedoch nur eine ausgezeichnete
akzeptierende Endkonfiguration Ca besitzt. Für diesen Typus von TM ist
die Frage ob die TM eine Eingabe akzeptiert folglich äquivalent zur
Frage, ob in dem entsprechenden Graph der Knoten Ca von C0 (x) (C0 (x)
entspricht der Startkonfiguration der TM) erreichbar ist.
Es ist einfach einzusehen, dass diese Vollständigkeiten auch bezüglich der
AC 0 -Reduktion gilt, wobei wir die AC 0 -Reduktion analog zur N C 1 -Reduktion
definieren.
163
164
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
5.2 Random-Walks und universelle Wegbeschreibung
Wir wollen jetzt zeigen, dass UGAP in RL und in L/poly ist. Da in der
heute bekannt ist, dass UGAL in L ist, verwundern uns diese Ergebnisse
nicht besonders. Wir zeigen dieses jedoch, indem wir den Algorithmus
Walk-Labyrinth(s, t) entsprechend anpassen. Dieses hat dann zur Folge:
◮
◮
Notationen:
◮
◮
Suchen wir in einer Stadt unser Ziel t, dann können wir dieses
erreichen, indem wir an jeder Kreuzung eine Münze werfen und
unsere Suche in die entsprechende Richtung fortsetzen.
Es gibt eine Wegbeschreibung, die in jeder Stadt mit gegebener
Größe gültig ist. Zudem ist die Wegbeschreibung unabhängig von
Start und Ziel.
◮
Hier soll noch davor gewarnt werden, diesen Strategien zu vertrauen,
wenn man es eilig hat. Der hierbei beschrittene Weg ist im Allgemeinen
erheblich länger als der kürzeste Weg und für die universelle
Wegbeschreibung werden wir nur deren Existenz nachweisen, sie jedoch
nicht konstruieren.3
Für einen Knoten v eines Graphen G sei d(v ) der Grad von v .
Mit dist(u, v ) bezeichnen wir die Distanz zwischen u und v , d.h. die
Länge es kürzesten Wegs von u nach v in G .
Wir betrachten nun die randomisierte Variante vom Algorithmus
Walk-Labyrinth, d.h. in Zeile 3 wählen wir zufällig einen Nachbarn z
vom aktuellen Knoten s. Genauer, sei z ein Nachbar von s, dann
1
als nächsten
wählen wir z mit einer Wahrscheinlichkeit von d(s)
Knoten.
◮
Der Algorithmus beschreibt somit einen randomisierten Lauf von
Knoten zu Knoten auf dem gegebenen Graphen.
◮
Dieses führt uns zu den sogenannten Markov-Kette.
3 Typisch Theorie: Schönes Ergebnis jedoch kein praktischer Nutzen, wenn man auf
Reisen geht.
165
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Definition 28 (Teil 2) Die Übergangswahrscheinlichkeiten einer
Markov-Kette definieren eine Übergangsmatrix


p1,1 p1,2 . . . p1,n
 p2,1 p2,2 . . . p2,n 


P =  .
..
..  .
..
 ..
.
.
. 
pn,1 pn,2 . . . pn,n
Definition 28 [Markov-Kette] Sei X0 , X1 , . . . ∈ Σ eine Folge von
stochastischen Prozessen, die Werte aus einer endlichen oder unendlichen
Menge Σ annehmen können. Wenn für alle t ≥ 0 und alle i0 , . . . , it−1 gilt
pi,j
166
= Pr[Xt+1 = j|Xt = i, Xt−1 = it−1 , . . . , X0 = i0 ]
= Pr[Xt+1 = j|Xt = i] ,
Eine Verteilung π = (π1 , . . . , πn ) nennen wir stationär
P (in der Literatur
kennt man auch den Begriff invariant), wenn πi = j∈[1,n] πj · pj,i für alle
P
i ∈ [1, n] und 1 = i∈[1,n] πi , d.h. es gilt
so nennen wir diesen Prozess eine Markov-Kette. Die Wahrscheinlichkeiten
pi,j nennen wir die Übergangswahrscheinlichkeiten der Markov-Kette. Im
Folgenden wollen wir annehmen, dass Σ = [1..n] eine Teilmenge der
natürlichen Zahlen ist.
π = π·P .
167
168
Andreas Jakoby
Universität zu Lübeck
◮
◮
◮
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Für die Übergangswahrscheinlichkeit pi,j von Knoten vi zum Knoten
vj erhalten wir
1
für {vi , vj } ∈ E
d(vi )
pi,j :=
0
sonst.
i∈[1,n]
=
X
1
d(vi ) =
2 · |E |
i∈[1,n]
Definition 29 Für die Übergangswahrscheinlichkeiten pi,j definieren wir
(t)
für t ≥ 1 pi,j als die Wahrscheinlichkeit vj von vi aus in t Schritten zu
erreichen, d.h.
(
pi,j
für t = 1
(t)
P
pi,j =
(t−1)
p
·
p
sonst. .
k,j
k∈Σ i,k
Eine Markov-Kette heißt irreduzibel, wenn für alle i, j ∈ Σ vj von vi aus
(t)
erreichbar ist, d.h. es existiert ein t ≥ 1, so dass pi,j > 0 ist.
1
· 2|E | = 1
2 · |E |
(0)
Sei Pi,j = 0 und für t > 0
(t)
Pi,j
und
X
j∈[1,n]
πj ·pj,i =
X
{vj ,vi }∈E
d(vj )
1
1
·
=
2 · |E | d(vj )
2 · |E |
X
1 =
{vj ,vi }∈E
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Um den randomisierten Lauf besser verfolgen zu können, definieren wir:
Eine Verteilung π = (π1 , . . . , πn ) gibt die Wahrscheinlichkeiten πi
wieder, dass sich ein randomisierter Lauf im Konten vi befindet.
d(vi )
Sei P = (pi,j )i,j∈[1,n] , dann ist π = (π1 , . . . , πn ) mit πi = 2·|E
| für
i ∈ [1, n] eine stationäre Verteilung für G . Es gilt:
X d(vi )
2 · |E |
Andreas Jakoby
Universität zu Lübeck
d(vi )
.
2 · |E |
= Pr[ Xt = vj ∧ ∀k ∈ [0, t − 1] : Xk 6= vj | X0 = vi ] .
Wir nennen i rekurrent, wenn
P∞
t=0
(t)
Pi,i = 1 ist.
169
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
170
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
5. Vorlesung, 05.05.2008
Von großem Interesse ist in diesem Zusammenhang die erwartete Anzahl
von Schritten, um von einem Knoten vi zum ersten Mal zu einen Knoten
vj zu gelangen. Wir definieren für eine Folge X = x0 , x1 , . . . mit x0 = vi
Ti,j (X ) = min{ t ∈ N+ | xt = vj } .
Aus dem Satz 16 können wir für den randomisierten Lauf auf dem
ungerichteten Graphen G schließen:
Lemma 9 Für jeden Knoten vi ∈ V gilt
Satz 16 Sei X0 , X1 , . . . eine irreduzible Markov-Kette, dann sind die
folgenden Aussagen äquivalent:
1. Für alle i gilt E[Ti,i ] < ∞.
2. Für alle i, j gilt E[Ti,j ] < ∞.
E[Ti,i ] =
2 · |E |
.
d(vi )
3. Es existiert eine stationäre Verteilung π = (π1 , . . . , πn ). In diesem
Fall gilt
1
.
0 < πi =
E[Ti,i ]
Für einen endlichen Zustandsraum Σ sind die drei obigen Aussagen
immer erfüllt. Insbesondere gilt, dass eine irreduzible Markov-Kette mit
E[Ti,i ] < ∞ für alle vi genau eine stationäre Verteilung besitzt.
171
172
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Für die nun folgenden Untersuchungen über einen randomisierten Lauf
durch einen ungerichteten Graphen benötigen wir noch ein paar
Eigenschaften des Erwartungswerts:
Satz 17 Seien X1 , X2 zwei Zufallsvariablen deren Erwartungswerte
existieren, dann gilt:
1. Für alle c ∈ R existiert der Erwartungswert von c · X1 , und es gilt
E[c · X1 ] = c · E[X1 ].
2. Der Erwartungswert von X1 + X2 existiert, und es gilt
E[X1 + X2 ] = E[X1 ] + E[X2 ].
3. Sind X1 , X2 unabhängig, so existiert der Erwartungswert E[X1 · X2 ],
und es gilt E[X1 · X2 ] = E[X1 ] · E[X2 ].
4. Linearität des Erwartungswerts: Seien X1 , . . . , Xk Zufallsvariablen
und h : Rk → R eine lineare Funktion, dann gilt
Wir stellen fest:
◮
Die Wahrscheinlichkeit, dass wir eine bestimmte Kante {vi , vj }
wählen, wenn wir uns auf dem Knoten vi befinden, ist gleich d(v1 i ) .
◮
Die Wahrscheinlichkeit, dass wir diese Kante bei unserem t-en
Besuch von vi zum ersten Mal überschreiten ist geometrisch verteilt,
d.h. die Wahrscheinlichkeit, hierfür ist (1 − d(v1 i ) )t−1 · d(v1 i ) .
◮
Erwartungsgemäß wählen wir diese Kante bei jedem d(vi )-ten
Besuch von vi .
E[h(X1 , . . . , Xk )] = h(E[X1 ], . . . , E[Xk ]).
5. Seien X1 , X2 zwei unabhängige Zufallsvariablen und g , h zwei
beliebige Funktionen, dann gilt
E[g (X1 )f (X2 )] = E[g (X1 )] · E[f (X2 )] .
173
Andreas Jakoby
Universität zu Lübeck
◮
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Wir wählen g (X1 ) = Ti,i und f (X2 ) = t · (1 −
erhalten
E[g (X1 )f (X2 )] = E[g (X1 )]·E[f (X2 )] =
1
t−1
d(vi ) )
·
1
d(vi ) ,
174
Andreas Jakoby
Universität zu Lübeck
Lemma 10 Für eine Kante {vi , vj } in G gilt:
und
E[Ti,j ] + E[Tj,i ] ≤ 2 · |E | .
2 · |E |
·d(vi ) = 2·|E | .
d(vi )
Beweis von Lemma 10
◮
◮
◮
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Zusammenfassend gilt, dass die Kante {vi , vj } im Erwartungswert
nach 2 · |E | Schritten benutzt wird, bzw., dass wir diese Kante bei
einem langen Lauf alle 2 · |E | Schritte von vi nach vj überschreiten.
Die Frequenz des Übergangs von vi nach vj ist somit auf einem
1
langen Lauf auf diesem Graphen 2·|E
|.
◮
◮
175
Die erwartete Wartezeit zwischen zwei Überschreitungen der Kante
{vi , vj } von vi nach vj ist durch 2 · |E | beschränkt.
Hierfür muss es jedoch auch einen Lauf von vj zurück nach vi
zwischen zwei solchen Überschreitungen geben, d.h. innerhalb dieser
zwei Überschreitungen von {vi , vj }.
Die obere Schranke folgt unmittelbar.
176
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Sei Ti,· eine Zufallsvariable, welche einen zufälligen Rundweg durch G
von i nach i angibt, welcher alle Knoten von G besucht. Dann gilt:
Satz 18 E[Ti,· ] ≤ 2 · |E | · (n − 1) .
Beweis von Satz 18
◮
◮
◮
Beweis von Satz 18 (Teil 2)
◮
Sei H ein spannender Baum von G und
vi0 = vi , vi1 , . . . , vi2n−3 , vi2n−2 = vi ein Pfad in H, welcher alle Knoten
von H besucht (vi0 , vi1 , . . . , vi2n−3 , vi2n−2 traversiert H).
Dann ist E[Ti,· ] maximal gleich der erwarteten Zeit eines Laufs, bei
dem wir von vi0 nach vi1 , von vi1 nach vi2 , usw. laufen.
Es gilt also:
Wir können mit Hilfe von Lemma 10 den Wert von
E[Tik ,ik+1 ] + E[Tik ′ ,ik ′ +1 ] aus dieser Summe wie folgt begrenzen:
E[Tik ,ik+1 ] + E[Tik ′ ,ik ′ +1 ] = E[Tik ,ik+1 ] + E[Tik+1 ,ik ] ≤ 2 · |E | .
◮
Da die Summe in der obigen Abschätzung für E[Ti,· ] genau aus
n − 1 Paaren dieser Form besteht, gilt:
E[Ti,· ] ≤ 2 · |E | · (n − 1) .
E[Ti,· ] ≤ E[Ti0 ,i1 + Ti1 ,i2 + . . . + Ti2n−3 ,i2n−2 ]
= E[Ti0 ,i1 ] + E[Ti1 ,i2 ] + . . . + E[Ti2n−3 ,i2n−2 ] .
◮
Bei dieser Rundreise kommt jedes Paar u, v , welches in H durch eine
Kante verbunden ist, einmal in der Reihenfolge u, v und einmal in
der Reihenfolge v , u vor.
177
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Die oben gemachte Beobachtung, dass ein randomisierter Lauf durch
einen Graphen in erwarteter polynomieller Zeit ans Ziel führt, hat
Auswirkungen auf die Komplexität dieses Problems. Eine randomisierte
Turing-Maschine, welche einen solchen Lauf simuliert benötigt nur
logarithmischen Platz:
178
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Wir werden jetzt zeigen, dass für jedes Graphgröße n und für jeden Grad
d eine universelle Wegbeschreibung existiert:
Es existiert eine Wegbeschreibung wn,d die für jeden
ungerichteten Graphen G = (V , E ) mit |V | = n und d(v ) = d
für alle Knoten v einen Weg von jedem Start- zu jedem
Zielkonten beschreibt.
Satz 19 UGAP ist in RL.
179
180
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Definition 30
◮ Einen ungerichteten Graphen G nennen wir d-regulär falls alle
Knoten v in G den Grad d haben.
◮ Mit Γ(v ) := { u | {u, v } ∈ E } bezeichnen wir die Nachbarschaft
von v .
◮ Sei V ′ ⊆ V eine Teilmenge der Knoten von G , dann definieren wir
[
Γ(v )
Γ(V ′ ) :=
′
◮
◮
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Satz 20 Es existiert ein n-universeller Pfad der Länge
2dn(n − 1)(2dn + 2)⌈log2 n⌉ für Graphen mit Grad d.
Beweis von Satz 20:
◮ Sei Π eine zufällige gleichverteilte Sequenz aus {0, . . . , d − 1}∗ der
Länge 2dn(n − 1)(2dn + 2)⌈log2 n⌉.
◮ Für einen Graphen G von n Knoten und Grad d und Startknoten v
definieren wir die Zufallsvariable XG ,s (Π) wie folgt:

 1 wenn Π startend von s nicht alle
Knoten aus G besucht,
XG ,s (Π) =

0 sonst
v ∈V ′
′
Γ (V ) := V ∪ Γ(V ′ ) .
◮
′
Andreas Jakoby
Universität zu Lübeck
Mit nv : [0, d − 1] → Γ(v ) bezeichnen wir eine Aufzählung der
Nachbarn von v .
Eine Sequenz π = π1 . . . πm ∈ {0, . . . , d − 1}∗ interpretieren über die
Knotenfolge v0 , . . . , vm mit vi+1 = nvi (πi+1 ) als Pfad in einem
solchen Graphen G .
Eine Sequenz π nennen wir n-universell, wenn für jeden Graphen G
mit n Knoten und festem Grad d, für jede Wahl der Funktionen nv ,
und für jeden Startknoten s der Pfad π alle Knoten von G besucht.
ferner sei
X (Π) =
X
XG ,s (Π) .
G ,s
◮
◮
Für den Fall, dass Π eine n-universeller Pfad ist, gilt X (Π) = 0 ist.
Dieses folgt aus der Beobachtung, dass X (Π) die Anzahl der
Gegenbeispiele zu der Annahme, dass Π ein n-universeller Pfad ist,
zählt.
181
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
182
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Beweis von Satz 20 (Teil 3): Aus der Linearität des Erwartungswerts
folgt:
X
E[X ] =
E[XG ,s ] .
G ,s
Wir wollen nun zeigen, dass E[XG ,s ] hinreichend klein ist:
◮ Wir zerlegen Π in Intervalle Π1 , Π2 , . . . , Π(2dn+2)⌈log n⌉ der Länge
2
2dn(n − 1).
◮ Aus Satz 18 folgt, dass E[Ts,· ] ≤ 2 · |E |(n − 1) = dn(n − 1) ist.
◮ Hier kommt die Markov-Ungleichung zur anwenden:
Beweis von Satz 20 (Teil 2): Die Schlüsselbeobachtung bei der nun
folgenden probabilistischen Methode ist:
Sei Π eine zufällige Sequenz. Ist der Erwartungswert E[X ] < 1,
dann hat dieses zur Folge, dass es einen Pfad π gibt, der in
jedem Graph G und von jedem Startknoten s, alle Knoten von
G besucht.
Satz 21 Sei T eine Zufallsvariable, die nur nicht-negative Werte
annimmt, dann gilt
Pr[T ≥ a] ≤
◮
183
E[T ]
.
a
Die Wahrscheinlichkeit, dass Π1 startend bei s alle Knoten aus G
besucht, ist zumindest 12 . Analog gilt, dass der Pfad Π2 startend von
dem Endknoten s ′ des Pfads Π1 alle Knoten aus G besucht,
zumindest 12 ist, usw.
184
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Beweis von Satz 20 (Teil 4):
◮
Die Wahrscheinlichkeit, dass keiner der Pfade Π1 , . . . , Π(2dn+2)⌈log2 n⌉
alle Knoten von G besucht, ist
≤ 2−(2dn+2)⌈log2 n⌉ ≤ n−(2dn+2) .
◮
Fügen wir jetzt zu jedem Knoten v noch n − d(v ) Schleifen der Form
{v , v } hinzu, so erhalten wir einen n-regulären Graphen (mit
Mehrfachkanten). Da Satz 20 auch für diese Form von Graphen gilt, gibt
es eine Sequenz der Länge O(n5 ⌈log2 n⌉) welche eine universelle
Wegbeschreibung für alle ungerichtete Graphen mit n darstellt. Stellen
wir diese Sequenz einer DTM als Advice zur Verfügung, so erhalten wir:
Das heißt: Für jeden Graphen G und für alle Knoten s gilt
E[XG ,s ] ≤ 2−(2dn+2)⌈log2 n⌉ ≤ n−(2dn+2) .
Da jeder Graph G vom Grad d für alle Funktion nv durch einen binären
String der Länge dn⌈log n⌉ beschrieben werden kann, ist die Anzahl
dieser Graphen durch n2dn beschränken. Somit gilt für alle Graphen mit
n ≥ 2 Knoten
P
P
−(2dn+2)
E[X ] =
G ,s E[XG ,s ] ≤
G ,s n
P 2dn −(2dn+2)
≤
·n
≤ n · n−2 = n1 < 1
sn
Satz 22 UGAP ist in L/poly .
185
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
186
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
5.3 UGAP ist in L
5.3.1 Expandergraphen
Im Wesentlichen basiert der Algorithmus von Reingold, mit dessen Hilfe
man UGAP auf logarithmischen Platz lösen kann, auf drei Beobachtungen:
In einem ersten Schritt werden wir Graphen untersuchen, die sich
besonders gut zum Ersetzen der Knoten mit hohem Grad eignen.
◮
◮
◮
Hat G einen konstanten Grad und liegen s und t nahe beieinander
(die Distanz von s und t ist nur logarithmisch), dann können wir
UGAP auf logarithmischen Platz deterministisch lösen.
Hat G einen hohen Grad, dann können wir diesen dadurch
reduzieren, indem wir jeden Knoten durch einen Graphen mit kleinen
Grad ersetzen, und jeden Knoten im eingesetzten Graphen mit
wenigen Kante im ursprünglichen Graphen inzidieren.
Definition 31 Sei G = (V , E ) ein ungerichteter Graph.
◮ G hat eine Knotenexpansion (k, a) falls für alle V ′ ⊆ V mit
|V ′ | ≤ k gilt
|Γ(V ′ )| ≥ a · |V ′ | .
Wir nennen einen Graphen mit Knotenexpansion (k, a) auch
(k, a)-Expander.
◮ Einen (|V |/2, a)-Expander nennen wir auch a-Expander.
Und noch eine Definition, deren Bedeutung für unsere Betrachtungen auf
den kommenden Folien deutlich werden sollte:
Sei A die Adjazenzmatrix von G und stehen auf der Diagonale von A
überall Einsen, dann halbiert sich der Abstand von s und t im
Graphen mit der Adjazenzmatrix A2 .
Leider verhalten sich die letzten beiden Punkte konträr zueinander und
leider ist es nicht so einfach einzusehen, dass die letzten beiden Punkt
auf beschränktem Platz durchgeführt werden können. Daher müssen wir
im Folgenden etwas tiefer in die Trickkiste greifen.
Definition 32 Für eine n × n-Matrix M ∈ Rn×n nennen wir einen Vektor
~v ∈ Rn Eigenvektor, falls für ein λ ∈ R M · ~v = λ · ~v ist. λ nennen wir
den zu ~v gehörigen Eigenwert.
187
188
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Andreas Jakoby
Universität zu Lübeck
Definition 32
◮ Für einen d-regulären ungerichteten Graphen G mit
Übergangsmatrix P sei
Beobachtung 16 Sei P die Übergangsmatrix eines ungerichteten
Graphens G und π = (π1 , . . . , πn ) ein stationäre Verteilung, d.h.
π = π · P, dann gilt P = P T und für den transponierten Vektor der
Verteilung π T = P · π T . Somit ist π T ein Eigenvektor der Matrix P mit
Eigenwert λ1 = 1.
λ2 =
◮
Im Folgenden gelte:
◮
◮
◮
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Wir betrachten d-reguläre (Multi-)Graphen – notfalls fügen wir noch
einige Schleifen {v , v } an Konten mit geringerem Grad an. Somit
sind die Einträge in der Übergangsmatrix P entweder d1 oder 0.
Die stationäre Verteilung setzen wir somit auf π = (π1 , . . . , πn ) mit
1
πi = |N|
.
◮
◮
max
kxk=1, x⊥π
kP · xk
der zweitgrößte Eigenwert von P.
G hat Spektralexpansion λ ∈ R falls für den zweitgrößten Eigenwert
λ2 ≤ λ gilt.
Die minimale Spektralexpansion von G bezeichnen wir auch mit
λ(G ).
Wir nennen einen d-regulären ungerichteten Graphen mit n Knoten
und mit Spektralexpansion λ auch (n, d, λ)-Expander.
Auf der folgenden Folie werden wir sehen, dass λ2 angibt, wie schnell
eine Graph dazu tendiert bei einem randomisierten Lauf die stationäre
Verteilung anzunehmen – je kleiner λ2 ist, desto schneller wird π
angenommen. λ beschreibt somit einen Wert für die Güte der
Expandereigenschaft des Graphen.
Wir betrachten π als Spaltenvektor.
189
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Beobachtung 17 Sei µP
∈ R eine Wahrscheinlichkeitsverteilungen, d.h.
n
µ1 , . . . , µn ∈ [0; 1] und i=1 µi = 1, und π = ( n1 , . . . , n1 ) dann gilt
entweder µ = π oder es existiert ein Vektor π̃ ∈ Rn , so dass
Satz 23 Sei G ein (n, d, λ)-Expander, dann verringert sich der Abstand
zwischen der stationären Verteilung π und einer beliebigen
Wahrscheinlichkeitsverteilung auf den Knoten der zu G gehörigen
Markov-Kette P bei jeder Schritt um einen Faktor ≤ λ.
Beweis von Satz 23 Sei π̃ = µ − π, dann gilt
P · µ − π = P · (π + π̃) − π = P · π − π + P · π̃ = P · π̃ .
Somit gilt für den zweitgrößten Eigenwert λ2
i=1
Folglich stehen π und π̃ orthogonal zueinander.
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
i=1
π + π̃ = µ und π⊥π̃ .
◮
Andreas Jakoby
Universität zu Lübeck
Definition 33 Seien π und µ zwei Punkte im Rn , dann ist der Abstand
von π und µ bezüglich der euklidischen Norm
sX
kπ − µk = 2
|πi − µi |2 .
n
Beweis von Beobachtung 17 Wir untersuchen π̃ = µ − π.
◮ Sei s + die Summe der positiven Einträge in µ − π und s − die
Summe der negativen Einträge in µ − π.
Pn
Pn
+
−
◮ Da
i=1 πi =
i=1 µi = 1 ist, ist s = −s .
◮ Somit gilt
n
X
s+ + s−
π̃i
=
= 0.
π · π̃ =
n
n
190
kP · µ − πk = kP · π̃k ≤ λ2 · kπ̃k ≤ λ · kµ − πk .
191
192
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
6. Vorlesung, 19.05.2008
Die Bedeutung eines (n, d, λ)-Expander für UGAP folgt unmittelbar aus
Satz 23:
Korollar 7 Sei G ein (n, d, λ)-Expander, dann verringert sich der
Abstand zwischen der stationären Verteilung π und einer beliebigen
Wahrscheinlichkeitsverteilung auf den Knoten der zu G gehörigen
Markov-Kette P in ℓ Schritt um einen Faktor ≤ λℓ .
Die nachfolgenden beiden Korollare folgen unmittelbar aus Korollar 7 und
erlauben uns das UGAP-Problem für geeignete Expander in L zu lösen.
Beweis von Korollar 7 Der Beweis folgt per vollständiger Induktion über ℓ.
◮
Für ℓ = 1 folgt die Behauptung unmittelbar aus Satz 23.
◮
Wir gehen nun davon aus, dass für ℓ − 1 die Behauptung korrekt ist,
d.h. für µ̃ := P ℓ−1 µ gilt kµ̃ − πk ≤ λℓ−1 · kµ − πk.
Nach einer weiteren Iteration gilt
◮
Korollar 8 Sei G ein (n, d, λ)-Expander mit λ < 1, dann ist der Abstand
zwischen zwei beliebigen Knoten s, t des Expanders maximal 1 + log1/λ n.
Korollar 9 Sei G ein (n, d, λ)-Expander für konstante Werte d, λ mit
λ < 1, dann können wir UGAP auf G deterministisch auf Platz O(log n)
lösen.
kP ℓ · µ − πk = kP · µ̃ − πk ≤ λ · kµ̃ − πk ≤ λℓ · kµ − πk .
193
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Wie schon beschrieben, stellt die Gradreduktion ein wesentliches
Werkzeug für das Lösen des UGAP-Problem dar. Dieses erzielen wir
durch Substitution der Knoten mit hohem Grad im ursprünglichen
Graphen G durch spezielle Teilgraphen H. Als Substitutionsregel wählen
z
wir das sogenannte Zig-Zag Produkt G H.
Zunächst definieren wir uns
eine passende Graphenrepräsentation:
◮
Die Rotation-Map-Repräsentation von G definieren wir über eine
Funktion
RotG : V × [1..d] −→ V × [1..d]
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
′
VG z H = { hv , ii | v ∈ V , i ∈ V }
Definition 34 Sei G = (V , E ) ein d-regulärer Graph.
Für einen Knoten v ∈ V bezeichnen wir mit (v , 1), . . . , (v , d) eine
Aufzählung der Kanten bzw. der Nachbarn von v .
Andreas Jakoby
Universität zu Lübeck
Definition 35 Sei G = (V , E ) ein (n, d1 , λ1 )-Expander und sei H = (V ′ , E ′ )
ein (d1 , d2 , λ2 )-Expander mit den dazugehörigen Rotation-Map-Repräsentationen RotG und RotH . Sei c : [1..d2 ] × [1..d2 ] → [1..d22 ] eine bijektive
Funktion. Ferner sei V = [1..n], V ′ = [1..d1 ] und hv , ii eine Paarungsfunktion
für v ∈ V und i ∈ V ′ .
z = (VG Das Zig-Zag Produkt G H
z H , EG z H ) von G und H ist ein
◮ d 2 -regulärer Graph mit n · d1 Knoten
2
5.3.2 Das Zig-Zag Produkt
◮
194
z die
wobei die Rotation-Map-Repräsentationen RotG z H von G H
folgende Bedingung erfüllen muss:
◮ Dann sei
RotG z H (hu, ii, c(a1 , a2 )) = (hv , ji, c(b1 , b2 ))
falls zwei Knote i ′ , j ′ ∈ V ′ existieren, so dass die folgenden
Bedingungen erfüllt sind:
wobei RotG (u, i) = (v , j) ist, falls v der i-te Nachbar von u und u
der j-te Nachbar von v ist.
◮
◮
◮
195
RotH (i, a1 ) = (i ′ , b2 ),
RotG (u, i ′ ) = (v , j ′ ) und
RotH (j ′ , a2 ) = (j, b1 ).
196
Andreas Jakoby
Universität zu Lübeck
G
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
zH
G
3
1
2
2
2
1
3 3
2
1
4 3
2
5
2
3
◮
1
6
2
RotH (i , a1) = (1, b2)
2
RotH (3, a2) = (1, b1)
1
2
Die Teilgraphen Hv , die aus den Knoten hv , ii für ein festes v
bestehen nennen wir auch die Knotenwolke von v .
z besteht aus den folgenden Kanten
Die Kantenmenge von G H
EG zH
i ′ = 1 und j ′ = 3
2
1
2
2
3
H
◮
2
3
1
1
2
1
2
1
2
1
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
z = (VG Für das Zig-Zag Produkt G H
z H , EG z H ) gilt:
◮ Die Knoten von G H
z bestehen aus allen Paaren hv , ii wobei v ein
Knoten aus G und i ein Knoten aus H ist.
3
2
1
Andreas Jakoby
Universität zu Lübeck
◮
3
= { {hu, ii, hv , ji} | sei i ′ , j ′ mit RotG (u, i ′ ) = (v , j ′ ) :
i ist ein Nachbar von i ′ in H und
j ist ein Nachbar von j ′ in H } .
Für die Rotation-Map-Repräsentationen ist es jetzt noch erforderlich
die Nachbarschaft von i ′ und j ′ in genauer zu untersuchen.
197
Andreas Jakoby
Universität zu Lübeck
G
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
2
1
2
5
3
1
1
2
1
2
3
3
1−λ ≥
1
2
2
1
3
4
3
3
z
1 − λ(G H)
≥
3
2
1
2
5
6
3
3
1
· (1 − λ(G )) .
3
Satz 26 Sei G = (V , E ) ein (n, d1 , λ1 )-Expander und sei H = (V ′ , E ′ )
z ein (n · d1 , d22 , λ3 )-Expander mit
ein (d1 , d2 , λ2 )-Expander, dann ist G H
2
1
1
.
d · |V |2
Satz 25 Sei G = (V , E ) ein d-regulärer Graph und H ein d ′ -regulärer
Graph mit d Knoten mit λ(H) ≤ 21 , dann gilt
2
1
2
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Satz 24 Sei G = (V , E ) ein zusammenhängender d-regulärer
nicht-bipartiter Graph, dann hat G eine Spektralexpansion λ mit
1
6
2
2
1
4 3
2
1
Andreas Jakoby
Universität zu Lübeck
Aufgrund der Zeitbeschränkung dieser Vorlesung werden wir die folgenden
Sätze nicht beweisen.4
2
1
3 3
H
zH
G
3
198
λ3 ≤ λ1 + λ2 + λ22 .
4 Beweise finden wir im Skript von Dwork und Harsha, Expanders in Computer Science
(Stanford, 2005) und bei Reingold, Vadhan, Wigderson, Entropy Waves, The Zig-Zag
Graph Product, and New Constant-Degree Expanders and Extractors (Annals of Math,
2002).
199
200
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
5.3.3 Konstruktion von (n, d, λ)-Expandergraphen
:= { hx, y i | x, y ∈ {0, . . . , q − 1} und y ≡ a · x − b mod q } .
La,b
Definition 36 Für zwei Graphen G = (VG , EG ), H = (VH , EH ) definieren
wir das Tensorprodukt G ⊗ H= (VG ⊗H , EG ⊗H ) über
Es gilt5
Satz 28 Der Graph APq = (V , E ) mit
:= { hu, v i | u ∈ VG , v ∈ VH }
:= { {hu, v i, hu ′ , v ′ i} | {u, u ′ } ∈ EG , {v , v ′ } ∈ EH } .
= { ha, bi | a, b ∈ {0, . . . , q − 1} }
V
= { {ha, bi, hx, y i} | a, b ∈ {0, . . . , q − 1} und hx, y i ∈ La,b }
E
Für die Rotation-Map-Repräsentationen von G ⊗ H definieren wir
⇐⇒
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Sei p eine Primzahl und q = p t eine Primzahlpotenz. Für
a, b ∈ {0, . . . , q − 1} sei
Zur Konstruktion von Expandergraphen benötigen wir noch eine weitere
Technik um zwei Graphen miteinander zu verknüpfen.
VG ⊗H
EG ⊗H
Andreas Jakoby
Universität zu Lübeck
ist ein (q 2 , q, √1q )-Expandergraph.
Rot(hu, v i, c(i, j)) := (hu ′ , v i′ , c(i ′ , j ′ ))
RotG (u, i) := (u ′ , i ′ ) und RotH (v , j) := (v ′ , j ′ ) .
Satz 27 Sei G = (V , E ) ein (n1 , d1 , λ1 )-Expander und sei H = (V ′ , E ′ )
ein (n2 , d2 , λ2 )-Expander, dann ist G ⊗ H ein (n1 · n2 , d1 · d2 , max{λ1 , λ2 })Expander.
Basierend auf APq können wir nun mit Hilfe von Tensorprodukt und
Zig-Zag Produkt immer größere Expandergraph generieren.
5 Beweis finden wir in Reingold, Vadhan, Wigderson, Entropy Waves, The Zig-Zag
Graph Product, and New Constant-Degree Expanders and Extractors (Annals of Math,
2002).
201
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Korollar 10 Sei APiq rekursive wie folgt definiert
APiq
:=
APq ⊗ APq
z
APi−1
q
q AP
dann ist APiq ein (q 2(i+1) , q 2 , √i q +
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Satz 29 Sei H = (V , E ) ein (d 4 , d, λ)-Expandergraphen mit λ ≤ 51 , dann
ist
2
H
falls i = 1
Gi :=
2 z
H falls i > 1
Gi−1
Aus den Sätzen 26 bis 28 folgt unmittelbar:
202
ein (d 4i , d 2 , λ′ )-Expandergraphen mit λ′ ≤ 25 .
falls i = 1
falls i > 1
Beweis von Satz 29 (Teil 1) Beachte:
◮
i−1
q )-Expandergraph.
◮
In der Literatur finden wir noch weitere (und effizientere) Konstruktionen
von Expandergraph. Für die Nachfolgenden Analysen genügt uns jedoch
dieses Ergebnis. Wählen wir q ≥ 149 so erhalten wir mit i = 3 eine
Familie von (d 4 , d, 51 )-Expandergraphen. Diese erweist sich als sehr
Hilfreich bei der Konstruktion weiterer Expandergraphen.
Wir betrachten Multigraphen. Somit ist G 2 ein d 2 -regulärer Graph,
wenn G ein d-regulärer Graph ist.
Sei P eine Übergangsmatrix, dann gilt für einen Eigenvektor π ′ mit
Eigenwert λ̃:
P 2 · π ′ = P · λ̃ · π ′ = λ̃2 · π ′ .
◮
203
Sind alle Eigenwerte positiv und ist λ̃ der zweitgrößte Eigenwert von
P, dann ist λ̃2 der zweitgrößte Eigenwert von P 2 .
Wir erhalten: H 2 ist ein (d 4 , d 2 , λ′ )-Expandergraphen mit
1
≤ 52 .
λ′ ≤ 25
204
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Gi−1 ein (d 4(i−1) , d 2 , λ′ )-Expandergraphen mit λ′ ≤
Somit ist
2
Gi−1
ein (d
4(i−1)
4
′′
2
5
ist.
′′
, d , λ )-Expandergraphen mit λ ≤
Algorithmus Reingold(G , s, t)
Eingabe: d 16 -regulärer nicht-bipartiter Graph G = (V , E ) und s, t ∈ V
Ergebnis: 1 falls t von s in G erreichbar ist
2ℓ
1: wähle ℓ ∈ N minimal, so dass 1 − d 161n2
≤ 12 ist
2: setze G0 = G
3: bestimme einen (d 16 , d, 21 )-Expandergraphen H
4: for i = 1 to ℓ by +1 do
z 8
5:
bestimme Gi := (Gi−1 H)
6: end for
7: teste ob t von s in Gℓ erreichbar ist
8: Return(1) falls ja und Return(0) sonst
4
25 .
Aus Satz 26 folgt: Gi ist bei (d 4i , d 2 , λ′′′ )-Expandergraphen mit
λ′′′ ≤ λ′′ + λ + λ2 =
1
1
4
+ +
25 5 25
=
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
5.3.4 Reingold’s Algorithmus für UGAP
Beweis von Satz 29 (Teil 2) Induktiv nehmen wir nun an, dass
◮
Andreas Jakoby
Universität zu Lübeck
2
.
5
Mit Hilfe von Satz 29 können wir somit beliebig große Expandergraphen
mit festem Grad und fester Spektralexpansion generieren.
205
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Was ist zu zeigen?
◮ Gℓ hat konstante Spektralexpanson.
◮ Bei gegebener Rotation-Map-Repräsentation von Gℓ kann UGAP in
L gelöst werden. Dieses folgt analog zu Korollar 9.
◮ Die Rotation-Map-Repräsentation von Gℓ kann aus der Rotation-MapRepräsentation von G0 auf logarithmischen Platz konstruiert werden.
Im ersten Schritt wollen wir untersuchen, wie sich der Wert der
Spektralexpanson von Gi mit i entwickelt.
206
Andreas Jakoby
Universität zu Lübeck
Beweis von Lemma 11 (Teil 2)
◮ Fall 1: λ(Gi−1 ) ≤ 1 . Es gilt
2
λ(Gi ) =
◮
Lemma 11 λ(Gi ) ≤ max{ 12 , (λ(Gi−1 ))2 } für alle i ∈ {1, . . . , ℓ}.
8
z
λ(Gi ) = (λ(Gi−1 H))
.
λ(Gi ) ≤
1−
1 − λ(Gi−1 )
3
1−
1−x
3
4
1
2
≤ x ≤ 1 gilt
≤ x .
Somit gilt
λ(Gi ) ≤ (λ(Gi−1 ))2 .
Aus Satz 25 folgt
8
8
1
5
<
.
6
2
Fall 2: λ(Gi−1 ) > 12 . Für alle x ∈ R mit
Beweis von Lemma 11 (Teil 1) Wie wir im Beweis von Satz 29
gesehen haben gilt:
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
.
207
208
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Lemma 12 Die Spektralexpanson von Gℓ ist maximal 21 .
Beweis von Lemma 12 Aus Satz 24 folgt
λ(G0 ) ≤ 1 −
1
.
d 16 · n2
◮
Wir müssen somit nur noch zeigen, dass die Rotation-Map-Repräsentation von Gℓ aus der Rotation-Map-Repräsentation von G0 auf
logarithmischen Platz konstruiert werden kann.
◮
Da wir zeigen wollen, dass UGAP in L liegt, können wir
Reingold(G , s, t) nicht so wie er angegeben ist ausführen. Wir
können ja Gℓ nirgends speichern! Vielmehr, müssen wir zeigen, dass
wir RotGℓ (u, i) auf Eingabe u, i, G0 und ℓ auf logarithmischen Platz
berechnen können.
Somit folgt aus Lemma 11
λ(Gi ) ≤
1−
1
d 16 · n2
2i
und folglich gilt
λ(Gℓ ) ≤
1
1 − 16 2
d ·n
2ℓ
≤
1
.
2
209
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Algorithmus Rot1(k, u, i)
Eingabe: globaler Graph F = (V , E ) und
als Parameter k ∈ N, u ∈ V , i = c(i1 , i2 ) ∈ N
Ergebnis: RotF 2k (u, c(i1 , i2 )) = (v , c(j1 , j2 ))
1: if k = 0 then
2:
Return(RotF (u, i))
3: else
4:
bestimme i1 , i2
5:
speichere i2 und berechne (w , j2 ) = Rot1(k − 1, u, i1 )
6:
speichere j2 und berechne (v , j1 ) = Rot1(k − 1, w , i2 )
7:
Return((v , c(j1 , j2 ))
8: end if
Zusätzlicher Platzbedarf um für einen Graphen F 2 den Wert
RotF 2 (u, c(i1 , i2 )) = (v , c(j1 , j2 )) zu bestimmen:
◮ Sei H ein d-regulärer Graph und c die Kodierungsfunktion, mit
dessen Hilfe wir ein Paar i1 , i2 kombinieren können. Wir suchen:
◮
210
RotF (u, i1 ) = (w , j2 ) und
RotF (w , i2 ) = (v , j1 ) und erhalten dann
RotF 2 (u, c(i1 , i2 )) = (v , c(j1 , j2 )).
Da uns nur das Ergebnis interessiert, können wir die Eingabe
(u, c(i1 , i2 )) überschreiben.
211
212
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Im zweiten und dritten Schritt merkt sich der Algorithmus nur i2 oder j2 .
Der Speicher für u bzw. w kann in der rekursiven Berechnung von Rot
benutzt werden. Der Platzbedarf s(k) ist somit
k
log Grad(F 2 ) + max{(log Grad(H 2
k−1
) + log k + log |V |), s(k − 1)} .
k
Der zusätzliche Platzbedarf ist somit logarithmisch im Grad von F 2 .
Um im Algorithmus von Reingold den Wert RotF (u, c(i1 , i2 )) = (v , c(j1 , j2 ))
zu bestimmen gehen wir ähnlich vor. Jedoch müssen wir berücksichtigen,
dass nach drei Quadrierungen ein Zig-Zag Produkt berechnet wird.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Algorithmus Rot(k, r , u, h)
Eingabe: globale Graphen G , H und k, r ∈ N, u ∈ V , h = c(i1 , i2 ) ∈ N
Ergebnis: RotGk (u, c(i1 , i2 )) = (v , c(j1 , j2 )) für r = 3
1: if k = 0 then
2:
Return(RotF (u, h))
3: else
4:
bestimme i1 , i2 mit h = c(i1 , i2 )
5:
if r > 0 then
6:
speichere i2 und berechne (w , j2 ) = Rot(k, r − 1, u, i1 )
7:
speichere j2 und berechne (v , j1 ) = Rot(k, r − 1, w , i2 )
8:
Return((v , c(j1 , j2 ))
9:
else
10:
bestimme u ′ und i mit u = hu ′ , ii
11:
bestimme i ′ und j2 mit RotH (i, i1 ) = (i ′ , j2 )
12:
speichere j2 und i2 und berechne (v , j ′ ) = Rot(k − 1, 3, u, i ′ )
13:
bestimme j und j1 mit RotH (j ′ , i2 ) = (j, j1 )
14:
Return((hv , ji, c(j1 , j2 ))
15:
end if
16: end if
213
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
Beachte:
◮ Der Grad aller betrachteten Graphen ist polynomiell in d.
◮ Der Graph H ist fest und der Speicherplatz zur Berechnung von
RotH (i, i1 ) = (i ′ , j2 ) kann in jeder Rekursionsstufe wiederverwendet
werden.
◮ Der Platzbedarf von Rot(k, r , u, i) ist somit in
214
Andreas Jakoby
Universität zu Lübeck
◮
◮
O(k · log d + size(RotG ) + size(RotH ))
◮
Starten wir bei dem Versuch UGAP zu lösen mit einer
Gradreduktion, dann können wir davon ausgehen, dass d konstant
ist.
Der Wert von k ist durch ℓ beschränkt, wobei wir ℓ ∈ N minimal
2ℓ
wählen, so dass 1 − d 161n2
≤ 21 ist. Da
wobei das additive size(RotG ) aus der Verankerung der Rekursion
folgt und size(RotH ) sich aus dem Platzbedarf für einen Aufruf von
RotH bei der Berechnung des Zig-Zag Produktes ergibt.
Für die meisten Graphdarstellungen können wir den Vergleich
RotG (u, i) = (v , j)
◮
Computational Complexity SS 08
7. Vorlesung, 26.05.2008
◮
◮
auf logarithmischen Platz überprüfen. Somit können wir alle
Viertupel (u, i, v , j) auch auf logarithmischen Platz prüfen, ob
RotG (u, i) = (v , j) ist.
Der Platzbedarf von Rot(k, r , u, i) ist somit in
1
1−
x
x
≤ e −1 ≤
1
2
ist, erhalten wir ℓ ≤ 16 log d + 2 log n.
Der Platzbedarf von Rot(ℓ, 3, u, i) ist somit in O(log |V |).
Da wir den Speicherplatz zur Berechnung von Rot(ℓ, 3, u, i) bei jeder
Berechnung wiederverwenden können, erhalten wir die gewünschte
Platzschranke.
Satz 30 UGAP ist in L.
O(k · log d + log |V |) .
215
216
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
5.4 2-SAT und GAP
Zur Erinnerung: Sei F eine Boolesche Formel.
◮
◮
Definition 38 Wir definieren das k-SAT-Problem wie folgt:
Gegeben ist eine Boolesche Formel F in k-CNF. Entscheide, ob F
erfüllbar ist, d.h. existiert eine Belegung der Variablen von F , so dass F
bei dieser Belegung true ist.
Ein Literal ist eine Variable oder deren Negation.
Eine Klausel ist eine Disjunktion, d.h. eine or-Verknüpfung, von
Literalen.
Eine Monom ist eine Konjunktion, d.h. eine and-Verknüpfung, von
Literalen.
◮ F ist in konjunktiver Normalform, kurz CNF, wenn F eine
Konjunktion von Klauseln ist.
◮ F ist in disjunktiver Normalform, kurz DNF, wenn F eine
Disjunktion von Monomen ist.
Definition 37 Sei F eine Boolesche Formel und k ∈ N.
◮
◮
◮
Mit Hilfe des GAP-Problems wollen wir nun zeigen, dass das Komplement
von 2-SAT vollständig für N L ist. Um uns die Notation zu vereinfachen,
führen wir noch folgende Schreibweise ein:
Definition 39 Sei C eine Komplexitätsklasse, dann definieren wir
co-C
:= { L | L ∈ C }
als die Komplexitätsklasse der komplementären Sprachen von C.
F ist in k-CNF, falls F in CNF ist und jede Klausel aus genau k
Literalen besteht.
F ist in k-DNF, falls F in DNF ist und jedes Monom aus genau k
Literalen besteht.
217
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
218
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Betrachten wir das Modell der nichtdeterministischen Turing-Maschine,
so können wir basierend auf diesen komplementären Sprachen ein neues
Modell einer Turing-Maschine vorstellen:
Definition 40 Wir definieren eine co-NTM M analog zur NTM mit dem
Unterschied, dass die von M akzeptierte Sprache wie folgt definiert wird
Der folgende Satz folgt unmittelbar aus der Definition der many-one
Reduktion:
L(M) := { x ∈ Σ∗E | für alle Berechnungen CM (x) gilt Res(CM (x)) = 1 } .
Satz 31 Sei C eine Komplexitätsklasse und L eine beliebige Sprache,
dann gilt: L ist genau dann C-vollständig bezüglich einer many-one
Reduktion ≤, wenn L co-C-vollständig bezüglich ≤ ist.
Um die NTM von der co-NTM unterscheiden zu können sagen wir auch
◮ die NTM rät existenziell und
◮ die co-NTM rät universell.
Die Komplexitätsmasse co-NTime, co-NSpace und co-NTimeSpace der
co-NTM definieren wir analog zu den entsprechenden Komplexitätsmassen
der NTM.
Unser Ziel ist es nun, den folgenden Satz zu beweisen:
Satz 32 2-SAT ist co-N L vollständig.
Beobachtung 18 Es gilt
co-N L
co-N P
=
=
co-NSpace(Log)
co-NTime(Pol) .
219
220
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Vm
Beweis von Satz 32 (Teil 1) Sei F = i=1 Ci mit Ci = li,1 ∨ li,2 und
li,0 , li,1 ∈ {x1 , x 1 , . . . , xn , x n } eine Boolesche Formel in 2-CNF. Zunächst
wollen wir zeigen, dass die Frage ob F erfüllbar ist mit Hilfe der
Erreichbarkeit entschieden werden kann.
◮
Beweis von Satz 32 (Teil 2)
Wir konstruieren einen Graph GF = (VF , EF ) wie folgt:
Analoges gilt für den Fall, dass es einen Pfad in GF von x i nach xi
gibt. Existiert ein solcher Pfad, dann gilt für jede Belegung mit
xi = 0, dass F durch diese Belegung nicht erfüllt werden kann.
◮ Gibt es in GF einen Pfad von xi nach x i und einen Pfad von x i nach
xi , dann ist F nicht erfüllbar.
Wir wollen jetzt zeigen, dass F erfüllbar ist, falls es kein solches Paar
xi , x i gibt.
◮
VF
EF
◮
◮
:= { xi , x i | i ∈ {1, . . . , n} }
:= { (l i,1 , li,2 ), (l i,2 , li,1 ) | i ∈ {1, . . . , m} }
Wir betrachten den Fall, dass es ein Knotenpaar xi , x i und einen
Pfad von xi nach x i in GF gibt. Sei xi , li1 , . . . , lik , x i dieser Pfad.
Aus der Definition von GF folgt, dass die Klauseln
(x i ∨ li1 ), (l i1 ∨ li2 ), . . . , (l ik−1 ∨ lik ), (l ik ∨ x i )
◮
in F vorkommen.
Für jede Belegung mit xi = 1 folgt aus dieser Beobachtung, dass F
durch diese Belegung nicht erfüllt werden kann.
221
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 32 (Teil 3) Den folgenden Schritt wiederholen wir, bis
alle Literale einen Wert besitzen.
◮ Sei li ein Knoten in GF , so dass es keinen Pfad von li nach l i gibt
und li noch keinen Wert besitzt. Wir setzen alle Literale (bzw.
Knoten) die vom Literal li erreichbar sind auf true. Die Negation
dieser Literale setzen wir auf false.
◮ Dieser Schritt ist wohl definiert. Begründung: In GF gibt es genau
dann eine Kante (la , lb ), wenn es auch die Kante (l b , l a ) gibt.
Angenommen, es gibt einen Pfad von li nach lj . Dann gibt es auch
einen Pfad von l j nach l i . Gibt es jetzt auch noch einen Pfad von li
nach l j , dann gibt es einen Pfad von li nach l i – ein Widerspruch zu
unserer Wahl von li .
222
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 32 (Teil 4) Wie sieht der Algorithmus der co-NTM
aus:
Algorithmus 2-SAT(F )
Eingabe: 2-CNF F
Ergebnis: 1 falls F erfüllbar ist
1: rate universell ein Literal li
2: überprüfe universell ob alle Pfade in GF nicht nach l i führen
3: if es existiert ein Pfad von li nach l i then
4:
überprüfe universell ob alle Pfade in GF nicht von l i nach li führen
5:
if es existiert ein Pfad von l i nach li then
6:
Return(0) und stoppe die Berechnung
7:
end if
8: end if
9: Return(1)
Analog zu der zuletzt gemachten Beobachtung können wir zeigen, dass
die so generierte Belegung der Knoten keine Kante von einem mit true
belegten Knoten zu einem mit false belegten Knoten besitzt. Somit ist in
jeder Klausel zumindest ein Literal mit true belegt.
Es bleibt jetzt noch zu zeigen, dass 2-SAT co-N L-hart ist.
223
224
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 32 (Teil 5) Wir erinnern uns: Ist eine Sprache L wie
das GAP Problem N L vollständig, so ist deren Komplement co-N L
vollständig. Unser Ziel ist somit eine Reduktion von GAP auf 2-SAT.
◮
◮
◮
◮
◮
◮
◮
Beweis von Satz 32 (Teil 6)
◮ Ist t von s nicht erreichbar, dann ist FG erfüllbar.
Sei G = (V , E ) und s, t ∈ V eine Instanz für das GAP Problem, d.h.
wir wollen Testen, ob t von s nicht erreichbar ist.
Wir generieren folgende 2-CNF FG :
◮
Die Menge der Variablen ist durch V gegeben.
Für jede Kante (u, v ) ∈ E generieren wir die Klausel (u ∨ v ).
Abschließend führen wir die Klauseln (s ∨ s) und (t ∨ t) hinzu.
◮
Diese Reduktion kann einfach auf logarithmischen Platz
durchgeführt werden.
Ist t von s über einen Pfad s, v1 , . . . , vk , t erreichbar, dann ist FG
nicht erfüllbar.
◮
◮
◮
◮
Wie wir oben gesehen haben, müssen wir alle Knoten (bzw.
Variablen) die von s aus erreichbar sind auf true setzten. Diese
Belegung erfüllt alle Klauseln, die von s aus erreichbar sind.
Setzten wir alle Knoten, die von s aus nicht erreichbar sind auf false,
so werden durch deren Negation alle Klauseln erfüllt, deren Kanten
in einem Knoten starten, der von s aus nicht erreichbar ist. Dieses
sind aber alle verbleibenden Klauseln – insbesondere auch die Klausel
(t ∨ t).
FG wird durch diese Belegung erfüllt.
Angenommen FG ist doch erfüllbar, dann muss s = 1 gelten.
Somit muss v1 = 1 gelten und weiter muss für alle Variablen vi = 1
gelten.
Da somit t = 1 sein muss, ist die Klausel (t ∨ t) nicht erfüllt.
225
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
226
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 33 Satz 33 folgt unmittelbar aus den Sätzen 12 und
11.
5.5 N L versus L und co-N L
◮
Es ist einfach zu erkennen, dass L ⊆ N L gelten muss. Wir wollen nun
die Frage untersuchen, wie wir N L in deterministischen Platz einbetten
können und wie N L zu co-N L steht.
◮
Satz 33 Sei L ∈ NSpace(s) und sei s auf Platz s berechenbar, dann gilt
L ∈ DSpace(s 2 ).
◮
Aus diesem Satz folgt sofort:
Korollar 11 Jede Sprache aus N L kann von einem
log2 -platzbeschränkten DTM berechnet werden.
◮
Sei L ∈ NSpace(s), dann ist L ∈ NTimeSpace(2O(s) , s).
Nach Satz 12 kann L von einer 2O(s) -größen- und
log 2O(s) -tiefenbeschränkten s-platzkonstruierbaren Schaltkreisfamilie
mit unbeschränktem Eingrad akzeptiert werden.
Ersetzen wir die einzelnen Gatter durch Bäume, so kann L von einer
2O(s) -größen- und (log 2O(s) )2 -tiefenbeschränkten
s-platzkonstruierbaren Schaltkreisfamilie mit beschränktem Eingrad
akzeptiert werden.
Nach Satz 11 gilt somit
L ∈ DSpace(s + (log 2O(s) )2 ) = DSpace(s 2 ) .
227
228
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 1) Es reicht aus die Inklusion
co-NSpace(s) ⊆ NSpace(s)
Der nachfolgende Satz ist in der Literatur unter dem Namen Satz von
Immerman/Szelepcsényi bekannt.
zu zeigen.
◮
Satz 34 Für auf Platz s berechenbare Funktionen s ≥ log gilt
◮
NSpace(s) = co-NSpace(s) .
◮
Aus diesem Satz folgt unmittelbar:
Satz 35 N L = co-N L
◮
Satz 36 2-SAT ist N L vollständig.
◮
◮
Sei L ∈ NSpace(s) und M eine s-platzbeschränkte NTM für L.
Da s s-platzberechenbar ist, können wir annehmen, dass s(n)
bekannt ist.
Wir können annehmen, dass M eine eindeutige akzeptierenden
Endkonfiguration Ca besitzt und dass jede Berechnung von M die
gleiche Länge TM (n) ≤ 2c·s(|x|) besitzt.
Sei Cx die Menge aller s(|x|)-platzbeschränkten Konfigurationen von
M auf Eingabe x. Es gilt |Cx | ≤ 2c·s(|x|) für eine Konstante c.
Sei Cx (t) die Menge aller s(|x|)-platzbeschränkten Konfigurationen
von M auf Eingabe x, die M in exakt t Schritten von der
Startkonfiguration aus erreicht.
Sei cx (t):= |Cx (t)|.
229
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
230
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 2)
◮
Für jede Konfiguration C gilt
C 6∈ Cx (t)
◮
⇐⇒
Cx (t) enthält cx (t) Konfiguration C ′ mit C 6= C ′ .
Ferner gilt
Beweis von Satz 34 (Teil 3)
◮ Ist cx (t) bekannt, dann können wir nichtdeterministisch testen, ob
C 6∈ Cx (t) ist:
◮
M akzeptiert x nicht ⇐⇒ Ca 6∈ Cx (TM (|x|))
⇐⇒ Cx (TM (|x|)) enthält cx (TM (|x|))
◮
verwerfende Konfiguration.
◮
◮
◮
Ist cx (t) bekannt, dann können wir nichtdeterministisch testen, ob
C ∈ Cx (t) ist:
◮
Rate existentiell sukzessive eine Berechnung
Setze einen Zähler z = 0.
Teste sukzessive für alle Konfiguration C ′ ∈ Cx mit C ′ 6= C , ob
C ′ ∈ Cx (t) ist. Ist dieses der Fall, dann setze z := z + 1.
Am Ende gilt genau dann C 6∈ Cx (t), wenn z = cx (t) ist.
Wir wollen nun diesen Test verallgemeinern, indem wir für einen
Schätzwert c von cx (t) überprüfen, ob eine Konfiguration von r
verschiedenen in t Schritten erreicht werden kann.
C0 (x) ⊢ C1 ⊢ . . . Ct
wobei wir beim raten einer Konfiguration Ci die Vorgängerkonfiguration
Ci−1 überschreiben. Akzeptiere genau dann, wenn Ct = C ist.
231
232
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 4)
Beweis von Satz 34 (Teil 5)
Algorithmus IS-Reach(t, c, D1 , . . . , Dr )
Eingabe: Zeitpunkt t, Schätzwert c, Konfigurationen D1 , . . . , Dr
Ergebnis: true für Di ∈ Cx (t), false für Di 6∈ Cx (t), ? wenn noch unbekannt
1: anzahl := 0
2: for C ∈ Cx in lexikografischer Ordnung do
3:
rate existentiell die Berechnung C0 (x) ⊢ C1 ⊢ . . . ⊢ Ct auf Platz s(|x|)
4:
if Ct = C then anzahl := anzahl +1 end if
5:
if Ct ∈ {D1 , . . . , Dr } then Return(true) end if
6: end for
7: if anzahl = c then Return(false) end if
8: if anzahl < c then Return(?) end if
Lemma 13 Ist c = cx (t) und ist das Ergebnis von
IS-Reach(t, c, D1 , . . . , Dr ) true oder false, dann ist dieses Ergebnis
korrekt.
Beweis von Lemma 13
◮
◮
Ist das Ergebnis true, dann haben wir eine Berechnung existentiell
geraten, die diese Behauptung beweist.
Ist das Ergebnis false, dann haben wir c = cx (t) Berechnung
existentiell geraten, die Behauptung Di ∈ Cx (t) für irgend eine
Konfiguration Di ∈ {D1 , . . . , Dr } wiederlegen. Somit gilt Di 6∈ Cx (t)
für alle Di ∈ {D1 , . . . , Dr }.
Ist c = cx (t), dann gibt IS-Reach(t, c, D1 , . . . , Dr ) auf einer Berechnung
von IS-Reach das korrekte Ergebnis true oder false aus! Beachte ferner,
dass sich IS-Reach auf einer O(s(x))-platzbeschränkten NTM
implementieren läßt.
Liefert IS-Reach(t, c, D1 , . . . , Dr ) als Ergebnis ?, dann ist anzahl < c. In
diesem Fall wurden in der for-Schleife aufgrund des existenziellen Ratens
nicht alle Konfigurationen C ∈ Cx (t) gefunden. Wir können in diesem
Fall weder Di ∈ Cx (t) noch Di 6∈ Cx (t) ausschließen.
Im nächsten Schritt wollen wir zeigen, wie wir cx (t) berechnen können.
233
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
234
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 7)
Lemma 14 Ist c = cx (t − 1) und ist das Ergebnis von d = IS-Count(t, c)
in N, dann gilt d = cx (t).
Beweis von Satz 34 (Teil 6)
Algorithmus IS-Count(t, c)
Eingabe: Zeitpunkt t, c = cx (t − 1)
Ergebnis: cx (t) oder ? wenn noch unbekannt
1: d := 0
2: for C ∈ Cx in lexikografischer Ordnung do
3:
bestimme alle möglichen direkten Vorgängerkonfigurationen
D1 , . . . , Dr von C
4:
z = IS-Reach(t − 1, c, D1 , . . . , Dr )
5:
if z = true then d := d + 1 end if
6:
if z = ? then Return(?) end if
7: end for
8: Return(d)
Beweis von Lemma 14
◮
Stoppt IS-Count(t, c) nicht forzeitig mit Return(?), dann findet
IS-Count(t, c) alle Konfigurationen C ∈ Cx , für die eine
Vorgängerkonfiguration in t − 1 Schritten vom der
Startkonfiguration aus erreichbar ist – vergleiche hierzu Lemma 13.
Da in IS-Count(t, c) die Anzahl dieser Konfigurationen gezählt wird,
ist da Ergebnis entweder ? oder cx (t).
Ist c = cx (t − 1), dann gibt IS-Count(t, c, D1 , . . . , Dr ) auf einer Berechnung
von IS-Count das korrekte Ergebnis cx (t) aus! Beachte ferner, dass sich
IS-Count auf einer O(s(x))-platzbeschränkten NTM implementieren läßt.
◮
Im nächsten Schritt wollen wir zeigen, wie wir mit Hilfe von IS-Reach
und IS-Count nichtdeterministisch entscheiden können, ob M auf
Eingabe x keine akzeptierende Berechnung besitzt.
235
236
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 8) Es verbleibt somit noch einen Algorithmus
zu präsentieren, mit dessen Hilfe wir das Komplement von L in
NSpace(s) akzeptieren können.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
Beweis von Satz 34 (Teil 9) Abschließend müssen wir noch die
Korrektheit von CompL(x) zeigen.
◮
Algorithmus CompL(x)
Eingabe: Eingabe x
Ergebnis: akzeptiere, falls x 6∈ L
1: cx (0) := 1
2: bestimme T (|x|)
3: for t = 1 to T (|x|) by +1 do
4:
if cx (t − 1) 6= ? then
5:
cx (t) := IS-Count(t, cx (t − 1))
6:
else
7:
cx (t) := ?
8:
end if
9: end for
10: if cx (T (|x|)) 6= ? then z := IS-Reach(T (|x|), cx (T (|x|)), Ca ) end if
11: if z = false then akzeptiere x else verwerfe x end if
◮
◮
◮
Aus Lemma 14 folgt, dass zumindest ein nichtdeterministischer
Berechnungspfad von CompL(x) alle Werte cx (t) korrekt bestimmt.
Alle Berechnungspfad, die nicht alle cx (t) korrekt bestimmen enden
mit cx (T (|x|)) = ?.
Nach Lemma 13 entscheidet zumindest ein Berechnungspfad von
IS-Reach(T (|x|), cx (T (|x|)), Ca ) die Frage korrekt, ob Ca ∈ Cx liegt,
d.h. ob M die Eingabe x akzeptiert. Alle Berechnungspfade, die
diese Frage nicht korrekt entscheiden enden mit z = ?.
Ist z = false, dann verwirft M die Eingabe x und CompL(x)
akzeptiert x.
Ist für alle Berechnungspfad von CompL(x) am Ende z = ? oder
z = true, dann akzeptiert M die Eingabe x und CompL(x) verwerft
x.
237
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
238
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
8. Vorlesung, 02.06.2008
5.6 Weitere logarithmische Platzklassen
In der Literatur werden noch eine Menge weiterer logarithmische
Platzklassen untersucht, auf die wir jedoch nicht weiter eingehen werden.
Beispiele hierfür sind:
Bemerkungen:
◮
◮
Ist s und T nicht berechenbar, dann können wir s approximieren,
indem wir den Algorithmus für log n, 2 log n, usw starten. Hierfür
müssen wir nur die Prozedur IS-Count so umschreiben, dass wir in
der for-Schleife feststellen, ob eine Konfiguration C erreichbar ist,
von der eine Konfiguration C ′ erreichbar ist, die mehr Platz benötigt.
Für T können wir einfach eine obere Schranke einsetzten und beim
Durchlauf durch die for-Schleife testen, ob cx (t) = 0 ist. Haben alle
Berechnungspfade von M auf x die gleiche Länge, dann gilt
T (x) = t − 1.
◮
◮
◮
◮
239
#L: Bestimme die Anzahl der akzeptierenden Berechnungspfade
einer logarithmisch platzbeschränkten NTM auf Eingabe x.
C= L: Akzeptiert, falls die Anzahl der akzeptierenden
Berechnungspfade einer logarithmisch platzbeschränkten NTM auf
Eingabe x gleich der Anzahl der verwerfenden Berechnungspfade ist.
⊕L: Akzeptiert, falls die Anzahl der akzeptierenden
Berechnungspfade einer logarithmisch platzbeschränkten NTM auf
Eingabe x ungerade ist.
UL: Wir setzen voraus, dass die logarithmisch platzbeschränkten
NTM auf Eingabe x maximal einen akzeptierenden Berechnungspfad
hat. Akzeptiert, falls die NTM akzeptiert.
240
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
6 Die polynomielle Platzklasse
Definition 41 (Teil 2) Sei nun
Wie wir aus den Sätzen 33 und 34 ableiten können, fallen deterministischer
polynomieller Platz, nichtdeterministischer polynomieller Platz und
co-nichtdeterministischer polynomieller Platz in der Klasse PSPACE
zusammen. Wir wollen nun im Folgenden ein paar vollständige Probleme
für PSPACE vorstellen. Wir betrachten in diesem Kapitel logspace bzw.
polynomialzeit Many-One-Reduktionen.
E0
E1
:= Q2 x2 . . . Qm xm : F (0, x2 , . . . , xm )
:= Q2 x2 . . . Qm xm : F (1, x2 , . . . , xm ) .
E heißt wahr, falls einer der folgenden Fälle zutrifft
m = 0 und F ≡ 1
Q1 = ∃ und E0 oder E1 sind wahr
◮ Q1 = ∀ und E0 und E1 sind wahr.
Definiere QBF:= { E | E ist eine wahre QBF } .
Als QBF Problem bezeichnen wir folgende Aufgabenstellung: Auf
Eingabe einer Quantifizierte Boolesche Formel E eintscheide, ob E wahr
ist, d.h. E ∈ QBF.
◮
6.1 Quantifizierte Boolesche Formeln
◮
Definition 41 Quantifizierten Booleschen Formeln [QBF]
Eine Quantifizierte Boolesche Formel QBF ist ein Ausdruck der Form
E
:=
Q1 x1 Q2 x2 . . . Qm xm : F (x1 , x2 , . . . , xm )
wobei Q1 , . . . , Qm ∈ {∃, ∀} die Quantoren des Ausdrucks sind und
F (x1 , x2 , . . . , xm ) eine Boolesche Formel in den Variablen x1 , x2 , . . . , xm
ist.
241
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Satz 37 QBF ist PSPACE-vollständig.
Beweis von Satz 37 (Teil 1) Um zu zeigen, dass QBF von einer
polynomiell platzbeschränkten Turing Maschine gelöst werden kann,
verwenden wir das folgende rekursive Verfahren:
Algorithmus Evaluate(E )
Eingabe: QBF E = Q1 x1 Q2 x2 . . . Qm xm : F (x1 , x2 , . . . , xm )
Ergebnis: Wert von E
1: berechne E0 = Q2 x2 . . . Qm xm : F (0, x2 , . . . , xm )
2: berechne E1 = Q2 x2 . . . Qm xm : F (1, x2 , . . . , xm )
3: if E hat mindestens einen Quantor then
4:
v0 := Evaluate(E0 )
5:
v1 := Evaluate(E1 )
6:
if Q1 = ∃ then v := v0 ∨ v1 end if
7:
if Q1 = ∀ then v := v0 ∧ v1 end if
8: else setze v auf den Wert von E end if
9: Return(v )
Für den Platzbedarf dieses Verfahrens gilt:
242
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 37 (Teil 2) Für eine Sprachen L ∈ PSPACE und eine
Polynom p sei M eine p-platzbeschränkte 1-Band DTM, welche die
Sprache L akzeptiert.
◮ Beachte, dass für eine Konstante c ∈ N und T := 2c·p die DTM M
T -zeitbeschränkt ist.
◮ Für die Reduktion betrachten wir die Berechnungsmatrix der DTM
M auf eine Eingabe x.
S(m) := S(m − 1) + O(|E |) = O(m · |E |) ≤ O(|E |2 ) .
243
244
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 37 (Teil 3)
Definition 42 Sei M eine T -zeit- und S-platzbeschränkten 1-Band TM.
Eine Berechnungsmatrix von M auf Eingabe w ist eine (t + 1) × s-Matrix
V
Beweis von Satz 37 (Teil 4) Zur Vereinfachung gelte:
= (vi,j )i∈[0,t],j∈[1,s]
◮
mit t = T (|w |) und s = S(|w |).
◮ V beschreibt eine der möglichen Berechnungen von M auf w .
◮
◮
◮
◮
◮
Die Einträge vi,j sind Elemente aus dem Alphabet (Σ × Q) ∪ Σ.
Die i-te Zeile repräsentiert die i-te Konfiguration von M, dass heißt
eine Konfiguration die M nach genau i Berechnungschritten
annehmen kann.
Die j-te Spalte repräsentiert die Beschriftung der j-ten Zelle im
Verlauf der Berechnung.
◮
◮
M startet im Zustand q0 .
Auf Eingaben x der Länge n ist das Band zu Anfang mit
x1 . . . xn β . . . β beschriftet.
Akzeptiert M, so befindet sie sich im Zustand qa in der
Ausgangsposition, und das Band ist leer.
M überschreitet bei einer Berechnung nicht die Ausgangsposition.
Falls der Kopf zur Zeit i auf der Zelle j steht, so wird in vi,j
zusätzlich der aktuelle Zustand q gespeichert, d. h. vi,j = (σ, q).
245
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 37 (Teil 5) Wir betrachten die (T (|x|) + 1) × p(|x|)-Berechnungsmatrix V von M auf eine Eingabe x.
◮ Eine Zeile von V kann mittels Boolescher Variablen
Y = { y [j, σ] | j ∈ [1, p(|w |)] und σ ∈ (Σ × Q) ∪ Σ }
◮
◮
beschrieben werden, wobei y [j, σ] = 1 bedeutet, dass in der j-ten
Zelle das Zeichen σ steht.
Analog definieren wir Z , U, V und W .
Ferner sei
Rk (Y , Z ) = 1 ⇐⇒
◮
246
Andreas Jakoby
Universität zu Lübeck
Beweis von Satz 37 (Teil 6)
◮ Die Formeln Fx (Y ) bzw. Fakz (Z ) sind aus M und x auf
logarithmischen Platz herleitbar.
◮ Analog kann auch die Formel R0 (Y , Z ), d. h. CY ⊢ CZ , generiert
werden.
◮ Um Ri (Y , Z ) für i > 0 zu bestimmen, betrachten wir die Formel:
Hi (Y , Z )
die durch Z repräsentierte Konfiguration CZ
wird von der durch Y repräsentierten Konfiguration
CY in höchstens 2k Schritten erreicht.
D.h. M akzeptiert w“ genau dann, wenn
”
EM (w ) := ∃ Y ∃ Z : Rc·p(|x|) (Y , Z ) ∧ Fx (Y ) ∧ Fakz (Z )
◮
=
∃ U ∀ V ∀ W : Ri−1(V , W )
∨ (V = Y ∧ W = U)
∧ (V = U ∧ W = Z ) .
Diese Formel ist genau dann wahr, wenn:
∃U : Ri−1 (Y , U) ∧ Ri−1 (U, Z )
◮
wahr ist, wobei Fx (Y ) und Fakz (Z ) Boolesche Formeln sind, die
genau dann wahr sind, wenn Y die Anfangs- bzw. Z die
akzeptierende Endkonfiguration von M beschreibt.
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
gilt.
Hi (Y , Z ) gibt somit eine lineare rekursive Beschreibung von Ri ,
welche die Formel für EM (w ) nur polynomiell vergrößert:
|Ri (Y , Z )|
◮
247
≤
2
|Ri−1 (Y , Z )| + O(p) .
Somit gilt |Ri (Y , Z )| ≤ O(p ).
248
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Andreas Jakoby
Universität zu Lübeck
◮
Beweis von Satz 37 (Teil 7) Da die vollständige Ersetzung von M und
w durch EM (w ) mit Hilfe von Zählern erfolgen kann, und jedes Polynom
auf logarithmischen Platz approximierbar ist, ist das QBF-Problem
PSPACE-hart bezüglich der logspace-Reduktion.
◮
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Mit Hilfe einer Umformung, wie sie bei der Reduktion des
Satisfiability Problems in das 3-SAT Problem gebräuchlich ist, kann
die PSPACE-Härte auch für das QBF-Problem gezeigt werden,
dessen Boolesche Formel in 3-CNF vorliegt.
Auf diese Umformung werden wir später noch einmal genauer
eingehen.
Satz 38 QBF ist PSPACE-vollständig auch wenn wir uns auf Boolesche
Formeln beschränken, die in 3-CNF vorliegen.
249
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Das alternieren Quantoren ein einer QBF kann das Abwechseln von
Spielern verstanden werden:
◮
◮
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Definition 43 Eine Spielstellung eines Zwei-Personen-Spiels beschreibt
eine Spielkonfiguration des Zwei-Personen-Spiels. Diese setzt sich
folgenden Informationen zusammen:
◮ Verteilung der Figuren auf dem Spielfeld,
6.2 PSPACE: Eine verspielte Klasse
◮
250
∃: Es existiert ein Zug für mich, so dass
∀: für alle Züge meines Gegners,
Angabe des Spielers, welcher den nächsten Zug ausführt und
Sonderangaben wie: Wichtige Angaben, die man der Verteilung der
Figuren nicht ansieht, Informationen über die Einhaltung von
Fortschrittsregeln, etc.
Der Stellungsgraph eines Zwei-Personen-Spiel ist ein gerichteten Graphen
H, dessen Knotenmenge VH der Menge der möglichen Spielstellungen
repräsentiert. Zwischen zwei Knoten v1 und v2 eines Stellungsgraphen
existiert genau dann eine Kante (v1 , v2 ), wenn die mit v1 assoziierte
Spielstellung mit Hilfe eines Spielzuges in die mit v2 assoziierte
Spielstellung überführt werden kann.
◮
◮
∃: ein Zug für mich existiert, so dass
∀: für alle Züge meines Gegners,
...
F (x1 , . . . , xn ): ich das Spiel gewonnen habe!
Es verwundert daher nicht, dass viele 2-Personen Spiele PSPACE-vollständige Varianten besitzen. Im Folgenden wollen wir eines dieser Spiele
– das sogenannte Geographie-Spiel – näher betrachten.
251
252
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Definition 43 (Teil 2)
◮ Besitzt ein Knoten v1 des Stellungsgraphen keinen Nachfolger, so
nennen wir die zu v1 gehörige Spielstellung eine Endstellung.
◮ Entsprechend den Spielregeln unterscheiden wir zwischen einer
gewinnenden Endstellung und einer unentschiedenen Endstellung.
Eine gewinnenden Endstellung für einen Spieler impliziert im
folgenden eine verlierende Endstellung für den zweiten Spieler.
◮ Eine Spielstellung C heiße Gewinnstellung für einen Spieler S, wenn
entweder C eine gewinnenden Endstellung für S ist oder
◮
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Definition 44 Geographie-Spiel
Der Spielfeld des Geographie-Spiels ist ein gerichteter Graph G = (V , E )
mit Startknoten s. Die beiden Spieler markieren abwechselnd Knoten aus
G nach den folgenden Regeln:
1. Die beiden Spieler führen abwechselnd ihre Züge aus.
2. Im ersten Zug markiert Spieler 1 s.
3. Im t-ten Zug, t > 0, markiert der jeweilige Spieler der am Zug ist
einen direkten Nachfolgeknoten des Knotens, welcher im t − 1-ten
Zug markiert wurde.
4. Ein Knoten darf nicht mehrmals markiert werden.
5. Es gewinnt der Spieler, welcher den letzten Zug ausführt.
S am Zug ist und eine Nachfolgespielstellung C ′ von C existiert,
welche auch eine Gewinnstellung für S1 ist oder
S nicht am Zug ist und für alle Nachfolgespielstellung C ′ von C gilt,
dass C ′ eine Gewinnstellung für S ist.
Ist C eine Gewinnstellung für den Gegenspieler von S, so nennen wir
C eine Verluststellung für S. Ist C weder eine Gewinnstellung noch
eine Verluststellung für S, so nennen wir C eine Remisstellung.
Kann ein Spieler S in einer Spielstellung C seinen Gewinn innerhalb
von maximal ℓ Zügen realisieren, so sagen wir, S besitzt eine
Gewinnstrategie in C der Länge ℓ.
Andreas Jakoby
Universität zu Lübeck
GEO := { (G , s) | G ist ein Spielgraph eines Geographie-Spiels, auf
dem Spieler 1 eine Gewinnstrategie besitzt. }
planar-GEO := { (G , s) | G ist ein planarer, bipartiter Spielgraph eines
Geographie-Spiels, auf dem Spieler 1 eine
Gewinnstrategie besitzt. }
253
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
254
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Satz 39 GEO und planar-GEO sind in PSPACE-vollständig.
Beweis von Satz 39 (Teil 1)
◮ Da wir schon gesehen haben, dass GEO in PSPACEliegt, müssen
wir noch zeigen, dass planar-GEO PSPACE-hart ist.
◮ Im Folgenden wollen wir uns der Komplexität der planaren Variante
des Geographie-Spiels zuwenden.
Für das Geographie-Spiel gilt:
◮ Nach Regel 4 darf kein Knoten mehrmals markiert werden.
◮ Da in jeder Runde ein Knoten markiert wird, endet jedes Spiel nach
spätestens |V | Runden.
◮ Jede Spielstellung können wir auf polynomiellen Platz speichern.
◮
Analog zum Algorithmus Evaluate(E ) können wir auch für eine
Instanz (G , s) des Geographie-Spiels entscheiden, ob Spieler 1 eine
Gewinnstrategie besitzt.
Lemma 15 GEO und planar-GEO sind in PSPACE.
◮
◮
◮
◮
255
·
Durch eine bipartite Zerlegung V1 ∪ V2 der Knotenmenge des
Spielgraphen erhalten wir zugleich eine Aufteilung der Knotenmenge
unter den beiden Spielern.
Wir suchen eine Reduktion des auf 3-CNF Formeln eingeschränkten
QBF-Problems auf planar-GEO.
Sei
E = Q1 x1 . . . Qm xm : C1 ∧ . . . ∧ Cℓ
mit Cj = xjα1 1 ∨ xjα2 2 ∨ xjα3 3 eine Instanz dieses QBF-Problems.
Bei dem im Folgenden konstruierten Graphen GE werden wir zunächst
auf die Eigenschaft der Planarität verzichten und diese erst zum
Anschluß durch eine leichte Modifikation erreichen.
256
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 39 (Teil 2)
◮ GE besteht aus einer Folge von Teilgraphen H1 , . . . , Hm , welche die
Quantoren Qi xi repräsentieren.
◮ Für jede Klausel Cj enthält GE einen zusätzlichen Knoten vj und
Kanten von vj zu einem ausgezeichneten Knoten des Teilgraphen Hjr
mit r = 1, 2, 3.
Andreas Jakoby
Universität zu Lübeck
Beweis von Satz 39 (Teil 3) Die nachfolgende Abbildung illustriert, wie
die Teilgraphen H1 , . . . , Hm sowie die Knoten v1 , . . . , vℓ zusammengefügt
werden.
ai
ci1
di
ei
ai
zi0
di
ci0
Qi xi = ∃xi
1
zm
e2
a2
e1
v1
em
am
H1
H2
Hm
z10
z20
0
zm
v2
ei
zi0
vℓ
Es gilt:
Qi xi = ∀xi
◮
◮
a1
zi1
bi
z21
z11
s
zi1
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Für die Knotenmengen des Graphen G (F ) und der Graphen Hi gilt
◮
·
·
Die bipartite Zerlegung V1 ∪ V2 der letzten Folie bleibt erhalten.
Ferner erhalten wir
hierbei die folgende bipartite Zerlegung V1 ∪ V2 :
Sm
Sm
0 1
0 1
und
i=1 {zi , zi , bi , ei } ⊆ V1
i=1 {ci , ci , ai , di } ⊆ V2
s ∈ V1
und {v1 , . . . , vℓ } ⊂ V2 .
sofern die entsprechenden Knoten vorhanden sind.
257
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 39 (Teil 4) Die nachfolgende Abbildung illustriert, wie
die noch fehlenden Kanten von den Knoten v1 , . . . , vℓ zu den Teilgraphen
H1 , . . . , Hm gezogen werden.
258
Andreas Jakoby
Universität zu Lübeck
Beweis von Satz 39 (Teil 5) Die nachfolgende Abbildung illustriert den
Graphen GE für die Formel
E
1−α1
zj
1
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
∃ x1 ∀ x2 ∃ x3 : (x 1 ∨ x2 ∨ x 3 ) ∧ (x1 ∨ x2 ∨ x 3 ) .
=
1−α3
zj
3
α
zj 2
2
s
em
Hj3
Hj2
Hj1
vj
α1
zj
1
1−α2
zj
2
α3
zj
3
z11
z21
z31
z10
z20
z30
s
Die noch fehlenden Kanten von den Knoten v1 , . . . , vℓ zu den Knoten
0
1
z10 , z11 , . . . , zm
, zm
werden wie folgt gesetzt:
◮
v1
v2
Sei Cj = xjα1 1 ∨ xjα2 2 ∨ xjα3 3 die j-te Klausel von E , dann verbinden wir:
3
2
1
)} ⊂ E .
), (vj , zj1−α
), (vj , zj1−α
{(vj , zj1−α
3
2
1
·
Es gilt: Die bipartite Zerlegung V1 ∪ V2 der letzten Folie bleibt erhalten.
259
260
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
9. Vorlesung, 09.06.2008
Beweis von Satz 39 (Teil 6) Für ein Spiel auf einem solchen gegebenen
Graphen gilt folgende Aussage:
Beobachtung 19 Sei GE ein wie oben konstruierter Graph. Dann gilt:
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 39 (Teil 7) Zunächst ein paar Notationen:
1. Spieler 1 markiert nur Knoten aus V1 und Spieler 2 Knoten aus V2 .
2. Ist Qi ein Existenzquantor, so hat Spieler 1 die Wahl, ob er nach
dem ai markiert wurde den Knoten zi0 oder zi1 markiert.
3. Ist Qi ein Allquantor, so entscheidet Spieler 2, ob er nach dem ai
markiert wurde den Knoten ci0 oder ci1 markiert, d.h. Spieler 2
entscheidet, ob zj0 oder zj1 markiert wird.
4. Spieler 2 entscheidet, welcher Klauselknoten v1 , . . . , vℓ markiert wird.
◮
Sei Mi eine Menge von Markierungen der Teilgraphen s, H1 , . . . , Hi ,
welche jeweils einer Belegung der Variablen x1 , . . . , xi entspricht,
wobei die Markierung von zj1 die Belegung xj = 1 und die
Markierung von zj0 die Belegung xj = 0 repräsentiert.
◮
Für eine Folge von Wahrheitswerten e1 , . . . , ek ∈ {0, 1} mit k ≤ m
sei
F [e1 , . . . , ek ](xk+1 , . . . , xn ) ,
die Formel, die wir aus der 3-CNF F erhalten, indem wir alle
Vorkommen der Variablen xj mit j ≤ k durch die Wahrheitswerte ej
ersetzen.
5. Spieler 1 hat auf GE genau dann eine Gewinnenstrategie, wenn für
jede Wahl von Spieler 2, also insbesondere auch für jeden
ausgewählten Klauselknoten vj noch einen nichtmarkierten direkten
3
2
1
von vj existiert.
oder zj1−α
, zj1−α
Nachfolger zj1−α
3
2
1
261
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
262
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 39 (Teil 9), Beweis von Lemma 16 Der Beweis
erfolgt über eine vollständige Induktion über i von m + 1 nach 1.
Beweis von Satz 39 (Teil 8)
Lemma 16 Sei 1 ≤ i ≤ m + 1, B ∈ Mi eine Startmarkierung in GE und
e1 , . . . , ei−1 ∈ {0, 1} die entsprechende Belegung der Variablen
x1 , . . . , xi−1 für B. Dann impliziert:
◮
Qi xi . . . Qm xm : F [e1 , . . . , ei−1 ](xi , . . . , xm ) = 1 ,
dass Spieler 1 eine Gewinnstrategie auf GE besitzt, wenn im nächsten
Zug ai bzw. ein Knoten aus {v1 , . . . , vℓ } für i = m + 1 von Spieler 2
markiert werden muss.
◮
263
Verankerung Sei e1 , . . . , em eine erfüllende Belegung der Variablen in
F , dann existiert für jede Klausel Ci ein Literal xiαj aus Ci mit
eiαj = 1. In der mit e1 , . . . , em assoziierten Markierung B ∈ Mm+1
sind andererseits die jeweiligen Knoten ziei markiert. Wählt Spieler 2
in der Markierung B den mit der Klausel Ci assoziierten Knoten vi ,
1−ei
so besitzt vi einen nichtmarkierten Nachfolgeknoten zi1−α
= zij j .
j
Dieser kann von Spieler 1 markiert werden. Da in B der Knoten dij
bereits markiert ist, hat Spieler 1 gewonnen.
Induktionsschritt folgt unmittelbar aus Beobachtung 19.
264
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 39 (Teil 11), Beweis von Lemma 17 Der Beweis
erfolgt über eine vollständige Induktion über i von m + 1 nach 1.
Beweis von Satz 39 (Teil 10)
Lemma 17 Sei 1 ≤ i ≤ m + 1, B ∈ Mi eine Vormarkierung in GE und
e1 , . . . , ei−1 ∈ {0, 1} die entsprechende Belegung der Variablen
x1 , . . . , xi−1 für B. Dann impliziert die Aussage, dass Spieler 1 eine
Gewinnstrategie auf GE besitzt und im nächsten Zug ai bzw. ein Knoten
aus {v1 , . . . , vℓ } für i = m + 1 von Spieler 2 markiert werden muss, die
Aussage
◮
Qi xi . . . Qn xn : F [e1 , . . . , ei−1 ](xi , . . . , xn ) = 1 .
◮
Verankerung Sei B ∈ Mm+1 eine Vormarkierung in GE und
e1 , . . . , em ∈ {0, 1} die entsprechende Belegung der Variablen
x1 , . . . , xm . Dann besitzt Spieler 1 in B nur dann eine
Gewinnstrategie, wenn es für jede Wahl eines Klauselknotens vi von
Spieler 2 einen unmarkierten Nachfolgeknoten zj1−α
gibt. Dieses
i
impliziert jedoch, dass das entsprechende Literal xjαi der Klausel Ci
durch die Belegung eji erfüllt wird. Da diese Bedingung für alle
Klauseln gelten muss, erfüllt die Belegung e1 , . . . , em die Formel F .
Induktionsschritt folgt unmittelbar aus Beobachtung 19.
265
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
266
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 39 (Teil 13) In einem ersten Schritt wollen wir aus
GE einen Graphen GE′ mit beschränktem Grad konstruieren.
v1
v2
=⇒
em
Beweis von Satz 39 (Teil 12) Setzt man in Lemma 16 und 17 den
Parameter i = 1 so folgt, dass Spieler 1 auf GE genau dann eine
Gewinnstrategie besitzt, wenn E wahr ist. Wir erhalten:
v1
v2
vℓ−1
vℓ
em
p1
q2
p2
qℓ−1
vℓ
vi 1
vi 2
GEO ist PSPACE-vollständig.
Es verbleibt somit noch die Aufgabe GE in einen planaren Graphen zu
transformieren, ohne dass er die oben gezeigten Eigenschaften verliert.
=⇒
vi 1
vi k
vi 3
vi 2
ziα
q2′
p3′
q3′
pk′
ziα
vi k
◮
◮
◮
267
Wir ersetzen alle Knoten mit einem Eingrad (d.h. em ) bzw. Ausgrad
0
1
(d.h. z10 , z11 , . . . , zm
, zm
) größer 2 durch eine Kette von Knoten.
Der resultierende Graph ist weiterhin bipartit, wobei pi , pi′ ∈ V1 und
qi , qi′ ∈ V2 gilt.
Für GE′ gelten weiterhin die Aussagen aus Beobachtung 19 sowie
Lemma 16 und 17.
268
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 39 (Teil 14) Im letzten Schritt ersetzen wir sukzessive
alle Kantenkreuzungen in GE′ durch den folgenden Teilgraphen:
z′
z′
Beweis von Satz 39 (Teil 15) Um zu erkennen, dass diese Ersetzung
der Kreuzungen die Gewinn-Eigenschaften auf dem Graphen nicht
verändert, verfahren wir wie folgt:
s4
y1
r4
r3
s3
s2
z
v
v
◮
z
r2
=⇒
s1
r0
◮
r1
y2
v′
v′
◮
◮
◮
Die Herleitung von GE′′ aus der QBF E kann durch eine
logarithmisch platzbeschränkte DTM erfolgen kann.
Können wir jetzt noch zeigen, dass ein Spieler auf GE′′ genau dann
eine Gewinnstrategie hat, wenn dieser Spieler auf GE′ eine
Gewinnstrategie besitzt, dann haben wir
Kreuzungen erlauben wir nur zwischen den Kanten vom Typ (vi , zj )
und (vi ′ , zj ′ ).
Sei t ein Spielzug, in dem der Spieler 2 den Knoten v auf GE′
markiert. Ferner wähle Spieler 1 den Knoten z im Zug t + 1.
Zu zeigen ist nun, dass dieses in eine Folge von Zügen übertragen
werden kann, in denen nach dem Markieren von v und anschließend
r0 (bzw. r1 ) der Spieler 1 gezwungen wird, nach Ablaufen dieser
Folge z zu markieren, ohne, dass einen Knoten außerhalb des
Kreuzungs- graphen markiert wird.
QBF ≤log planar-GEO
bewiesen.
269
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
′
z
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
z′
z′
′
s4
y1
r4
r3
s2
z
v
s4
y1
r4
r3
s3
s2
z
z
v
v
s1
s1
r1
r1
y2
y2
v
◮
◮
◮
z
r0
r0
′
s3
r2
=⇒
r2
=⇒
v
Andreas Jakoby
Universität zu Lübeck
Beweis von Satz 39 (Teil 17)
Beweis von Satz 39 (Teil 16)
z
270
v
v
′
Nach dem Markieren von v wählt Spieler 1 anstelle von z den
Knoten r0 .
Im folgenden müssen beide Spieler der Reihe nach die Knoten
s1 , r2 , s2 markieren.
Markiert Spieler 1 nun r4 , so kann Spieler 2 y1 markieren und hat
somit gewonnen.
v
′
◮
Somit muss Spieler 1 den Knoten r3 markieren.
◮
In dieser Spielstellung hat Spieler 2 die Wahl. Markiert Spieler 2 y2 ,
so kann Spieler 1 anschließend r1 markieren, und hat gewonnen.
Analoges können wir auch für den Weg von v ′ nach z ′ beobachten.
Beide Spieler müssen somit eine gezwungen eine bestimmte
Zugreihenfolge einzuhalten, um nicht sofort zu verlieren.
◮
◮
271
′
272
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
6.3 Games Against Nature
Im Folgenden wollen wir uns einer weiteren Menge von Spielen zuwenden,
in denen die Aktionen des zweiten Spielers durch einen randomisierten
Prozeß bestimmt werden.
◮ Da im Allgemeinen der zweite Spieler keine optimale Gewinnstrategie
verfolgt, werden wir vom ersten Spieler nicht mehr fordern, dass für
ihn eine absolute Gewinnstellung vorliegt, sondern, dass er sein Spiel
mit hinreichend großer Wahrscheinlichkeit gewinnt – es liegt für ihn
somit eine Entscheidungsfindung bei verbleibender Unsicherheit vor.
◮ Ein einfaches Spiel, welches dieser Bedingung genügt ist das aus
dem Anfängen der Computerspiele bekannte PAC-MAN.
◮ Ein interessanteres Spiel ist hier das Katz und Maus Spiel. In diesem
Spiel muss sich die Maus durch ein Labyrinth von einem Start zu einem
Zielpunkt bewegen. Die Katze kann jedoch von oben her kommend
jeden Punkt des Labyrinths in einem Schritt erreichen. Um der Maus
eine Gewinnchance zu lassen, verbinden wir der Katze die Augen
und verstopfen ihre Nase, so dass sie nur zufällig im Labyrinth nach
der Maus greifen kann. Zu entscheiden ist, ob die Maus ihr Ziel mit
einer Wahrscheinlichkeit größer 21 erreicht.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Formal können wir das Gewinnverhalten bei einem derartigen Spiel durch
eine einfache Abänderung der QBFs beschreiben:
Definition 45 Probabilistisches Erfüllbarkeitsproblem (SSAT)
Gegeben sei eine Boolesche Formel F in 3CNF über den Variablen
x1 , . . . , xn . Ferner sei R ein Quantor, der einer Variable xi mit
Wahrscheinlichkeit 12 den Wert 1 und mit Wahrscheinlichkeit 21 den Wert
0 zuweist. Eine probabilistische quantifizierte Boolesche Formel (PrQBF)
ist eine Boolesche Formel F deren Variablen durch existenzielle und
probabilistische Quantoren gebunden sind. Eine solche PrQBF ist erfüllt,
wenn
R
= ∃x1 Rx2 ∃x3 · · · Rxn : Pr[F (x1 , . . . , xn ) = 1] >
1
2
gilt. Ferner sei
SSAT := { R | R ist eine probabilistische quantifizierte Boolesche
Formel, welche die obige Bedingung erfüllt } .
273
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Satz 40 SSAT ist PSPACE-vollständig bezüglich der
logspace-Reduktion.
274
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 40 (Teil 2) Die Auswertung einer QBF bzw. einer
PrQBF entspricht nun der Aufgabe eines Gärtners, der den Baum
zurechtschneiden muss: Bei jedem Knoten, der mit max markiert ist,
muss er genau einen der beiden Kinderäste abschneiden.
◮ Wir nennen einen solchen korrekt zurechtgeschnitten Teilbaum im
Folgenden Bewertungsteilbaum.
◮ Es ist einfach zu erkennen, alle Bewertungsteilbäume einer QBF
bzw. einer PrQBF die gleichen Anzahl von Blättern haben.
◮ Die Aufgabe des Gärtners ist es nun einen Bewertungsteilbaum zu
finden, der für QBF nur akzeptierende Blätter besitzt, bzw., wenn
wir SSAT lösen wollen, von dessen Blätter mehr als Hälfte
akzeptierend sind.
Beweis von Satz 40 (Teil 1) Wir müssen uns zunächst ein paar
Gedanken darüber machen, wie wir eine PrQBF lesen müssen:
◮ Die Belegungen der Variablen einer PrQBF sowie einer QBF
definieren einen Baum, dessen Knoten durch die Zeichenketten
{0, 1}≤n gegeben sind.
◮ Ein Knoten w ∈ {0, 1}<n hat die beiden Kinder w 0 und w 1.
◮ Die Wurzel des Baums ist gegeben durch den leeren String λ.
◮ Jedes Blatt korrespondiert nun zu einer Belegung aller Variablen und
jedes Level im Baum (bis auf das Blattlevel) korrespondiert zu einem
Quantor.
◮ Werten wir die gegebene Boolesche Formel nun für die gegebenen
Belegungen der Blätter aus, so erhalten wir eine Markierung der
Blätter mit den korrespondierenden Wahrheitswerten.
◮ Markieren wir ferner die Knoten eines ∃-Levels mit max und die
Knoten der ∀- bzw. R-Levels mit + so erhalten wir einen
arithmetischen Bewertungsbaum.
max
λ
0
∃
1
max
+
+
+
R
00
01
10
max
11
max
max
max
max
max
∃
000 010
001 011
275
100 110
101 111
0 1 0 1
1 0 0 0
0
1
276
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 40 (Teil 3) Die folgenden Beobachtungen sind für
unseren Beweis sehr hilfreich:
◮ Über eine vollständige Induktion können wir einfach zeigen, dass
jeder Bewertungsteilbaum einer QBF bzw. einer PrQBF genau 2k
Blätter besitzt, wenn k die Anzahl der ∀- bzw. der R-Quantoren der
QBF bzw. der PrQBF angibt.
◮ Werten wir den arithmetischen Bewertungsbaum einer QBF bzw.
einer PrQBF aus, so sind die Zwischenergebnisse an allen Konten
durch 2k beschränkt.
◮ Auf Eingabe einer QBF bzw. einer PrQBF können wir den
dazugehörigen arithmetischen Bewertungsbaum auf polynomiellem
Platz auswerten.
Sei h das Ergebnis der Auswertung eines solchen arithmetischen
Bewertungsbaums, dann ist die dazugehörige PrQBF genau dann wahr,
wenn
h > 2k−1
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 40 (Teil 4) Um zu zeigen, dass SSAT
PSPACE-vollständig ist, wollen wir das QBF auf SSAT reduzieren.
◮
Sei
E
=
Q1 x1 . . . Qn xn : F (x1 , . . . , xn )
eine gegebene QBF. Wir generieren nun die folgende PrQBF
R
=
Rx0 Q1′ x1 . . . Qn′ xn : (x0 ∧ F (x1 , . . . , xn )) ∨
n
^
xi
i=0
wobei Qi′ = R ist, falls Qi = ∀ ist. Ansonsten lassen wir
Qi′ = Qi = ∃.
Was können wir über R und E sagen:
◮
◮
ist. Wir erhalten somit unmittelbar:
Sei k die Anzahl der ∀-Quantoren in E , dann ist k + 1 die Anzahl
der R-Quantoren in R.
Jeder Bewertungsteilbaum von E hat 2k Blätter und jeder
Bewertungsteilbaum von R hat 2k+1 Blätter.
SSAT ist in PSPACE .
277
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
278
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Beweis von Satz 40 (Teil 5) Wir haben
E
=
Q1 x1 . . . Qn xn : F (x1 , . . . , xn )
Wie schon QBF für PSPACE stellt SSAT eine kanonisches Problem für
Games Against Nature dar. Wir wollen nun noch ein Spiel vom Typus
Games Against Nature vorstellen:
und
R
=
Rx0 Q1′ x1 . . . Qn′ xn : (x0 ∧ F (x1 , . . . , xn )) ∨
n
^
Definition 46 Gegeben sei ein gerichteter, azyklischer Graph
G = (V , E ), zwei ausgezeichnete Knoten s, z ∈ V und eine Funktion
p : E × V → P wobei P := { k · 2−pol(|V |) | k ∈ {0, . . . , 2pol(|V |) } für
ein Polynom pol ist.
Das dynamische Grapherreichbarkeitsproblem ist wie folgt definiert:
Spieler 1 startet auf Knoten s und soll Knoten t durch Ziehen entlang der
Kanten des Graphen erreichen. Der probabilistische Spieler 2 versucht
dieses jedoch durch Entfernen von Kanten zu verhindern und bedient sich
dazu der Wahrscheinlichkeitsfunktion p.
xi .
i=0
Ist E wahr, dann ist das Ergebnis des Bewertungsbaums von E 2k
und das Ergebnis des Bewertungsbaums von R 2k + 1 (2k vom
linken Teilbaum der Wurzel und 1 vom rechten Teilbaum).
◮ Ist E falsch, dann ist das Ergebnis des Bewertungsbaums von E
< 2k und das Ergebnis des Bewertungsbaums von R ≤ 2k (< 2k
vom linken Teilbaum der Wurzel und 1 vom rechten Teilbaum).
Somit ist E ∈ QBF genau dann, wenn R ∈ SSAT ist. Es ist ferner einfach
zu erkennen, dass wir die Transformation von E nach R auf
logarithmischen Platz durchführen können.
◮
279
280
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Definition 46 (Teil 2) Durch Entfernen von Kanten entsteht wie folgt
eine Folge von noch verfügbaren Kanten E0 , E1 , E2 , . . .:
◮
◮
◮
◮
◮
In der Startkonfiguration befindet sich Spieler 1 auf Knoten s und
die ihm zur Verfügung stehende Kantenmenge ist durch E0 = E
gegeben.
Bevor er jedoch einen Knoten weiter ziehen darf, entfernt Spieler 2
aus E0 Kanten e ∈ E0 mit der jeweiligen Wahrscheinlichkeit p(e, s).
Jetzt darf Spieler 1 über eine der verbleibenden Kanten (wenn
möglich) zu einem direkten Nachfolger von s ziehen, und so weiter.
Definition 46 (Teil 3) Eine Zugstrategie von Spieler 1 besteht nun also
aus einer Funktion S : V × 2E → V welche die jeweiligen Züge von
Spieler 1 bestimmt. Ferner sei reachS (G , p, s, z) die Wahrscheinlichkeit,
dass Spieler 1 mit der Strategie S Erfolg hat. Wir definieren nun
DGR := { (G , p, s, z) | es existiert eine Strategie S für Spieler 1
mit reachS (G , p, s, z) > 12 } .
Allgemein gilt somit: Befindet sich Spieler 1 nach t Zügen auf einem
Knoten qt und ist die aus den vorhergehende Zügen verbleibende
Kantenmenge Et , so entfernt Spieler 2 in der ersten Phase die
Kanten e ∈ Et aus Et mit Wahrscheinlichkeit p(e, qt ). Die
verbleibende Kantenmenge bezeichnen wir mit Et+1 .
Auf dieser Menge zieht Spieler 1 zu einem Nachfolger qt+1 von qt
und versucht so, z zu erreichen.
281
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
Zunächst ein paar Beobachtungen:
◮ Da G azyklisch ist und der erste Spieler in jeder Runde einen Knoten
weiter ziehen muss, ist ein Spiel des dynamischen
Grapherreichbarkeitsproblems nach spätestens |V | − 1 Runden
beendet.
◮ Eine Spielstellung besteht aus dem aktuellen Graph (Eingabegarph
ohne die entfernten Knoten) und der Markierung des vom Läufer des
ersten Spielers besetzten Knotens. Eine Spielstellung kann somit auf
linearem Platz abgespeichert werden.
◮ Konstruieren wir jetzt einen Baum, der alles möglichen Spielverläufe
wieder gibt, so erhalten wir einen Baum mit maximaler Tiefe |V |
(für die Züge von Spieler 1) plus |E | · |V | (für die Züge von Spieler 2
– er kann ja für jedem Zug des ersten Spielers jede Kante ausfallen
lassen) und mit maximalem Grad |V |.
◮ Ein Wurzel-Blatt Pfad beschreibt einen möglichen Spielverlauf von
der Anfangs- bis zur Endstellung. Ein solcher Pfad kann auf Platz
O(|V |2 · |E | · |G |) dargestellt werden.
◮ Um den Baum zu traversieren, genügt ebenfalls Platz
O(|V |2 · |E | · |G |).
282
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
10. Vorlesung, 16.06.2008
◮
Sei q ein Polynom, so dass jede Wahrscheinlichkeit p(e, v ) einer
gegebenen Instanz G , s, z, p entweder 0 oder ein Vielfaches von
2−q(|V |) ist.
◮
Die Wahrscheinlichkeit für einen gegebenen Wurzel-Blatt Pfad ist
2
somit ein Vielfaches von 2−|V | ·|E |··q(|V |) . Diese Wahrscheinlichkeit
können wir somit auf Platz |V |2 · |E | · q(|V |) als Binärzahl darstellen
und bei gegebenen Pfad auch auf diesem Platz berechnen.
Ersetzen wir nun in dem Baum der möglichen Spielverläufe jeden
Knoten in dem Spieler 1 am Zug ist durch ein max und jeden
Knoten in dem Spieler 2 am Zug ist durch ein + so erhalten wir
wieder eine arithmetische Formel, die uns die Wahrscheinlichkeit
angibt, mit der Spieler 1 gewinnen kann. Diesen Baum können wir
wieder auf polynomiellen Platz auswerten.
◮
Wir erhalten:
Lemma 18 DGR ist in PSPACE.
283
284
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
◮
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Schritt 1 der Reduktion von SSAT auf DGR:
Zum Abschluß unseres Exkurses in die Games Against Nature wollen wir
jetzt noch zeigen, dass DGR hart für PSPACE ist. Dieses folgt über eine
Reduktion von SSAT auf DGR.
◮
Andreas Jakoby
Universität zu Lübeck
Zunächst nehmen wir an, dass die Boolesche Formel der PrQBF in
3-CNF vorliegt. Das diese Variante von SSAT immer noch
PSPACE-vollständig ist, können wir analog zu den Umformungen des
Erfüllbarkeitsproblems in das 3-SAT Problem zeigen. Sei also
Die Reduktion verlangt eine ausführliche Diskusion der verwendeten
Wahrscheinlichkeiten.
Wir werden die Reduktion in mehreren Schritten angeben, und
jeweils den erhaltenen Graphen bzw. die entsprechenden Werte der
Wahrscheinlichkeitsfunktion p besprechen.
R := ∃x1 Rx2 . . . ∃xn−1 Rxn :
m
^
Cj
mit
i=1
Cj = xjα1 1 ∨ xjα1 1 ∨ xjα1 1
eine Instanz des SSAT Problems.
285
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
286
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Wir definiere folgende Knoten- und Kantenmengen:
VX ,0
VX
EX
:=
:=
:=
n
[
i=1
n
[
i=1
n
[
i=1
EC ,j
:=
{xi0 }
VX ,1 :=
n
[
Und nun definieren wir den Graph G = (V , E ) mit
i=1
{xi1 }
V
{xi }
{(xi , xi0 ), (xi , xi1 )}
3
[
3
[
k=1 ℓ=1
ℓ
{(cjk , cj+1
)}
EC :=
m
[
E
EC ,m :=
k=1
:= EX ∪
EC ,j
j=1
3
[
:= VX ∪ VX ,0 ∪ VX ,1 ∪
∪
k
{cm
, z} .
287
3
[
k=1
n−1
[
i=1
m
[
j=1
{cj1 , cj2 , cj3 } ∪ {s, z}
{(xi0 , xi+1 ), (xi1 , xi+1 )}
{(xn0 , c1k ), (xi1 , c1k )} ∪ EC ∪ {(s, x1 )} ∪ {(s, z)} .
288
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
In einem ersten Schritt definieren wir die Wahrscheinlichkeitsfunktion p
wie folgt:

0 für q 6∈ VX ,0 ∪ VX ,1




0 für e 6∈ EC



 0 für e ∈ EC ,j und q ∈ VX ,0 ∪ VX ,1 mit q = xiα



und e = (cjk , w ) wobei xi1−α nicht das k-te
p(e, q) :=
Literal der j-ten Klausel ist




1
für
e ∈ EC ,j und q ∈ VX ,0 ∪ VX ,1 mit q = xiα




und e = (cjk , w ) wobei xi1−α das k-te Literal



der Klausel Cj ist
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Für den so konstruierten Graphen gilt nun folgende Beobachtung:
Beobachtung 20 Durchläuft Spieler 1 einen Pfad von x1 zu einem der
Knoten c1k , wobei er die Knoten xiαi passiert, so löscht Spieler 2 alle
Kanten, welche von einem Knoten cjℓ ausgehen, wenn xi1−αi das ℓ-te
Literal der Klausel Cj ist. Interpretiert man nun die auf dem Pfad
liegenden Knoten xiαi als eine entsprechende Belegung xi := αi der
Variablen der Booleschen Formel von F , so ist diese genau dann erfüllt,
wenn es noch einen Pfad von einem Knoten c1k nach u gibt.
für q ∈ V und e ∈ E .
289
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
290
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
x10
s
Schritt 2 der Reduktion von SSAT auf DGR:
◮
Wir modifizieren nun die Funktion p derart, dass sie in einem
Zustand xi , wobei der zur entsprechenden Variable gehörende
Quantor Qi ein probabilistischer Quantor ist, der probabilistische
Spieler die Kanten (xi , xi0 ) und (xi , xi1 ) mit einer bestimmten
Wahrscheinlichkeit löscht.
◮
Hierbei kann es jedoch geschehen, dass Spieler 2 beide Kanten oder
keine der beiden Kanten entfernt.
◮
Um diese Abweichung in den Griff zu bekommen, haben wir die
Kante (s, z) eingefügt, welche im ersten Schritt mit einer noch zu
bestimmenden Wahrscheinlichkeit entfernt wird.
x1
x11
c31
c32
c33
z
291
292
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
◮
◮
◮
◮
und p((xi , xij ), xi ) = β
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Sei p1,i die Wahrscheinlichkeit, dass das Problem P beim Knoten x2·i
zum ersten mal auftritt, dann gilt für n = 2 · ℓ (d. h. es gibt genau ℓ
probabilistische Quantoren):
Pℓ
Pℓ
2
2
2
p1 =
=
(2 · (β − β ))i−1 · β · (2 · β − β )ℓ−i
i=1 p1,i
Pi=1
2
2
ℓ
ℓ−1
·β
≤
i=1 (2 · β − β )
2 ℓ−1
2
= ℓ · (2 · β − β )
· β =: p3
Wir modifizieren also die Funktion p folgendermaßen:
p((s, z), s) = α
Andreas Jakoby
Universität zu Lübeck
für j ∈ {0, 1} und Qi = R .
Die Werte von α und β werden wir im folgenden konstruieren.
Wir definieren α := 1 − α und β := 1 − β.
Wir berücksichtigt: In einem Knoten xi mit Qi = R löscht Spieler 2
2
mit einer Wahrscheinlichkeit von β keine der Kanten (xi , xi0 ) und
(xi , xi1 ) und ein Pfad von s zu einem Knoten c1j existiert weiterhin.
und
2
p2 = (β − β )ℓ .
Es gilt nun:
Diesem Problem P wird dadurch begegnet, dass β so gewählt wird,
dass die Wahrscheinlichkeit p1 seines Auftretens kleiner ist, als die
Wahrscheinlichkeit p2 für das Auftreten eines ganz bestimmten
Pfades.
p3 < p2
⇐⇒
ℓ·
ℓ−1
β
β
· 2+
< 1.
1−β
1−β
Wählen wir β := 2−3·ℓ so folgt:
ℓ−1
β
β
ℓ·
· 2+
< ℓ · 2 · 2−3·ℓ 4ℓ−1 < 2 · ℓ · 2−ℓ ≤ 1 .
1−β
1−β
293
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
294
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Unter der Voraussetzung, dass Spieler 2 in seinem ersten Zug die Kante
(s, z) entfernt, ist die maximale Wahrscheinlichkeit für eine erfolgreiche
Strategie für von Spieler 1 genau dann größer
Kann dieser Wert nicht exakt durch eine logarithmisch platzbeschränkte
DTM bestimmt werden, so approximieren wir ihn derart, dass durch
diesen angenäherten Wert die obigen Ungleichungen erfüllt werden.
2
(2 · β − 2 · β )ℓ
p4 := p3 +
,
2
Es folgt
wenn F ∈ SSAT.
◮ Für die Wahl von α muss gelten:
α + p4 · (1 − α)
◮
≤
1
2
SSAT
≤log
DGR
und somit
<
α + (p4 + p2 ) · (1 − α) .
Satz 41 DGR ist PSPACE-vollständig bezüglich der
logspace-Reduktion.
Wir bestimmen den Wert von α somit durch
α
:=
1 − 2 · p4
.
2 − 2 · p4
295
296
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
6.4 Alternative Charakterisierungen für PSPACE
Eine maschinennahe Betrachtung der QBFs bzw. der PrQBFs legt es
nahe, eine Erweiterung des Turing-Maschinen Modells zu betrachten: die
alternierende Turing-Maschine (ATM).
◮ Eine Alternierende Turing-Maschine besitzt vier Typen von
Zuständen: akzeptierende, verwerfende, existentielle und universelle
Zustände.
◮ In einem Berechnungsbaum einer solchen Maschine fassen wir alle
möglichen Berechnungspfade einer solchen Maschine auf einer
Eingabe zusammen.
◮ Eine (zulässiger) Berechnungsteilbaum besteht jetzt aus einem
Teilbaum des Berechnungsbaums, in dessen Blätter die TM
entweder in einem akzeptierenden oder in einem verwerfende
Zustand ist. Ferner fordern wir für alle Konfigurationen der TM im
Berechnungsteilbaum, in der die TM in einem universellen Zustand
ist, dass diese Knoten die gleichen direkten Nachfolgekonfigurationen
im Berechnungsteilbaum haben, die sie auch im vollständigen
Berechnungsbaum haben. In einem existentielle Zustand soll
hingegen nur eine direkten Nachfolgekonfiguration vorhanden sein.
◮
Die ATM akzeptiert eine Eingabe, falls es einen
Berechnungsteilbaum für die Eingabe gibt, dessen Blätter alle
akzeptiert sind.
◮
Eine ATM nennen wir T -zeitbeschränkt, falls die Tiefe des
Berechnungsbaum der ATM für jede Eingabe x durch T (|x|)
beschränkt ist.
AP ist jetzt Menge aller Sprachen, die von einer
polynomiell-zeitbeschränkten ATM akzeptiert werden.
◮
Analog können wir auch die alternierende probabilistische
Turing-Maschine (APrTM) definieren, wobei wir die universellen Zustände
gegen probabilistische Zustände austauschen. Wir definieren dann:
◮ Die APrTM akzeptiert eine Eingabe, falls es einen
Berechnungsteilbaum für die Eingabe gibt, der mehr akzeptierende
als verwerfende Blätter besitzt.
◮ APP ist jetzt Menge aller Sprachen, die von einer
polynomiell-zeitbeschränkten APrTM akzeptiert werden.
297
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
298
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Eine weitere Verwandte Komplexitätsklasse erhalten wir, wenn Spiele
betrachten, bei denen wir die Erfolgswahrscheinlichkeit der zweiten
Person deutlich von 12 separieren. Bekannt wurde diese Form eines
interaktiven Systems unter dem Namen Arthur-Merlin Spiele. Die Idee
eines Arthur-Merlin Spiels kann durch folgende Situation am Hofe dieses
mystischen Königs beschrieben werden:
Betrachten wir die Ergebnisse dieses Kapitels, so verwundert uns nicht
das folgende Ergebnis:
König Arthur (A), ein gerechter König, regiert England mit
Hilfe seines allwissenden Ratgebers Merlin (M). Oft treffen die
beiden mystischen Gestalten aufeinander und diskutieren über
vielerlei anstehender Fragen. Hierbei versucht Merlin Arthur
immer wieder von seiner Allwissenheit mit Hilfe von Frage- und
Antwortspielen zu überzeugen. Diese Spiele haben den
folgenden Ablauf: Arthur stellt mit Hilfe von randomisierten
Bits sukzessive verschiedene Fragen, die von Merlin auf die
bestmögliche Art und Weise beantwortet werden. Merlin hat bei
einem solchen Spiel eine Gewinnstrategie, wenn es ihm gelingt
Arthur mit einer Wahrscheinlichkeit von 32 zu überzeugen.
Satz 42 PSPACE = AP = APP.
299
300
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Basierend auf dieser Idee läßt sich nun eine neue Form der APrTM
beschreiben, bei der es möglich ist, die Fehlerwahrscheinlichkeit beliebig
zu verkleinern. Wir definieren daher eine fehlerbeschränkte APrTM
analog zur APrTM mit dem Unterschied, dass diese TM eine Sprache L
akzeptiert, wenn
1. für jedes x ∈ L ein zulässiger Berechnungsteilbaum existiert, so dass
2
3 aller Blätter akzeptierend sind und
2. für jedes x 6∈ L und jeden zulässigen Berechnungsteilbaum maximal
1
3 aller Blätter akzeptierende Endkonfigurationen darstellen.
AM(pol) ist jetzt Menge aller Sprachen, die von einer
polynomiell-zeitbeschränkten fehlerbeschränkten APrTM akzeptiert
werden.
Hierbei müssen wir beachten, dass es im Allgemeinen nicht möglich für
eine APrTM zu entscheiden, ob auch fehlerbeschränkt ist. Wie sollen wir
entscheiden, ob nicht für eine Eingabe x ∈ L und für jeden zulässigen
Berechnungsteilbaum exakt die Hälfte aller Blätter akzeptierend sind.
Eine solche APrTM ist jedoch nicht fehlerbeschränkt.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Das folgende Ergebnis ist daher etwas verwunderlich soll aber in dieser
Vorlesung nicht bewiesen werden:
Satz 43 PSPACE = AM(pol).
Kommen wir zurück zu unserer Charakterisierung von AM(pol) mit Hilfe
der beiden mythischen Gestalten Arthur und Merlin. Betrachten wir das
anfängliche Arthur-Merlin Szenario etwas genauer, so erkennen wir, dass
im unterschied zu fehlerbeschränkte APrTM Merlin nicht unbedingt die
benutzten Zufallsbits von Arthur kennen muss. Dieses können wir jedoch
in dem Szenario voraussetzten. Wir erhalten somit ein interaktives
Protokoll mit öffentlichen Zufallsbits. Dieses hat zur Folge, dass Merlin
das Verhalten von Arthur simulieren kann. Wir können uns jetzt die
Frage stellen, was passiert, wenn die Zufallsbits privat sind.
301
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
302
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Definition 47 (Teil 2) Die Zusammenarbeit zwischen zwei ITMs M1 und
M2 wird mit Hilfe eines interaktiven Protokolls geregelt.
◮ Zu Beginn der Berechnung befinden sich beide Maschinen in ihren
Startzuständen, die Eingabe steht auf den beiden Eingabebändern
(bzw. auf dem Eingabeband) und die jeweiligen Arbeits- und
Kommunikationsbänder sind leer.
◮ Das Protokoll legt fest, welche der Maschinen beginnt, o.B.d.A. sei
dieses M1 .
◮ Eine Berechnung wird in Runden aufgeteilt, welche sich aus jeweils
zwei Phasen zusammensetzen.
◮ In der ersten Phase startet M1 seine Berechnung während M2 in
einer Art Wartezustand verharrt.
◮ Hierbei beschreibt M1 auch das Kommunikationsband für M2 .
◮ Nach Abschluß seiner Berechnung wechselt M1 in einen
Wartezustand und aktiviert die Berechnungsphase von M2 , die auf
die Nachricht von M1 reagieren kann und seinerseits im Verlaufe
seiner Berechnung eine Nachricht für M1 generiert. Abschließend
übergibt M2 die Initiative wieder an M1 .
Als nächstes wollen wir den Begriff der interaktiven Maschine definieren.
Definition 47 Eine interaktive Turing Maschine (ITM) ist eine Turing
Maschine,
◮ welche neben ihren Eingabe-, Ausgabe- und Arbeitsbändern noch
einige Paare von Kommunikationskanälen besitzt.
Ein solches Paar besteht aus einem write-only Kommunikationsband
zum Versenden und einem read-only Kommunikationsband zum
Empfangen von Nachrichten.
◮ Zwei ITMs teilen sich ein derartiges Paar und können mit dessen
Hilfe Informationen austauschen.
Wir werden uns hier auf ITMs mit einem solchen Paar beschränken.
◮
303
304
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Andreas Jakoby
Universität zu Lübeck
Beweissystem mit zwei ITMs
Definition 47 (Teil 3)
Eingabeband
◮
Die Berechnung eines interaktiven Protokolls besteht aus einer Folge
von Runden.
◮
Das Ergebnis wird durch das Ergebnis einer der beiden ITMs, welche
wir Verifizierer V nennen, festgelegt, d.h. sie entscheidet, ob eine
Eingabe x akzeptiert oder verworfen wird.
Die andere Maschine wollen wir als Beweiser P bezeichnen.
Das Ergebnis wird mit [P, V](x) bezeichnet.
Der Zeitbedarf einer ITM ist die Anzahl ihrer aktiven Schritte, d.h.
Schritte, in denen sie sich in einem Wartezustand befindet, werden
nicht mitgezählt.
◮
◮
◮
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
@1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1
1001
P
1100
V
@1 1 0 1 0 0 0 1 1 0 1 1 1 0 1
@1 1 0 1 1 0 1 1 1 0 1 0 1 0 1
Ausgabeband von P
Ausgabeband von V
305
Andreas Jakoby
Universität zu Lübeck
◮
◮
◮
◮
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
306
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Definition 48
◮ Ein interaktives Protokoll [P, V] akzeptiert eine Sprache L, wenn für
alle Eingaben x ∈ L [P, V] mit einer Wahrscheinlichkeit von
mindestens 23 akzeptiert.
Von besonderem Interesse für praktische Anwendungen sind
interaktive Protokolle, bei denen der Verifizierer durch eine
zeiteffiziente Turing Maschinen dargestellt wird.
Wir werden uns daher auf Protokolle beschränken, bei denen V eine
polynomiell zeitbeschränkte probabilistische Turing Maschine ist.
Die ihr gegenüber stehende TM, d.h. P, bekommt eine beliebige
Zeitkomplexität — wir gehen davon aus, dass jede Berechnung von
P in einem Schritt durchgeführt werden kann.
◮
◮
Es hat sich jedoch gezeigt, dass wir uns bei P auf eine
polynomiellzeitbeschränkte NTM beschränken können, ohne die
Mächtigkeit des Beweissystems einzuschränken.
◮
◮
307
Um andererseits ein interaktives Protokoll robust gegenüber einem
falschen Propheten abzusichern, verlangen wir für jeden beliebigen
Beweiser P′ und jedes x 6∈ L, dass [P′ , V] die Eingabe x nur mit einer
Wahrscheinlichkeit von höchstens 13 akzeptiert.
Mit IP(k) bezeichnen wir die Menge der Sprachen, von einem
unbeschränkten Beweiser und einem polynomiell zeitbeschränkten
Verifizierer in k Runden akzeptiert werden können.
IP bezeichnet die Menge der Sprachen, die von einem solchen
Protokoll ohne weitere Beschränkung der Rundenzahl akzeptiert
werden.
Man beachte hierbei, dass die Anzahl der Runden durch die
Zeitschranke des Verifizierers implizit vorgegeben ist.
308
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
7 Echte Hierarchien
Satz 45 Sei T2 zeitkonstruierbar auf einer (k + 1)-Band DTM und sei
T1 ∈ o(T2 ), dann gilt
DTimek (T1 ) ⊂ DTimek+1 (T2 ) .
Es gilt wieder (ohne Beweis):
Unter Verwendung sogenannter distributiver Zähler und auf einer k-Band
DTM zeitkonstruierbar Funktionen T2 können wir sogar zeigen, dass
Satz 44 PSPACE = IP.
DTimek (T1 ) ⊂ DTimek (T2 ) .
Beweis von Satz 45 (Teil 1) Wir wollen hier nur das erste Ergebnis zeigen.
◮ Ist T2 zeitkonstruierbar auf einer (k + 1)-Band DTM, so gibt es eine
4 · T2 -zeitbeschränkte (k + 1)-Band DTM, die auf Eingabe x und
den Wert T2 (|x|) auf das k + 1-te Band Schreibt und dann auf
diesem Band sukzessive die Binärdarstellungen
T2 (|x|) − 1,
T2 (|x|) − 2,
...,
0
erzeugt, und dann anhält.
309
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Beweis von Satz 45 (Teil 2) Interpretieren wir eine beliebige
Zeichenkette x als Kodierung einer Deterministischen Turing-Maschine,
z.B. in Form einer Adjazenzliste für die Zustandsübergangsfunktion mit
Kantengewichte, dann erkennen wir:
◮ Gegeben x, dann können wir in linearer Zeit erkennen, ob x eine
korrekte Kodierung ist.
◮ Wir können die Kodierung mit Hilfe von isolierten Zuständen beliebig
aufblähen, ohne, dass wir die Funktionalität der Maschine ändern.
◮ Sei x eine solche aufgeblähte Kodierung, dann können wir die
isolierten Zustände aus der Kodierung in Zeit 4|x| − |ρ(x)|2
entfernen, wobei ρ(x) die Kodierung der DTM ist, bei der wir die
isolierten Zustände entfernt haben.
◮ Für eine gegebene Kodierung x bezeichnen wir mit Mx die DTM mit
Kodierung x.
◮ Um einen Schritt von Mρ(x) zu simulieren benötigen wir maximal
3|ρ(x)| Schritte.
◮
In T Schritten können wir somit
simulieren.
T −4|x|−|ρ(x)|2
3|ρ(x)|
310
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Beweis von Satz 45 (Teil 3) Wir betrachten nun die folgende DTM M:
◮
◮
◮
Auf Eingabe x bestimmt M zunächst T2 (|x|) und ρ(x).
Jetzt simuliert M die Maschine Mρ(x) für maximal T2 (|x|)−4|x|−|ρ(x)|
3|ρ(x)|
Schritte.
M akzeptiert genau dann x, wenn Mρ(x) die Eingabe x in
T2 (|x|)−4|x|−|ρ(x)|2
3|ρ(x)|
2
Schritten verwirft.
Die Laufzeit von M ist durch die Laufzeit des Zählers 4 · T2
beschränkt.
Da T1 mindestens linear in der Eingabelänge ist, können wir diese
Maschine linear beschleunigen — wir fassen mehrere Symbole zu einem
Symbol zusammen und simulieren immer mehrere Schritte in einem
Schritt. Wir können somit davon ausgehen, dass die Laufzeit von M
durch T2 beschränkt ist, d.h.
◮
L(M) ∈ DTime(T2 ) .
Schritte von Mρ(x)
311
312
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
11. Vorlesung, 23.06.2008
Beweis von Satz 45 (Teil 4) Wir wollen nun zeigen, dass
L(M) 6∈ DTime(T1 )
Satz 46 Sei T2 zeitkonstruierbar und sei T12 ∈ o(T2 ), dann gilt
ist. Angenommen, L(M) ∈ DTime(T1 ), dann gibt es eine DTM M ′ für
L(M) mit Kodierung x, so dass die DTM mit Kodierung ρ(x) auf
2
Eingabe x in T2 (|x|)−4|x|−|ρ(x)|
Schritten von M bis zum Abschluß der
3|ρ(x)|
Berechnung simuliert werden kann. Es gilt einerseits
DTime(T1 ) ⊂ DTime(T2 ) .
Beweis von Satz 46 Angenommen, es gelte DTime(T1 ) = DTime(T2 ),
dann gilt auf Grund des Bandreduktionssatzes
L(M) = L(Mx ) = L(Mρ(x) ) .
DTime(T2 ) = DTime(T1 ) ⊆ DTime1 (T12 ) ⊂ DTime2 (T2 ) ⊆ DTime(T2 ) .
Auf der anderen Seite gilt
Wenden wir eine schärfere Form des Bandreduktionssatzes an, so können
wir den Satz auch für T1 log T1 ∈ o(T2 ) beweisen.
x ∈ L(M) ⇐⇒ x 6∈ L(Mρ(x) )
und somit
L(M) 6= L(Mρ(x) )
— ein Widerspruch.
313
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
314
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
7.1 Allgemeiner Hierarchiesatz
Wir wollen nun untersuchen, wie wir zwei Komplexitätsklassen
vergleichen kann.
Definition 49 (Teil 2)
◮ D ist bezüglich C T2 -kontrollierbar, falls die universelle TM M bei
der Simulation von Maschinen in C sicherstellen kann, dass sie die
Schranke T2 nicht überschreitet.
In der Regel genügt hierzu, dass T2 konstruierbar ist.
Definition 49 Seien C, D zwei beliebige Ressourcen wie zum Beispiel
DTime, DSpace und C(T1 ), D(T2 ) zwei Komplexitätsklassen.
D(T2 ) ist universell für C(T1 ), falls es in D eine universelle TM M
gibt, die jede TM M ′ in der Klasse C simulieren kann. Hierbei gilt
für alle bis auf endlich viele n: Zur Simulation von M ′ mit
Ressourcenschranke T1 (n) auf Eingaben der Länge n benötigt M
von ihrer Ressource nicht mehr als T2 (n).
Diese Bedingung impliziert bereits, dass C(T1 ) ⊆ D(T2 ) ist. Um zu
zeigen, dass D(T2 ) \ C(T1 ) 6= ∅ ist, genügt es, wenn für unendliche viele
n zur Simulation von M ′ mit Ressourcenschranke T1 (n) auf Eingaben der
Länge n benötigt M von ihrer Ressource nicht mehr als T2 (n).
◮
◮
315
D(T2 ) ist abgeschlossen gegenüber Komplementierung, d.h.
co-D(T2 ) ⊆ D(T2 ).
316
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Satz 47 Ist die Komplexitätsklasse D(T2 ) universell für C(T1 ),
abgeschlossen gegenüber Komplementierung und die Ressource D
bezüglich C T2 -kontrollierbar, so gilt
Beweis von Satz 47 (Teil 1)
◮
◮
Angenommen, es gibt eine TM M ′ in C(T1 ), die L akzeptiert.
Sei x eine genügend lange Kodierung von M ′ , so dass die universelle
Maschine M die Simulation von M ′ korrekt zu Ende führen kann.
◮
Es gilt
◮
Es ist jetzt einfach zu erkennen, dass Satz 46 nur ein Korollar von Satz 47 ist.
◮
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 47 (Teil 2)
C(T1 ) ⊂ D(T2 ) .
◮
Andreas Jakoby
Universität zu Lübeck
Sei M eine universelle TM für C(T1 ), die auf Eingabe x die TM Mx
auf x simuliert, falls x eine korrekte Kodierung einer TM für die
Ressource C ist.
M kontrolliert, ob sie bei der Simulation die Schranke T2 nicht
überschreitet. Sollte die Simulation nicht innerhalb der Ressourcenschranke T2 von D zu Ende geführt werden, so akzeptiert M die
Eingabe x nicht.
Nach Konstruktion gilt für L = L(M) L ∈ D(T2 ) und somit auch
L ∈ D(T2 ).
x ∈ L ⇐⇒ x 6∈ L ⇐⇒
⇐⇒
◮
M akzeptiert x nicht
M ′ akzeptiert x nicht.
Somit unterscheiden sich L und L(M ′ ) zumindest im dem Element x. 317
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
318
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Satz 48 Sei S2 ≥ log platzkonstruierbar und S1 ≤ o(S2 ), dann gilt
Beweis von Satz 48 (Teil 2) Wir müssen nun noch zeigen, dass
DSpace(S2 ) universell für DSpace(S1 ) ist.
◮ Wir betrachten nun eine beliebige S1 -platzbeschränkten DTM M ′ .
◮ Sei ρ die Kodierung einer S1 -platzbeschränkten DTM M ′ .
DSpace(S1 ) ⊂ DSpace(S2 ) .
Beweis von Satz 48 (Teil 1) Wir beschreiben im Folgenden eine
S2 -platz- beschränkte DTM M, so dass L(M) nicht von einer
S1 -platzbeschränkte DTM erkannt werden kann. Auf Eingabe x arbeitet
M wie folgt:
◮ M berechnet s = S2 (|x|) auf Platz S2 (|x|) und markiert S2 (|x|)
aufeinanderfolgende Speicherzellen. Hierbei achten wir darauf, dass
die für die Berechnung benötigten Speicherzellen zu den markierten
Speicherzellen gehören.
◮ M simuliert Mx auf den markierten s Speicherzellen für t = 22s
Schritte (mit Hilfe eines Zählers auf einer separaten Spur).
◮ Falls die Simulation mehr Platz benötigt oder die Maschine Mx nicht
in t Schritten hält, verwirft M.
◮ Nach Konstruktion ist M exakt S2 -platzbeschränkt.
Es folgt, dass DSpace(S2 ) bezüglich DSpace(S1 ) S2 -kontrollierbar ist.
Zudem ist einfach zu erkennen, dass DSpace(S2 ) auch abgeschlossen
gegenüber Komplementierung ist.
◮
Sei n ≥ |ρ| mit
log S1 (n) + |ρ| · S1 (n) ≤ s
= S2 (n).
Da S1 ≤ o(S2 ), S2 ≥ log und |ρ| eine feste Kodierung von M ′ und
somit konstant ist, können wir eine Schranke n0 finden, so dass die
obige Bedingung für alle n ≥ n0 erfüllt ist.
◮
319
Sei x eine Kodierung von M ′ der Länge n. Sie schon im Satz 46
können wir annehmen, dass es eine Verlängerung x der Kodierung ρ
auf Länge n gibt, die wir effizient zurücknehmen können, d.h. wir
können auf Platz |ρ| · log n die Kodierung ρ aus x bestimmen.
320
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 48 (Teil 4) Versuchen wir uns nun aber einmal direkt
an der Diagonalisierung:
Beweis von Satz 48 (Teil 3) Die von uns konstruierte DTM M hat
jetzt auf Eingabe x genügend Platz reserviert, um
◮
Wir wissen, dass L(M) in DSpace(S2 ) ist. Angenommen, L(M) ist
auch in DSpace(S1 ).
Sei M ′ eine S1 -platzbeschränkte DTM für L(M) und ρ eine
Kodierung von M ′ . Ferner sei x eine Verlängerung der Kodierung ρ
auf Länge n.
◮
Es gilt
◮
entweder die Simulation von Mρ = M ′ auf Eingabe x und Platz
|ρ| · S1 (n) vollständig durchzuführen – der Faktor |ρ| sorgt dafür,
dass diese unabhängig vom Bandalphabet und der Zustandsmenge
von Mρ gilt – oder
◮ die Simulation so lange zu verfolgen, bis diese nach spätestens
n · S1 (n) · |ρ|S1 (n) Schritten in eine Endlosschleife gerät.
DSpace(S2 ) ist somit universell für DSpace(S1 ).
◮
x ∈ L(M) ⇐⇒
⇐⇒
x ∈ L(M ′ ) ⇐⇒ x ∈ L(Mρ )
M akzeptiert x ⇐⇒ x ∈ L(M) .
Wir erhalten einen Widerspruch.
321
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
322
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
7.2 Translation
Translation ist eine Technik, um eine Inklusion zwischen zwei
Komplexitätsklassen mit Schranken T1 und T2 auf entsprechende Klassen
mit grössere Klassen mit Schranken T1′ und T2′ zu übertragen. Die Idee
hierbei ist, eine Eingabe künstlich zu verlängern. Diese Technik wird auch
als Padding bezeichnet. Eine entsprechende Technik haben wir schon in
den Beweisen von Satz 46 und 48 kennen gelernt.
Satz 49 Sei S2 ≥ log platzkonstruierbar und S1 ≤ o(S2 ), dann gilt
NSpace(S1 ) ⊂ NSpace(S2 ) .
Beweis von Satz 49 Der Beweis erfolgt analog zum Beweis von Satz 48.
Hierbei spielt der Abschluss von NSpace(S2 ) gegenüber
Komplementierung eine entscheidende Rolle.
Satz 50 [Translationssatz für Zeitschranken] Seien T1 , T2 , f
zeitkonstruierbare Funktionen mit T1 , T2 ≥ (1 + α)N für ein α > 0 und
f ≥ N . Dann gilt
Wir sollten hier noch hervorheben, dass ein entsprechendes Ergebnis für
nichtdeterministische Zeit nicht aus Satz 47 gefolgert werden kann.
DTime(T1 ) ⊆ DTime(T2 ) =⇒ DTime(T1 ◦ f ) ⊆ DTime(T2 ◦ f )
und
NTime(T1 ) ⊆ NTime(T2 ) =⇒ NTime(T1 ◦ f ) ⊆ NTime(T2 ◦ f ) .
323
324
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 50 (Teil 1) Da die Beweise des deterministischen Falls
und des nichtdeterministischen Falls analog verlaufen, werden wir uns
hier nur auf den deterministischen Fall konzentrieren.
◮ Sei L1 ∈ DTime(T1 ◦ f ), M1 eine (T1 ◦ f )-zeitbeschränkte DTM für
L1 ∈ Σ∗ und ♯ 6∈ Σ ein Sondersymbol, mit dem wir die Eingabe
verlängern können.
◮ Sei
◮
Andreas Jakoby
Universität zu Lübeck
L2 ∈ DTime(T1 ) und somit L2 ∈ DTime(T2 ).
Sei M3 eine T2 -zeitbeschränkte DTM für L2 .
Wir konstruieren nun eine (T2 ◦ f )-zeitbeschränkte DTM M4 für L1 :
◮
◮
◮
◮
◮
326
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Satz 51 [Translationssatz für Platzschranken] Seien S1 , S2 , f
platzkonstruierbare Funktionen mit S2 ≥ Ω(log) und f ≥ N . Dann gilt
Beweis von Satz 50 (Teil 3) Für die von M4 akzeptierte Sprache gilt
⇐⇒
Auf Eingabe x bestimmt M4 den Wert f (|x|) und erweitert die
Eingabe um f (|x|) − |x| Symbole ♯.
M4 simuliert nun M3 für T2 (f (|x|)) Schritte.
Die Laufzeit von M4 ist somit in O(f + T2 ◦ f ). Mit Hilfe der
linearen Beschleunigung folgt L1 ∈ DTime(T2 ◦ f ).
325
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
x ∈ L(M4 ) ⇐⇒
⇐⇒
⇐⇒
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 50 (Teil 2) Fassen wir die Beobachtungen der letzten
Folie zusammen, so erkennen wir:
L2 := { x♯r | M1 akzeptiert x in T1 (|x| + r ) Schritten } .
Da T1 zeitkonstruierbar ist, gibt es eine O(T1 )-zeitbeschränkte
DTM M2 , die ähnlich einer universellen DTM mit Hilfe eines Zählers
L2 akzeptiert.
Speichern wir mehrere Zellen einer TM in einer Zelle einer TM, so
ist es möglich, dass die neue TM in jedem Schritt eine konstante
Anzahl von Schritten der ursprünglichen TM ausführt. Hierfür ist es
jedoch erforderlich, dass für die ursprünglichen TM die Laufzeit
zumindest (1 + α) · N beträgt. Wir nennen dieses auch lineare
Beschleunigung: Die Laufzeit T einer TM kann um einen konstanten
Faktor beschleunigt werden, solange die resultierende Laufzeit
zumindest N beträgt.
Andreas Jakoby
Universität zu Lübeck
DSpace(S1 ) ⊆ DSpace(S2 ) =⇒ DSpace(S1 ◦ f ) ⊆ DSpace(S2 ◦ f )
M3 akzeptiert x♯f (|x|)−|x| in T2 (f (|x|)) Schritten
x ∈ L2
M1 akzeptiert x in T1 (f (|x|)) Schritten
und
NSpace(S1 ) ⊆ NSpace(S2 ) =⇒ NSpace(S1 ◦ f ) ⊆ NSpace(S2 ◦ f ) .
x ∈ L1
Beweis von Satz 51 (Teil 1) Da auch hier die Beweise des
deterministischen Falls und des nichtdeterministischen Falls analog
verlaufen, werden wir uns hier nur auf den deterministischen Fall
konzentrieren.
327
328
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 51 (Teil 2) Der Beweis von Satz 51 folgt dem Beweis
von Satz 50. Als Besonderheiten müssen wir jedoch ein paar Punkt
beachten:
◮
Liegt die Eingabe auf einem separatem Eingabeband vor, so kann
das Analogon zur DTM M4 aus dem Beweis von Satz 50 nicht die
benötigten ♯ Symbole hinter die ursprüngliche Eingabe schreiben. An
Stelle der tatsächlichen ♯ Symbole in der Eingabe führt M4 einen
Zähler auf einer separaten Spur, der mit f (|x|) − |x| initialisiert wird.
Mit Hilfe dieses Zählers zählt die DTM die Anzahl der fiktiven ♯
Symbole rechts vom Eingabekopf, die sich dort bei der modifizierten
Eingabe noch befinden würden. Der Zähler benötigt an Platz nur
eine Spur auf O(log f ) ≤ O(S2 ◦ f ) Speicherzellen.
Da der verbleibende Teil des Beweises sich analog zum Beweis von Satz
50 ergibt, werden wir hier auf diesen verzichten.
◮
DSpace(⌈ε · S⌉)
NSpace(⌈ε · S⌉) .
=
=
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Beweis von Satz 51 (Teil 3) Die letzte Bemerkung führt uns noch zu
einem weiteren Problem:
Das Analogon zur linearen Beschleunigung nennen wir
Bandkompression: Für jede beliebige Platzschranke S und alle
0 < ε < 1 gilt
DSpace(S)
NSpace(S)
Andreas Jakoby
Universität zu Lübeck
Um dieses zu beweisen Speicher wir wieder mehrere Speicherzellen
in einer Zelle. Strenggenommen müssen wir hier noch beachten, dass
eine Platzschranke kleiner N nur erreicht werden kann, wenn wir ein
separates Eingabeband zur Verfügung haben – die Eingabe soll ja
unverändert vorliegen, da wir ansonsten die Sprache verändern.
329
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
330
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
7.3 Klassen ohne vollständige Probleme
Beweis von Satz 52 (Teil 1) Der Beweis basiert auf zwei
Beobachtungen:
Als interessanter Nebeneffekt der hier betrachteten Inklusionen erhalten
wir, dass es Komplexitätsklassen ohne vollständige Probleme gibt. Wir
definieren die Komplexitätsklasse
[
POLYLOG :=
DSpace(O(logi )) .
◮
Für alle i ist DSpace(logi ) abgeschlossen gegenüber der logspace
Many-One-Reduktion, d.h. für alle L, L′ gilt
L′ ≤log L und L ∈ DSpace(logi )
i∈N
=⇒
L′ ∈ DSpace(logi ) .
Für alle i ist DSpace(logi+1 ) \ DSpace(logi ) 6= ∅ (Satz 48).
Wäre also L vollständig für POLYLOG, dann gäbe es ein i mit
L ∈ DSpace(logi ). Nach der zweiten Beobachtung gäbe es auch ein
L′ ∈ DSpace(logi+1 ) \ DSpace(logi ), welches wir aber auf L reduzieren
könnten. Somit wäre L′ aber nach der ersten Beobachtung in
DSpace(logi ) – ein Widerspruch.
Mit Hilfe der Bandkompression können wir auf das O verzichten und
erhalten
[
DSpace(logi ) .
POLYLOG =
◮
i∈N
Es gilt nun:
Satz 52 Es gibt keine vollständigen Probleme für POLYLOG bezüglich
der logspace Many-One-Reduktion.
331
332
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
◮
Sei also L′ ≤log L und L ∈ DSpace(logi ). Dann gibt es eine
log-platzbeschränkte DTM M1 , die L′ auf L reduziert, und eine
logi -platzbeschränkte DTM M2 , die L akzeptiert.
Wir generieren nun eine neue DTM M3 für L′ :
◮
◮
◮
i∈N
Ähnliches gilt auch für den Schnitt von Komplexitätsklassen, z.B. für
M3 simuliert M2 wobei sie nicht auf die Eingabe direkt zugreift.
Anstelle auf die Eingabe zuzugreifen benutzt M3 einen Zähler, der
angibt auf welche Position k der Eingabe die Maschine M2 aktuell
zugreifen möchte.
Bei jedem Zugriff auf die Eingabe von M2 startet M3 eine Simulation
von M1 , wobei jedoch nur das Symbol der benötigten Eingabeposition bestimmt werden soll.
M3 ist eine logi -platzbeschränkte DTM für L′ und somit ist
L ∈ DSpace(logi ).
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Ähnliche Aussagen können wir für eine ganze Reihe von Komplexitätsklassen zeigen, die mit Hilfe der Vereinigung von unendlich vielen
Komplexitätsklassen definiert werden, z.B.
[
2n
··
·
i .
DTime(Ti ) für Ti (n) = 22
Beweis von Satz 52 (Teil 2) Wir müssen somit nur noch die erste
Beobachtung zeigen:
◮
Andreas Jakoby
Universität zu Lübeck
N P ∩ co − N P ,
dass heißt, die Menge der Sprachen L, die sowohl in N P als auch in
co − N P sind. Intuitiv ergibt sich für die Sprachen L ∈ N P ∩ co − N P
folgendes Problem: angenommen, wir kennen eine polynomiell-zeitbeschränkte NTM für eine Sprache L, wie sollen wir nun entscheiden, ob
es auch eine polynomiell-zeitbeschränkte co-NTM für diese Sprache gibt.
Da im Zentrum der Definition einer solchen Sprache eine semantische
Forderung steht, die wir nicht ohne Probleme entschärfen können, nennen
wir solche Komplexitätsklassen auch semantische Komplexitätsklassen.
333
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
334
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
12. Vorlesung, 30.06.2008
Weitere Beispiele für semantische Komplexitätsklassen sind:
UP
:= { L | es existiert eine polynomiell-zeitbeschränkte NTM
für L, die auf jeder Eingabe maximal einen akzep-
RP
tierenden Berechnungspfad besitzt }
:= { L | es existiert eine polynomiell-zeitbeschränkte NTM
für L, die für x ∈ L auf mindestens 23 aller Berech-
Die Komplexitätsklassen L, N L, P, N P, PSPACE nennen wir
syntaktische Komplexitätsklassen. Für diese können wir eine universelle
TM angeben, welche einerseits eine beliebige zu den Komplexitätsmassen
passende TM simuliert und andererseits überprüft, ob die geforderte
Komplexitätsschranke auch eingehalten wird. Für eine syntaktische
Komplexitätsklassen C sei M(C) die Menge aller TMs, die Elemente der
Klasse C beschreiben. Hierbei gehen wir davon aus, dass die TMs
entsprechend standardisiert sind – z.B. Laufzeitüberprüfung mittels eines
Zählers, Platzschrankenüberprüfung, etc. Für eine syntaktische
Komplexitätsklassen C existiert das folgende kanonische vollständige
Problem
nungspfade akzeptiert, und für x 6∈ L auf maximal
1
3
aller Berechnungspfade akzeptiert } .
Für diese Klassen ist es sehr schwierig eine standardisierte NTM zu
finden, welche die Voraussetzungen für diese Klassen erfüllt. Vergleichen
wir jetzt die letzte dieser Klassen mit IP oder AM(pol), so können wir
vermuten, dass auch diese Klassen semantische Komplexitätsklassen sind.
Da jedoch
IP = AM(pol) = PSPACE
LC
:= { (M, x) | M ∈ M(C) und M akzeptiert x } .
ist, können wir einfach ein vollständiges Problem für diese Klassen
angeben.
335
336
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
8 Die Klasse P oder die Grenzen
effizienter paralleler Algorithmen
◮
und
ts (n) ≤ s(n) · d(n) .
Um jetzt zu zeigen, dass ein Problem von diesem Typ ist, gibt es die
Möglichkeit direkt zu beweisen, dass alle effizienten parallelen
Algorithmen dieses Problem fehlerhaft lösen, oder wir zeigen, dass
wir ein anderes Problem, welches inhärent sequentiell ist, effizient
parallel lösen können, wenn wir unser Problem effizient parallel lösen
können.
◮
Im Folgenden verstehen wir unter effiziente sequentielle Lösbarkeit
die Lösbarkeit mit Hilfe einer polynomiell-zeitbeschränkten DTM.
Wir nennen ein Problem effizient parallel Lösbar, wenn wir dieses in
N C liegt. In vielen Fällen verlangen wir, dass das Problem in N C 2
liegt.
Wir können somit die Frage, ob es inhärent sequentielle Probleme
?
gibt, als eine Verallgemeinerung der Frage L = P verstehen.
◮
Somit ist jedes Problem, welches effizient parallel zu lösen ist, auch
effizient sequentiell lösbar. Es ist eine der großen offenen Fragen der
Informatik, ob dieses auch umgekehrt gilt.
Es scheint Probleme zu geben, die zwar in polynomieller sequentieller
Zeit gelöst werden können, jedoch inhärent sequentiell sind.
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
◮
Vergleichen wir sequentielle Zeit ts und den parallelen Aufwand um
eine Sprache L zu akzeptieren, so gilt für jeden t-zeit- und
p(n)-prozessorbeschränkten parallelen Algorithmus für L sowie für
jede d-tiefen- und s-größenbeschränkt Schaltkreisfamilie für L,
ts (n) ≤ p(n) · t(n)
◮
Andreas Jakoby
Universität zu Lübeck
◮
337
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
8.1 Adäquate Reduktionen für P
338
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Definition 51 f nennen wir genau dann N C k -reduzierbar auf g (kurz
f ≤N C k g ), wenn eine log-platzkonstruierbare Schaltkreisfamilie
C = (Ci )i∈N für f mit depthC (n) = O(logk (n)) und sizeC (n) = O(nO(1) )
existiert, welche auf Orakelgatter für g zurückgreifen kann.
Ferner nennen wir f N C k -äquivalent zu g (kurz f ≡N C k g ), wenn
f ≤N C k g und g ≤N C k f ist.
f nennen wir genau dann N C-reduzierbar auf g (kurz f ≤N C g ), wenn ein
k ∈ N existiert, so dass f auf g N C k -reduzierbar ist. f ist N C-äquivalent
zu g (kurz f ≡N C g ), wenn f ≤N C g und g ≤N C f ist.
Definition 50 Sei ≤ eine Reduktion und C eine Komplexitätsklasse. Wir
nennen ≤ adäquat für C, wenn für alle Sprachen L1 und L2 mit L1 ≤ L2
und L2 ∈ C auch L1 ∈ C gilt.
Für die Komplexitätsklasse P haben wir bereits die folgenden adäquaten
Reduktionen kennen gelernt:
◮ die projektive Reduktion,
◮ die N C 1 -Reduktion und
◮ die logspace-Reduktion.
Satz 53 P und N C sind abgeschlossen unter der N C k -Reduktion für alle
k und unter der N C-Reduktion.
Wollen wir untersuchen, ob die Klasse P inhärent sequentielle Probleme
enthält, dann können wir die Menge der adäquaten Reduktionen auf alle
effizient parallel berechenbare Funktionen ausdehnen. Dieses führt uns zu
den folgenden Verallgemeinerungen der N C 1 -Reduktion aus Definition 23.
339
340
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Satz 54 Die Reduktion ≤N C ist adäquat für N C und P.
◮
◮
◮
◮
◮
◮
◮
Somit existiert ein k mit L1 ≤N C k L2 .
Sei C = (Ci )i∈N eine log-platzkonstruierbare Schaltkreisfamilie für
L1 mit depthC (n) = O(logk (n)) und sizeC (n) = O(nO(1) ), welche
auf Orakelgatter für L2 zurückgreifen kann.
Aus der Platzkonstruierbarkeit von C folgt, dass diese Familie auch
in polynomieller Zeit Konstruiert werden kann.
Um L1 zu entscheiden, benutzen wir die folgende DTM M:
◮
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis für Satz 54 (Teil 2): Sei L1 ≤N C L2 und L2 ∈ N C.
Beweis für Satz 54 (Teil 1): Sei L1 ≤N C L2 und L2 ∈ P.
◮
Andreas Jakoby
Universität zu Lübeck
◮
◮
Auf Eingabe x ∈ Σn berechne Cn .
Werte Cn aus, wobei bei jedem Orakelgatter die DTM für L2
simuliert wird.
◮
Es ist einfach zu erkennen, dass M in polynimieller Zeit die Sprache
L1 akzeptiert.
◮
Somit existiert ein k mit L1 ≤N C k L2 und ein ℓ mit L2 ∈ N C ℓ .
Sei C = (Ci )i∈N eine log-platzkonstruierbare Schaltkreisfamilie für
L1 mit depthC (n) = O(logk (n)) und sizeC (n) = O(nO(1) ), welche
auf Orakelgatter für L2 zurückgreifen kann.
Sei C ′ = (Ci′ )i∈N eine log-platzkonstruierbare Schaltkreisfamilie für
L2 mit depthC (n) = O(logℓ (n)) und sizeC (n) = O(nO(1) ).
Setzen wir die Schaltkreise für L2 in C ein, so erhalten wir eine
Schaltkreisfamilie für L1 mit depthC (n) = O(logk+ℓ−1 (n)) und
sizeC (n) = O(nO(1) ).
Diese Schaltkreisfamilie ist log-platzkonstruierbar, da wir bei der
Verschachtelung der beiden logspace DTMs die bekannten
Techniken anwenden können.
L1 ist somit in N C k+ℓ−1 .
341
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
342
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Wie wir oben angedeutet haben, gibt es Probleme mit der Transitivität
von N C k -Reduktionen, für k > 1. Diese Probleme entstehen nicht mehr,
wenn wir uns der Many-One Variante dieser Reduktion zuwenden.
Definition 52 L1 nennen wir genau dann many-one N C k -reduzierbar auf
L2 (kurz L1 ≤m,N C k L2 ), falls es eine log-platzkonstruierbare
Schaltkreisfamilie C = (Ci )i∈N mit depthC (n) = O(logk (n)) und
sizeC (n) = O(nO(1) ) existiert, so dass
Für die N C k -Reduktion mit k > 1 können wir das folgende Problem
feststellen:
Berücksichtigen wir bei der Bestimmung der Tiefe des
Reduktionsschaltkreises die Tiefe der Orakelgatter nur
logarithmisch im Eingrad der Gatter, dann können wir nicht
mehr garantieren, dass für alle i, k ≥ 1 mit i ≥ k die Klasse
N C i abgeschlossen unter der N C k -Reduktion ist. Dieses
Problem tritt bei der N C-Reduktion nicht mehr auf.
∀w ∈ Σ∗1 :
(w ∈ L1 ⇐⇒ C|w | (w ) ∈ L2 )
gilt. Wir nennen L1 many-one N C-reduzierbar auf L2 (kurz L1 ≤m,N C L2 ),
falls ein k ∈ N existiert, so dass L1 ≤m,N C k L2 ist. Formal müssten wir hier
eigentlich fordern, dass L1 , L2 ⊆ {0, 1}∗ sind.
L1 und L2 heißen äquivalent bezüglich der Reduktionsrelation ≤m,N C k ,
kurz ≡m,N C k , wenn L1 ≤m,N C k L2 und L2 ≤m,N C k L1 gilt. Wir nennen L1
und L2 äquivalent bezüglich many-one N C-Reduzierbarkeit (kurz
L1 ≡m,N C L2 ), falls ein k ∈ N existiert, so dass L1 ≡m,N C k L2 ist.
343
344
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Aus Korollar 5 folgern wir:
Korollar 12 Sei L1 logarithmisch platzreduzierbar auf L2 , dann ist L1
auch many-one N C 2 reduzierbar auf L2 .
Da ein Schaltkreis mit polynomieller Größe eine Eingabe nur polynomiell
vergrößern kann, und da für alle i, k ∈ N
logk ni
Aus unseren bisherigen Beobachtungen folgt:
Haben wir erst einmal ein inhärent sequentielles Problem
gefunden haben und dieses mittels einer many-one N C
Reduktion auf ein anderes Problem reduziert werden kann, dann
ist auch dieses zweite Problem inhärent sequentiell.
∈ O(logk n)
ist, erhalten wir nach dem hintereinander schalten zweier
log-platzkonstruierbare Schaltkreisfamilie C = (Ci )i∈N und D = (Di )i∈N
mit depthC (n), depthD (n) = O(logk (n)) und
sizeC (n), sizeD (n) = O(nO(1) ) wieder eine log-platzkonstruierbare
Schaltkreisfamilie E = (Ei )i∈N mit depthE (n) = O(logk (n)) und
sizeE (n) = O(nO(1) ). Diese Beobachtung impliziert:
Um zu zeigen, dass P =
6 N C ist, genügt es ein Problem in P zu finden,
welches nicht effizient parallel gelöst werden kann. Besonders gute
Kandidaten für solche Probleme sind die P-vollständigen Probleme.
Satz 55 Die Reduktionen ≤m,N C k und ≤m,N C sind reflexiv und transitiv.
Zudem sind P und für alle i ≥ k ≥ 1 die Klassen N C i abgeschlossen
unter der many-one N C k -Reduktion. ≤m,N C k und ≤m,N C sind adäquate
Reduktionen für P.
345
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
346
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
8.2 Ein generisches P-vollständiges Problem
Satz 56 GMSP ist P-vollständig unter ≤m,N C 1 -Reduktion.
Wie wir schon bei der Beschreibung von syntaktischen
Komplexitätsklassen angedeutet haben, erhalten wir einen Kandidaten für
ein P-vollständiges Problem über die Simulation einer polynomiell
zeitbeschränkten Turing-Maschine.
Beweis für Satz 56 (Teil 1):
◮
Definition 53 Das generische Maschinen-Simulations-Problem (eng.
Generic Machine Simulation Problem, kurz. GMSP) ist wie folgt definiert:
Gegeben ist eine Zeichenkette x, eine Kodierung σ(M) einer
Turing-Maschine M und eine Zahl t ∈ N, wir definieren
◮
Um x#σ(M)#1t ∈ GMSP zu entscheiden benutzen wir eine
universelle Turing-Maschine, die M auf x simuliert.
Die Simulation eines Schrittes erfolgt bei einer Standardkodierungen
für σ(M) in polynomieller Zeit (in der Länge von x und σ(M)).
Wir simulieren M für maximal t Schritte.
Hält M spätestens im t-ten Schritt, so akzeptieren wir. Ansonsten
ist x#σ(M)#1t kein Element der Sprache.
GMSP ist folglich in P.
◮
◮
GMSP := { x#σ(M)#1t | M hält auf x in t Schritten } ,
d.h. die Eingabe ist gegeben als Zeichenkette x#σ(M)#1t wobei #
nicht in x oder σ(M) vorkommt. Frage: Hält M auf x in t Schritten.
347
348
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Andreas Jakoby
Universität zu Lübeck
Beweis für Satz 56 (Teil 3): Wir müssen nun noch zeigen, wie eine
solche Instanz x#σ(M)#1t mit Hilfe einer N C 1 -Schaltkreisfamilie
generiert werden kann.
Beweis für Satz 56 (Teil 2): Wir müssen noch die P-härte von GMSP
nachwiesen. Eine Reduktion von einer beliebigen Sprache L ∈ P auf das
GMSP ist relativ einfach.
◮
Sei M eine Turing-Maschine welche L in polynomieller Zeit
akzeptiert.
◮
◮
Sei p(n) = nc eine obere Schranke für die Laufzeit von M.
Wir modifizieren M derart, dass M nur dann in t = p(|x|) Schritten
hält, wenn M die Eingabe x akzeptiert.
Dieses kann dadurch erreicht werden, dass M bei Erreichen einer
verwerfenden Endkonfiguration zunächst p(n) berechnet und dann
noch p(n) Schritte ausführt.
◮
◮
◮
◮
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
◮
◮
Es gilt somit, dass x#σ(M)#1t genau dann ein Element der
Sprache GMSP ist, wenn M auf x in t Schritten hält.
Da L fest ist, ist auch M und c fest. Die Maschinenkodierung σ(M)
und der String #σ(M)# sind somit konstant und unabhängig von x.
Ferner ist 1p(n) für alle x der Länge n eine feste Zeichenkette.
Da wir das Polynom nc auf logarithmischen Platz auswerten können
ist auch eine Schaltkreisfamilie die #σ(M)#1p(n) ausgibt uniform
auf logarithmischen Platz konstruierbar.
Die Instanz x#σ(M)#1p(n) kann somit von einer
log-platzkonstruierbaren Schaltkreisfamilie generiert werden. Die
Tiefe dieser Schaltkreise ist 1, da jedes Ausgabe-Gatter auch ein
Eingabe-Gatter oder eine Konstante ist. Die Größe dieser
Schaltkreise ist n + c + p(n) für eine Konstante c.
349
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
350
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Lemma 19 CVP ist in P.
Beweis von Lemma 19:
8.3 Das Problem, einen Schaltkreis auszuwerten
◮
Definition 54 Das Schaltkreis-Auswertungs Problem (eng. Circuit Value
Problem, kurz. CVP) ist wie folgt definiert:
Gegeben ist ein Schaltkreis in Standardkodierung σ(C ), ein Ausgabegatter y von C und eine Eingabe x1 , . . . , xn ∈ {0, 1} für diesen
Schaltkreis, wir definieren
◮
CVP := { σ(C )#y #x1 . . . xn | y hat den Wert 1 auf
Eingabe x1 , . . . , xn } .
◮
351
Liegen die Gatter in der Standardkodierung des Schaltkreises in einer
topologischen Ortnung vor, d.h. in der Liste der Gatter liegen die
Vorgängergatter vl , vr jedes Gatters v vor dem Gatter v , so können
wir alle Gatter von links nach rechts gehend auswerten.
Dieses ist in vielen Maschinen-Modellen in linearer Zeit möglich. Um
die Gatter des Schaltkreises in linearer Zeit in eine topologische
Ortnung zu bringen, können wir den Algorithmus topological-sort
aus Cormen, Leiserson, Rivest, Introduction to Algorithms, 1990,
S. 485-488 benutzen.
Eine Auswertung des Schaltkreises über die Tiefensuche kann auf
einer DTM auch direkt in quadratischer Zeit erfolgen.
352
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Lemma 20 Für alle Sprachen L ∈ P gilt L≤m,N C 1 CVP.
Beweis von Lemma 20 (Teil 1): Sei L ∈ P.
◮
◮
◮
◮
Aufgrund der Bandreduktionssätze, gibt es eine polynomiell
zeitbeschränkte 1-Band Turing-Maschine M, die L akzeptiert und
bei Erreichen eines akzeptierenden Zustands stoppt.
Sei c eine Konstante, so dass M für alle x = x1 . . . xn ∈ L in
maximal t(n) = nc Schritten akzeptiert.
Der maximale Platzbedarf von M ist durch t(n) + 1 beschränkt – M
kann in t(n) Schritten höchstens t(n) + 1 Zellen des Bandes besuchen.
Wir können noch folgende Vereinfachungen für M festlegen:
◮
◮
◮
Vor Beginn der Berechnung befindet sich die Eingabe x = x1 . . . xn in
den ersten n Zellen des Bandes und M bewegt seinen Kopf nie auf
eine Zelle links von der ersten Zelle.
Damit können wir die Berechnung von M auf die Zellen b1 , . . . , bt(n)+1
des Bandes der Turing-Maschine beschränken.
Ferner können wir davon ausgehen, dass der Kopf von M beim Erreichen
des akzeptierenden Endzustandes sich auf b1 befindet, und dass Zelle
b1 das Ergebnis der Berechnung speichert.
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis von Lemma 20 (Teil 2): Um eine Konfiguration der
Turing-Maschine nach dem j-ten Schritt zu beschreiben, weisen wir jeder
z
Zelle bi mit 1 ≤ i ≤ t(n) + 1 einen Vektor ri,j von |Σ| + |Q| + 1 Bits ri,j
mit z ∈ Σ ∪ Q ∪ {•} zu. Sei • 6∈ Q ∪ Σ. Diesen Bits kommt die folgende
Bedeutung zu:
◮
◮
◮
z
= 1 für ein z ∈ Σ genau dann, wenn nach dem j-ten Schritt von
ri,j
M in bi das Symbol z steht.
•
= 1 genau dann, wenn nach dem j-ten Schritt von M der Kopf
ri,j
nicht auf der Zelle bi steht.
z
ri,j
= 1 für ein z ∈ Q genau dann, wenn nach dem j-ten Schritt von
M der Kopf auf der Zelle bi steht und der Zustand von M z ist.
Simulieren wir eine Berechnung der Maschine M korrekt, so existiert für
•
jeden Schritt j maximal eine Position i mit ri,j
= 0 und es existiert
z
höchstens ein Zustand z ∈ Q mit ri,j = 1. Zudem gilt für jede Zelle bi ,
z
dass es höchstens ein Symbol z ∈ Σ gibt mit ri,j
= 1.
353
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis von Lemma 20 (Teil 3): Da eine Turing-Maschine ihren Kopf
auf dem Band immer nur um eine Zelle bewegen kann, hängt jeder
Vektor ri,j nur von den drei Vektoren ri−1,j−1 , ri,j−1 und ri+1,j−1 ab. Die
Vektoren r0,j und rt(n)+2,j werden vom Kopf der DTM nicht besucht.
◮ Wir definieren:
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis von Lemma 20 (Teil 4): Wir wollen nun einen Schaltkreis
beschreiben, der aus den Vektoren ri−1,j−1 , ri,j−1 und ri+1,j−1 einen
Vektor ri,j für ein i ∈ {1, t(n) + 1} und j ∈ {1, t(n)} berechnet:
◮ Für ein z ∈ Σ sei Az die Menge der Paare (q, z ′ ) ∈ Q × Σ so dass M
beim Lesen von z ′ im Zustand q ein z schreibt. Man beachte, dass
M im j-ten Schritt eine Zellenbeschriftung nur dann ändern kann,
wenn sich der Kopf von M nach dem (j − 1)-ten Schritt auf der
entsprechenden Zelle befindet. Es gilt somit für alle i, j und z ∈ Σ


_
′
q
z
•
z
z
ri,j
= (ri,j−1
∧ ri,j−1
∧ ri,j−1
) ∨ 
) .
(ri,j−1
z
∀j ∈ {0, .., t(n)} : r0,j
= 1 ⇐⇒ z ∈ {β, •}
z
∀j ∈ {0, .., t(n)} : rt(n)+2,j
= 1 ⇐⇒ z ∈ {β, •} .
◮
354
Um die Startkonfiguration von M zu beschreiben, definieren wir
z
= 1 ⇐⇒ z ∈ {β, •}
∀i ≥ n + 1 ∀z ∈ Σ ∪ Q ∪ {•} : ri,0
z
= 1 ⇐⇒ z ∈ {xi , •}
∀i ∈ {2, . . . , n} ∀z ∈ Σ ∪ Q ∪ {•} : ri,0
z
∀z ∈ Σ ∪ Q ∪ {•} : r1,0 = 1 ⇐⇒ z ∈ {x1 , q0 }
(q,z ′ )∈Az
wobei q0 der Startzustand von M ist.
355
356
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis von Lemma 20 (Teil 6):
◮ Bedingung 2: Die Turing-Maschine bewegt ihren Kopf im j-ten Schritt
nach rechts, und der Kopf steht nach dem (j − 1)-ten Schritt auf bi−1 .
Beweis von Lemma 20 (Teil 5): Um den Zustand der Maschine M zu
bestimmen, müssen wir unter anderem die Kopfbewegung von M
verfolgen. Man beachte hierbei, dass der Kopf auf eine Speicherzelle bi
nach dem j-ten Schritt steht, wenn eine der folgenden drei Bedingungen
erfüllt ist:
◮
Andreas Jakoby
Universität zu Lübeck
Für einen Zustand q ∈ Q definieren wir daher die Menge Bqr als die
Menge der Paare (q ′ , z) ∈ Q × Σ so dass M beim Lesen von z im
Zustand q ′ in Zustand q wechselt und ihren Kopf nach rechts
bewegt. Wir definieren einen Hilfswert
_
q′
q
z
(ri−1,j−1
Ri,j
:=
∧ ri−1,j−1
).
Bedingung 1: Die Turing-Maschine macht im j-ten Schritt keine Kopfbewegung, und der Kopf steht nach dem (j − 1)-ten Schritt auf bi .
(q ′ ,z)∈Bqr
Für einen Zustand q ∈ Q definieren wir daher die Menge Bqo als die
Menge der Paare (q ′ , z) ∈ Q × Σ so dass M beim Lesen von z im
Zustand q ′ in Zustand q wechselt und ihren Kopf nicht bewegt. Wir
definieren einen Hilfswert
_
q′
q
z
(ri,j−1
Oi,j
:=
∧ ri,j−1
).
◮
Bedingung 3: Die Turing-Maschine bewegt ihren Kopf im j-ten Schritt
nach links, und der Kopf steht nach dem (j − 1)-ten Schritt auf bi+1 .
Für einen Zustand q ∈ Q definieren wir daher die Menge Bql als die
Menge der Paare (q ′ , z) ∈ Q × Σ so dass M beim Lesen von z im
Zustand q ′ in Zustand q wechselt und ihren Kopf nach links bewegt.
Wir definieren einen Hilfswert
_
q′
z
(ri+1,j−1
∧ ri+1,j−1
).
Lqi,j :=
(q ′ ,z)∈Bqo
(q ′ ,z)∈Bqr
357
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
358
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Beweis von Lemma 20 (Teil 8):
◮
Beweis von Lemma 20 (Teil 7): Um nun festzustellen, ob der Kopf
q
q
nach dem j-ten Schritt nicht auf bi steht, darf keiner der Werte Oi,j
, Ri,j
oder Lqi,j wahr sein. Es gilt daher:
•
ri,j
=
_
q∈Q
◮
q
q
(Oi,j
∨ Ri,j
∨ Lqi,j ) .
◮
Um den Zustand q nach dem j-ten Schritt zu bestimmen, wählen wir
◮
q
q
q
= Oi,j
∨ Ri,j
∨ Lqi,j .
ri,j
359
Modifizieren wir M nun so, dass M bei Erreichen des akzeptierenden
Zustands qa in diesem bleibt, so ist das Ausgabebit des Schaltkreises
qa
. Dieses kann mit einer vollständigen Induktion bewiesen
gleich r1,t(n)
werden.
Die Größe des oben konstruierten Schaltkreises ist polynomiell in
t(n).
Jeder Teilschaltkreis, der ri,j aus ri−1,j−1 , ri,j−1 und ri+1,j−1
berechnet, ist uniform auf logarithmischem Platz konstruierbar.
Da zur Kombination dieser Teilschaltkreise nur zwei Zähler zum
Indizieren der Vektoren benötigt werden, ist der ganze Schaltkreis
auf logarithmischem Platz konstruierbar, wenn t(n) auf
logarithmischem Platz berechnet werden kann. Dieses ist auf Grund
der Wahl von t(n) = nc immer erfüllt.
360
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
13. Vorlesung, 07.07.2008
Zwei weiter wichtige P-vollständige Probleme, die in der Praxis häufiger
gelöst werden müssen, sind lineare Programmierung und maximaler Fluss.
Für beide Probleme gibt es daher keinen effizienten parallelen
Algorithmus falls N C 6= P ist. Wir wollen hier die Optimierungsvariante
dieser Probleme vorstellen:
Es folgt nun unmittelbar:
Satz 57 Das CVP-Problem ist P-vollständig unter many-one
N C 1 -Reduktion.
Definition 55 Das Problem der linearen Programmierung (kurz LP):
Gegeben ist eine n × d Integer-Matrix A, ein n-dimensionaler
Integer-Vektor b und ein d-dimensionaler Integer-Vektor c. Bestimme
einen d-dimensionalen rationalen Vektor x, so dass A · x ≤ b und c · x
maximal ist.
Das CVP-Problem ist auch unter einer ganzen Serie von Einschränkungen
P-vollständig.
Der maximale Fluss (kurz MaxFlow): Gegeben ist ein gerichteter Graph
G = (V , E ) dessen Kanten e mit einer Kapazität c(e) ≥ 0 gewichtet
sind. Ferner ist eine Quelle s, eine Senke t und eine Schranke f gegeben.
Frage: Ist der maximale Fluss von s nach t größer oder gleich f ?
361
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
362
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
9.1 Ein generisches N P-vollständiges Problem
Wie schon für P, erhalten wir einen Kandidaten für ein N P-vollständiges
Problem über die Simulation einer polynomiell zeitbeschränkten
Turing-Maschine.
9 Die Klasse N P oder die Grenzen
effizienter sequentieller Algorithmen
Definition 56 Das generische nichtdeterministische
Maschinen-Simulations-Problem (eng. Generic Nondeterministic Machine
Simulation Problem, kurz. GNMSP) ist wie folgt definiert:
Gegeben ist eine Zeichenkette x, eine Kodierung σ(M) einer NTM M
und eine Zahl t ∈ N, wir definieren
Im Gegensatz zur Diskussion, ob es inhärent sequentielle Probleme gibt,
ist die Wahl der Reduktion bei der Analyse der Frage welche Probleme
sich nicht effizient sequentiell lösen lassen relativ einfach. Wir
beschränken uns auf die beiden sequentiellen Reduktionen: logspace und
polynomialzeit Many-One-Reduktion.
GNMSP := { x#σ(M)#1t | M akzeptiert x in t Schritten } ,
d.h. die Eingabe ist gegeben als Zeichenkette x#σ(M)#1t wobei #
nicht in x oder σ(M) vorkommt. Frage: akzeptiert M x in t Schritten.
363
364
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis für Satz 58 (Teil 1):
◮
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis für Satz 58 (Teil 2): Wir müssen noch die N P-härte von
GNMSP nachweisen. Auch dieser Teil des Beweises verläuft analog zum
Beweis von Satz 56. Wir betrachten wieder eine Reduktion von einer
beliebigen Sprache L ∈ N P auf GNMSP.
Satz 58 GNMSP ist N P-vollständig unter ≤log -Reduktion.
◮
Andreas Jakoby
Universität zu Lübeck
Um x#σ(M)#1t ∈ GNMSP zu entscheiden benutzen wir eine
universelle Turing-Maschine, die M auf x simuliert.
Die Simulation eines Schritts erfolgt bei einer Standardkodierungen
für σ(M) in polynomieller Zeit (in der Länge von x und σ(M)).
◮
◮
◮
Wir simulieren M für maximal t Schritte.
◮ Akzeptiert M spätestens im t-ten Schritt, so akzeptieren wir.
Ansonsten ist x#σ(M)#1t kein Element der Sprache.
GNMSP ist folglich in N P.
◮
Sei M eine NTM welche L in polynomieller Zeit akzeptiert.
Sei p(n) = nc eine obere Schranke für die Laufzeit von M.
Wir modifizieren M derart, dass M in jeder Berechnung in genau
t = p(|x|) Schritten hält, wobei das Akzeptanzverhalten unverändert
bleibt.
Es gilt somit, dass x#σ(M)#1t genau dann ein Element der
Sprache GNMSP ist, wenn M x in genau t Schritten akzeptiert.
Da c Konstant für L und M ist, können wir nc auf logarithmischen Platz
bestimmen. Somit kann auf Eingabe von x die Zeichenkette x#σ(M)#1t
auch auf logarithmischen Platz von einer DTM generiert werden.
◮
365
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
366
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Lemma 22 Für alle Sprachen L ∈ N P gilt L≤log Circuit-SAT.
9.2 Das Schaltkreis Erfüllbarkeitsproblems
Beweis von Lemma 22 (Teil 1): Auch dieser Beweis folgt analog zum
Beweis von Lemma 20. Sei L ∈ N P.
◮ Aufgrund der Bandreduktionssätze, gibt es eine polynomiell
zeitbeschränkte 1-Band NTM M, die L akzeptiert und bei Erreichen
eines akzeptierenden Zustands stoppt.
◮ Ferner können wir ohne Beschränkung der Allgemeinheit annehmen,
dass M in jedem Schritt einer Berechnung nichtdeterministisch
zwischen genau Alternativen wählen kann:
Definition 57 Das Schaltkreis-Erfüllbarkeitsproblem (eng. Circuit
Satisfiability Problem, kurz. Circuit-SAT) ist wie folgt definiert:
Gegeben ist ein Schaltkreis in Standardkodierung σ(C ) mit einem
Ausgabegatter y , wir definieren
Circuit-SAT := { σ(C ) | existiert eine Eingabe x1 , . . . , xn für
C , so dass C auf Eingabe x1 , . . . , xn
den Wert 1 hat } .
◮
Lemma 21 Circuit-SAT ist in N P.
◮
Beweis von Lemma 21: Nichtdeterministisch können wir eine Belegung
der Variablen in linearer Zeit raten und im Anschluß den Schaltkreis in
quadratischer Zeit auswerten.
367
Jeden Übergang ∆(q, s) mit |∆(q, s)| > 2 ersetzen wir durch einen
binären Baum von Übergängen.
Jeden Übergang ∆(q, s) mit |∆(q, s)| = 1 ergänzen wir durch einen
zusätzlichen Übergang.
◮
Die beiden Alternativen in ∆(q, s) nennen wir im Folgenden die 0te
und die 1te Alternative.
◮
Sei c eine Konstante, so dass M für alle x = x1 . . . xn ∈ L in
maximal t(n) = nc Schritten akzeptiert.
368
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 22 (Teil 2):
◮ Jede Berechnung von M auf einer Eingabe x ∈ Σn können wir mit
Hilfe einer binären Zeichenkette w ∈ {0, 1}p(n) darstellen:
◮
◮
Sei C0 ⊢ C1 ⊢ . . . ⊢ Cp(n) eine Berechnung, dann ist
◮
genau dann, wenn
wi
◮
◮
◮
Sei M̃ eine DTM, die auf Eingabe von x#w die Berechnung Cw von
M auf Eingabe w wie auf der letzten Folie beschrieben simuliert.
Da M eine polynomiell zeitbeschränkte NTM ist, ist die DTM M̃
ebenfalls polynomiell zeitbeschränkt.
Analog zu Lemma 20 können wir einen Schaltkreis C und eine
Eingabe z für C konstruieren, so dass
ist.
Wir erkennen, dass jede Zeichenkette w ∈ {0, 1}p(n) für genau eine
Berechnung C0 ⊢ C1 ⊢ . . . ⊢ Cp(n) steht, und umgekehrt.
Sei Cw die zu w ∈ {0, 1}p(n) gehörige Berechnung C0 ⊢ . . . ⊢ Cp(n) .
Gegeben eine solche Zeichenkette w ∈ {0, 1}
deterministische Berechnung:
◮
◮
= b
p(n)
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 22 (Teil 3):
Ci ⊢ Ci+1 ist die bte Alternative (für b ∈ {0, 1}
◮
Andreas Jakoby
Universität zu Lübeck
◮
◮
◮
, dann ist Cw eine
◮
Die erste Eingabe stellt x und die zweite Eingabe w dar.
Im iten Schritt der Berechnung, bestimmt die DTM zunächst das ite
Bit wi von w und wählt im Anschluß die wi te Alternative zur
Fortsetzung Ci der Berechnung in Ci−1 .
◮
die Konstruktion von C nur von der Länge von x#w jedoch nicht
von der konkreten Form von x#w abhängt,
x#w ein Teil der Eingabe z darstellt und
C (z) genau dann den Wert 1 liefert, wenn M̃ die Eingabe x#w
akzeptiert.
Es gibt |w | Positionen in der Eingabe z, an denen die Bits w stehen.
Somit liefert C (z) genau dann den Wert 1, wenn M die Eingabe x
auf der Berechnung Cw akzeptiert.
369
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
370
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 22 (Teil 4):
◮ Sei C ′ der Schaltkreis, bei dem wir die Bits der Eingabe fest halten,
die nicht zu w gehören, dann gilt:
◮
◮
◮
◮
◮
C ′ (w ′ ) = 1 ⇐⇒ M akzeptiert x auf Cw ′
∃w ∈ {0, 1}n : C ′ (w ) = 1 ⇐⇒ ∃w ∈ {0, 1}n : M akzeptiert x auf Cw
∃w ∈ {0, 1}n : C ′ (w ) = 1 ⇐⇒ ∃w ∈ {0, 1}n : M akzeptiert x
Da die Reduktion in Lemma 20 auf logarithmischen Platz
berechenbar ist, ist auch diese Reduktion auf logarithmischen Platz
berechenbar.
Somit erhalten wir L≤log Circuit-SAT.
371
Es folgt nun unmittelbar:
Satz 59 Circuit-SAT ist N P-vollständig unter der logspace many-one
Reduktion.
372
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Satz 61 N P = Γ≤log ({Circuit-SAT}).
Beweis von Satz 61 Da Circuit-SAT vollständig ist für N P bezüglich
der logspace-Reduktion, gilt für jede Sprache L ∈ N P
9.3 Alternative Charakterisierungen von N P
Satz 60 L ∈ N P genau dann, wenn es eine Sprache L′ ∈ P und ein
Polynom p gibt, wobei
L ∈ Γ≤log ({Circuit-SAT}) .
Sei nun L′ ∈ Γ≤log ({Circuit-SAT}), dann gibt es eine Funktion f , die auf
logarithmischen Platz (und somit auch in polynomieller Zeit) berechnet
werden kann, so dass für alle Eingaben x gilt
L = { x | ∃w ∈ {0, 1}p(|x|) : x#w ∈ L′ } .
Beweis von Satz 60 Der Beweis folgt analog zu unserer Konstruktion
im Lemma 22.
x ∈ L′
Wir können Satz 60 auch wie folgt interpretieren: N P ist die Klasse der
Sprachen L, für die es effiziente Beweise für das Element-Problem gibt,
d.h. es gibt effiziente Beweise für x ∈ L.
⇐⇒
f (x) ∈ Circuit-SAT .
Da die Hintereinanderausführung von zwei polynomiell zeitbeschränkten
NTMs wieder eine polynomiell zeitbeschränkte NTM ergibt, erhalten wir
L′ ∈ N P .
373
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
374
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
9.4 Das Satisfiability Problem
Zur Wiederholung:
Lemma 24 Circuit-SAT≤log SAT.
Definition 38 Wir definieren das k-SAT-Problem wie folgt:
Gegeben ist eine Boolesche Formel F in k-CNF. Entscheide, ob F
erfüllbar ist, d.h. existiert eine Belegung der Variablen von F , so dass F
bei dieser Belegung true ist.
Beweis von Lemma 24 (Teil 1): In dem wir jedes Gatter mit Eingrad
größer 2 durch einen Baum ersetzen, können wir das Circuit-SAT auf
solche Schaltkreise einschränken, bei denen jedes Gatter einen Eingrad
kleiner oder gleich 2 hat.
Somit ist:
Im ersten Schritt zeigen wir, wie wir einen Schaltkreis C mit n
Eingabevariablen und m Gattern durch einen Schaltkreis C ′ mit n + m
Eingabevariablen ersetzen können, so dass für alle Eingaben
x1 , . . . , xn ∈ {0, 1} gilt
k-SAT := { F in k-CNF | F ist erfüllbar } .
Wir ergänzen diese Definition durch:
Definition 58 Wir definieren das SAT-Problem wie folgt: Gegeben ist
eine Boolesche Formel F in CNF. Entscheide, ob F erfüllbar ist, d.h.
C (x1 , .., xn ) = 1
⇐⇒
∃y1 , .., ym ∈ {0, 1} : C ′ (x1 , .., xn , y1 , .., ym ) .
SAT := { F in CNF | F ist erfüllbar } .
Lemma 23 SAT und somit k-SAT für alle k ∈ N sind in N P.
375
376
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 24 (Teil 2) Wir verfahren hierbei nach der
folgenden Idee:
◮ Für jedes Gatter gi fügen wir eine neue Variable yi ein, mit deren
Hilfe wir den Wert von gi nichtdeterministisch raten.
◮ Seien gj und gk die Vorgänger von gi , dann ersetzen wir gi durch
i
i
ein Gatter mit den Vorgängern yji und yki .
◮ Für jedes Gatter gi fügen wir einen kleinen Schaltkreis hinzu, der
darauf testet, dass gi und vi den gleichen Wert haben.
◮ Für die Ausgabe benutzen wir ein großes AND-Gatter, welches die
Ausgabe aller Vergleiche und das Ergebnis des ursprünglichen
Ausgabegatters verknüpft.
Somit erhalten wir für jedes Gatter gi eine kleine Formel
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 24 (Teil 3) Für ein AND-Gatter gi erhalten wir
Fi (yi , yji , yki ) =
=
((yji ∧ yki ) ∨ y i ) ∧ ((y ji ∨ y ki ) ∨ yi )
(yji ∨ y i ) ∧ (yki ∨ y i ) ∧ (y ji ∨ y ki ∨ yi )
und OR-Gatter gi erhalten wir
Fi (yi , yji , yki ) =
=
((yji ∨ yki ) ∨ y i ) ∧ ((y ji ∧ y ki ) ∨ yi )
(yji ∨ yki ∨ y i ) ∧ (y ji ∨ yi ) ∧ (y ki ∨ yi ) .
Ist gm das Ausgabegatter von C so erhalten wir
F
Fi (yi , yji , yki ) := (gi (yji , yki ) ∨ y i ) ∧ (gi (yji , yki ) ∨ yi )
:= F1 ∧ . . . ∧ Fm ∧ ym .
Da für die lokalen Ersetzungen nur einige Zähler benötigt werden, kann
diese Reduktion auf logarithmischen Platz durchgeführt werden. Wir
müssen somit nur noch die Korrektheit dieser Reduktion überprüfen.
und für den Fall, dass gi ein NOT-Gatter ist, erhalten wir
Fi (yi , yji ) := (y ji ∨ y i ) ∧ (yji ∨ yi ) .
377
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Lemma 24 (Teil 4) Um die Korrektheit zu überprüfen
beginnen wir mit der folgenden Beobachtung, die unmittelbar aus der
Konstruktion von Fi folgt:
Unter der Annahme, dass yji und yki die korrekten Werte der
beiden Vorgängergatter gji und gki angeben gilt: Der Wert von
Fi ist genau dann 1, wenn yi den Wert von gi angibt.
378
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Fassen wir Lemma 23 und 24 zusammen, so erhalten wir:
Satz 62 SAT ist N P-vollständig.
Mit Hilfe einer vollständigen Induktion über die Tiefe der Teilschaltkreise
mit jeweiligem Ausgabegatter gi können wir jetzt folgern:
F hat genau dann den Wert 1, wenn C den Wert 1 hat und die
Werte y1 , . . . , ym die Werte der jeweiligen Gatter g1 , . . . , gm
angeben.
Es folgt unmittelbar:
Mit Hilfe einiger einfacher Umformungen erhalten wir nun:
Satz 63 Für alle k ≥ 3 ist k-SAT N P-vollständig.
F ist genau dann erfüllbar, wenn C erfüllbar ist.
379
380
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Andreas Jakoby
Universität zu Lübeck
Beweis von Satz 63 (Teil 2): Die Reduktion: Sei Ci eine Klausel von F .
Wir unterscheiden die folgenden 4 Fälle:
◮ Fall 1: Ci = ti , d.h. Ci besteht aus dem einen Literal ti
Wir wählen zwei neue Variablen zi,1 , zi,2 und generieren die Klauseln
Beweis von Satz 63 (Teil 1): Dass k-SAT in N P ist, haben wir bereits
gesehen. Wir wollen nun eine Reduktion von SAT auf 3-SAT angeben
(Die Reduktion für k ≥ 4 erfolgt analog). Sei F eine Formel in CNF.
Unsere Reduktion betrachtet jede Klausel Ci von F und transformiert
diese in eine Folge von Klauseln Ci,j , wobei die Klauseln Ci,j jeweils aus
drei Literalen bestehen. Die ∧-Verknüpfung (Konjunktion) dieser neuen
Klauseln ergibt eine Formel F ′ in 3-CNF.
Ci,1
Ci,3
◮
Abschließend zeigen wir dann noch:
◮
◮
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Die Transformation der Formel kann deterministisch auf
logarithmischen Platz erfolgen.
◮
Ci,2
Ci,4
:= (ti ∨ z i,1 ∨ zi,2 )
:= (ti ∨ z i,1 ∨ z i,2 )
Fall 2: Ci = (ti,1 ∨ ti,2 )
Wir wählen eine neue Variablen zi und generieren die Klauseln
Ci,1
F ist genau dann erfüllbar, wenn F ′ erfüllbar ist.
:= (ti ∨ zi,1 ∨ zi,2 )
:= (ti ∨ zi,1 ∨ z i,2 )
:=
(ti,1 ∨ ti,2 ∨ zi )
Ci,2
:=
(ti,1 ∨ ti,2 ∨ z i )
Fall 3: Ci = (ti,1 ∨ ti,2 ∨ ti,3 )
Wir wählen
Ci,1
:= Ci
= (ti,1 ∨ ti,2 ∨ ti,3 )
381
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 3):
◮ Fall 4: Ci = (ti,1 ∨ . . . ∨ ti,ℓ ) mit ℓ > 3
Wir wählen ℓ − 3 neue Variablen zi,k und generieren die Klauseln
Ci,1
Ci,ℓ−2
:=
:=
:=
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 4): Wir wollen nun zeigen, dass für alle
Formeln F in CNF gilt
(ti,1 ∨ ti,2 ∨ zi,1 )
(z i,ℓ−3 ∨ ti,ℓ−1 ∨ ti,ℓ )
F ∈ SAT =⇒ f (F ) ∈ 3-SAT .
sowie für alle k ∈ [2..ℓ − 3]
Ci,k
382
Zur Erinnerung, eine Formel F in CNF ist in SAT, wenn es eine erfüllende
Belegung für F gibt. Analoges gilt für 3-SAT. Eine Formel F ′ in 3-CNF
ist in 3-SAT, wenn es eine erfüllende Belegung für F ′ gibt. Sei F eine
Formel über n Variablen und b = (b1 , . . . , bn ) eine erfüllende Belegung
für F , d.h. F (b) = 1. Wir müssen nun zeigen, dass auch F ′ = f (F )
erfüllbar ist. Wir untersuchen wieder die 4 Fälle und generieren eine
erfüllende Belegung b ′ aus b für F ′ . Somit ist F ′ ∈ 3-SAT.
(z i,k−1 ∨ ti,k+1 ∨ zi,k ) .
Somit erhalten wir für (ti,1 ∨ ti,2 ∨ ti,3 ∨ ti,4 ∨ ti,5 ∨ ti,6 )
(ti,1 ∨ ti,2 ∨ zi,1 ) ∧ (z i,1 ∨ ti,3 ∨ zi,2 ) ∧ (z i,2 ∨ ti,4 ∨ zi,3 ) ∧ (z i,3 ∨ ti,5 ∨ ti,6 )
Es ist einfach zu erkennen, dass diese Transformation von einer
logarithmisch-platzbeschränkten DTM durchgeführt werden kann. Im
Wesentlichen muss diese DTM nur die Anzahl der Literale der einzelnen
Klauseln aus F bestimmen und kann dann diese Klauseln in die
gewünschte Form bringen. Im Folgenden wollen wir diese Transformation
mit f bezeichnen.
383
384
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 5): Wir wählen in b ′ die Belegung der alten
Variablen genauso wie in b und beobachten:
◮
◮
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 6): Es verbleibt nun noch zu zeigen, dass für
alle Formeln F in CNF gilt
Fall 1: Der Wert des Literals ti erfüllt alle vier neuen Klauseln.
Fall 2: Der Wert der Teilklausel ti,1 ∨ ti,2 erfüllt beide neuen
Klauseln.
Fall 3: Hier gab es keine Änderung. Ist die Klausel Ci erfüllt, so gilt
dieses auch für die Klausel Ci,1 .
F ∈ SAT ⇐= f (F ) ∈ 3-SAT .
Sei b ′ eine erfüllende Belegung für F ′ . Wir müssen nun zeigen, dass auch
F mit F ′ = f (F ) erfüllbar ist. Wir untersuchen wieder die 4 Fälle und
generieren eine erfüllende Belegung b aus b ′ für F indem wir die
Belegungen der neuen Variablen streichen. Somit ist dann F ∈ SAT.
Fall 4: Sei ti,k ein Literal aus Ci , welches auf die Eingabe b den Wert
1 annimmt. Für die neuen Variablen zi,q wählen wir
1 für q ≤ k − 2
zi,q bekommt den Wert
0 für q ≥ k − 1 .
◮
Somit werden die Klauseln Ci,q mit q ≤ k − 2 durch den Wert von
zi,q erfüllt, die Klauseln Ci,q mit q ≥ k durch den Wert von z i,q
erfüllt und die Klausel Ci,k−1 durch ti,k erfüllt.
Fall 1: Sind alle vier neuen Klauseln erfüllt, dann müssen diese durch
ti erfüllt werden, da für alle Belegungen von zi,1 und zi,2 genau eine
der Kombinationen von zi,1 und zi,2 den Wert 0 liefert:
zi,1 = 0, zi,2 = 0 =⇒ zi,1 ∨ zi,2 = 0
zi,1 = 1, zi,2 = 0 =⇒ z i,1 ∨ zi,2 = 0
zi,1 = 0, zi,2 = 1 =⇒ zi,1 ∨ z i,2 = 0
zi,1 = 1, zi,2 = 1 =⇒ z i,1 ∨ z i,2 = 0 .
385
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 7):
◮ Fall 2: Sind beide neuen Klauseln erfüllt, dann können wir analog
zum ersten Fall schließen, dass diese Klauseln durch ti,1 ∨ ti,2 erfüllt
werden. Die alte Klausel Ci ist somit auch erfüllt.
◮
◮
386
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 63 (Teil 8):
◮ Weiter mit Fall 4:
◮
Fall 3: Hier gab es keine Änderung. Ist die Klausel Ci,1 erfüllt, so gilt
dieses auch für die Klausel Ci .
Fall 4: Sind alle neuen Klauseln Ci,k erfüllt, dann können wir die
Folge die Belegungen der neuen Variablen zi,k analysieren. Sei

falls ein solches k existiert
 min{ k | die Belegung
von zi,k ist 0 }
h :=

ℓ−2
sonst.
◮
◮
Ist h = 1, dann wird Ci,1 durch die Disjunktion ti,1 ∨ ti,2 erfüllt. Diese
Disjunktion ist jedoch auch ein Teil der Klausel Ci und garantiert
uns, dass Ci erfüllt ist.
Ist h = ℓ − 2, dann hat z i,ℓ−3 den Wert 0 und Ci,ℓ−2 wird durch die
Disjunktion ti,ℓ−1 ∨ ti,ℓ erfüllt. Diese Disjunktion ist jedoch auch ein
Teil der Klausel Ci und garantiert uns, dass Ci erfüllt ist.
Ist 1 < h < ℓ − 2, dann haben beide Literale zi,h und z i,h−1 den Wert
0 und Ci,h wird durch das Literal ti,h+1 erfüllt. Dieses Literal
garantiert uns daher, dass auch Ci erfüllt ist.
Wir analysieren nun die Belegung der Literale in Ci,h .
387
388
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
FORMEL-SAT-artiges existentielles Raten einer Belegung:
x1
◮
◮
◮
1
0
Können wir auch für die Probleme Tautologie und QBF zeigen, dass
diese N P-vollständig sind?
Die Antwort lautet: Nein, es sei denn, einige Komplexitätsklassen
fallen zusammen — wovon jedoch die meisten Theoretiker zurzeit
nicht ausgehen.
x2
x2
1
0
x3
x3
Betrachten wir einmal kurz die unterschiedliche Struktur dieser
Probleme.
1
0
x3
x3
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
xi
existiert eine Belegung für xi
389
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
390
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
QBF-artiges existentielles und universelles Raten einer Belegung:
Tautologie-artiges universelles Raten einer Belegung:
x1
x1
x2
x2
x2
1
0
x3
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
x3
x3
x3
0
xi
x2
1
0
1
0
x3
x3
1
0
1
0
x3
x3
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
xi
existiert eine Belegung für xi
xi
für alle Belegungen von xi
für alle Belegungen von xi
391
392
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Definition 59 Das Cliquen-Problem:
Gegeben ein ungerichteter Graph G = (V , E ) und ein
k ∈ [0..|V |], existiert ein vollständiger Teilgraph G ′ = (V ′ , E ′ )
der Größe k = |V ′ | in G ?
Einen Graphen G ′ = (V ′ , E ′ ) nennen wir vollständig, wenn für alle
Knotenpaare u, v ∈ V ′ (u 6= v ) die Kante {u, v } in E ′ existiert. Wir
sagen, dass G eine k-Clique besitzt, wenn es eine Teilmenge V ′ ⊆ V mit
|V ′ | = k gibt, so dass für alle Knotenpaare u, v ∈ V ′ (u 6= v ) eine Kante
{u, v } in E existiert. Wir definieren
9.5 N P-vollständige Probleme auf Graphen
In den letzten 30 Jahren sind mehrere tausend Probleme als
N P-vollständig klassifiziert worden. Hierunter fallen zahlreiche Probleme
aus der Graphentheorie, zahlreiche Partitionierungsprobleme und viele
weitere Probleme aus allen Bereichen der Informatik. Wir wollen im
Folgenden einige dieser Probleme vorstellen und für die wichtigsten eine
kurze Skizze der Reduktion angeben.
CLIQUE := { (G , k) | G hat eine k-Clique } .
393
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
394
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 64 (Teil 2): Warum hat G eine k-Clique, wenn F
erfüllbar ist?
Satz 64 CLIQUE ist N P-vollständig.
Beweis von Satz 64: Es ist einfach zu sehen, dass CLIQUE in N P ist.
Wir wollen uns hier auf die Reduktion 3-SAT≤log CLIQUE konzentrieren.
◮
Sei b = (b1 , . . . , bn ) eine erfüllende
Belegung.
◮
Dann gibt es pro Klausel mindestens ein
Literal, welches bei dieser Belegung den
Wert 1 hat.
Sei ti,ji ein Literal aus der Fi , welches
den Wert 1 bei der Belegung b hat.
Dann gilt für alle Paare vi,ji , vi ′ ,ji ′ mit
i 6= i ′ , dass ti,j 6= t i ′ ,ji ′ ist — denn beide
Literale müssen ja den Wert 1 bei der
Belegung b haben.
(x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x 2 ∨ x4 ) ∧ (x 1 ∨ x2 ∨ x 4 )
Sei F = F1 ∧ . . . ∧ Fk eine Boolesche Formel in 3-CNF, d.h.
Fi = ti,1 ∨ ti,2 ∨ ti,3 mit Literalen ti,j ∈ {x1 , . . . , xn , x 1 , . . . , x n }. Wir
generieren nun einen Graphen G = (V , E ) mit 3k Knoten
x1
x2
x3
v1,1
v1,2
v1,3
◮
V
E
= { vi,j | i ∈ [1..k], j ∈ [1..3] }
= { {vi,j , vi ′ ,j ′ } | i, i ′ ∈ [1..k], j, j ′ ∈ [1..3]
mit i 6= i ′ und ti,j 6= t i ′ ,j ′ } .
x1
x2
x4
v2,1
v2,2
v2,3
◮
Ferner wählen wir k als die geforderte Cliquengröße.
Wir behaupten somit, dass G genau dann eine k-Clique hat, wenn F
erfüllbar ist!
395
x1
x2
x4
v3,1
v3,2
v3,3
◮
Die Knotenpaare vi,ji , vi ′ ,ji ′ sind alle
paarweise in G verbunden und bilden eine
k-Clique.
396
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
14. Vorlesung, 14.07.2008
Beweis von Satz 64 (Teil 3): Warum ist G erfüllbar, wenn G eine
k-Clique hat?
(x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x 2 ∨ x4 ) ∧ (x 1 ∨ x2 ∨ x 4 )
x1
x2
x3
v1,1
v1,2
v1,3
◮
◮
Verbotene Kanten
x1
x2
x4
v2,1
v2,2
v2,3
◮
x1
x2
x4
v3,1
v3,2
v3,3
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Definition 60 Das Hamiltonsche Kreis Problem:
Gegeben ein gerichteter Graph G = (V , E ), existiert ein Kreis
in G , der jeden Knoten genau einmal besucht?
Sei V ′ die Knotenmenge einer k-Clique,
dann gibt es in V ′ für jedes i ∈ [1..k]
genau einen Knoten vi,j ∈ V ′ . Wir
bezeichnen diesen Knoten als vi,ji .
Wir erhalten eine erfüllende Belegung für
F , indem wir die Werte der b1 , . . . , bn so
wählen, dass die Literale ti,ij den Wert 1
haben.
Dieses ist möglich, da wir in V ′ keine
zwei Knoten haben, die sowohl für eine
Variable xi das Literal xi als auch das
Literal x i repräsentieren.
Es ist möglich, diese Frage sowohl für gerichtete als auch für ungerichtete
Graphen zu stellen. Wir wollen im Folgenden den gerichteten Fall
betrachten.
Einen Kreis in einem Graphen nennen wir Hamiltonsch, wenn er jeden
Knoten genau einmal Besucht. Wir definieren
HAMILTON := { G | G hat einen Hamiltonschen Kreis } .
397
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
398
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65(Teil 2):
Satz 65 HAMILTON ist N P-vollständig.
H′:
Hi :
ai
Beweis von Satz 65 (Teil 1): Es ist einfach zu sehen, dass HAMILTON
in N P ist. Wir wollen uns hier auf die Reduktion 3-SAT≤pol HAMILTON
konzentrieren.
H1
bi,0
Sei F = F1 ∧ . . . ∧ Fk eine Boolesche Formel in 3-CNF, d.h.
Fi = ti,1 ∨ ti,2 ∨ ti,3 mit Literalen ti,j ∈ {x1 , . . . , xn , x 1 , . . . , x n }. Für eine
Variable xi sei
ci,0
H2
bi,1
ci,1
m(xi ) := die Anzahl der Vorkommnisse von xi in F
m(x i ) := die Anzahl der Vorkommnisse von x i in F
mi := m(xi ) + m(x i ) .
Hn−1
ci,m
i
bi,m
i
Für jede Variable xi konstruieren wir einen Graphen Hi und verbinden
diese Graphen H1 , . . . , Hn kreisförmig zu einem Graphen H ′ .
Hn
di
399
400
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65
(Teil 3):
◮
Hi :
ai
Hi besteht aus 2mi + 4 Konten, die in
mi + 3 Schichten unterteilt sind:
◮
◮
bi,0
◮
ci,0
◮
bi,1
◮
◮
bi,m
i
ci,m
i
di
◮
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65 (Teil 4): Im Folgenden wollen wir die beiden Pfade
durch Hi als die beiden Möglichkeiten interpretieren, der Variablen xi
einen Wert zuzuweisen:
Schicht 0 besteht aus einem Knoten ai .
Die Schichten 1 bis mi + 1 besteht aus
jeweils zwei Knoten bi,j und ci,j .
Schicht mi + 2 besteht aus einem Knoten
di .
◮
Den Pfad
ai , bi,0 , ci,0 , bi,1 , ci,1 , . . . , bi,mi , ci,mi , di
In Hi verbinden wir
◮
ci,1
Andreas Jakoby
Universität zu Lübeck
ai mit bi,0 , ci,0 und bi,mi , ci,mi mit di ,
bi,j mit ci,j und ci,j mit bi,j für alle
j ∈ [0..mi + 1] und
bi,j mit ci,j+1 und ci,j mit bi,j+1 für alle
j ∈ [0..mi ].
◮
werden wir als xi = 0 interpretieren. Wir nennen einen solchen Pfad
einen 0-Pfad durch Hi .
Den Pfad
ai , ci,0 , bi,0 , ci,1 , bi,1 , . . . , ci,mi , bi,mi , di
werden wir als xi = 1 interpretieren. Wir nennen einen solchen Pfad
einen 1-Pfad durch Hi .
Es gibt zwei Pfade durch Hi , welche alle
Knoten besuchen:
(0) ai , bi,0 , ci,0 , bi,1 , ci,1 , . . . , bi,mi , ci,mi , di
(1) ai , ci,0 , bi,0 , ci,1 , bi,1 , . . . , ci,mi , bi,mi , di .
401
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
402
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65 (Teil 6):
Beweis von Satz 65 (Teil 5): Für jede Klausel Fj = tj,1 ∨ tj,2 ∨ tj,3
konstruieren wir einen Graphen Tj bestehend aus 6 Knoten sj,k , rj,k mit
k ∈ [1..3]. Diese 6 Knoten verbinden wir mithilfe der Kanten:
Hi :
ai
(rj,k , sj,k ), (rj,k , rj,(k mod 3)+1 ), (sj,(k mod 3)+1 , sj,k ) für k ∈ [1..3] .
Wir verbinden Tj mit H ′ wie folgt:
◮ Sei Fj die ℓ-te Klausel, in der ein Literal von xi vorkommt, d.h. es
existieren ℓ − 1 Klauseln Fq mit q < j, in denen wir ein Literal xi
oder x i finden.
Fj mit tj,2 = x i :
bi,0
ci,0
bi,1
ci,1
Tj :
Sei tj,k = x i , dann fügen wir die Kanten (ci,ℓ , rj,k ) und (sj,k , bi,ℓ+1 )
ein.
◮ Sei tj,k = xi , dann fügen wir die Kanten (bi,ℓ , rj,k ) und (sj,k , ci,ℓ+1 )
ein.
Sei H der resultierende Graph.
rj,1
rj,2
rj,3
sj,1
sj,2
sj,3
◮
ci,m
i
bi,m
i
di
403
404
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65 (Teil 7): Sei b = (b1 , . . . , bn ) eine erfüllende
Belegung für F , dann können wir folgenden Hamiltonschen Kreis
generieren:
1. Wir generieren einen Hamiltonschen Kreis für H ′ in dem wir einen
Kreis von a1 durch H1 , H2 ,. . . , Hn zurück nach a1 erzeugen, der in
jedem Teilgraph Hi einen bi -Pfad benutzt.
2. Wir ergänzen nun diesen Pfad, indem wir für jede Klausel Fj einen
Pfad durch den Teilgraph Tj in diesen Kreis einbauen:
◮
◮
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 65 (Teil 8): Wir müssen nun noch zeigen, dass wir
aus einem Hamiltonschen Kreis eine erfüllende Belegung generieren
können. Betrachten wir zunächst einen Hamiltonschen Kreis und dessen
Form in Tj :
rj,1
rj,2
rj,3
◮
?
Sei i der kleinste Index einer Variablen xi , so dass ein zu xi gehöriges
Literal tj,k auf b Fj erfüllt.
Sei Fj die q-te Klausel, in der ein Literal von xi vorkommt.
3. Unter den oben dargestellten Bedingungen benutzt unser bisher
konstruierter Kreis bei bi = 0 die Kante (ci,q , bi,q+1 ). Diese Kante
ersetzen wir durch den Pfad:
ci,q , rj,k , rj,(k mod 3)+1 , rj,(k+1 mod 3)+1 ,
sj,(k+1 mod 3)+1 , sj,(k mod 3)+1 , sj,k , bi,q+1 .
sj,1
sj,2
sj,3
rj,1
rj,2
rj,3
sj,1
sj,2
sj,3
◮
Betritt der Pfad Tj über einen Knoten rj,k und
verlässt der Pfad Tj nicht über sj,k , so kann der
Kreis entweder den Knoten sj,k nicht mehr
erreichen, oder, wenn der Kreis rj,((k+2) mod 3)+1
erreicht, dann können wir den Kreis nicht mehr
schließen.
Jedesmal, wenn der Pfad Tj über einen Knoten
rj,k betritt, dann bewegt sich der Pfad in Tj , bis
er Tj wieder über sj,k verlässt.
Für bi = 1 verfahren wir analog.
Der resultierende Kreis ist Hamiltonsch.
405
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
406
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Definition 61 Das ungerichtete Hamiltonsche Kreis Problem:
Gegeben ein ungerichteter Graph G = (V , E ), existiert ein Kreis
in G , der jeden Knoten genau einmal besucht?
Wir definieren
Beweis von Satz 65 (Teil 9):
◮
Für jeden Teilpfad, der sich ganz in einem Teilgraph Tj befindet,
gibt es eine Kante in H ′ die parallel zu diesem Teilpfad liegt.
◮
Ersetzen wir diese Teilpfade durch diese parallel laufenden Kanten,
dann erhalten wir einen Hamiltonschen Kreis durch H ′ .
Dieser Kreis besteht aus einer Folge von Pfaden durch die
Komponenten Hi .
Ist ein Pfad durch Hi ein bi -Pfad mit bi ∈ {0, 1}, so setzen wir
xi := bi .
Die so aufgebaute Belegung ergibt eine erfüllende Belegung für F .
◮
◮
◮
HC := { G | G hat einen Hamiltonschen Kreis } .
Satz 66 HC ist N P-vollständig.
Beweis von Satz 66 (Teil 1): Wie schon für den gerichteten Fall,
können wir auch für den ungerichteten Fall einen einfachen
nichtdeterministischen polynomial-zeitbeschränkten Algorithmus für das
HC-Problem angeben. Wir wollen uns daher hier auf die Reduktion
HAMILTON≤log HC
konzentrieren.
407
408
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
ein Hamiltonscher Kreis in G ′ .
◮
G ′:
v1
v1,out
v5
v3
vi1 ,in , vi1 , vi1 ,out , vi2 ,in , vi2 , . . . , vin , vin ,out , vi1 ,in
:= { vi,in , vi,out , vi | vi ∈ V }
:= { {vi,in , vi }, {vi,out , vi } | vi ∈ V }
∪ { {vi,out , vj,in } | (vi , vj ) ∈ E }
G:
Wir müssen nun noch zeigen, wie wir aus einem Hamiltonschen Kreis
für G ′ einen Hamiltonschen Kreis für G konstruieren können. Ist
dieses möglich, dann haben wir für unsere Transformation f gezeigt:
v5,in
v3,out
v2
v2,in
v2
G ∈ HAMILTON ⇐⇒ f (G ) = G ′ ∈ HC .
v2,out
v4
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 66 (Teil 3):
◮ Sei vi , . . . , vi , vi ein Hamiltonscher Kreis in G , dann ist
1
n
1
Beweis von Satz 66 (Teil 2): Sei G = (V , E ) eine Eingabe für
HAMILTON. Wir generieren eine Eingabe G ′ = (V ′ , E ′ ) für HC wie folgt:
V′
E′
Andreas Jakoby
Universität zu Lübeck
Somit ist f eine Reduktion von HAMILTON auf HC. Es ist einfach
zu erkennen, dass f von einer logarithmisch- platzbeschränkten
DTM berechnet werden kann. HAMILTON ist somit
logspace-reduzierbar auf HC.
v4,in
v4,out
409
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
410
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 66 (Teil 5):
◮
Beweis von Satz 66 (Teil 4): Sei u = u0 , . . . , u3n−1 , u0 ein
Hamiltonscher Kreis in G ′ . Dann gilt:
◮
◮
◮
Da die Knoten vi in G ′ nur zwei Nachbarn haben, muss ein
Hamiltonscher Kreis jeden Knoten vi über den einen Nachbarn
betreten und über den anderen Nachbarn verlassen.
Für u0 , . . . , u3n−1 , u0 haben wir somit zwei prinzipielle
Wahlmöglichkeiten:
vi1 ,in , vi1 , vi1 ,out , vi2 ,in , vi2 , . . . , vin , vin ,out , vi1 ,in
oder
vi1 ,out , vi1 , vi1 ,in , vi2 ,out , vi2 , . . . , vin , vin ,in , vi1 ,out .
Die Kanten {vi,in , vi }, {vi,out , vi } müssen von dem Hamiltonschen
Kreis benutzt werden. Somit ist entweder vi,in , vi , vi,out oder
vi,out , vi , vi,in ein Teil unseres Pfades.
◮
Somit ist ein Pfadnachbar jedes Knotens vi,in und jedes Knotens
vi,out festgelegt. Als zweiter Nachbar kommt aufgrund unserer
Konstruktion für jeden Knoten vi,in nur ein Knoten vj,out und
umgekehrt in Frage.
◮
◮
411
Drehen wir die Reihenfolge der Knoten in der zweiten Form, so
erhalten wir einen Kreis der ersten Form. Wir können somit davon
ausgehen, dass bei u ein Kreis der ersten Form vorliegt.
Das Vorhandensein einer Kante {vi1 ,out , vi2 ,in } in G ′ impliziert das
Vorhandensein einer Kante (vi1 , vi2 ) in G .
Somit ist vi1 , vi2 , . . . , vin , vi1 ein Kreis in G . Da dieser Kreis alle
Knoten aus G genau einmal besucht, ist dieser Kreis ein
Hamiltonscher Kreis.
412
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Die beiden Probleme CLIQUE und HAMILTON stellen eine gute
Ausgangsbasis für die komplexitätstheoretische Analyse weiterer
Graphenprobleme dar.
d(π) := d(vin , vi1 ) +
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
In der Literatur werden verschiedene Varianten des TSP-Problems
untersucht:
Definition 62 Das Problem der kürzesten Rundreise
(Handlungsreisenden-Problem, traveling salesman problem, traveling
salesperson problem) ist wie folgt definiert:
Gegeben sei ein ungerichteter vollständiger Graph G = (V , E )
mit Gewichtsfunktion d : E → N ∪ {∞} und eine Schranke
k ∈ N. Existiert einen Hamiltonschen Kreis π = vi1 , . . . , vin , vi1
in G mit
n−1
X
Andreas Jakoby
Universität zu Lübeck
◮
symmetrisches TSP: für alle Kontenpaare u, v gilt d(u, v ) = d(v , u).
◮
metrisches TSP: die Distanzen erfüllen die Dreiecksungleichung, d.h.
für alle Konten u, v , w gilt d(u, w ) ≤ d(u, v ) + d(v , w ).
TSPk : die Distanzwerte stammen aus dem Intervall [1..k].
TSPsym,∆,k : diese Form des TSP ist symmetrisch, metrisch und die
Distanzwerte stammen aus dem Intervall [1..k].
◮
◮
Es gilt:
d(vij , vij+1 )
j=1
≤
Satz 67 TSPsym,∆,2 ist N P-vollständig.
k .
Beweis von Satz 67 (Teil 1): Auch für dieses Problem ist ein
polynomiell-zeit- beschränkter nichtdeterministischer Algorithmus einfach
zu finden. Wir wollen uns daher auf die Reduktion von HC auf
TSPsym,∆,k konzentrieren.
Wir wählen
TSP := { (G , d, k) | G hat einen Hamiltonschen
Kreis π der Länge d(π) ≤ k } .
413
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 67 (Teil 2): Die Reduktion von HC auf TSPsym,∆,k ist
wieder sehr einfach:
◮ Sei G = (V , E ) eine Eingabe für das HC Problem.
◮ Sei K = (V , E ′ ) der vollständige Graph, den wir erhalten, wenn wir
in G noch alle fehlenden Kanten einfügen.
◮
◮
414
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 67 (Teil 3):
◮
Die Richtung
G ∈ HC
Für alle Knotenpaare u, v ∈ V definieren wir
1 wenn {u, v } ∈ E ist
d(u, v ) :=
2 sonst.
◮
Es ist einfach zu sehen, dass diese Transformation von einer
logarithmisch-platzbeschränkten DTM durchgeführt werden kann. Es
verbleibt somit noch zu zeigen, dass für alle ungerichteten Graphen G gilt
⇐⇒
⇐=
(K , d, k) ∈ TSPsym,∆,2
betrachten wir eine Tour in K mit Gesamtlänge |V |.
◮
◮
G ∈ HC
(K , d, k) ∈ TSPsym,∆,2
ist einfach einzusehen: Da ein Hamiltonscher Kreis in G nur Kanten
in K benutzt, die ein Gewicht von 1 haben, hat diese Tour ein
Gesamtlänge von |V |.
Für die Rückrichtung
G ∈ HC
Für die Schranke k wählen wir k := |V |.
=⇒
(K , d, k) ∈ TSPsym,∆,2 .
◮
415
Diese Tour muss alle Knoten besuchen, sie ist somit eine
Hamiltonscher Kreis in K .
Da die Länge der Tour gleich |V | ist, darf sie nur Kanten mit
Gewicht 1 benutzen, diese Kanten sind somit auch in G vorhanden.
Diese Tour stellt somit auch einen Hamiltonschen Kreis in G dar. 416
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Definition 63 Das Problem der Knotenüberdeckung (vertex cover
problem) wie folgt:
Gegeben ein ungerichteter Graph G = (V , E ) und ein
k ∈ [0..|V |]. Eine Teilmenge V ′ ⊆ V nennen wir eine
Knotenüberdeckung, wenn alle Kanten aus E mit mindestens
einen Knoten aus V ′ inzident sind. Existiert ein
Knotenüberdeckung V ′ ⊆ V der Größe k in G ?
Definition 63 Das Problem der unabhängigen Menge (independent set
problem) ist wie folgt definiert:
Gegeben ein ungerichteter Graph G = (V , E ) und ein
k ∈ [0..|V |], existiert ein unabhängige Menge V ′ der Größe k in
G , d.h. existiert eine Teilmenge V ′ ⊆ V mit |V ′ | = k, so dass
es zwischen den Knoten aus V ′ keine Kanten gibt?
Wir wählen
Wir wählen
VC := { (G , k) | G hat eine Knotenüberdeckung
der Größe k } .
IS := { (G , k) | G hat eine unabhängige Menge V ′
der Größe k } .
Das Knotenüberdeckungsproblem können wir auch wie folgt
interpretieren: Gegeben ein Gebäude, welches in erster Linie aus geraden
Gänge besteht, die rechteckige Räume miteinander verbinden. Wir
können in jeden Raum eine Kamera postieren, um die an den Raum
grenzenden Gänge zu überwachen. Wieviele Kameras sind notwendig um
alle Gänge zu überwachen?
417
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Satz 68 CLIQUE ≡log IS ≡log VC.
◮
◮
◮
◮
◮
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Definition 64 Das Rucksackproblem (knapsack problem):
Gegeben eine Menge O = {o1 , . . . , on } von n Objekten, eine
Kostenfunktion g : O → N, eine Nutzenfunktion h : O → N
und zwei Schranken G , H. Frage: Gibt es eine Teilmenge
O ′ ⊆ O mit
P
P
und
oi ∈O ′ g (oi ) ≤ G
oi ∈O ′ h(oi ) ≥ H ?
Sei (G , k) eine Eingabe für CLIQUE.
Sei G = (V , E ) der komplementärer Graph zu G , d.h. V = V und E
besteht genau aus den Kanten aus V × V , die nicht in E sind.
Eine Teilmenge V ′ ∈ V mit |V ′ | = k ist genau dann eine k-Clique in
G , wenn es zwischen diesen Knoten in G keine Kanten gibt, d.h.
wenn V ′ eine unabhängige Menge ist.
Die Reduktionen in beide Richtungen erhalten wir über
f ((G , k)) = (G , k).
Wir suchen also eine Teilmenge aus O, die unsere Gewichtsschranke G
nicht überschreitet jedoch einen Nutzen von mehr als H hat. Wir
definieren die Menge KP wie folgt
IS ≡log VC:
◮
Andreas Jakoby
Universität zu Lübeck
9.6 Weitere N P-vollständige Probleme
Beweis von Satz 68:
◮ CLIQUE ≡log IS:
◮
418
Eine unabhängige Menge von k Knoten impliziert, dass die
verbleibenden n − k Knoten alle Kanten überdecken, und umgekehrt
— wobei n der Anzahl an Knoten in G entspricht.
Die Reduktionen in beide Richtungen erhalten wir über
f ((G , k)) = (G , n − k).
(O, g , h, G , H) ∈ KP ⇐⇒ es gibt eine Lösung des Rucksackproblems für (O, g , h, G , H) .
419
420
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Definition 66 (Teil 1)
Definition 65 as Partitionsproblem:
Gegeben eine Menge O = {o1 , . . . , on } von
P n Objekten und eine
Kostenfunktion g : O → N. Sei G := 12 oi ∈O g (oi ). Frage:
Gibt es eine Teilmenge O ′ ⊆ O mit
P
oi ∈O ′ g (oi ) = G ?
◮
Ein lineares Programm stellt eine Folge von linearen Ungleichungen
über den Variablen x1 , . . . , xn dar:
n
X
j=1
Wir definieren die Menge PARTITION wie folgt
ai,j · xj ≤ bj
bzw.
n
X
j=1
ai,j · xj ≥ bj .
Die Werte ai,j stellen hierbei die Koeffizienten der i-ten Ungleichung
dar.
(O, g ) ∈ PARTITION ⇐⇒ Es gibt eine Lösung des Partitionsproblems für (O, g ) .
◮
Ergänzt wurde dieses Ungleichungssystem durch eine lineare
Funktion, die maximiert (oder minimiert) werden sollte:
Satz 67 Bei binärer Kodierung der Gewichtsfunktionen sind KP und
PARTITION N P-Vollständig. Bei unärer Kodierung der
Gewichtsfunktion ist PARTITION mit Hilfe der dynamischen
Programmierung lösbar und somit in P.
n
X
j=1
a0,j · xj .
421
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
◮
j=1
ai,j · xj ≥ bi
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Das rationale lineare Programmierungsproblem
RLP := { (A, b) | ∃x ∈ Qn : A · x ≥ b }
und das ganzzahlige lineare Programmierungsproblem
ILP := { (A, b) | ∃x ∈ Zn : A · x ≥ b } .
Sei A ∈ Zm×n eine m × n Matrix und b ∈ Zm ein Spaltenvektor.
Gibt es einen Zeilenvektor x der Länge n mit A · x ≥ b, d.h.
n
X
Andreas Jakoby
Universität zu Lübeck
Definition 66 (Teil 3) Wir unterscheiden zwei Varianten des linearen
Programmierungsproblems:
Definition 66 (Teil 2)
◮ Wenn wir zudem eine Schranke angeben, die mit dieser linearen
Funktion erreicht werden soll, dann können wir ein solches lineares
Programm vollständig als eine Folge von Ungleichungen darstellen.
◮ Multiplizieren wir jetzt noch die ≤-Ungleichungen mit −1 so können
wir das Problem der linearen Programmierung auch wie folgt
darstellen:
◮
422
Für die Eingabe betrachten wir hierbei eine binäre Kodierung von A und
b, wobei eine Zahl ai,j bzw. bi durch
für alle i ∈ [0..m − 1] ?
sgn(ai,j )#bin(|ai,j |)
bzw.
sgn(bi )#bin(|bi |)
dargestellt wird.
423
424
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Die Liste der N P-vollständigen Probleme könnten wir hier noch für
einige Zeit fortsetzen:
Färbungsproblem für Graphen, Bin-Packing-Problem,
verschiedene Scheduling-Probleme, 3DM, X3C, etc.
Mit Hilfe der Ellipsoidmethode können wir das Problem RLP in
polynomieller Zeit lösen. Für das ILP-Problem ist kein solcher
Algorithmus bekannt. Es gilt sogar
Interessanter Weise gibt es nur wenige Probleme, für die bekannt ist, dass
sie in N P liegen und für die nicht bekannt ist, ob sie N P-vollständig
sind oder sogar in P liegen. Eines dieser wenigen Probleme ist das
Problem der Graphisomorphie
Satz 68 RLP ist P-vollständig und ILP ist N P-vollständig.
Gegeben zwei Graphen, sind diese Graphen isomorph?
Es konnte jedoch gezeigt werden, dass egal was man für dieses Problem
zeigt, ob es in P oder ob es in N PC liegt, beides hätte weitreichende
Folgen für die Komplexitätstheorie.
425
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
9.7 Selbstreduzierbarkeit
426
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 69 (Teil 1): Wir setzen voraus, dass T monoton
wächst — sollte T nicht monoton wachsen, dann können wir die Formel
so verändern, dass durch Aufblähen der Formel die Laufzeit reduziert
wird, ohne die Komplexität des Entscheidungsproblems zu verändern.
Bisher haben wir uns nur mit Entscheidungsproblemen beschäftigt. Wir
wollen nun kurz auf die Frage eingehen, welche Aussagen wir für ein
konstruktives Problem herleiten können, wenn wir die Komplexität des
Entscheidungsproblems kennen. Als Beispiel wollen wir wieder auf das
SAT-Problem eingehen.
◮
Wir definieren fSAT als die Relation, die einer Booleschen
Formel F eine erfüllende Belegung x zuordnet bzw. den Wert 0,
wenn F nicht erfüllbar ist.
◮
◮
Satz 69 Gibt es einen T -zeitbeschränkten Akzeptor für SAT, dann kann
die korrespondierende Relation fSAT in Zeit O(N · T ) berechnet werden.
427
Sei M ein T -zeitbeschränkter Akzeptor (deterministisch oder
nichtdeterministisch) für das SAT-Problem.
Mit Hilfe von M wollen wir eine TM M ′ herleiten, die fSAT in der
geforderten Zeitschranke berechnet.
Sei F eine Eingabe-Formel mit den Variablen x1 , . . . , xn .
428
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Beweis von Satz 69 (Teil 3):
Beweis von Satz 69 (Teil 2):
F erfüllbar?
M ′ simuliert M auf F . Ist F nicht erfüllbar, dann gebe 0 aus.
Ansonsten wiederholen wir die folgenden Schritte, bis wir eine
Formel erhalten, die keine freie Variable mehr besitzt. Wir
initialisieren i := 1.
1. Setze αi = 0.
2. Setze x1 , . . . , xi in F auf die Konstanten α1 , . . . , αi .
3. Sei Fα1 ,...,αi die resultierende Formel.
4. Ist Fα1 ,...,αi nicht erfüllbar, dann setze αi := 1.
5. Setze i := i + 1.
Das oben angegebene Verfahren ruft M genau n-mal auf. Bei geschickter
Implementierung können wir die einzelnen Zeilen 1 bis 3 und 5 in linearer
Zeit in n implementieren. Zeile 4 benötigt Laufzeit T (n). Da T (n)
mindestens linear in n wachsen muss, ist die Gesamtlaufzeit in O(N · T ).
◮
nein
ja
Gebe 0 aus!
F0 erfüllbar?
nein
ja
ja
nein
F10 erfüllbar?
nein
F00 erfüllbar?
ja
F10α3 ...αn−1 0 erfüllbar?
nein
Gebe
10α3 . . . αn−1 1
aus!
ja
Gebe
10α3 . . . αn−1 0
aus!
429
Andreas Jakoby
Universität zu Lübeck
Computational Complexity SS 08
15. Vorlesung, 21.07.2008
Analoge Selbstreduktionen können wir für die meisten hier untersuchten
Probleme herleiten.
Aber Vorsicht:
Es ist bekannt, dass der Test, ob eine gegebene Zahl keine
Primzahl ist, in P durchgeführt werden kann. Ein
polynomiell-zeitbeschränktes Verfahren, welches für eine
Nichtprimzahl die Faktorisierung in Primzahlen liefert ist nicht
bekannt. Die Sicherheit vieler Verfahren in der Kryptologie
basieren auf der Annahme, das Faktorisierung nicht in
polynomieller Zeit deterministisch gelöst werden kann.
Eine Selbstreduktion ist nicht für alle Probleme so einfach möglich.
431
430
Zugehörige Unterlagen
Herunterladen