17.2 P-Vollständigkeit 126
17.2.3 Satz: CVP ist P-vollständig
17-17 Das Hauptresultat. 17-17
Satz
cvp istP-vollständig.
Dies bedeutetzwar nicht, dass sich CVP nicht gut parallel auswerten lässt, macht es aber
»unwahrscheinlich«.
17-18 Wie beweist man Vollständigkeit? 17-18
Die Bootstrapping-Methode.
Ausgangslage
SeiCeine Sprachklasse undX ein Problem. Wir wollen zeigen, dassX vollständig ist für C.
Bootstrapping-Methode
1. Man zeigt zunächstX∈Cmittels eines konkreten Algorithmus.
2. Man zeigt dann für jedes Problem inA∈C, dassA≤logm X gilt.
– Diese Methode ist »anstrengend«.
– Beim »ersten Mal« ist sie aber nicht zu vermeiden.
– Den Satz von Cook beweist man durch Bootstrapping.
– Wir werden die P-Vollständigkeit von CVP auch so beweisen müssen.
17-19 Wie beweist man Vollständigkeit? 17-19
Die Reduktions-Methode.
Ausgangslage
Sei C eine Sprachklasse und X ein Problem. Wir wollen zeigen, dassX vollständig ist fürC. Wir kennen schon ein ProblemY, dass vollständig ist fürC.
Reduktions-Methode
1. Man zeigt zunächstX∈Cmittels eines konkreten Algorithmus.
2. Man zeigt dannY≤logm X. – Diese Methode ist »oft einfach«.
– Fast alle Vollständigkeitsbeweise benutzen diese Methode.
17-20 CVP ist in P. 17-20
Lemma (Erster Beweisteil) cvp∈P.
Zur Übung
Skizzieren Sie den Beweis.
17 Untere Schranken I
17.2 P-Vollständigkeit 129
17-21 Reduktion beliebiger Probleme aus P. 17-21
Lemma (Zweiter Beweisteil)
Sei A∈P ein beliebiges Problem. Dann giltA≤logm cvp. Grobes Ziel
– Seixeine Eingabe für die Reduktion.
– Wir wollen herausfinden, obx∈A gilt.
– Dazu müssen wir (in logarithmischem Platz) einen Schaltkreis C konstruieren mit folgenden Eigenschaften:
1. Giltx∈A, so wertetCzu1 aus.
2. Giltx∈/A, so wertetCzu0 aus.
17-22 Visualisierung der groben Idee der Reduktion. 17-22
Eigentliche Frage
x∈A? f(x)∈cvp?
»Ja!«
»Ja!«
f
(Reduktionsfunktion)
Ergebnis übernehmen
Firma/Gott/
Aliens
17-23 Übersicht zum Beweis. 17-23
Im Folgenden sollen folgende Punkte angesprochen werden:
1. Einige Vereinfachungen
2. Aufbau des Schaltkreises
3. Aufbau der Boxen im Schaltkreis
4. Eigenschaften des Schaltkreises
5. Wie schwierig ist es, den Schaltkreis zu konstruieren?
17-24 Von der Maschine zum Schaltkreises. 17-24
– Sei M eine Polynomialzeit-Turingmaschine, die A entscheidet. Dann muss der zu konstruierende SchaltkreisCfolgende Eigenschaft haben:
1. AkzeptiertM die Eingabex, so wertetC zu1aus.
2. VerwirftM die Eingabex, so wertetCzu0 aus.
Wir beginnen mit ein paar Vereinfachungen:
– Die MaschineM habe nur ein Band.
– Das Band der MaschineM seieinseitig beschränkt. – Es gibtgenau eineakzeptierende Endkonfiguration.
– Bei dieser Endkonfiguration ist der Kopf am Anfang. Wir führen folgende Bezeichnungen ein:
– Die Laufzeit der Maschine bei Eingaben der Länge n seigenau p(n)für ein festes Polynom p.
– Die Länge der Eingabexheißen.
130 17 Untere Schranken I 17.2 P-Vollständigkeit
17-25 Grober Aufbau des Schaltkreises. 17-25
Wir bauen den Schaltkreis grob wie folgt:
– Er besteht aus p(n)Schichten.
– An den Ausgabegattern derk-ten Schicht liegtkodiert diek-te Bandkonfiguration an. – An den Eingabegattern derk-ten Schicht liegtkodiert die(k−1)-te Bandkonfiguration
an.
Die Kodierung einer Bandkonfiguration funktioniert wie folgt:
– Um eine Bandzelle zu kodieren, benutzen wir mehrere Leitungen.
– Ist das BandalphabetΓ, so können in einer Zelle |Γ| verschiedene Symbole stehen;
wir benutzen deshalblog|Γ| Leitungen zur Kodierung des Zelleninhalts.
– Zusätzlich benutzt man noch pro Zelle eine Leitung, um zu signalisieren, ob der Kopf dort ist.
– Schließlich benutzen wir noch log|Q|Leitungen, um den aktuellen Zustand der Tu- ringmaschine zu kodieren.
17-26 Was leistet der Schaltkreis? 17-26
– Betrachtet man die Leitungen, die in dieersteSchicht hineinführen, so kodieren sie genau die Anfangskonfiguration.
– Betrachtet man die Leitungen, die in diezweiteSchicht hineinführen, so kodieren sie genau den Bandinhalt nach einem Schritt.
– Betrachtet man die Leitungen, die in diedritte Schritt hineinführen, so kodieren sie genau den Bandinhalt nach zwei Schritten.
– Betrachtet man die Leitungen, die in die p(n)-teSchritt hineinführen, so kodieren sie genau den Bandinhalt der Endkonfiguration.
– Schaltet man also noch einen winzigen Schaltkreis nach, der überprüft, ob diese Endkonfiguration akzeptierend ist, so leistet der Schaltkreis das Gewünschte:
Er wertet zu 1 aus genau dann, wenn die Maschine die Eingabe akzeptiert.
17-27 Eine Beispielsituation. 17-27
– Die Symbole des BandalphabetsΓ={a,b,} werden kodiert durch00,01,10. – Es gibt vier Zustände{q0,q1,q2,q3}, kodiert durch00,01,10und 11.
– Der initiale Bandinhalt istab, der initiale Zustand istq1und der Kopf ist initial auf erstem Zeichen (dema).
– Nach einem Schritt ist der Bandinhalt bb, der Zustand ist q2 und der Kopf auf dem zweiten Zeichen.
– Nach zwei Schritten ist der Bandinhalt ba, der Zustand istq2und der Kopf auf dem dritten Zeichen.
– Nach p(n)−1 Schritten ist der Bandinhalt aaa, der Zustand ist q3 und der Kopf auf dem ersten Zeichen.
– Akzeptierender Zustand ist genauq3.
17-28 Visualisierung der Schichtenstruktur des Schaltkreises. 17-28
0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0
Symbola Zustandq1 Kopfhier Symbolb ignoriert Kopfwoanders Symbol ignoriert Kopfwoanders Symbol ignoriert Kopfwoanders
Schicht-Verknüpfungs-Schaltkreis Schicht-Verknüpfungs-Schaltkreis
Schicht-Verknüpfungs-Schaltkreis
0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
...
∧
17 Untere Schranken I
17.2 P-Vollständigkeit 131
17-29 Was in den Schicht-Verknüpfungs-Schaltkreisen passiert. 17-29
– Wir wollen einen (flachen) Schaltkreis angeben, derSchicht i mit Schichti+1 ver- knüpft.
– Dieser Schaltkreis besteht aus p(n)vielenBoxen.
– Jede Box kümmert sich darum, den Bandinhalt einer bestimmten Zellezzu berechnen.
– Dazu muss sie lediglich die Inhalte der Zelle z in der vorherigen Schicht kennen, sowie die Inhalte der Zelle links und rechts davon.
17-30 Aufbau eines Schicht-Verknüpfungs-Schaltkreises. 17-30
0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0
Symbola Zustandq1 Kopfhier Symbolb ignoriert Kopfwoanders Symbol ignoriert Kopfwoanders Symbol ignoriert Kopfwoanders
Box Box Box Box
Box Box Box Box
0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0
17-31 Wie schwierig ist der Schaltkreis zu bauen? 17-31
Was wir erreicht haben:
– Zu jeder beliebigen Eingabe xkönnen wir einen Schaltkreis konstruieren, der genau dann zu1 auswertet, wennM das Wortxakzeptiert.
Was fehlt:
– Wie schwierig ist es, den Schaltkreis zu konstruieren?
Antwort hierauf:
– Dies ist einfach, daalle Boxen identisch sind.
– Der Schaltkreis besteht im Wesentlichen aus p(n)2 Boxen, die in einfacher Weise verdrahtet sind.
– Es ist leicht, in logarithmischem Platz in einer Schleife p(n)2 Boxen (fester Größe!) auszugeben.
– Die Verdrahtung ist etwas fummeliger, aber auch nicht schwierig.
132 17 Untere Schranken I Übungen zu diesem Kapitel