Berechenbarkeit und Komplexität

Werbung
Berechenbarkeit und Komplexität
Volker Diekert
Universität Stuttgart
http://www.fmi.uni-stuttgart.de/ti/lehre/ws16/buk/
Wintersemester 2016/17
Übungen: Jan Philipp Wächter
1 / 298
Teil 1: Grundlagen
Im Folgenden behandeln wir einige Grundlagen:
I Turingmaschinen (nicht-deterministisch, deterministisch)
I Kongurationen
I Berechnungen,...
I Turingmaschinen können auf viele verschiedene äquivalente
Weisen deniert werden.
I Wir könnten Turingmaschinen auch durch andere äquivalente
Rechenmodelle ersetzen (z.B. Registermaschinen, Übung).
2 / 298
Einband-Turingmaschinen
Denition
Eine nichtdeterministische Turingmaschine ist ein Tupel
M = (Q, Σ, Γ, δ, q0 , F , b)
I
Q:
I
F ⊆Q:
I
Γ:
endliche Menge der Zustände,
Menge der Endzustände
q0 ∈ Q :
Startzustand
endliches Bandalphabet
I
Σ(Γ:
I
δ ⊆ Q × Γ × Q × Γ × {L, R, N} :
endliches Eingabealphabet,
bewege Kopf nach links (rechts,
b ∈ Γ \ Σ : Blanksymbol
Übergangsrelation.
L (R , N ):
Neutral, also gar nicht)
Sie heiÿt deterministisch, wenn gilt
(p, a, q, b, D), (p, a, q 0 , b 0 , D 0 ) ∈ δ =⇒ (q, b, D) = (q 0 , b 0 , D 0 )
Für eine deterministische TM ist
δ : Q × Γ →p Q × Γ × {L, R, N}
eine
partiell denierte Übergangsfunktion.
3 / 298
Mehrband-Turingmaschinen
Denition
Eine nichtdeterministische Turingmaschine mit
ein Tupel
M = (Q, Σ, Γ, δ, q0 , F , b)
I
Q:
I
q0 ∈ Q :
I
F ⊆Q:
Γ:
I
Σ(Γ:
I
ist
endliche Menge der Zustände
I
I
k -Arbeitsbändern
Startzustand
Menge der Endzustände
endliches Bandalphabet
endliches Eingabealphabet
b ∈ Γ \ Σ : Blanksymbol
δ ⊆ Q × (Σ ∪ {b}) × Γk × Q × Γk × {L, R, N}k+1 :
Übergangsrelation.
L (R , N ):
bewege Kopf nach links (rechts,
Neutral, also gar nicht)
4 / 298
Turingmaschinen: Denition
Bei einer deterministischen
k -Band
Turingmaschine
M
ist
δ
eine
partiell denierte Funktion
δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 .
M zusätzlich ein
Σ0 und für δ gilt:
δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 × (Σ0 ∪ {λ})
(λ ist das leere Wort).
Soll
M
eine Funktion berechnen, so hat
Ausgabealphabet
5 / 298
Turingmaschinen: Kongurationen
α der Turingmaschine M bei
α = (q, u0 , v0 , u1 , v1 , . . . , uk , vk ), mit:
Eine Konguration
ein Tupel
I
I
q∈Q:
w ∈ Σ∗
ist
aktueller Zustand der Turingmaschine
u0 v0 = w b, v0 6= λ:
Der Lesekopf für das Eingabeband liest
gerade das erste Symbol von
I
Eingabe
v0 .
∀i ∈ {1, . . . , k} : ui ∈
vi ∈ Γ+ :
Das i -te Arbeitsband hat den Inhalt ui vi bb · · ·
Γ∗ ,
und der
Schreib/Lesekopf liest gerade das erste Symbol von
i -te
vi .
6 / 298
Beschreibungslänge von Kongurationen
Für eine Mehrband TM kann das Eingabeband und damit
verändert werden. Daher können
α
w
nicht
durch das Tupel
(q, |u0 | , u1 , v1 , . . . , uk , vk ) ersetzen.
Die Länge |α| von α ist dann |α| = max { |ui vi | |
1
≤ i ≤ k }.
Für eine Einband-TM (ohne explizite Arbeitsbänder) schreiben wir
dagegen Kongurationen häug als Wörter:
uqv ∈ Γ∗ QΓ+
es gilt dann:
Die TM ist dann im Zustand
q
|uqv | = 1+
Wortlänge von
und liest das erste Zeichen von
uv
v.
7 / 298
Turingmaschinen: Startkonguration, akzeptierende
Kongurationen, . . .
1. Für die Eingabe
die zu
w
Beachte:
w ∈ Σ∗
ist
Start(w ) = (q0 , λ, w b, λ, b, . . . , λ, b)
gehörende Startkonguration.
| Start(w )| = 1.
α, β schreiben wir α `d β ,
d auf die Konguration α anwendbar ist,
und die Konguration β ergibt.
[
Es sei `M =
`d .
2. Für ein
d ∈δ
und Kongurationen
falls die Anweisung
3.
d∈δ
4. Mit
Accept bezeichnen wir die Menge der akzeptierenden
Kongurationen (aktueller Zustand ist aus
5. Beachte:
α `M β ⇒ |α| − |β| ∈ {−1, 0, 1}
F ⊆ Q ).
8 / 298
Turingmaschinen: Berechnungen, Protokolle
M bei Eingabe w
α0 , α1 , . . . , αm mit
1. Eine Rechnung von
Kongurationen
I
I
Start(w ) = α0
∀1 ≤ i ≤ m : αi−1 `M αi
Die Berechnung ist erfolgreich, falls
ist eine Folge von
αm ∈ Accept.
2. Das Protokoll dieser Rechnung ist die Folge
mit
αi `di αi+1
d0 d1 . . . dm−1 ∈ δ ∗
9 / 298
Turingmaschinen: akzeptierte Menge, Zeit- und Platzbedarf
1. Der Zeitbedarf (bzw. Speicherbedarf) der Berechnung
α0 , α1 , . . . , αm
2.
ist
m
(bzw. max{|αi |
| 0 ≤ i ≤ m}).
M hat bei Eingabe w den Zeitbedarf (bzw. Speicherbedarf )
N ∈ N, falls jede Berechnung von M bei Eingabe w Zeitbedarf
(bzw. Speicherbedarf ) ≤ N hat.
M akzeptierte Menge ist
L(M) = {w ∈ Σ∗ | ∃ erfolgreiche
3. Die von
Berechnung von
M
bei Eingabe
w }.
10 / 298
Komplexitätsklassen
s : N → N monoton wachsende Funktionen.
{L ⊆ Σ∗ | es existiert deterministische Turingmaschine M mit L = L(M), die auf allen Eingaben
der Länge n Zeitbedarf max{t(n), n + 1} hat.}
NTIME(t) = {L ⊆ Σ∗ | es existiert nichtdeterministische Turingmaschine M mit L = L(M), die auf allen Eingaben
der Länge n Zeitbedarf max{t(n), n + 1} hat.}
DSPACE(s) = {L ⊆ Σ∗ | es existiert deterministische Turingmaschine M mit L = L(M), die auf allen Eingaben
der Länge n Speicherbedarf s(n) hat.}
NSPACE(s) = {L ⊆ Σ∗ | es existiert nichtdeterministische Turingmaschine M mit L = L(M), die auf allen Eingaben
der Länge n Speicherbedarf s(n) hat.}
∗
Für eine Komplexitätsklasse C ist CoC = {L | Σ \ L ∈ C} die Menge
der Komplemente der in C enthaltenen Sprachen.
Seien
t:N→N
DTIME(t)
und
=
11 / 298
Komplexitätsklassen
Wir werden die Klassen
Funktionen
t(n)
mit
DTIME(t) und NTIME(t) nur für
∀n ∈ N : t(n) ≥ n
betrachten.
Dies erlaubt, die gesamte Eingabe zu lesen, da wir tatsächlich immer
n+1
Schritte erlauben.
DSPACE(s) und NSPACE(s) nur für
s(n) ∈ Ω(log(n)).
erlaubt, eine Position i ∈ {1, . . . , n} im Eingabestring auf
Wir werden die Klassen
Funktionen
Dies
einem
Arbeitsband abzuspeichern.
12 / 298
Wichtige Komplexitätsklassen
Gebräuchlichen Abkürzungen:
L = DSPACE(log(n))
NL = NSPACE(log(n))
[
P =
DTIME(nk )
k≥1
NP =
[
k≥1
PSPACE =
[
k≥1
Die Gleichung
(1)
(2)
(3)
NTIME(nk )
DSPACE(nk ) =
(4)
[
k≥1
NSPACE(nk )
(5)
= in (5) ist als Satz von Savitch bekannt (kommt noch).
13 / 298
Beziehungen zwischen Komplexitätsklassen
?
PSPACE = IP
6=
NSPACE(n) = CoNSPACE(n)
NP
?
? (1. LBA Problem)
NP ∩ CoNP
DSPACE(n)
?
P
S
?
NL
?
k≥1
DSPACE(log
k
6=
S
(n)) = k≥1 NSPACE(logk (n))
6=
L
Es gibt noch viele weitere Komplexitätsklassen: Besuchen Sie doch den
complexity zoo
(http://qwiki.caltech.edu/wiki/Complexity_Zoo)
14 / 298
Beispiele
I
I
I
{an b n c n | n ≥ 1} ∈ L
{w $w R | w ∈ Σ∗ }, {ww R | w ∈ Σ∗ } ∈ L
{w $w | w ∈ Σ∗ }, {ww | w ∈ Σ∗ } ∈ L
I Die Menge PRIM
Primzahl
}
ist in
= {p ∈ 1{0, 1}∗ | p
P.
ist Binärcodierung einer
Agrawal, Kayal und Saxena haben 2002 gezeigt, dass PRIM
gilt, vorher war nur PRIM
∈ NP ∩ CoNP
bekannt.
∈P
15 / 298
(Polynomialzeit-)Reduktionen
Seien
A, B ⊆ Σ∗ ,
A ≤ B falls es
→ Σ0∗ gibt mit:
wir schreiben
berechenbare Funktion
f :
Σ∗
eine total denierte
∀x ∈ Σ∗ : x ∈ A ⇐⇒ f (x) ∈ B.
In diesem Fall heiÿt
Ist die Reduktion
A ≤P B
f
A
auf
B
reduzierbar.
in Polynomialzeit berechenbar, so schreiben wir
und sagen, dass
A
auf
B
in Polynomialzeit reduzierbar ist.
16 / 298
Eigenschaften von Sprachen und Turingmaschinen
Konventionen:
Σ ist ein Eingabealphabet,
etwa
Σ = { 0, 1 }.
mathematisch spezizierte Objekte, so meint
eine Standardkodierung, etwa mittels ASCII.
Bezeichnen A1 , . . . Ak
hA1 , . . . Ak i ∈ { 0, 1 }
Eine Eigenschaft von Sprachen ist eine Abbildung
dabei heiÿt
S(L) = 1
dass
Nicht-trivial heiÿt, es gibt
∗
S : 2 Σ → { 0 , 1 },
S für L gilt.
L0 und L1 mit S(L0 ) = 0
und
S(L1 ) = 1.
Eine Eigenschaft von Turingmaschinen ist eine Abbildung
S : { hMi | M
} → { 0 , 1 }.
S einer Sprache ist
S(M) = S(L(M))
ist TM
Jede Eigenschaft
Maschine. Setze
auch eine Eigenschaft der
Die Umkehrung ist falsch: Die Turingmaschine hat fünf Zustände ist
keine Eigenschaft der Sprache, sondern nur eine Eigenschaft der TM.
17 / 298
Satz von Rice
Wir können auch Reduktionen verwenden, um Probleme als
unentscheidbar nachzuweisen. Denn ist
A ≤ B,
so muss auch
B
A
unentscheidbar und gilt
unentscheidbar sein.
Theorem
Jede nicht-triviale Eigenschaft rekursiv aufzählbarer Sprachen ist
unentscheidbar.
18 / 298
Beweis des Satzes von Rice
I 1. Idee: Ist die Eigenschaft
S
also gilt ohne Einschränkung
entscheidbar, so auch
S(∅) = 0.
I 2. Idee: Nicht-trivial bedeutet, es gibt
L1 = L(M1 )
¬S = 1 − S ,
mit
S(L1 ) = 1.
(M, w ). Wir können i.A. nicht
w ∈ L(M) gilt. Wir wollen diese Frage auf
S(L(f (M, w ))) = 1? reduzieren.
I 3. Idee: Betrachte ein Paar
entscheiden, ob
Frage
I Die TM
f (M, w )
I Auf eine Eingabe
überhaupt
v
arbeite wie folgt:
v
simuliert sie zunächst
M
S(L(f (M, w ))) = 1
gdw
M1
w (ohne
w ∈ L(M)
auf Eingabe
zu betrachten). Falls sich irgendwann
ergibt, so simuliert sie danach die TM
I Schluss: Es gilt
die
auf
v.
w ∈ L(M).
19 / 298
Satz von Rice für aufzählbare Eigenschaften
Theorem
Sei
S
eine Eigenschaft rekursiv aufzählbarer Sprachen. Dann sind die
folgenden Bedingungen äquivalent:
1.)
S
ist semi-entscheidbar, d.h. die Sprache der Codierungen von
Turingmaschinen
aufzählbar.
{ hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 }
ist
2.) Es gelten die folgenden drei Bedingungen
L mit S(L) = 1
S(K ) = 1.
I Für alle
gibt es eine endliche Teilmenge
K ⊆L
mit
I Die Menge
{ hK1 i , hK2 i , . . . | Ki ⊆ Σ∗
ist endlich und
S(Ki ) = 1 } ⊆ { 0, 1 }
∗
ist aufzählbar.
I Die Eigenschaft
S
ist monoton:
L ⊆ L0
impliziert
S(L) ≤ S(L0 )
20 / 298
Die Bedingungen sind hinreichend
Akzepiere
S(Ki ) = 1
hMi
Ki aus der
Ki ⊆ L(M) gilt.
gdw eine endliche Menge
gefunden wird, für die
Liste mit
21 / 298
Vorbereitung: Sprachen L(M, k)
Für eine TM
M
sei
L(M, k)
die endliche Menge:
L(M, k) = { w ∈ Σ∗ | |w | ≤ k ∧ M
akzeptiert
w
in höchstens
k
Schritten
Beobachtung:
1.)
L(M, k)
2.)
L(M, k) ist uniform berechenbar,
wir L(M, k) berechnen.
ist endlich.
d.h. auf Eingabe
M, k
können
3.)
L(M) =
[
{ L(M, k) | k ∈ N }
22 / 298
}
Notwendigkeit der 1. Bedingung
L = L(M1 ) mit
S(K ) = 0 für alle endlichen Teilmengen K . Wir
{ hM, w i | w ∈
/ L(M) } aufzählbar ist. Dies ist ein
Angenommen, es gibt eine aufzählbare Sprache
S(L) = 1,
dass dann
aber
zeigen
Widerspruch.
Deniere eine TM
f (M, w )
M
für jede TM
und jedes Wort
wie folgt:
Eingabe:
v ∈ Σ∗ .
Arbeitsweise: Durchlaufe
k = 1, 2, . . .
w ∈ L(M, k).
bis
Wird die Schleife beendet, so akzeptiert
v ∈ L(M1 , k)
f (M, w )
w ∈ Σ∗
oder
die Eingabe
v,
falls
v ∈ L(M1 , k).
I w ∈ L(M): Dann ist L(f (M, w )) ⊆ L eine endliche Teilmenge,
also S(L(f (M, w ))) = 0.
I w ∈
/ L(M): Dann ist L(f (M, w )) = L, also S(L(f (M, w ))) = 1.
Dies liefert eine Reduktion:
{ hM, w i | w ∈
/ L(M) } ≤ { hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 }
vermöge
hM, w i 7→ hf (M, w )i
23 / 298
Notwendigkeit der 2. Bedingung
Trivial! (Selbsttest)
24 / 298
Notwendigkeit der 3. Bedingung
Mit Widerspruch: Betrachte
Deniere eine TM
g (M, w )
L ⊆ L0
für jede
wie folgt:
v ∈ Σ∗ .
Arbeitsweise: g (M, w )
S(L) = 1 und S(L0 ) = 0
∗
TM M und jedes Wort w ∈ Σ
mit
Eingabe:
akzeptiert die Eingabe
v,
falls
v ∈ L ∨ (v ∈ L0 ∧ w ∈ L(M)).
I
I
w ∈ L(M):
w∈
/ L(M):
Dann ist
L(g (M, w )) = L0 ,
Dann ist
L(g (M, w )) = L,
also
also
S(L(g (M, w ))) = 0.
S(L(g (M, w ))) = 1.
Dies liefert eine Reduktion:
{ hM, w i | w ∈
/ L(M) } ≤ { hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 }
vermöge
hM, w i 7→ hg (M, w )i
25 / 298
Tafelvorlesung
Die folgenden Dinge fehlen damit im Skript, gehören aber zum
Vorlesungssto.
1.) Beispiele für die Sätze von Rice
2.) Aufzählbare Version impliziert die entscheidbare.
26 / 298
Das Postsche Korrespondenzproblem
Emil Leon Post (* 11. Februar 1897 in Augustów, Polen;
„
21. April
1954 in New York, USA) war ein polnisch-US-amerikanischer
Mathematiker und Logiker.
Post formulierte das nach ihm benannte Korrespondenzproblem und
bewies die Unentscheidbarkeit im Jahre 1946.
27 / 298
PKP: Das Postsche Korrespondenzproblem
A ein endliches Alphabet und P eine
A = { a, b, . . . , z } und P = { 1, . . . , k }.
∗
∗
Seien f : P → A und g : P → A zwei Abbildungen. Wir können für
P = { 1, . . . , k } das Paar (f , g ) durch eine Menge von Paaren
Algebraische Formulierung. Seien
endliche (Index-)Menge: etwa
darstellen:
{ (f (1), g (1)), . . . , (f (k), g (k)) } .
Die Abbildungen werden zu Homomorphismen
g:
P∗
→
A∗ fortgesetzt: Ist
Abbildung so ist
W = i1 · · · im ∈
f : P ∗ → A∗ und
f : P → A∗
P ∗ und
eine
f (W ) = f (i1 ) · · · f (im ) ∈ A∗ .
Das PKP ist das folgende Entscheidungsproblem.
I
I
Eingabe: f : P → A∗ und g : P → A∗
Frage: ∃W ∈ P + : f (w ) = g (w )?
(als Menge von Paaren).
28 / 298
Unentscheidbarkeit des PKP
Theorem
Für
|A| = 2
(also
A = { 0, 1 })
gibt es eektiv ein
k ∈N
so, dass das
PKP für diese Parameter unentscheidbar ist. D.h., es gibt keine Turing
Maschine
M,
die auf Eingabe einer Menge von Paaren
{ (f (1), g (1)), . . . , (f (k), g (k)) } ⊆ A∗ × A∗
entscheidet, ob das zugehörige PKP eine Lösung hat.
Die Menge
{ hf , g i | { (f (1), g (1)), . . . , (f (k), g (k)) }
ist lösbar
}
ist also aufzählbar, aber nicht entscheidbar.
29 / 298
Einfache Instanzen des Postschen Korrespondenzproblems
I
I1 = { (aba, b), (abb, ab), (aa, a), (ba, aab) }
| {z } | {z } | {z } | {z }
1
2
3
4
Es gibt keine Lösung, denn eine solche könnte nur mit dem
dritten Paar enden, wodurch auch an vorletzter Stelle der Lösung
das dritte Paar stehen müsste usw.
I
I2 = { (ac, bra), (abr , a), (ad, c), (a, dabra) }
| {z } | {z } | {z } | {z }
1
(2 , 1 , 3 , 2 , 4 )
I
2
3
4
ist eine Lösung.
I3 = {(aa, ab), (ab, a), (bab, ba), (aba, ba), (bb, ba)}
| {z } | {z } | {z } | {z } | {z }
1
2
3
4
5
Eine Lösung müsste mit dem zweiten oder dritten Paar beginnen.
Bei beiden ist die erste Komponente länger als die zweite. Dieser
Längenunterschied kann durch kein Paar ausgeglichen werden.
30 / 298
Ein Postschen Korrespondenzproblem mit einer langen
kürzesten Lösung
1. Paar
:
001
2. Paar
:
01
011
3. Paar
:
01
101
4. Paar
:
10
001
0
Eine kürzeste Lösung besteht aus 66 Paaren:
(2, 4, 3, 4, 4, 2, 1, 2, 4, 3, 4, 3, 4, 4, 3, 4, 4, 2, 1, 4, 4, 2, 1,
3, 4, 1, 1, 3, 4, 4, 4, 2, 1, 2, 1, 1, 1, 3, 4, 3, 4, 1, 2, 1, 4, 4,
2, 1, 4, 1, 1, 3, 4, 1, 1, 3, 1, 1, 3, 1, 2, 1, 4, 1, 1, 3)
31 / 298
Unentscheidbarkeit des PKP
Wir schreiben eine deterministische Turingmaschine
M = (Q, Σ, Γ, δ, q0 , F , B)
in einem Regelsystem um. Hierbei sei
Blanksymbol. Wir können annehmen, dass
B
geschrieben werden kann: Man schreibe dann etwa ein
F = {$}
und für
$
B
das
zwar gelesen, aber nie
Be.
Es sei
ist kein Folgezustand deniert, ferner:
δ ⊆ Q × Γ × Q × Γ × { L, R } .
I Für
(p, a, q, b, R)
gibt es die Regel
I Für
(p, a, q, b, L)
gibt es die Regeln
I Bandverlängerungsregeln:
I Halteregeln:
Es gilt jetzt
cpa → qcb .
e
qB → q BB
a$ → $, $a → $
w ∈ L(M)
pa → bq .
und
$ → $.
gdw. eine Rechnung wie folgt existiert:
q0 wB → u1 p1 v1 → u2 p2 v2 → u3 p3 v3 → · · · → $ → $.
32 / 298
Unentscheidbarkeit des PKP
x ∈ Q ∪ Γ erhalten eine Kopie x 0 ∈ Q ∪ Γ. Aus einer
pa → bq werden dann zwei Regeln: pa → b 0 q 0 und p 0 a0 → bq ,
Alle Symbole
Regel
usw. Auÿerdem benötigen wir Kopierregeln für jedes Bandsymbol
x ∈Γ
der Form
x → x0
und
Erzeuge neues Regelsystem
folgt existiert:
x0 → x.
R mit w ∈ L(M)
gdw. eine Rechnung wie
q0 wB → u10 p10 v10 → u2 p2 v2 → u30 p30 v30 → · · · → $0 → $.
Eine solche Rechnung kann man als ein einziges Wort kodieren:
W = ¢q0 wBu10 p10 v10 u2 p2 v2 u30 p30 v30 · · · $0 $.
M wie eben und jedem
w ∈ L(M) gdw. W ist eine Lösung.
Wir konstruieren jetzt zu jeder Turingmaschine
w∈
Σ+ ein PKP
P(M, w )
mit
33 / 298
Das PKP P(M, w )
I = R ∪ Γ ∪ Γ0 ∪ { ¢, ¢0 } . Das Zielalphabet ist
A=Q ∪Γ∪
∪ Γ0 ∪ { ¢ } (Wir können A∗ nach { 0, 1 }∗ kodieren.)
+
Denition von f , g : I → A vermöge:
Die Indexmenge ist
Q0
I
f (¢) = ¢q0 wB
und
g (¢) = ¢. (g
klappert hinterher.)
I Ist r = (u → v 0 ) eine Regel (also etwa
0
deniere g (r ) = u und f (r ) = v .
I Ist
so
pa → b 0 q 0
r 0 = (u 0 → v ) eine Regel (also etwa p 0 a0 → bq
0
0
0
deniere g (r ) = u und f (r ) = v .
I Abschluss:
Jetzt gilt
f (¢0 ) = $
w ∈ L(M)
und
oder
x → x 0)
oder
so
x0 → x)
g (¢0 ) = $0 $.
gdw. das Wort
W
löst das PKP
P(M, w ).
34 / 298
Anwendungen für kontext-freie Sprachen
Unentscheidbar sind:
I
Eingabe: Zwei deterministische Kellerautomaten A, B .
Frage: L(A) ∩ L(B) = ∅?
Frage: L(A) ⊆ L(B)? (Hinweis: L ⊆ K ⇐⇒ L ∩ (Σ∗ \ K ) = ∅.
Beachte auch,
L(A) = L(B)
ist entscheidbar nach G. Sénizergues,
ICALP 1997).
I
Eingabe: Eine kontext-freie Grammatik G .
Frage: L(G ) = Σ∗ ? (Beachte, L(A) = Σ∗ ist entscheidbar für
deterministische Kellerautomaten).
Stand der PKP-Forschung 2016 (soweit dem Autor bekannt). PKP(k )
bezeichne die Menge der lösbaren PKPs mit
|I | = k
und
|A| = 2.
I PKP(k ) ist aufzählbar.
I PKP(2) ist entscheidbar.
I PKP(5) ist unentscheidbar. (T. Neary, STACS 2015)
I Der Status von PKP(3) und PKP(4) ist jeweils unbekannt.
35 / 298
Was ist Semantik
Programmiersprachen werden von drei Blickwinkeln betrachtet:
a) Syntax (elementare lexikalische und grammatikalische Struktur;
keine Beziehung zur Bedeutung oder Interpretation)
b) Semantik (Bedeutung, Interpretation; z.B. eine Zahl, eine
Funktion,. . . )
c) Pragmatik (Brauchbarkeit, Lesbarkeit,
Übersetzbarkeit,. . . )
Semantik von Programmiersprachen dient nicht nur dazu, den Sinn
eines Programms festzulegen, sondern sie soll auch z.B. ein Hilfsmittel
für Korrektheitsbeweise darstellen.
36 / 298
Erste Beispiele
Beispiel 1.2.1 Binärzahlen
Syntaktische Beschreibung:
BIN = {w ∈ {0, 1}∗ | w = 0
oder
Semantik:
Sei
w ∈ BIN .
w
beginnt mit 1}
w = 0, so ist der Wert von w
w die Zahl 1.
w = 0 und w = 1 die Ziern 0
Ist
die Zahl 0. Ist
w = 1,
so ist der Wert von
(Hierbei sind in
und 1 einfach
Buchstaben, während die Zahl 0 bzw. 1 jeweils das Element von
N
bezeichnet.)
w = w 00
w0
gröÿer als 0, so ist der Wert von
w
0
das Doppelte des Wertes von w .
0
0
Ist w = w 1 und die Länge von w gröÿer als 0, so ist der Wert von
0
gleich 2 mal der Wert von w plus 1.
w
Ist
und die Länge von
37 / 298
Unäre Zahlen
Syntaktische Beschreibung:
UNAT = 0∗ 1
Semantik:
Sei
w = 0n 1.
Dann ist der Wert von
Probleme, wie Ist
UNAT
n
w
n.
für BIN
die Zahl
eine Primzahl? , können
schwer und für
ganz einfach sein.
38 / 298
RAT und REG
Beispiel 1.2.2 Rationale (oder reguläre) Ausdrücke
Syntax: (Sei Γ = {a1 , . . . , ak }.)
∅, a1 , . . . , ak sind Elemente von RegExpΓ .
Wenn α und β Elemente von RegExpΓ sind, dann sind auch (αβ),
(α ∪ β) und (α)∗ in RegExpΓ . ε ist eine Abkürzung von ∅∗
Semantik:
Wie üblich kann ein Ausdruck mit einer Teilmenge von
Γ∗
identiziert
werden, also mit einer Formalen Sprache.
39 / 298
Semantik-Funktionen
Als Semantik-Funktion bezeichnen wir die Abbildung, die zu jeder
syntaktisch korrekten Konstruktion ihre Bedeutung als Resultat liefert:
B : BIN → N
(z.B.
B(101010) = 42).
Was ist 42? In der Mengenleere kann man 42 wie folgt denieren:
42
41
= {0, . . . 41}
= {0, . . . 40}
.
.
.
0
=∅
40 / 298
IMP-Programme
Die Sprache IMP
IMP steht für
Imperative Sprache
Grundbereiche
Natürliche Zahlen
Wahrheitswerte
Variablen
N
B = {true, false} = { 1, 0 }
V = {X1 , X2 , X3 , . . . }
(abzählbare Menge von Bezeichnern)
Benutzte Variablen
Speicherzustände
Loc ⊆ V
Σ = NLoc = {σ : Loc → N}
41 / 298
Konvention:
Falls z.B.
Loc = {X , Y , Z }
mit impliziter Ordnung
X < Y < Z,
dann (übersichtlicher):
Σ = NLoc = N × N × N = N3
(3, 1, 2)
Z = 2.
ist dann der Speicherzustand
σ∈Σ
mit
X = 3, Y = 1
und
Eigentlich müssten wir schreiben
σ(X ) = 3 σ(Y ) = 1 σ(Z ) = 2.
42 / 298
IMP verfügt über drei Arten syntaktischer Konstrukte:
I Arithmetische Ausdrücke
Aexp)
(
I Boolesche Ausdrücke
Bexp)
(
I Anweisungen bzw. Programme
Cmd)
(
43 / 298
Aexp
Syntaktische Denition:
a
Dabei ist
::=
n | X | (a1 + a2 ) | (a1 − a2 ) | (a1 · a2 )
n ∈ N, X ∈ V.
Die Klammern können manchmal
weggelassen werden, wenn dadurch keine Mehrdeutigkeit entsteht.
Das heiÿt also:
1. Natürliche Zahlen und Variablen bilden arithmetische Ausdrücke.
a1 und a2 zu Aexp
(a1 − a2 ), (a1 · a2 ).
2. Wenn
3. Sonst gehört nichts zu
gehören, dann auch
(a1 + a2 ),
Aexp.
44 / 298
Beispiele
((((X1 · 3) − 5) + X2 ) − (X3 · 88)) ∈ Aexp
Streng genommen: 5X2
Auswertung
6∈ Aexp
Arithmetische Ausdrücke werten sich je nach Speicherzustand zu einer
natürlichen Zahl aus.
Formal haben wir also eine Funktion vom Typ
Aexp × Σ → N
Wir schreiben
zur Zahl
n
(a, σ) → n,
falls der Ausdruck
a
im Speicherzustand
σ
ausgewertet wird.
45 / 298
Die Auswertung ist wie folgt deniert:
(n, σ) → n
(X , σ) → σ(X )
((a1 + a2 ), σ) → n1 + n2
(n ∈ N, σ ∈ Σ)
(X ∈ Loc, σ ∈ Σ)
wobei
für
(ai , σ) → ni
i = 1, 2
((a1 − a2 ), σ) → max{0, n1 − n2 } wobei (ai , σ) → ni
für
((a1 · a2 ), σ) → n1 · n2
Die Zeichen
+, −, ·
i = 1, 2
wobei
für
(ai , σ) → ni
i = 1, 2
auf der rechten Seite bezeichnen die bekannten
Operationen auf ganzen Zahlen!
46 / 298
Andere Schreibweise für diese Auswertung:
A : Aexp → (Σ → N)
Die Semantik-Funktion
A
ordnet jedem Ausdruck
a ∈ Aexp
eine
Funktion auf der Menge der Speicherzustände mit natürlichzahligen
Werten zu.
Für
(a, σ) → n
schreiben wir daher auch
A[[a]]σ = n
47 / 298
Bexp
Syntaktische Denition:
b
::=
true | false | a1 = a2 | a1 < a2 |
a1 > a2 | a1 6= a2 | ¬b | b1 ∧ b2 |
b1 ∨ b2 | b1 ⇒ b2 | b1 ⇔ b2
Dabei seien
a1 , a2 ∈ Aexp, b, b1 , b2 ∈ Bexp.
Auswertung
(b, σ) → t
für geeignetes
Wir schreiben hier auch
t ∈ B.
B[[b]]σ = t
Also:
B : Bexp → (Σ → B)
48 / 298
Die Auswertung boolescher Ausdrücke geschieht nach folgenden
Regeln:
(t, σ) → t
(t
∈ B, σ ∈ Σ)
(a1 = a2 , σ) → true
(wenn
(a1 < a2 , σ)
analog zu
(a1 > a2 , σ)
ebenfalls analog
(a1 6= a2 , σ)
ebenfalls analog
(a1 = a2 , σ) → false
(wenn
(ai , σ) → ni
(ai , σ) → ni
für
i = 1, 2
und
n1 = n2
gilt)
für
i = 1, 2
und
n1 6= n2
gilt)
(a1 = a2 , σ)
49 / 298
(¬b, σ) → true
wenn
(b1 ∨ b2 , σ) → true
(wenn
(¬b, σ) → false
(b1 ∨ b2 , σ) → false
wenn
(b, σ) → false
(b, σ) → true
(wenn
(b1 , σ) → true
(b1 , σ) → false
(b1 ∧ b2 , σ)
analog.
(b1 ⇒ b2 , σ) → false
(wenn
(b1 ⇒ b2 , σ) → true
(b1 ⇔ b2 , σ)
(wenn
(b1 , σ) → false
(b1 , σ) → true
analog.
oder
gilt)
(b2 , σ) → true
gilt)
(b2 , σ) → false
und
oder
und
(b2 , σ) → true
(b2 , σ) → false
gilt)
gilt)
50 / 298
Cmd
Syntaktische Denition:
c
::=
skip | X
:=
a | c1 ; c2 |
if b then c1 else c2 | while b do c od
(X
∈ V, a ∈ Aexp, b ∈ Bexp, c, c1 , c2 ∈ Cmd.)
Auswertung
Einem gegebenen Programm
σ∈Σ
c ∈ Cmd und einem Speicherzustand
σ 0 ∈ Σ zugeordnet:
wird ein neuer Speicherzustand
Cmd × Σ →p Σ
oder auch
(Das
p
C : Cmd → (Σ →p Σ)
am Pfeil steht für partiell).
51 / 298
Einschub: Loop-Programme
Loop-Programme sind syntaktisch wie folgt aufgebaut:
c
(X
::=
skip | X := a | c1 ; c2 | if b then c1 else c2 |
loop X do c od
∈ V, a ∈ Aexp, b ∈ Bexp, c, c1 , c2 ∈ Cmd.)
Die loop-Schleife verhält sich dabei gleich wie folgendes
Programmfragment:
Y
:=
wobei
Y
X ; while Y > 0 do c ; Y
:=
Y − 1 od
eine neue Variable ist und insbesondere in
c
nicht verwendet
wird.
Eine loop-Schleife führt also genau
X
n-mal c
aus, wenn
n
der Wert von
zu Beginn der loop-Schleife ist.
52 / 298
Einschub: Loop-berechenbar = primitiv rekursiv
Theorem
Sei
f : Nk → N.
Dann ist
f
genau dann loop-berechenbar, wenn
f
primitiv rekursiv.
Die Beweisidee ist im Wesentlichen, dass sich eine primitive Rekursion
in eine loop-Schleife übersetzen lässt und umgekehrt.
Technisch muss man bei der Richtung loop-berechenbar
⇒
primitiv
rekursiv mehrere Programmvariablen in eine Zahl kodieren. Dies ist
mit Hilfe der bijektiven Kodierungsfunktion
c : N2 → N
x +y +1
(x, y ) 7→
+x
2
möglich.
53 / 298
Arithmetische Darstellung
(Arithmetische) Formeln sind gegeben durch
F
wobei
b ∈ Bexp
::=
b | F1 ∨ F2 | ¬G | ∃X : G | ∀X : G
und
G , F1 , F2
bereits arithmetische Formeln sind. Die
Auswertung bei gegebener Interpretation erfolgt wie üblich.
Wir schreiben
Xk
F (X1 , . . . , Xk ),
falls in
F
höchstens die Variablen
X1
bis
frei vorkommen.
54 / 298
Arithmetische Darstellung
Sei
f : Nk →p N`
eine (evt. partielle) Funktion.
F ist arithmetische Darstellung
F = F (X1 , . . . , Xk , Y1 , . . . , Y` ) und
Eine Formel
F (x1 , . . . , xk , y1 , . . . , y` )
gdw
von
f,
f (x1 , . . . , xk )
falls
deniert und
f (x1 , . . . , xk ) = (y1 , . . . , y` )
für alle
xi , yi ∈ N.
Intuitiv bedeutet dies, dass
F
genau das Verhalten der Funktion
f
beschreibt.
f
ist arithmetisch darstellbar, falls eine arithmetische Darstellung
existiert.
55 / 298
Das Gödelsche β -Prädikat
Lemma 5.2.3
Das Prädikat
β : N4 → B
sei deniert durch
β(a, b, i, x) ⇔ x = a mod (1 + b(i + 1)).
k, n0 , . . . , nk ∈ N. Dann gibt es
j ∈ {0, 1, . . . , k} und alle x ∈ N gilt:
Seien
Zahlen
n, m ∈ N
so, dass für alle
β(n, m, j, x) ⇔ x = nj .
Beweis:
Setze
m = (max{k, n0 , n1 , . . . , nk })!.
Zeige: ggT(1
+ m(i + 1), 1 + m(j + 1)) = 1
(für 0
dem Chinesischen Restsatz folgt die Existenz einer
n ≡ ni (mod
1
+ m(i + 1))
für
i ∈ {0, . . . , k}
≤ i < j ≤ k ). Mit
Zahl n, für die
gilt.
56 / 298
Das Gödelsche β -Prädikat
β -Prädikat beschreibt nach Denition
(a, b, i) 7→ a mod (1 + b(i + 1)).
Das
β
genau die Funktion
lässt sich auÿerdem als arithmetische Formel schreiben:
β(a, b, i, x) ≡ x < 1 + b(i + 1) ∧ ∃k : a = x + k · (1 + b(i + 1))
57 / 298
Berechenbar ⇒ arithmetisch darstellbar
c ∈ Cmd mit benutzten Variablen
Loc(c) ⊆ { X1 , . . . , Xk } berechnet kanonisch eine Funktion
Ein IMP-Programm
C[[c]] : Nk →p Nk
(diese heiÿt Semantik von
c ).
Der Einfachheit halber betrachten wir im Folgenden nur eine
Programmvariable
X.
Wir können uns diese z.B. als
k -Tupel
von
Variablen vorstellen und folgenden Beweis sehr leicht auf mehrere
Programmvariablen verallgemeinern.
Theorem
Sei c ∈ Cmd ein IMP-Programm. Dann existiert eektiv eine
arithmetische Darstellung
Fc
der Funktion
C[[c]].
58 / 298
Arithmetische Darstellung von c ∈
Cmd
Wir beweisen dies durch Induktion über den Aufbau von
c
und setzen:
Fskip (X , Y ) ≡ (X = Y )
FX :=a (X , Y ) ≡ Y = a(X )
Fc1 ;c2 (X , Y ) ≡ ∃Z Fc1 (X , Z ) ∧ Fc2 (Z , Y )
Für
c = if b then c1 else c2 setze
Fc (X , Y ) ≡ b(X ) ⇒ Fc1 (X , Y ) ∧ ¬b(X ) ⇒ Fc2 (X , Y )
Beachte: Für
c1
und
c2
haben wir induktiv die Formeln
Fc 1
und
Fc 2
bereits zur Verfügung.
59 / 298
Die Arithmetik der while-Schleife
Sei
w = while b do c od.
Betrachte die Formel
Few (X , Y ) ≡ ∃t∃n0 · · · ∃nt : n0 = X ∧ nt = Y ∧ ¬b(Y ) ∧
∀0 ≤ i < t : Fc (ni , ni+1 ) ∧ b(ni )
Diese beschreibt oensichtlich das Verhalten der while-Schleife.
Beachte jedoch: Da
∃n0 · · · ∃nt
aus
t
Existenzquantoren besteht, ist
dies keine arithmetische Formel. Dies können wir mit dem
β -Prädikat
umgehen:
Fw0 (X , Y ) ≡ ∃t∃a∃b : β(a, b, 0, X ) ∧ β(a, b, t, Y ) ∧ ¬b(Y ) ∧
∀i ∃m∃n : i ≥ t ∨ β(a, b, i, m) ∧ β(a, b, i + 1, n) ∧
Fc (m, n) ∧ b(m)
60 / 298
Der Gödelsche Unvollständigkeitssatz
Ein formales Beweissystem ist ein Paar
1.
2.
Sei
(B, f )
wobei
Σ∗ entscheidbar und
B⊆
f : B → Γ∗
A ⊆ Γ∗
berechenbar ist.
eine Menge von wahren Aussagen. Zu jedem
gehört also eine Aussage
¬a ∈ Γ∗
und diese ist falsch. Ein
a∈A
Beweissystem korrekt, konsistent oder vollständig bezüglich
I
(B, f ) ist
a.
korrekt, falls
zeigt
I
I
f (b) ∈ A
für alle
b ∈ B:
(B, f ) ist konsistent, falls
{ f (b) | b ∈ B } ∩ { ¬f (b) | b ∈ B } = ∅.
und das Gegenteil ¬a beweisen,
(B, f )
ist vollständig, falls
ist, kann bewiesen werden.
A
sein:
Der Beweis
b
Man kann nicht
a
A ⊆ { f (b) | b ∈ B }.
Alles, was wahr
Korrektheit impliziert Konsistenz, aber nicht umgekehrt.
Schreibe
` a,
falls
a ∈ f (B).
Wir nennen
a
dann auch herleitbar.
61 / 298
Der Gödelsche Unvollständigkeitssatz
Formale Beweissysteme
Die Idee ist, dass
B ⊆ Σ∗
die Menge der Herleitungen (oder Beweise)
f : B → Γ∗ zu jeder Herleitung angibt, was durch diese
bewiesen wird. (Σ ist dabei das Alphabet, über dem die Beweise
gebildet werden und Γ das Alphabet der Aussagen.)
ist und
Die Forderungen an
B
und
f
bedeuten, dass wir einem Wort
(algorithmisch) ansehen wollen, dass
diese Herleitung zeigt: nämlich
f (b).
b
w ∈ Σ∗
eine Herleitung ist und was
Die Menge
{ f (b) | b ∈ B }
ist
aufzählbar, aber nicht notwendigerweise entscheidbar.
Der Gödelsche Satz ist ein fundamentales Ergebnis, dass die Grenzen
des algorithmisch Machbaren aufzeigt.
Auswirkungen in der Logik, Philosophie sowie den Wirtschafts- und
Sozialwissenschaften.
62 / 298
Der Gödelsche Unvollständigkeitssatz
Konkret wollen wir Beweissysteme für die Menge
TautN
= {F | F
ist Tautologie der Arithmetik über
N
mit
·
und
+}
der wahren arithmetischen Formeln ohne freie Variablen betrachten.
Theorem (Gödel, 1932)
Jedes vollständige Beweissystem für TautN ist inkonsistent und damit
nicht korrekt.
Insbesondere ist jedes korrekte Beweissystem für TautN unvollständig.
Zu jedem korrekten Beweissystem können wir eektiv eine Formel
nden so, dass
F ∈ TautN ,
aber
6` F
F
gilt.
63 / 298
Beweis des Gödelsche Unvollständigkeitssatzes
Im Folgenden sei
{ H(X ) | H(X )
(B, f )
konsistent. Die Menge
ist arithmetische Formel in der freien Varaiblen
ist rekursiv aufzählbar.
{ H(X ) | H(X ) ist arithmetische
{ F0 (X ), F1 (X ), F2 (X ), . . . }
Formel in der freien Varaiblen
X }
X }=
H(X ) gehört genau ein kleinstes G ∈ N mit FG (X ) = H(X ).
Zahl G heiÿt auch Gödelindex von H(X ) und hängt von der
Zu jedem
(Die
gewählten Aufzählung ab.)
{ G ∈ N | ` FG (G ) } ist rekursiv aufzählbar und wir
c ∈ Cmd, das diese Menge semi-entscheidet. Das Programm c
hält auf G mit der Ausgabe 1 genau dann, wenn ` FG (G ).
Also gibt es eine arithmetische Darstellung H(X , Y ) = Hc (X , Y ) mit
Die Menge
nden
∀G ∈ N : H(G , 1) ⇔ ` FG (G ).
64 / 298
Diagonalisierung
¬H(X , 1)
ist eine arithmetische Formel mit der freien Variable
X
.
Diese Formel hat einen Gödelindex.
Wir nden also
Damit gilt
D∈N
mit
FD (X ) = ¬H(X , 1).
FD (X ) ⇔ 6` FX (X ).
Es gibt zwei Fälle.
1.
2.
FD (D) ∈ TautN ,
6` FD (D).
dann ist das System nicht vollständig, da
¬FD (D) ∈ TautN , dann ist das System nicht korrekt, da
` FD (D). Da wir Konsistenz voraussetzen, gilt 6` ¬FD (D),
also ist
das System wiederum nicht vollständig.
Beachte, in einem korrekten System muss daher
FD (D) ∈ TautN
gelten. Dies ist die eektiv konstruierte wahre Formel, die nicht
herleitbar ist.
65 / 298
Der Gödelsche Unvollständigkeitssatz
Die Tautologie
FD (D)
umgangssprachlich gefasst lautet:
Ich bin nicht beweisbar!
Bemerkung: Wir haben mehr gezeigt; Obiger Beweis funktioniert
auch, wenn wir bei dem Beweissystem nur fordern, dass die Menge der
Herleitungen rekursiv aufzählbar ist.
66 / 298
Der Gödelsche Unvollständigkeitssatz
Eine Konsequenz
Aus dem Gödelschen Unvollständigkeitssatz können wir nun leicht
folgendes Unentscheidbarkeitsresultat einsehen.
Korollar:
Sowohl TautN als auch dessen Komplement TautN sind nicht rekursiv
aufzählbar.
Beweis: Übung.
67 / 298
Zusammenfassung
I Die Menge der Tautologien der Aussagenlogik ist entscheidbar.
(Vorgri: Sie ist
NP-vollständig.)
I Die Menge der Tautologien der Prädikatenlogik 1. Stufe ist nicht
entscheidbar, aber aufzählbar.
I Die Menge der arithmetischen Tautologien (Fragment der
Prädikatenlogik 2. Stufe) ist weder aufzählbar, noch ist ihr
Komplement aufzählbar.
68 / 298
Vorlesung 14.11.2016 Komplexitätstheorie
Varianten algorithmischer Probleme
Beispiel 1: Traveling Salesman Problem (TSP)
Ein Reisender will eine gegebene Anzahl von Städten besuchen, ohne
dabei an einem Ort zweimal vorbeizukommen, und er will dabei den
kürzesten Weg nehmen. Das Wegenetz kann als gerichteter Graph und
die Wegstrecken als Gewichte auf den Kanten des Graphen aufgefasst
werden. Die Knoten stellen die Städte dar.
Sei G = (V , E , γ : E → N) ein gerichteter Graph mit Knotenmenge
V = {1, ..., n}, Kantenmenge E ⊆ V × V und den Kantengewichten
γ(e) > 0 für alle e ∈ E .
Ein Rundweg W ist gegeben durch eine Folge W = (x0 , . . . , xn ),
x0 = xn , xi 6= xj für 1 ≤ i < j ≤ n und (xi−1 , xi ) ∈ E für 1 ≤ i ≤ n.
Die Kosten
γ(W )
W
Psind durch die Summe
γ(W ) = ni=1 γ(xi−1 , xi ).
des Rundweges
Kantengewichte gegeben:
der
69 / 298
Varianten algorithmischer Probleme
(A) Entscheidungsvariante:
Eingabe: G = (V , E , γ : E → N) und ein k ≥ 0.
Frage: Existiert ein Rundweg mit Kosten ≤ k ? D.h. existiert ein Weg
der alle Knoten genau einmal besucht und dessen Kosten höchstens
k
sind?
(B) Berechnungsvariante:
Eingabe: G = (V , E , γ : E → N) und ein k ≥ 0.
Ziel: Falls ein Rundweg W mit γ(W ) ≤ k existiert, berechne ein
solches
W.
(C) Optimierungsproblem:
Eingabe: G = (V , E , γ : E → N).
Ziel: Berechne einen kostenoptimalen Rundweg, falls ein Rundweg
existiert.
In allen drei Varianten ist die Eingabegröÿe (bis auf einen konstanten
Faktor)
|V | +
P
e∈E log(γ(e))(+ log(k)).
70 / 298
Varianten algorithmischer Probleme
Aus praktischer Sicht ist Variante (C) (Optimierungsproblem) am
wichtigsten.
Aber: (A) in Polynomialzeit lösbar
=⇒
(C) in Polynomialzeit
lösbar.
Beweis:
1. Schritt:
Überprüfe, ob überhaupt ein Rundweg existiert:
Rufe hierzu (A) mit
kmax =
P
e∈E
γ(e)
auf.
Beachte: Es existiert ein Rundweg genau dann, wenn ein Rundweg mit
Kosten
≤ kmax
existiert.
Im Folgenden nehmen wir an, dass ein Rundweg existiert.
71 / 298
Varianten algorithmischer Probleme
2. Schritt:
Berechne
Suche:
kopt = min{γ(W ) | W
ist ein Rundweg} mittels binärer
FUNCTION kopt
kmin := 0
while kmin < kmax do
min e
kmitte := kmin + d kmax −k
2
if ∃ Rundweg W mit γ(W ) ≤ kmitte then kmax := kmitte
else kmin := kmitte + 1
endif
endwhile
return kmin
ENDFUNC
Beachte: Die Anzahl der Durchläufe durch die
beschränkt durch log2 (kmax )
= log2
P
e∈E
while
ist
-Schleife
P
γ(e) ≤
e∈E log(γ(e)).
72 / 298
Varianten algorithmischer Probleme
3. Schritt:
Berechne optimalen Rundweg wie folgt:
FUNCTION optimaler Rundweg
e1 , e2 , . . . , em beliebige Auistung von E
G0 := G
for i := 1 to m do
if ∃ Rundweg W in Gi−1 \ {ei } mit γ(W ) ≤ kopt then
Gi := Gi−1 \ {ei }
Sei
else
Gi := Gi−1
endif
endfor
return Gm
ENDFUNC
73 / 298
Varianten algorithmischer Probleme
Behauptung: Für alle i ∈ {0, . . . , m} gilt:
W mit γ(W ) = kopt .
Jeder Rundweg W in Gi mit γ(W ) = kopt benutzt alle Kanten
aus {e1 , . . . , ei } ∩ E [Gi ] (E [Gi ] = Menge der Kanten von Gi ).
1. In
2.
Gi
existiert ein Rundweg
Beweis:
1. Folgt sofort durch Induktion über
i.
W in Gi mit γ(W ) = kopt
≤ j ≤ i ) mit:
I e gehört zum Graphen G
j
i
I e gehört nicht zum Weg W
j
W ist auch ein Rundweg in Gj−1 . ⇒
W ist ein Rundweg in Gj−1 \ {ej }. ⇒
ej gehört nicht zu Gj und damit nicht zu Gi . Widerspruch
2. Angenommen es gibt einen Rundweg
sowie eine Kante
Konsequenz:
Gm
Gm
⇒ Gm = W
Kante von
ej
(1
hat einen Rundweg
gehört zu
W
mit
γ(W ) = kopt
und jede
W.
74 / 298
Varianten algorithmischer Probleme
Beispiel 2: Vertex Cover (VC)
Sei
G = (V , E )
Eine Teilmenge
G
falls für jede
ein ungerichteter Graph (d.h.
E⊆
V
2 ).
C ⊆ V ist eine Knotenüberdeckung (oder
Kante {u, v } ∈ E gilt: {u, v } ∩ C 6= ∅
Träger) von
(A) Entscheidungsvariante:
Eingabe: G = (V , E ) und ein k ≥ 0.
Frage: Hat G Knotenüberdeckung C mit |C | ≤ k ?
(B) Berechnungsvariante:
Eingabe: G = (V , E ) und ein k ≥ 0.
Ziel: Falls eine Knotenüberdeckung C
ein solches
C.
mit
|C | ≤ k
existiert, berechne
(C) Optimierungsproblem:
Eingabe: G = (V , E ).
Ziel: Berechne eine möglichst kleine Knotenüberdeckung von G .
75 / 298
Varianten algorithmischer Probleme
Wieder gilt: (A) in Polynomialzeit lösbar
=⇒
(C) in Polynomialzeit
lösbar.
Zeigen Sie dies als Übung.
76 / 298
Das Grapherreichbarkeitsproblem
Das Grapherreichbarkeitsproblem (GAP für graph accessibility
problem) ist ein zentrales Entscheidungsproblem in der
Komplexitätstheorie:
Eingabe: Ein gerichteter Graph G = (V , E ) und zwei Knoten
s, t ∈ V .
Frage: Existiert in G
ein Pfad von
GAP gehört zur Klasse
s
nach
t?
P: GAP kann in Zeit O(|V |) mittels
Breitensuche gelöst werden. (Die einfachste Dijkstra-Variante)
77 / 298
Das Grapherreichbarkeitsproblem
Verschärfung: GAP gehört zur Klasse
NL (wir zeigen noch NL ⊆ P):
FUNCTION Grapherreichbarkeit
var v := s
while v 6= t do
wähle einen Knoten
v := w
w ∈V
mit
endwhile
return Es gibt einen Pfad von s
ENDFUNC
(v , w ) ∈ E
nach
t .
78 / 298
Das Grapherreichbarkeitsproblem
Dieser nichtdeterministische Algorithmus kann leicht auf einer
nichtdeterministischen Turingmaschine implementiert werden.
Warum benötigt obiger Algorithmus nur logarithmischen Platz?
I Zu jedem Zeitpunkt muss sich der Algorithmus nur einen Knoten
v ∈V
merken.
I Wenn es
n
Knoten gibt, so können die Knoten mit den Zahlen
1, . . . , n identiziert werden. Die Variable
v
benötigt somit
log2 (n) viele Bits.
Bemerkungen:
I Aus dem Satz von Savitch (kommt noch) wird folgen:
GAP
∈ DSPACE(log2 (n)).
I Omer Reingold konnte 2004 zeigen: Das
Grapherreichbarkeitsproblem für ungerichtete Graphen (UGAP)
L, siehe http:
//www.wisdom.weizmann.ac.il/~reingold/publications/sl.ps
gehört zur Klasse
79 / 298
Teil 2: Beziehungen zwischen den Komplexitätsklassen
Die Beweise für die folgenden Beziehungen nden sich in
Standardlehrbüchern (z.B. Hopcroft, Ullman; Introduction to
Automata Theory, Languages and Computation, Addison Wesley
1979).
DTIME(O(f )) = c∈N DTIME(c · f ) =
und analog für NTIME, DSPACE, NSPACE.
Setze
S
S
g ∈O(f )
DTIME(g )
Theorem
Sei
f : N → N.
X ∈ {D, N} gilt XSPACE(O(f )) = XSPACE
(f ).
∃ε > 0 ∀n : f (n) ≥ (1 + ε)n ⇒ DTIME(O(f )) = DTIME(f ).
NTIME(O(f )) = NTIME(f ).
Real time = DTIME(n) 6= DTIME(O(n)) = Linear time.
1. Für
2.
3.
4.
1-Band
Der Punkt 1 kombiniert Bandreduktion mit Bandkompression.
Die Punkte 2 und 3 bezeichnet man als Zeitkompression.
80 / 298
Der Satz von Hennie und Stearns (1966)
Der Satz von Hennie und Stearns ist ein Bandreduktionssatz für
Zeitkomplexitätsklassen.
Theorem
Sei
k ≥1
DTIMEk
∀n : f (n) ≥ n. Dann gilt:
(f
) ⊆ DTIME2-Band (f · log(f )).
-Band
und
Ein Beweis ndet sich z.B. in dem Teubner-Lehrbuch von W. Paul und
ist technisch anspruchsvoll.
81 / 298
Erinnerung: Berechnungen, Protokolle
M bei Eingabe w
α0 , α1 , . . . , αm mit
1. Eine Rechnung von
Kongurationen
I
I
Start(w ) = α0
∀1 ≤ i ≤ m : αi−1 `M αi
Die Berechnung ist erfolgreich, falls
ist eine Folge von
αm ∈ Accept.
2. Das Protokoll dieser Rechnung ist die Folge
mit
αi `di αi+1
d0 d1 . . . dm−1 ∈ δ ∗
Arbeitet eine Turingmaschine nichtdeterministisch in der Zeit
hat jedes Protokoll eine Länge
f (n),
so
≤ f (|w |).
82 / 298
DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f )
Theorem
DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f ) (wobei f (n) ≥ n).
Beweis: Zu zeigen ist nur NTIME(f ) ⊆ DSPACE(f ).
M = (Q, Σ, Γ, δ, q0 , F , b) eine nichtdeterministische
f (n)-zeitbeschränkte Turingmaschine.
Sei
Für Eingabe
M
w ∈ Σ∗
der Länge
als einen Berechnungsbaum
I Wurzel von
T (M, w ) =
I Konguration
β
n können wir uns alle Rechnungen
T (M, w ) wie folgt vorstellen:
von
Start(w ).
ist Kind von Konguration
α
⇐⇒
α `M β .
83 / 298
DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f )
T (M, w )
wird mit Tiefen- oder Breitensuche auf eine akzeptierende
Konguration hin durchsucht.
Dabei merkt man sich nur die aktuelle Konguration und das Protokoll
P ∈ δ∗
mit dem diese Konguration von der Wurzel Start(w ) erreicht
wird.
Beachte:
I Jede Konguration in
T (M, w )
benötigt Platz
f (n).
I Ein Protokoll für eine bei Start(w ) beginnende Berechnung hat
Länge
f (n)
und kann somit in Platz
Gesamter Platzbedarf:
O(f (n))
gespeichert werden.
O(f ) + O(f ) = O(f ).
84 / 298
DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f ))
Theorem
DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f ) ) (wobei
f (n) ≥ log(n)).
Beweis: Zu zeigen ist nur NSPACE(f ) ⊆ DTIME(2O(f ) ).
f (n)-platzbeschränkte nichtdeterministische
∗
Turingmaschine und w ∈ Σ eine Eingabe der Länge n.
Sei
M
eine
Es gibt eine Konstante
c > 0,
die nur von
M
abhängt so, dass die
Anzahl der von Start(w ) erreichbaren Kongurationen durch
c f (n)
beschränkt ist.
Hier ist
∀n : f (n) ∈ Ω(log(n))
Beachte, dass
c f ∈ 2O(f )
wichtig. Warum?
gilt.
85 / 298
DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f ))
Berechne die Menge
R
der von Start(w ) aus erreichbaren
Kongurationen (mit einem Markierungs- oder Flutalgorithmus):
FUNCTION Menge-der-erreichbaren-Kongurationen
var R := {Start(w )}
while ∃ Kongurationen α, β : α ∈ R ∧ β 6∈ R ∧ α `M β do
R := R ∪ {β}
endwhile
if Accept ∩ R 6= ∅ then return M
ENDFUNC
akzeptiert
w
Zeitbedarf:
I
I
c f (n)
≤ f (n).
Der Test ∃ Kongurationen α, β : α ∈ R ∧ β 6∈ R ∧ α `M β
f (n) · c f (n) · f (n)) = O(c 2f (n) · f (n))
kann somit in Zeit O(c
R
enthält maximal
Kongurationen der Länge
implementiert werden.
I Gesamter Zeitbedarf:
O(c 3f (n) · f (n)) ⊆ 2O(f )
86 / 298
Folgerungen
I
I
L ⊆ NL ⊆ DTIME(2O(log(n)) ) = P
CS = LBA = NSPACE(n) ⊆ DTIME(2O(n) )
Hierbei bezeichnet CS die Klasse der kontextsensitiven und LBA
die Klasse der durch linear beschränkte Automaten akzeptierten
Sprachen.
I
DSPACE(n2 ) ⊆ DTIME(2O(n2 ) )
87 / 298
Der Satz von Savitch (1970)
Theorem
Sei
s ∈ Ω(log(n)).
Dann gilt
NSPACE(s) ⊆ DSPACE(s 2 ).
Wir beweisen den Satz von Savitch unter der Annahme, dass die
Funktion
s
platzkonstruierbar ist:
I Eine Funktion
f :N→N
mit
f ∈ Ω(log(n))
heiÿt
platzkonstruierbar, falls es eine deterministische Turingmaschine
gibt, die bei Eingabe
an
(d.h.
n
ist unär kodiert) genau
f (n)
Felder auf den Arbeitsbändern markiert, dann hält und bei der
Berechnung diesen Platz nicht verlässt.
I Eine Funktion
f :N→N
mit
f ∈ Ω(n)
heiÿt zeitkonstruierbar,
falls es eine deterministische Turingmaschine gibt, die bei Eingabe
an
nach genau
f (n)
Schritten hält.
Jedes Polynom ist zeit- und daher auch platzkonstruierbar!
88 / 298
Beweis des Satz von Savitch
Beweis:
M
und w
Sei
s -platzbeschränkte
eine Eingabe für M .
eine
nichtdeterministische Turingmaschine
Sei Conf(M, w ) die Menge aller Kongurationen
I Auf dem Eingabeband steht die Eingabe
I
α
mit:
w.
|α| ≤ s(|w |).
O.B.d.A. enthalte Accept nur eine einzige Konguration
Für
α, β ∈ Conf(M, w )
und
i ≥0
Reach(α, β, i)
Aus der Beschreibung von
M
denieren wir:
⇐⇒
∃k ≤ 2i : α `kM β
⇐⇒
können wir explizit eine Konstante
gewinnen, so dass für alle Eingaben
w ∈ L(M)
αf .
w
c
gilt:
Reach(Start(w ), αf , c · s(|w |)).
89 / 298
Beweis des Satz von Savitch
Unser Ziel ist, das Prädikat
0
≤ i ≤ c · s(|w |)
in Platz
zu berechnen.
Für
i >0
Reach(α, β, i) für α, β ∈ Conf(M, w ) und
O(s 2 )
auf einer deterministischen Maschine
verwenden wir folgendes Rekursionschemata:
Reach(α, β, i)
⇐⇒
∃γ ∈ Conf(M, w ) : Reach(α, γ, i − 1) ∧
Reach(γ, β, i − 1).
Umsetzung durch einen deterministischen Algorithmus:
90 / 298
Beweis des Satz von Savitch
FUNCTION Reach(α, β, i)
var b := false
if i = 0 then
b := [(α = β) ∨ (α `M β)]
else
forall γ ∈ Conf(M, w ) do
if not b and Reach(α, γ, i − 1) then
b :=
endif
endfor
endif
return b
ENDFUNC
Reach(γ, β, i
− 1)
91 / 298
Beweis des Satz von Savitch
Behauptung: Ein Aufruf von Reach(α, β, i) benötigt Platz
O((i + 1)s(|w |)).
Wir beweisen die Behauptung durch Induktion über
i = 0:
Platz
Die Bedingung
O(s(|w |))
[(α = β) ∨ (α `M β)]
i ≥ 0:
kann oensichtlich in
überprüft werden.
i > 0: Der 1. Aufruf Reach(α, γ, i − 1) benötigt nach Induktion Platz
O(i · s(|w |)). Das gleiche gilt für den 2. Aufruf Reach(γ, β, i − 1).
Beachte: Beim 2. Aufruf Reach(γ, β, i
Aufruf Reach(α, γ, i
− 1)
− 1)
kann der Platz, der beim 1.
benötigt wurde, wiederverwendet werden.
Zusätzlich wird noch Speicherplatz
s(|w |)
für die Konguration
γ
benötigt. Dies beweist die Behauptung.
92 / 298
Beweis des Satz von Savitch
w ∈ L(M) zu entscheiden, rufen
Reach(Start(w ), αf , c · s(|w |)) auf.
Um
Beachte: Wir können
platzkonstruierbar ist.
s(|w |)
Gesamter Platzbedarf:
wir
berechnen, da
s
nach Annahme
O(c · s(|w |) · s(|w |)) = O(s(|w |)2 ).
93 / 298
Bemerkungen zum Satz von Savitch
Der Satz von Savitch besagt, dass eine nichtdeterministische
platzbeschränkte Turingmaschine unter quadratischem Mehraufwand
deterministisch simuliert werden kann. Diese platzeziente Simulation
wird durch einen extremen Mehraufwand an Rechenzeit realisiert.
Übung: Wieviel Zeit benötigt der Algorithmus im obigen Beweis, um
w ∈ L(M)
zu entscheiden?
Um sich von der Forderung der Platzkonstruierbarkeit von
s
zu
befreien, zeige man mit dem Ansatz von Savitch, dass sich der
tatsächliche Platzbedarf einer
s -platzbeschränkten
nichtdeterministischen Turingmaschine in
DSPACE(s 2 ) berechnen
lässt.
94 / 298
Folgerungen aus dem Satz von Savitch
Theorem
GAP gehört zu
DSPACE(log2 (n)).
Folgt unmittelbar aus GAP
∈ NL
und dem Satz von Savitch.
Theorem S
S
PSPACE = k≥1 DSPACE(nk ) = k≥1 NSPACE(nk )
Folgt aus
NSPACE(nk ) ⊆ DSPACE(n2k )
95 / 298
Hierarchiesätze
Platzhierarchiesatz
Seien
s1 , s2 : N → N
Funktionen,
sei platzkonstruierbar. Dann gilt
Bemerkungen:
I
s1 ∈
/ Ω(s2 ), s2 (n) > log2 (n))
s1 ∈
/ Ω(s2 ) bedeutet ∀ε > 0 ∃
s1 (n) < ε · s2 (n).
Seien etwa
dann gilt:
s1 (n) = n
und
und
DSPACE(s2 ) \ DSPACE(s1 ) 6= ∅.
unendlich viele
s2 (n) =
n2 ,
n
falls
s2
mit
n
log n, sonst
gerade
,
s2 ∈
/ Ω(s1 ), s1 ∈
/ Ω(s2 ).
I Aus dem Platzhierarchiesatz folgt etwa:
L ( DSPACE(log2 (n)) ( DSPACE(n)
⊆ NSPACE(n) ( DSPACE(n2,1 ) ( PSPACE
96 / 298
Beweis des Platzhierarchiesatzes
Der Beweis des Platzhierarchiesatzes ist ähnlich zum Beweis für die
Unentscheidbarkeit des Halteproblems: Diagonalisierung
Wähle zunächst irgendeine eine berechenbare binäre Kodierung von
deterministischen Turingmaschinen. D.h. wähle eine berechenbare
x 7→ Mx so, dass zu
L(M) = L(Mx ) existiert.
Funktion
mit
Jedes Wort
x ∈ {0, 1}∗
jeder Turingmaschine
M
ein
x ∈ {0, 1}∗
soll als Kodierung einer Turingmaschine
interpretiert werden können (für nicht wohlgeformtes
x
kodiert
Mx
x eine
Turingmaschine, die nichts akzeptiert).
Wichtige Konvention: Für alle x ∈ {0, 1}∗
Mx = M0k x ,
d.h.
insbesondere gilt
und
k∈N
gelte
k
und 0 x kodieren identische Maschinen:
x
L(Mx ) = L(M0k x ).
Folgerung: Jede Turingmaschine hat eine Kodierung in fast allen
Längen.
Ziel: Konstruktion einer Maschine M mit
L(M) ∈ DSPACE(s2 ) \ DSPACE(s1 ).
97 / 298
Beweis des Platzhierarchiesatzes
s2 (n)-platzbeschränkten Maschine M 0 .
Eingabe y der Länge n = |y | wie folgt:
Wir starten mit einer
arbeitet für eine
1. Markiere Platz
s2 (n)
Sie
auf den Arbeitsbändern. (Beachte, dass
s2
platzkonstruierbar ist).
2. Sobald im Folgenden der markierte Platz verlassen wird, stoppt
M0
(in einem nicht-akzeptierenden Zustand).
Damit ist
M0
automatisch
s2 -platzbeschränkt und unabhängig
L(M 0 ) ∈ DSPACE(s2 )
von
der weiteren Konstruktion gilt
3. Schreibe
y = 0k x ,
arbeitet
M0
x keine führende Null habe
My = Mx auf der Eingabe y .
wobei
simuliere die Maschine
und
(Hier
wie eine universelle Turingmaschine).
0
4. M akzeptiert die Eingabe
y,
falls
Mx
die Eingabe
y
nicht in dem
der markierte Platz akzeptiert.
98 / 298
Behauptung: L(M 0 ) ∈/ DSPACE(s1 )
99 / 298
Beweis des Platzhierarchiesatzes
Beweis durch Widerspruch: Angenommen, es gilt
L(M 0 ) ∈ DSPACE(s1 ).
Es gibt dann eine
s1 -platzbeschränkte deterministische
Mx mit L(Mx ) = L(M 0 ).
Turingmaschine
mit einem Arbeitsband
Mit Bandkompression kann die Simulation von
Mx
durch eine
n in Platz
Mx abhängt.
universelle Turing-Maschine auf einer Eingabe der Länge
k · s1 (n) + log2 (n)
durchführt werden, wobei
k
nur von
100 / 298
Beweis des Platzhierarchiesatzes
Da
s1 ∈
/ Ω(s2 ) und s2 (n) > 2 log2 (n) existiert ein
n > |x| mit
ks1 (n) + log2 (n) ≤ s2 (n).
(sogar unendlich
viele)
y ∈ 0∗ x mit |y | = n, also y = 0n−|x| x . Während der
Simulation von Mx = My auf der Eingabe y (der Länge n) wird also
0
der im 1. Schritt von der Maschine M markierte Platz nicht verlassen.
Betrachte
Also:
y ∈ L(M 0 )
⇐⇒
M0
akzeptiert
y
⇐⇒
My
akzeptiert
y = 0n−|x| x
⇐⇒
Mx
akzeptiert
y
⇐⇒
y 6∈ L(Mx ) = L(M 0 )
nicht.
nicht
nicht
Widerspruch!
101 / 298
Zeithierarchiesatz
Gemäÿ der Technik von Hennie und Stearns ist die Simulation von
beliebig vielen Bändern zeitezient auf zwei Bändern möglich.
Analog zum Platzhierarchiesatz ergibt sich der deterministische
Zeithierarchiesatz.
Deterministischer Zeithierarchiesatz (ohne Beweis)
t1 , t2 : N → N Funktionen, t1 · log(t1 ) ∈
/ Ω(t2 ), t2 ∈ Ω(n log(n))
t2 sei zeitkonstruierbar. Dann gilt DTIME(t2 ) \ DTIME(t1 ) 6= ∅.
Seien
und
Als Folgerung hieraus ergibt sich:
DTIME(O(n)) ( DTIME(O(n2 )) ( P
( DTIME(O(2n )) ( DTIME(O((2 + ε)n ))
102 / 298
Der Lückensatz von Borodin (1972)
Bei den oben erwähnten Hierarchiesätzen haben wir stets eine
Konstruierbarkeitsvoraussetzung mitgeführt. Dies lässt sich nach dem
folgenden Lückensatz nicht umgehen.
Lückensatz von Borodin
r
r (n) ≥ n
n. Dann
existiert eektiv eine totale, berechenbare Funktion s : N → N mit der
Eigenschaft s(n) ≥ n + 1 für alle n und DTIME(s) = DTIME(r ◦ s).
Sei
eine totale, berechenbare Funktion,
für alle
Bemerkungen:
I Die Komposition
r ◦s
ist deniert durch
I Dass die totale, berechenbare Funktion
r ◦ s(n) = r (s(n)).
s:N→N
eektiv
existiert, bedeutet, dass man aus einer Turingmaschine, die
berechnet, eine Turingmaschine, die
s
r
berechnet, konstruieren
kann.
103 / 298
Beweis des Satzes von Borodin
Sei
M1 , M2 , . . .
eine Aufzählung aller deterministischen
Turingmaschinen.
Sei
tk (n) ∈ N ∪ {∞} der tatsächliche maximale Zeitbedarf einer
Mk auf einer Eingabe der Länge kleiner oder gleich n.
Rechnung von
Betrachte nun die Menge
Nn = {tk (n)|1 ≤ k ≤ n} ⊆ N ∪ {∞}.
Diese Menge ist endlich, also existiert für jedes
n
eine Zahl
s(n)
mit
Nn ∩ [s(n), r (s(n))] = ∅.
Ein
s(n),
welches diese Bedingung erfüllt, wäre
s(n) = max{tk (n) | 1 ≤ k ≤ n, tk (n) < ∞}.
Die Funktion
n 7→ s(n)
verhält sich wie ein eiÿiger Biber und ist
daher nicht berechenbar!
104 / 298
Beweis des Satzes von Borodin
Einen passenden und berechenbaren Wert
n
s(n)
nden wir bei Eingabe
wie folgt:
FUNCTION s(n)
s := n + 1
repeat
s := s + 1
until ∀k ≤ n : [tk (n) < s or tk (n) > r (s((n))]
return s
ENDFUNC
Bemerkung: Die Funktion s
Im Allgemeinen kann
s
ist berechenbar und wächst monoton.
jedoch nicht zeitkonstruierbar sein.
Behauptung: DTIME(s) = DTIME(r ◦ s)
105 / 298
Beweis des Satzes von Borodin
Beweis der Behauptung:
Da
r (n) ≥ n
Sei nun
Sei
mit
für alle
n,
ist
DTIME(s) ⊆ DTIME(r ◦ s) klar.
L ∈ DTIME(r ◦ s).
Mk eine (r ◦ s)-zeitbeschränkte
L = L(Mk ).
Dann gilt:
Für alle
deterministische Turingmaschine
∀n : tk (n) ≤ r (s(n)).
n≥k
gilt daher nach Berechnung von
Damit gilt tk (n) ≤ s(n)
L ∈ DTIME(s).
für fast alle
n,
s : tk (n) < s(n).
und schlieÿlich
106 / 298
Der Satz von Immerman und Szelepcsényi (1987)
DTIME(f ) und DSPACE(f ) sind unter Komplement
abgeschlossen. Ob dies auch für Klassen NSPACE(f ) gilt, war für
Die Klassen
lange Zeit oen.
Bereits 1964 stellte Kuroda die Frage, ob die Familie der
kontextsensitiven Sprachen unter Komplementbildung abgeschlossen
ist (2. LBA-Problem).
Äquivalent:
NSPACE(n) = CoNSPACE(n)?
Nach über 20 Jahren wurde diese Frage unabhängig von
R. Szelepcsényi und N. Immerman beantwortet:
Satz von Immerman und Szelepcsényi
Sei
f ∈ Ω(log(n)).
Dann gilt
NSPACE(f ) = CoNSPACE(f )
107 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Beweismethode: Induktives Zählen
M eine nichtdeterministische f -platzbeschränkte
∗
und w ∈ Σ ein Eingabewort der Länge n.
Sei
Turingmaschine
Ziel: Überprüfe nichtdeterministisch in Platz O(f (n)), ob w 6∈ L(M)
gilt.
Sei
eine längenlexikographische Ordnung auf der Menge aller
Kongurationen.
Sei
α0
die kleinste Konguration bzgl.
O.B.d.A. ist
α0
, |α0 | ∈ O(1).
die einzige akzeptierende Konguration.
108 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Sei
k ≥ 0:
R(k) = {α | ∃i ≤ k : Start(w ) `iM α}
r (k) = |R(k)|
(Anzahl der von
Start(w ) in ≤ k Schritten
erreichbaren Kongurationen)
r (∗) =
max{r (k)
| k ≥ 0}
(Anzahl der von
Start(w ) erreichbaren Kongurationen)
Beachte: Es gibt eine nur von M
abhängige Konstante
c
mit
r (k) ≤ r (∗) ≤ c f (n)+log(n) ∈ 2O(f (n)) .
Da
f
nicht platzkonstruierbar sein muss, benötigen wir noch den Wert
m(k) =
Wir berechnen
r (∗)
r (∗)
| α ∈ R(k)}.
O(f (n)). Unser Algorithmus wird ohne
w ∈ L(M). Falls w ∈
/ L(M), wird der
in Platz
Ergebnis abbrechen, falls
korrekte Wert
max{|α|
ausgegeben.
109 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Berechnung von
r (∗)
r (k + 1) aus r = r (k)
O(f (n)) berechnet
unter der Annahme, dass
mittels Funktion berechne-r(k
+ 1, r )
werden kann:
in Platz
FUNCTION r (∗)
r 0 := k := 0;
r := 1 (∗ speichert r (k) ∗)
while r 6= r 0 do
r 0 := r ;
r := berechne-r(k + 1, r 0 );
k := k + 1;
endwhile
return r
ENDFUNC
Platzbedarf: Wegen r (∗) ∈ 2O(f (n))
0
und r Platz
O(f (n))
wird zur Speicherung von
k, r ,
benötigt.
110 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Die Berechnung der Funktion berechne-r(k
+ 1, r )
erfolgt in drei
Schritten.
1. Schritt: Berechne m(k) aus r = r (k) mittels Funktion
berechne-m(k, r )
FUNCTION berechne-m(k, r )
α := α0 ; m := |α0 |
repeat r times
berechne ein beliebiges
if α0 α then
FEHLER
else
α := α0
m := |α0 |
endif
endrepeat
return m
ENDFUNC
⇒
α0 ∈ R(k)
Programmabbruch
(∗ = max{m, |α0 |}
aufgr. der Ordnung
∗)
111 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Beachte: Angenommen α0
erreichbar,
w
k
L(M).
ist in
gehört also zu
Schritten von
Start(w ) aus
Dann muss dieses Programmstück mit Fehler abbrechen.
Es stehen nämlich in
R(k)
nicht genügend Kongurationen zur
Verfügung, die alle echt gröÿer als
α0
sind. Damit lässt sich
m(k)
nicht berechnen und dies führt zum Abbruch der Berechnung von
(falls
r (∗)
w ∈ L(M)).
Platzbedarf: Wir müssen speichern:
I Kongurationen
I
m ≤ f (n)
I Binärzähler bis
k
α, α0
mit
|α|, |α0 | ≤ f (n).
(um beliebiges
zu generieren)
I Binärzähler bis
Hierfür ist Platz
r = r (k)
(für
α0 ∈ R(k)
nichtdeterministisch
repeat r times).
O(f (n))ausreichend.
112 / 298
Beweis des Satzes von Immerman und Szelepcsényi
2. Schritt: Sei β
Reach(r , k
r = r (k),
eine beliebige Konguration. Die folgende Prozedur
+ 1, β) testet nichtdeterministisch
β ∈ R(k + 1) gilt.
mit Hilfe des Werts
ob
FUNCTION Reach(r , k + 1, β )
α := α0
repeat r times
α0 ∈ R(k)
if = β oder
`M β then return true (∗ d.h. β ∈ R(k + 1) ∗)
0
elseif α α then FEHLER ⇒ Programmabbruch
else α := α0
berechne ein beliebiges
α0
α0
endif
endrepeat
return false (∗ d.h. β ∈/ R(k + 1) ∗)
ENDFUNC
113 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Beachte:
I Falls dieser Algorithmus nicht mit FEHLER abbricht, wird eine
korrekte Antwort ausgegeben.
I Ist der korrekte Wert
r (k)
bekannt, so hat der Algorithmus die
Chance, nicht mit FEHLER abzubrechen.
Platzbedarf: Wir müssen speichern:
I Kongurationen
I Binärzähler bis
k
α, α0 , β
mit
|α|, |α0 |, , |β| ≤ f (n) + 1.
(um beliebiges
zu generieren)
I Binärzähler bis
Hierfür ist Platz
r = r (k)
(für
α0 ∈ R(k)
nichtdeterministisch
repeat r times).
O(f (n))ausreichend.
114 / 298
Beweis des Satzes von Immerman und Szelepcsényi
3. Schritt: Berechne r (k + 1) mittels der Funktion
berechne-r(k
+ 1, r )
aus
r = r (k).
FUNCTION berechne-r(k + 1, r )
r 0 := 0 (∗ ist am Ende r (k + 1) ∗)
m := berechne-m(k, r )
forall Kongurationen β mit |β| ≤ m(k) + 1 do
if Reach(r , k + 1, β ) then
r 0 := r 0 + 1
endif
endforall
return r 0
ENDFUNC
Wir betrachten nur Kongurationen
m(k + 1) ≤ m(k) + 1.
β
mit
|β| ≤ m(k) + 1,
da
115 / 298
Beweis des Satzes von Immerman und Szelepcsényi
Eine erfolgreiche Berechnung von
r (∗)
ist genau dann möglich, wenn
w∈
/ L(M).
Man beachte dazu: Wenn
w ∈ L(M),
so bricht jede Rechnung mit
einer Fehlermeldung, ab, da die Funktion
akzeptierende Konguration
α0
in
R(k)
m(k),
sobald sie die
vorndet, nicht mehr
erfolgreich durchlaufen werden kann.
r (∗) berechnet wurde, kann w
L(M) gehörig akzeptiert werden.
Sowie also der Wert
Komplement von
als zum
Analyse des Platzbedarfs: Aus den vorherigen Platzbetrachtungen
folgt, dass der gesamte Algorithmus mit Platz
O(f (n))
auskommt.
116 / 298
Teil 3: Reduktionen und vollständige Probleme
Seien
L ⊆ Σ∗
und
L0 ⊆ Σ0 ∗
zwei Entscheidungs-Probleme.
0
Eine Reduktion von L auf L ist eine totale berechenbare Abbildung
∗
f : Σ∗ → Σ0 mit: x ∈ L ⇐⇒ f (x) ∈ L0 .
Angenommen, wir kennen bereits einen Algorithmus zur Lösung von
L0 .
x ∈L
f (x) ∈ Σ0 ∗
Dann können wir die Frage
1. Berechne den Wert
wie folgt entscheiden:
2. Entscheide mittels des Algorithmus für
x
-
Mf
f (x)
-
L0
ML0
ob
f (x) ∈ L0
gilt.
- ja
- nein
ML
117 / 298
Polynomialzeitreduktionen
Eine Reduktion
f : Σ∗ → Σ0 ∗
Polynomialzeitreduktion, falls
L
sich f
von
auf
L0
ist eine
durch eine deterministische
polynomialzeitbeschränkte Turingmaschine berechnen lässt.
Proposition
L0 ∈ P und ∃ Polynomialzeitreduktion von L auf L0
Beweis: Angenommen L0
gehört zu
n` berechnet werden.
Für ein Eingabe
werden.
Damit muss
x ∈ Σ∗
|f (x)| ≤ n`
entschieden werden, ob
Gesamter Zeitbedarf:
der Länge
n
DTIME(nk ) und f
kann
f (x)
in Zeit
gelten, und es kann in Zeit
f (x) ∈ L0
n` + nk·`
=⇒
(d.h.
x ∈ L)
L ∈ P.
kann in Zeit
n`
berechnet
(n` )k = nk·`
gilt.
118 / 298
Beispiel für Polynomialzeitreduktion
Sei
G = (A, B, E ) ein bipartiter Graph, d.h. A ∩ B = ∅ und E ⊆ A × B .
Ein Matching
aus
M
M
ist eine Teilmenge
M ⊆ E,
so dass keine zwei Kanten
einen gemeinsamen Endknoten haben.
Wir zeigen, wie das Problem, ein Matching maximaler Gröÿe zu
berechnen, sehr ezient auf die Berechnung eines Maximalusses in
einem Netzwerk reduziert werden kann.
Ein Netzwerk ist ein Tupel
I
(V , E )
I
s∈V
I
I
ein gerichteter Graph ist (d.h.
ist die Quelle,
c :E →N
Ein Fluÿ
F
N = (V , E , s, t, c),
t∈V
ist eine Abbildung
∀v ∈ V \ {s, t} :
P
e
s 6= t ,
eine Kapazität
F :E →N
(x,v )∈E
E ⊆ V × V)
ist die Senke,
ordnet jeder Kante
wobei:
F (x, v ) =
c(e) > 0
zu.
mit:
P
(v ,y )∈E
F (v , y )
(Fluÿerhaltung)
I
∀e ∈ E : F (e) ≤ c(e).
119 / 298
Beispiel für Polynomialzeitreduktion
Ein Fluÿ maximaler Gröÿe kann in polynomialer Zeit mittlels des
Max-Flow=Min-Cut-Theorems von Ford-Fulkerson (wird hier nicht
behandelt) werden.
Die Reduktion von Maximum Matching auf Max-Flow startet mit
einem bipartiten Graphen
G = (A, B, E ).
Konstruiere ein Netzwerk
N = (V , E 0 , s, t, c)
I
I
I
Sei
V = A ∪ B ∪ {s, t}
E0
s
und
t
neue Knoten sind)
= E ∪ {(s, a) | a ∈ A} ∪ {(b, t) | b ∈ B}
c(x, y ) = 1
F: E0 → N
Dann ist
G.
(wobei
wie folgt:
für alle
(x, y ) ∈ E 0
ein Fluÿ maximaler Gröÿe in
M = {e ∈ E | F (e) = 1}
N.
ein Matching maximaler Gröÿe in
120 / 298
Beispiel für Polynomialzeitreduktion
Sei
G = (A, B, E )
ein bipartiter Graph:
A
B
121 / 298
Beispiel für Polynomialzeitreduktion
Füge eine Quelle
s
und eine Senke
A
s
t
an:
B
t
122 / 298
Beispiel für Polynomialzeitreduktion
Berechne einen maximalen Fluÿ:
A
s
B
t
123 / 298
Beispiel für Polynomialzeitreduktion
Hieraus ergibt sich die Lösung des Matchingproblems:
A
B
124 / 298
Reduktionen in logarithmischen Platz
Viele praktisch wichtige Reduktionen lassen sich in logarithmischem
Platz berechnen.
⇒
Logspace-Reduktionen
Denition Logspace-Transducer
Ein logarithmisch platzbeschränkter Transduktor
(Logspace-Transducer) ist eine deterministische Turingmaschine
M
mit
I einem Eingabeband, von dem nur gelesen werden kann,
I einem logarithmisch in der Eingabelänge platzbeschränkten
Arbeitsband, und
I einem separaten Ausgabeband, auf das nur geschrieben werden
kann.
In jedem Rechenschritt von
M
wird
I entweder ein neues Zeichen auf das Ausgabeband geschrieben und
der Schreibkopf wandert ein Feld nach rechts, oder
I es wird kein neues Zeichen auf das Ausgabeband geschrieben und
der Schreibkopf bewegt sich nicht.
125 / 298
Reduktionen in logarithmischen Platz
Denition
1. Eine Abbildung
gilt:
∃
f : Σ∗ → Σ0 ∗
heiÿt logspace berechenbar, falls
M ∀x ∈ Σ∗ :
x an mit f (x) ∈ Σ0 ∗
Logspace-Transducer
M
hält bei Eingabe
auf dem Ausgabeband
∗
0
0∗
2. Ein Problem L ⊆ Σ heiÿt logspace reduzierbar auf L ⊆ Σ , falls
∗
0 ∗ gibt mit
es eine logspace berechenbare Abbildung f : Σ → Σ
∀x ∈ Σ∗ : x ∈ L ⇐⇒ f (x) ∈ L0 .
Kurzschreibweise:
Der untere Index
0
L ≤log
m L.
m
mehrere Worte aus
steht hier für many-one, dies bedeutet, dass
Σ∗
auf das selbe Wort in
Σ0 ∗
abgebildet
werden können.
126 / 298
Reduktionen in logarithmischen Platz
Bemerkungen:
I Logspace-Reduktionen lassen sich auch auf Klassen unterhalb von
P anwenden und erlaubt eine feinere Einteilung als unter
Verwendung von Polynomialzeitreduktionen.
I Jede logspace berechenbare Abbildung
polynomialer Zeit berechenbar.
Insbesondere:
f : Σ∗ → Σ0 ∗
ist in
∃k ≥ 0 ∀x ∈ Σ∗ : |f (x)| ≤ |x|k .
I Logspace-Reduktionen und Polynomialzeitreduktionen sind genau
dann gleichmächtig, wenn
L = P gilt.
127 / 298
≤log
m ist transitiv
Proposition: ≤log
m ist transitiv
log 00
0
L ≤log
m L ≤m L
=⇒
00
L ≤log
m L
Beachte: Die analoge Aussage für Polynomialzeitreduktionen ist
trivial.
Bei der Hintereinanderausführung von Logspace-Reduktionen
f : Σ∗ → Σ0 ∗
und
I Für Eingabe
g : Σ0 ∗ → Σ00 ∗
w ∈ Σ∗
mit
gibt es jedoch ein Problem:
|w | = n
I Die Anwendung von g auf
O(log(nk )) = O(log(n)).
f (w )
gilt
|f (w )| ≤ nk (k
Konstante).
erfordert damit Platz
I Das Problem ist: In logarithmischen Platz kann
f (w )
nicht auf
das Arbeitsband geschrieben werden.
I Lösung: Für
das
i -te
i ≤ |f (w )| kann, wenn auf dem Arbeitsband i steht
f (w ) ebenfalls notiert werden, siehe unten.
Zeichen von
128 / 298
≤log
m ist transitiv
Beweis der Proposition Ohne Einschränkung sind alle Zeichen binär
kodiert. Wir berechnen
g (f (w ))
in Platz
O(log(|w |)
wie folgt:
I Starte den Logspace-Transducer zur Berechnung von
f (w )
g
(ohne
vorher zu berechnen).
I Wenn während der Berechnung von
g
das
i−te
Bit von
f (w )
benötigt wird, wird der Logspace-Transducer zur Berechnung von
f (w )
neu gestartet, bis schlieÿlich das
ausgegeben ist. Dabei werden die Bits
i -te Bit von f (w )
1, . . . , i − 1 von f (w )
nicht
ausgegeben. Hierzu wird ein Binärzähler jedesmal, wenn der
Logspace-Transducer für
f
ein Ausgabebit produziert,
hochgezählt.
I Ist das i -te Bit von
f (w )
bekannt, so kann die Berechnung von
g
einen Schritt machen.
I Beachte: Binärzähler benötigt Platz
O(log(|f (w )|) = O(log(|w |)
129 / 298
Padding der Ausstopfen
I Sei
I
I
L ⊆ Σ∗
f :N→N
$∈
/Σ
eine Sprache,
eine Funktion mit
ein neues Symbol.
∀n ≥ 0 : f (n) ≥ n,
und
Deniere die Sprache
Padf (L) = {w $f (|w |)−|w | | w ∈ L} ⊆ (Σ ∪ {$})∗ .
w ∈L
wird ein Wort aus
Beispiel: Sei f (n) =
w $∗
der Länge
nk . Dann ist
f
f (|w |)
zugeordnet.
logspace berechenbar.
Padf (L) mit Hilfe der Reduktion w 7→ w $|w | −|w | .
log
∗
Umgekehrt gilt Padf (L) ≤m L für L 6= Σ .
Also gilt
L ≤log
m
k
130 / 298
Vollständige Probleme
Denition
1. Sei
C
eine Komplexitätsklasse.
Ein Problem
L ⊆ Σ∗
heiÿt schwierig für
(bzgl. logspace-Reduktionen), falls gilt:
2. Sei
C
C oder kurz C -schwierig
∀K ∈ C : K ≤log
m L.
eine Komplexitätsklasse. Ein Problem
C -vollständig
(bzgl. logspace-Reduktionen),
ist und zusätzlich
L∈C
gilt.
L ⊆ Σ∗ heiÿt
falls L schwierig
für
C
131 / 298
GAP ist
NL-vollständig
Wir geben ein erstes Beispiel:
Theorem
Das Grapherreichbarkeitsproblem GAP ist
NL-vollständig.
Beweis:
GAP ∈ NL wurde bereits gezeigt.
Sei L ∈ NL, sei M eine nichtdeterministische
logspace-platzbeschränkte Turingmaschine mit
Wir denieren eine Reduktion
f (w ) = (G , s, t) mit:
I G = (V , E ) ist der
V
E
I
I
= {α | α
f
wie folgt: Für
w ∈ Σ∗
sei
gerichtete Graph mit:
ist Kong. von
M
bei Eingabe
= {(α, β) | α, β ∈ V , α `M β}
s = Start(w )
t = die (o.B.d.A)
L = L(M).
w , |α| ≤ log(|w |)}
eindeutige akzeptierende Konguration von
M.
132 / 298
GAP ist
NL-vollständig
Oensichtlich gilt:
w ∈ L(M) ⇐⇒
f
in
G
gibt es einen gerichteten Pfad von
s
nach
t.
kann oensichtlich in logarithmischen Platz berechnet werden.
133 / 298
2-SAT ist
NL-vollständig
Theorem
Das Problem 2-SAT
= 2-KNF ∩ SAT
ist
NL-vollständig.
Aufgrund des Satzes von Szelepcsényi-Immermann genügt es, die
NL-Vollständigkeit von 2−NSAT = {Φ ∈ 2-KNF : Φ 6∈ SAT } zu
zeigen.
134 / 298
NL-Schwierigkeit
NSAT ist NL-schwierig:
I 2−
Sei GAP das Grapherreichbarkeitsproblem. Wir zeigen
≤log
m 2−NSAT. Sei G = (V , E ) ein gerichteter Graph und
s, t ∈ V . Aus jedem Knoten u machen wir eine Variable gleichen
Namens und aus jeder Kante (u, v ) ∈ E eine Implikation u ⇒ v ,
also die Klausel ¬u ∨ v . Desweiteren fügen wir die Klauseln s und
¬t hinzu.
GAP
Oensichtlich ist die so konstruierte Formel unerfüllbar, wenn in
G
ein Weg von
s
nach
t
existiert.
Ist ein solcher Weg nicht vorhanden, so können alle Variablen,
deren zugehörige Knoten von
alle übrigen zu
falsch
s
aus erreichbar sind, zu
wahr
und
gesetzt werden. Dies deniert eine die
Formel erfüllende Belegung.
135 / 298
2−NSAT liegt in
NL
KNF-Formel Φ in den Variablen x1 , . . . , xn .
Gegeben sei eine 2-
Wir konstruieren einen Graphen mit Knotenmenge
V = {x1 , . . . , xn , x1 , . . . , xn }.
Jede Klausel α ∨ β lesen wir als
Kanten α → β und β → α ein.
Implikation und führen daher zwei
α ∨ β ⇔ (α ⇒ β) ∧ (β ⇒ α)
Behauptung: Es gibt genau dann einen Knoten
sowie
∗
x −→ x ,
wenn
Φ
x
und Pfade
∗
x −→ x
unerfüllbar ist.
Somit kann die Nichterfüllbarkeit von
Φ
mit Hilfe des
NL-Algorithmus
für Grapherreichbarkeit überprüft werden.
136 / 298
Beweis der Behauptung
⇒ ist einfach: Die Klauseln, welche zu den Kanten gehören, die die
Pfade bilden, ergeben die Implikationen
können also weder
x
noch
¬x
auf
wahr
x ⇒ ¬x
⇐: Nun nehmen wir an, dass für jede Variable
Pfade
∗
x −→ x
Belegung.
oder
∗
x −→ x
und
setzen.
x
¬x ⇒ x .
Wir
höchstens einer der
existiert. Gesucht ist eine erfüllende
Wir können annehmen, dass genau einer dieser Pfade existiert:
Denn existiert weder
hinzu. (D.h.
∗
x −→ x
C = x ∨ x = x .)
noch
∗
x −→ x ,
so füge die Kante
x →x
Dies macht das Finden einer erfüllenden
Belegung nur schwieriger, da jetzt
x
falsch sein muss. Wir müssen aber
noch zeigen, dass es keine neuen Kreise gibt.
137 / 298
Beweis der Behauptung
Angenommen, wir hätten durch Hinzunahme von
mit
α
und
α
erzeugt.
Dann benutzt dieser Kreis die Kante
auf dem Pfad von
Bilder, wobei
∗
−→
α
nach
α.
x →x
x →x
einen Kreis
und ohne Einschränkung
Wir erhalten eines der folgender beiden
alte Kanten bezeichnet.
∗
∗
∗
∗
α −→ x → x −→ α −→ α −→ x
∗
∗
∗
∗
α −→ x → x −→ α −→ x → x −→ α
Damit hatte der ursprüngliche Graph einen Pfad
∗
x −→ x ,
im
Widerspruch zur Annahme. Durch Wiederholung der Hinzunahme von
Kanten erreichen wir, dass schlieÿlich immer genau einer dieser Pfade
existiert:
∗
x −→ x
oder
∗
x −→ x .
138 / 298
2-SAT ist
NL-vollständig
Wir setzen jetzt
∗
x −→ x .
Klausel
x
wahr,
zu
falls
∗
x −→ x
und zu
falsch,
wenn
Diese Belegung ist erfüllend: Wir betrachten eine beliebige
C =α∨β
und nehmen an, dass
β = falsch
gilt (sonst ist
C
ohnehin schon erfüllt). Dann gibt es nach der Konstruktion der
Belegung einen Weg
die Kanten
α→β
∗
β −→ β .
und
Auÿerdem gibt es wegen der Klausel
β → α.
C
Wir erhalten somit den Weg
∗
α → β −→ β → α.
Damit gilt
α = wahr.
Also ist die Klausel erfüllt.
139 / 298
Teil 4:
NP-Vollständigkeit
Theorem
Falls es eine
∃L : L
ist
NP-vollständige Sprache gibt, so auch eine in NTIME(n):
NP-vollständig ⇒ ∃L̃ ∈ NTIME(n) : L̃ ist NP-vollständig.
Beweis: Sei L ein NP-vollständiges Problem.
k >0
Es existiert eine Konstante
mit
L ∈ NTIME(nk ).
Aus dem Translationssatz für Zeitklassen folgt
0
Sei nun L
∈ NP
log
⇒ L0 ≤log
m L ≤m
Da
≤log
m
ist
k
beliebig.
Padn (L)
k
transitiv ist, folgt
⇒ Padp(n) (L)
Padn (L) ∈ NTIME(n).
L0 ≤log
m
Padn (L).
k
NP-vollständig.
140 / 298
Der Satz von Cook und Levin
Sei
Σ0 = {¬, ∧, ∨, ⇒, ⇔, 0, 1, (, ), x}.
Sei
A ⊆ Σ∗0
die Menge aller aussagenlogischen Formeln über der
Variablenmenge
A ⊆ Σ∗0
V = x 1{0, 1}∗ .
ist deterministisch kontextfrei und gehört damit zu
DTIME(n).
Sei
SAT = {F ∈ A | F
ist erfüllbar}.
(Eine aussagenlogische Formel
B : Var(F ) → {true, false}
F
ist erfüllbar, wenn es eine Belegung
der in
F
Wahrheitswerten gibt, unter der sich
vorkommenden Variablen mit
F
zu
true auswertet.)
Satz von Cook (und Levin)
SAT ist NP-vollständig.
141 / 298
Beweis des Satzes von Cook/Levin
(A) SAT ∈ NP: Für ein F ∈ Σ∗0
2.
3.
w ∈ Σ∗
konstruieren wir eine Formel
w ∈L
Die Abbildung
Sei
wie folgt:
ob
(B) SAT ist NP-schwierig.
Sei L ∈ NP.
Zu
∈ SAT
F ∈ A gilt.
Falls JA, rate eine Belegung B : Var(F ) → {true, false}.
Akzeptiere, falls F sich unter der Belegung B zu true auswertet.
1. Teste in Zeit
O(|F |)
überprüfen wir F
f
⇐⇒ f (w )
f (w )
mit
erfüllbar
.
wird logspace berechenbar sein.
M = (Q, Σ, Γ, δ, q0 , F , b)
eine
p(n)-zeitbeschränkte
L = L(M)
nichtdeterministische Turingmaschine mit
(p(n) ist ein Polynom).
Sei
w = w1 w2 · · · wn ∈ Σ∗
eine Eingabe der Länge
n.
142 / 298
Beweis des Satzes von Cook/Levin
O.B.d.A. gelten die folgende Eigenschaften:
1.
M
hat nur ein Band, auf dem die Eingabe zu Beginn links steht.
2. Das Eingabeband ist Arbeitsband und ggf. Ausgabeband und
einseitig nach rechts unbeschränkt.
3. Der Kopf wandert nie über die linke Position hinaus.
4.
F = {$},
d.h. es gibt nur einen Endzustand.
5. Bei Eingabe
w ∈ Σ∗
hält
M
nie, aber nach
wir genau dann im Endzustand, wenn
6. Nach
p(n)
w
p(n) Schritten sind
M akzeptiert wird.
von
Schritten ist der Schreib-Lesekopf wieder auf der
Ausgangsposition ganz links.
7. Im Folgenden verlängern wir die Rechnung um einen konstanten
Faktor, dementsprechend passen wir
p(n)
an.
143 / 298
Beweis des Satzes von Cook/Levin
Wir modizieren
δ
und nehmen weitere Zustände auf.
Sind wir im Zustand
p∈Q
und lesen wir ein
Kopfbewegung in einen neuen Zustand
Sind wir in einem Zustand
(p, a),
d=
so wechseln wir ohne
so wechseln wir nichtdeterministisch
ohne Kopfbewegung in einen Zustand
die Form
a,
(p, a).
(p, a, d),
wobei
(p, a, q, a0 , D) hat.
d ∈δ
gilt und
d
(p, a, d) mit d = (p, a, q, a0 , D), so
0
simulieren wir d : Wir schreiben a , wechseln in den Zustand q ∈ Q ,
bewegen den Kopf entsprechende der Richtung D .
Sind wir in einem Zustand
Nur hinsichtlich des Folgezustand vom Wechsel von
Zustand
(p, a, d)
(p, a)
zum
haben wir also eine nichtdeterministische Wahl.
Die Rechenzeit ist dreimal so lang.
144 / 298
Beweis des Satzes von Cook/Levin
Die neue Turingmaschine nennen wir wieder
M = (Q, Σ, Γ, δ, q0 , { $ } , b),
die erkannte Sprache wurde nicht
verändert und die Rechenzeit sei
p(n)
zeitbeschränkt.
Die Konventionen von oben gelten weiterhin.
Neu ist: Wir können eine endliche Tabelle
∆
konstruieren mit der
folgenden Eigenschaft.
α = bα0 · · · αp b eine Konguration (mit p = p(n)
α−1 = αp+1 = b), so ist β = bβ0 · · · βp b genau dann
Folgekonguration, wenn für alle 0 ≤ i ≤ p gilt
Ist
und
eine mögliche
(αi−1 , αi , αi+1 , βi ) ∈ ∆.
145 / 298
Beweis des Satzes von Cook/Levin
Jede von der Startkonguration erreichbare Konguration kann durch
Conf
= {buqv b | q ∈ Q; u, v ∈ Γ∗ ; |uv | = p(n)}
beschrieben werden.
Die Startkonguration ist
bq0 w1 · · · wn bp(n)+1−n .
Die akzeptierenden Kongurationen sind in
b$Γp(n) b.
Notation: Für ein α ∈ Conf schreiben wir
α = α[−1]α[0] · · · α[p(n)]α[p(n) + 1]
wobei
α[−1] = b, α[0], . . . , α[p(n)] ∈ Q ∪ Γ, α[p(n) + 1] = b.
146 / 298
Beweis des Satzes von Cook/Levin
Beispiel:
(q, a, p, a0 , ←) ∈ δ
b ∈ Γ möglich:
Falls
ist folgende lokale Bandänderung für alle
Position
i−1
i
i+1
α
=
···
···
b
q
a
···
···
α0
=
···
···
p
b
a0
···
···
(q, a, p, a0 , →) ∈ δ
b ∈ Γ möglich:
Falls
ist folgende lokale Bandänderung für alle
Position
i−1
i
i+1
α
=
···
···
b
q
a
···
···
α0
=
···
···
b
a0
p
···
···
147 / 298
Beweis des Satzes von Cook/Levin
Eine Rechnung von
α0
α1
M
= b
= b
können wir nun als Matrix beschreiben:
α0,0
α1,0
α0,1
α1,1
...
...
.
.
.
αp(n) = b αp(n),0 αp(n),1 . . .
Für jedes Tripel
sei
x(a, i, t)
b
b
α0,p(n)
α1,p(n)
αp(n),p(n) b
(a, i, t) (a ∈ Q ∪ Γ, −1 ≤ i ≤ p(n) + 1,
aussagenlogische Variable.
0
≤ t ≤ p(n))
Interpretation: x(a, i, t) = true genau dann, wenn zum Zeitpunkt t
das
i -te
Zeichen der aktuellen Konguration ein
a
ist.
148 / 298
Beweis des Satzes von Cook/Levin
Als Teilformeln denieren wir folgende Hornformeln:
Konsistenzformel
C (n) =
^^
i,t a6=b
Randformel
R(n) =
^
t
Startformel
(¬X (a, i, t) ∨ ¬X (b, i, t)).
X (b, −1, t) ∧
S(w ) =X (q0 , 0, 0) ∧
Accept-Formel
Accept(n)
Dabei sei jeweils
−1 ≤ i ≤ p(n) + 1
^
X (b, p(n) + 1, t).
t
^
1≤i≤n
X (wi , i, 0) ∧
^
X (b, i, 0).
n<i
=X ($, 0, p(n)).
und 0
≤ t ≤ p(n).
149 / 298
Beweis des Satzes von Cook/Levin
Übergangsformel
D(n) =
^
i≥0, t>0
(a,b,c)∈(Γ∪Q)3
X (a, i − 1, t − 1) ∧ X (b, i, t − 1) ∧ X (c, i + 1, t − 1)
→
_
X (d, i, t) .
d∈Γ∪Q mit
(a,b,c,d)∈∆
Endformel
f (w ) = C (n) ∧ R(n) ∧ S(w ) ∧ Accept(n) ∧ D(n).
Diese Formel ist in konjunktiver Normalform.
Falls
M
deterministisch ist, dann ist es sogar eine Hornformel.
Die Klauseln, welche nur negative Literale enthalten, sind alle Klauseln
in
C (n)
und die in
D(n),
bei denen die Disjunktion leer ist.
150 / 298
Beweis des Satzes von Cook/Levin
Die Formel
f 0 (w ) = C (n) ∧ R(n) ∧ S(w ) ∧ D(n)
ist immer erfüllbar.
Die erfüllenden Belegungen entsprechen Rechnungen von
Am Wert
Accept(n)
M.
können wir einer solchen Belegung ansehen, ob
sie erfolgreich ist.
151 / 298
P Vollständigkeit von HORNSAT
Aus dem Beweis ergibt sich unmittelbar:
HORNSAT ist P-vollständig.
152 / 298
Weitere
NP-vollständige Probleme: (1) SAT ∩ KNF
Denition: Literale, KNF
Ein Literal
x̃
ist eine aussagenlogische Variable oder die Negation einer
aussagenlogischen Variablen.
Statt
Sei
¬x
schreiben wir auch
x.
Auÿerdem sei
x = x.
KNF (bzw. DNF) die Menge der aussagenlogischen Ausdrücke in
konjunktiver Normalform (bzw. disjunktiver Normalform):
DNF
KNF
= {F | F
= {F | F
ist Disjunktion von Konjunktionen von Literalen}
ist Konjunktion von Disjunktionen von Literalen}
Fakt: Jede aussagenlogische Formel F
gibt es äquivalente Formeln
DNF(F ) ∈ DNF und KNF(F ) ∈ KNF.
153 / 298
Weitere
Beispiel:
NP-vollständige Probleme: (1) SAT ∩ KNF
!
F =
^
_
i=1,...,k
j=1,...,m
x̃i,j
!
≡
_
^
f ∈{1,...,m}{1,...,k}
i=1,...,k
x̃i,f (i)
= F0
Beachte:
I
|F 0 | = mk · k , d.h. eine KNF-Formel mit k
Disjunktionen der Länge m kann in eine äquivalente DNF-Formel
k
bestehend aus m Konjunktionen der Länge k umgewandelt
|F | = m · k
während
werden.
I Für Formeln in DNF kann Erfüllbarkeit deterministisch in
quadratischer Zeit überprüft werden.
I Wir haben gezeigt, dass Erfüllbarkeit für Formeln in KNF
NP-vollständig ist.
Deswegen ist der exponentielle Blow-Up bei der Umwandlung von
KNF in DNF nicht überraschend.
154 / 298
SAT ∩ KNF ist
NP-vollständig
Theorem
SAT ∩ KNF ist NP-vollständig.
Beweis: Siehe Beweis von Cook/Levin.
155 / 298
3-SAT ist
NP-vollständig
Denition: 3-SAT
Sei 3-
KNF die Menge der Formeln in konjunktiver Form mit genau
drei Literalen je Klausel:
33-
KNF := {F ∈ KNF | Jede Klausel in F
enthält genau drei Literale}
SAT sei die Teilmenge der davon erfüllbaren Formeln:
3-
SAT := 3-KNF ∩ SAT
Theorem
3-
SAT ist NP-vollständig.
Beweis: Nur die NP-Schwierigkeit ist nicht trivial.
SAT ∩ KNF ≤log
m 3-SAT.
eine KNF-Formel. Wir unterscheiden drei Fälle:
Wir zeigen:
Sei
F
156 / 298
NP-vollständig
3-SAT ist
1.
F
enthält eine Klausel
Führe neue Variable
y
(x̃)
mit nur einem Literal.
ein und ersetze
Dies hat auf die Erfüllbarkeit von
2.
F
(x̃)
durch
(x̃ ∨ y ) ∧ (x̃ ∨ y ).
keine Auswirkung.
(x̃ ∨ ỹ ) mit zwei Literalen.
z ein und ersetzte (x̃ ∨ ỹ ) durch
(x̃ ∨ ỹ ∨ z) ∧ (x̃ ∨ ỹ ∨ z).
F
enthält eine Klausel
Führe neue Variable
3.
F
enthält Klauseln mit mehr als drei Literalen.
Sei also
c = (x̃1 ∨ x̃2 ∨ · · · ∨ x̃k )
eine solche Klausel mit
Literalen.
Führe
k −3
und ersetzen
c
0
=
neue Variablen
c
k ≥4
v (x̃3 ), v (x̃4 ), . . . , v (x̃k−2 ), v (x̃k−1 )
ein
durch
x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧
k−
^2
i=3
v (x̃i ) ∨ x̃i ∨ v (x̃i+1 )
∧ v (x̃k−1 ) ∨ x̃k−1 ∨ x̃k .
157 / 298
3-SAT ist
NP-vollständig
0
Beachte: c kann auch geschrieben werden als
c0 =
^2
k−
x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧
v (x̃i ) ⇒ x̃i ∨ v (x̃i+1 )
i=3
∧ v (x̃k−1 ) ⇒ x̃k−1 ∨ x̃k .
Dass (3) nichts an der Erfüllbarkeit ändert folgt aus folgenden
Punkten:
(A) Sei σ
eine erfüllende Belegung für
Dann muss
Erweitere
σ
σ(x̃i ) = 1
für ein 1
≤i ≤k
c.
gelten.
zu einer erfüllenden Belegung von
(
0
σ (v (x̃j )) =
1
falls
0
falls
c0
durch:
j ≤i
j >i
158 / 298
3-SAT ist
(B) Sei σ 0
NP-vollständig
eine erfüllende Belegung für
Angenommen
σ 0 (x̃i ) = 0
=⇒ σ 0 (v (x̃3 )) = 1
(da
Mit Induktion folgt:
=⇒
σ 0 (v (x̃k−1 )
für alle 1
c 0.
≤ i ≤ k.
σ 0 (x̃1 ∨ x̃2 ∨ v (x̃3 )) = 1)
σ 0 (v (x̃i )) = 1
∨ x̃k−1 ∨ x̃k )) = 0
für alle 3
≤ i ≤ k − 1.
Widerspruch!
159 / 298
Übersicht
SAT is NL vollständig.
HORNSAT is P vollständig.
3-SAT is NP vollständig.
1.) 22.)
3.)
160 / 298
Integer Programming
Es sei
LinProg(Z) := {hA, bi | A ∈ Zm×n , b ∈ Zm×1 , ∃x ∈ Zn×1 : Ax ≥ b}
Zahlen aus
Z
werden hier binär kodiert.
Theorem
LinProg(Z) ist NP-vollständig.
Beweis:
(1)
LinProg(Z) ∈ NP:
Dies ist der schwierige Teil des Beweises, siehe z. B. Hopcroft, Ullman;
Introduction to Automata Theory, Languages and Computation,
Addison Wesley 1979
161 / 298
Integer Programming
LinProg(Z) ist NP-schwierig.
log
Wir zeigen 3-SAT ≤m LinProg(Z).
(2)
Sei
F = c1 ∧ c2 ∧ · · · ∧ cq
Seien
x1 , . . . , xn
eine Formel in 3-
die Variablen in
Wir bilden das folgende System
Variablen
1.
2.
3.
4.
5.
KNF.
F.
S
von
Z-Ungleichungen
über den
xi , xi , 1 ≤ i ≤ n:
xi ≥ 0,
xi ≥ 0,
1
1
≤i ≤n
≤i ≤n
xi + xi ≥ 1,
1
≤i ≤n
−xi − xi ≥ −1,
1
≤i ≤n
x̃j 1 + x̃j 2 + x̃j 3 ≥ 1,
für jede Klausel
cj = (x̃j 1 ∨ x̃j 2 ∨ x̃j 3 ).
162 / 298
Integer Programming
(3)
und
(4)
=⇒
xi + xi = 1
(1)
und
(2)
=⇒
xi = 1, xi = 0
(5)
=⇒
in jeder Klausel
x̃ij
Also:
S
S : 4n + q
Schreiben wir
(4n + q) × 2n
S
cj
xi = 0, xi = 1
hat mindestens ein Literal
den Wert 1
lösbar genau dann, wenn
Gröÿe von
oder
F
erfüllbar.
Ungleichungen, 2n Variablen.
in Matrixform
(bzw. 4n
+ q)
Ax ≥ b ,
so hat
A
(bzw.
b)
≤ 1.
Einträge von Absolutbetrag
Bemerkungen:
I Obiger Beweis zeigt, dass
LinProg(Z) bereits bei unärer
NP-schwierig ist.
LinProg(Q) ∈ P. Dieser Nachweis ist sehr schwierig und beruht
Kodierung
I
auf der Ellipsoidmethode von Khachiyan.
163 / 298
Vertex Cover ist
NP-vollständig
Eine Knotenüberdeckung (vertex cover) für einen ungerichteten
G = (V , E ) ist eine Teilmenge C ⊆ V ,
{u, v } ∈ E gilt: {u, v } ∩ C 6= ∅
Graphen
so das für jede Kante
Vertex Cover (VC) ist das folgende Problem:
Eingabe: Ein ungerichteter Graph G = (V , E ) und ein k ≥ 0.
Frage: Hat G Knotenüberdeckung C mit |C | ≤ k ?
Theorem
VC ist NP-vollständig.
Beweis:
(1)
VC ∈ NP: Rate eine Teilmenge C
der Knoten mit
überprüfe danach in Polynomialzeit, ob
VC ist NP-schwierig:
log
Wir zeigen 3-SAT ≤m VC.
C
|C | ≤ k
und
eine Knotenüberdeckung ist.
(1)
164 / 298
Vertex Cover ist
NP-schwierig
Sei
F = c1 ∧ · · · ∧ cq
eine Formel in 3-
KNF, wobei
f
cj = (f
xj 1 ∨ xf
j2 ∨ x
j 3 ).
Wir konstruieren einen Graphen
G (F )
Zunächst bilden wir zu jeder Klausel
folgenden Graphen
G (cj ):
wie folgt:
f
cj = (f
xj 1 ∨ xf
j2 ∨ x
j 3)
den
xf
j3
xf
j1
xf
j2
165 / 298
Vertex Cover ist
Der Graph
G (F )
NP-schwierig
entsteht aus der disjunkten Vereinigung
aller dieser Teilgraphen
eine Variable aus
G (cj )
Sq
durch Einfügen aller Kanten
j=1 G (cj )
(x, x) (x
ist
F ).
Beispiel:
Für die Formel
F = (x ∨ y ∨ z) ∧ (x ∨ s ∨ r ) ∧ (y ∨ s ∨ z) ∧ (x ∨ s ∨ r )
G (F ):
führt diese Konstruktion zu folgendem Graphen
z
x
r
y
x
r
z
s
y
s
x
s
166 / 298
Vertex Cover ist
NP-schwierig
Beachte: In G (F ) kann es kein Vertex Cover U
Knoten geben, da in jedem der
q
mit weniger als 2q
Dreiecke mindestens 2 Knoten zu
U
gehören müssen.
Behauptung:F ∈ 3-SAT genau dann, wenn G (F ) ein Vertex Cover U
mit
|U| = 2q
(A) Sei
σ
hat.
eine erfüllende Belegung für
Dann wird in jeder Klausel
Sei
U
cj
F.
mindestens ein Literal
eine Knotenmenge, die für jeden Teilgraphen
Knoten enthält, so dass nicht-erfüllte Literale zu
Dann gilt
|U| = 2q
und
U
U
xeji
wahr.
G (cj )
genau zwei
gehören.
ist ein Vertex-Cover.
167 / 298
Vertex Cover ist
(B) Sei
U
NP-schwierig
ein Vertex-Cover mit
U
Dann enthält
aus jedem Teilgraphen
Deniere Belegung
σ(x) =


1
0


0
Beachte: Da
U
|U| = 2q .
σ
G (cj )
genau zwei Knoten.
durch
x nicht zu U gehört.
eine Kopie von x nicht zu U gehört.
alle Kopien von x und x zu U gehören.
falls eine Kopie von
falls
falls
ein Vertex Cover ist, und alle Kanten
(x, x)
in
G (F )
vorhanden sind, wird keine Variable gleichzeitig auf 0 und 1 gesetzt.
Oensichtlich gilt
σ(F ) = 1.
168 / 298
Ein gutes und erfolgreiches Neues Jahr
2017
ist eine Primzahl, danach folgen die Zwillinge 2027 und 2029, keine
der neun Zahlen 2018, . . . , 2026 ist prim.
169 / 298
3-Färbbarkeit von Graphen
. . . ist
NP-vollständig. (Beweis mittels einer Variante von 3SAT,
NAE-3SAT. Siehe Tafel.)
170 / 298
3-Färbbarkeit von planaren Graphen
. . . ist ebenfalls
NP-vollständig. In NP ist klar. Wir reduzieren
3-Färbbarkeit in Polyzeit auf 3-Färbbarkeit planarer Graphen.
Hierzu ersetzen wir jede Kreuzung des gegebenen Graphen durch ein
planares Dingsbums (englisch: gadget) namens
X (X
wie
Kreuzung).
171 / 298
3-Färbbarkeit von planaren Graphen: Dingsbums
Gadget
X:
N
W
O
S
c gilt c(N) = c(S) und c(O) = c(W ).
c(N) = c(S) und c(O) = c(W ) kann zu
1. Für jede 3-Färbung
2. Jede Färbung mit
3-Färbung von
X
einer
erweitert werden.
Der Trick ist dabei, mit dem Knoten in der Mitte zu beginnen, um
die Kombinatorik in den Gri zu bekommen.
172 / 298
3-Färbbarkeit: Ersetzung von Kreuzungen
N
W
N
O
wird zu
W
S
O
S
Beachte, dass die grauen Punkte beliebig nahe an der Kreuzungsmitte
gewählt werden können.
Daher kann die Ersetzung dergestalt durchgeführt werden, dass keine
neuen Kreuzungen (mit anderen Kanten) entstehen.
Ohne Einschränkung liegen
und
O
W
und
S
auf dem alten Graphen und
N
auf den alten Kanten. So induziert eine Färbung mit Gadgets
eine Färbung des Graphen ohne Gadgets.
173 / 298
NP-vollständig
Hamilton-Kreis und Hamilton-Pfad sind
Ein Hamilton-Pfad in einem gerichteten Graphen
Folge von Knoten
I
(vi , vi+1 ) ∈ E
v1 , v2 , . . . , vn
für alle 1
I für jeden Knoten
v ∈V
G = (V , E )
ist eine
mit
≤i ≤n−1
und
existiert genau ein 1
Ein Hamilton-Kreis ist ein Hamilton-Pfad
≤i ≤n
v1 , v2 , . . . , vn
mit
v = vi .
mit
(vn , v1 ) ∈ E .
Es sei
HP
HC
= {G | G
= {G | G
ist ein Graph mit einem Hamilton-Pfad}
ist ein Graph mit einem Hamilton-Kreis}
Theorem
HP und HC sind NP-vollständig (sogar für ungerichtete Graphen).
174 / 298
Hamilton-Kreis und Hamilton-Pfad sind
NP-vollständig
Beweis: Wir zeigen nur die NP-Vollständigkeit von HC.
(A) HC ∈ NP: trivial.
(B) 3-
SAT ≤log
m HC:
F = c1 ∧ c2 ∧ · · · ∧ cm eine Formel
c1 , . . . , cm in den Variablen x1 , . . . , xn .
Sei
Wir konstruieren einen Graphen
Hamilton-Kreis hat, falls
G (F ),
F ∈ SAT
in 3-
der genau dann einen
gilt.
Zunächst denieren wir zu jeder Klausel
b4
c
folgenden Graphen
b3
a34
a33
a32
a31
KNF mit den Klauseln
G (c):
b2
a24
a23
a22
a21
b1
a14
a13
a12
a11
175 / 298
NP-vollständig
Hamilton-Kreis und Hamilton-Pfad sind
Beachte:
I In
G (c)
gibt es keinen Hamilton-Pfad von
b1
nach
b4 .
G (c) mindestens einen der Wege
bj − aj 1 − aj 2 − aj 3 − aj 4 − bj+1 , j ∈ {1, 2, 3} weg, so
einen Hamilton-Pfad von b1 nach b4 .
I Lässt man jedoch in
Für eine Variable
und
{cj1 , . . . , cjl }
O.B.d.A i1
x
sei
{ci1 , . . . , cik }
die Menge der Klauseln mit
die Menge der Klauseln mit
< · · · < ik , j1 < · · · < j`
Zu jeder Variablen
x
gibt es
sowie
x ∈ cj .
x ∈ ci
∀p, q : ip 6= jq .
denieren wir nun einen Graphen
G (x):
ei1 1
ei1 2
ei1 3
ei1 4
eik 1
eik 2
eik 3
eik 4
ej1 1
ej 1 2
ej1 3
ej 1 4
ejl 1
ej l 2
ejl 3
ej l 4
176 / 298
Hamilton-Kreis und Hamilton-Pfad sind
Den Graphen
G (F )
NP-vollständig
bilden wir durch Zusammenfügen der bisher
G(xn)
G(ck )
G(ci )
G(c1)
G(xj )
G(x1)
konstruierten Graphen nach dem folgenden Muster:
ck = (x̃k1 ∨ x̃k2 ∨ x̃k3 ) noch
G (ck ) und den Graphen G (xki ):
Zusätzlich benötigen wir für jede Klausel
Verbindungen zwischen dem Graphen
177 / 298
′′
ek4
′′
ek3
′′
ek2
a34
b4
a33
G(ck )
a32
a31
′′
ek1
G(xk3 )
NP-vollständig
′
ek4
b3
a24
′
ek3
a23
′
ek2
a22
′
ek1
b1
b2
a14
a21
ek4
a13
a12
ek3
ek2
a11
ek1
G(xk1 )
G(xk2 )
Hamilton-Kreis und Hamilton-Pfad sind
i ∈ {1, . . . , 3} und q ∈ {1, . . . , 4} den Knoten
Knoten ekq aus G (xki ) über einen neuen
Wir verbinden also für
aiq
in
G (ck )
mit dem
Zwischenknoten.
178 / 298
Hamilton-Kreis und Hamilton-Pfad sind
Beispiel: Sei F = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ).
|
} |
{z
c2
}
der folgende Graph:
G(c2)
G(x3)
G(x2)
G(c1)
G (F )
c1
G(x1)
Dann ist
{z
NP-vollständig
179 / 298
Hamilton-Kreis und Hamilton-Pfad sind
NP-vollständig
Behauptung: F ∈ SAT genau dann, wenn G (F ) einen Hamilton-Kreis
hat.
Angenommen
σ
ist eine erfüllende Belegung von
Wir erhalten einen Hamilton-Kreis für
G (F )
F.
wie folgt:
Der Weg führt über die erfüllten Literalen entsprechenden Knoten in
G (xi ), wobei jedoch über die zuletzt eingefügten Verbindungen in
jedem G (ck ) genau eine Knotengruppe ai 1 − ai 2 − ai 3 − ai 4 besucht
den
wird.
Dies ist möglich, da in jeder Klausel mindestens ein Literal erfüllt ist.
Nachdem so alle
G (xi )
durchwandert wurden, werden die in den
verbleibenden Knoten und die zugehörigen Knoten in den
G (ck )
G (xi )
besucht.
Anschlieÿend endet der Weg im Startknoten.
180 / 298
Hamilton-Kreis und Hamilton-Pfad sind
Sei
C
ein Hamilton-Kreis für
NP-vollständig
G (F ).
Dieser durchläuft in jedem der Graphen
Dies deniert eine erfüllende Belegung
G (xi )
σ
von
einen der beiden Zweige.
F.
181 / 298
Rucksackproblem
Erinnerung: Beim Rucksack-Problem sind (in dem Spezialfall
Subset-Sum) Zahlen
a1 , . . . , an , s ∈ N binär kodiert gegeben P
und die
I ⊆ { 1, . . . , n } gibt so, dass s = i∈I ai .
Frage ist, ob es eine Menge
In den Übungen war es die Weihnachtsaufgabe zum
Geschenkeverteilen.
Theorem
Das Rucksack-Problem ist
Wir können
I ⊆ { 1, . . . , n }
Daher liegt das Problem in
Die
3-
NP-vollständig.
raten und dann
NP.
s=
P
i∈I
ai
verizieren.
NP-Schwierigkeit erhält man durch eine einfache Reduktion von
SAT auf dieses Problem.
182 / 298
Einfache Instanzen
Das Rucksack-Problem ist pseudo-polynomiell lösbar, also in
der Zielwert
s
P,
wenn
unär codiert wird.
Allgemeiner: Für
I ⊆ { 1, . . . , n }
bezeichne
a(I ) =
P
i∈I
ai .
Angenommen, die Anzahl der Werte
{ a(I ) ∈ N | a(I ) ≤ s, I ⊆ { 1, . . . , n } }
ist polynomiell in der Eingabe begrenzt. Dann können wir diese Menge
in
n
Schleifendurchläufen berechnen und damit das Rucksack-Problem
polynomiell lösen.
183 / 298
(Horowitz/Sahni 1974)
e 2n/2 )
Zeit und Speicher in O(
I Berechne und speichere in einer nach a(I ) sortierten Liste L1 alle
{1,...,m} sowie in einer sortierten Liste L alle
Teilmengen I ∈ 2
2
{m+1,...,n} .
Teilmengen J ∈ 2
I Dies sind jeweils Listen mit 2m
L1 aufsteigend
a(I ) + a(J) = s .
I Suche in
und in
= 20,5n
L2
Elementen.
absteigend ein Paar
(I , J)
mit
184 / 298
Bekannte Schranke bis 2009
Der Schroeppel-Shamir Algorithmus (SIAM J. Comput.,
10(3):456464, 1981) liefert unter einer einfachen heuristischen
Annahme die Laufzeit
e 2n/2 )
O(
bei einem Speicherbedarf von
e 2n/4 ).
O(
Erst im Jahre 2009 verbesserten Nick Howgrave-Graham und Antoine
Joux dieses Ergebnis: Laufzeit
von
e 20,256n ).
O(
e 20,337n )
O(
bei einem Speicherbedarf
(New generic algorithms for hard knapsacks. In
EUROCRYPT'2010, pages 235256, 2010.)
185 / 298
Nicht
NP-vollständige Mengen innerhalb von NP \ P
Nach unserem bisherigen Wissen wären folgende 3 Situationen möglich:
NPvollständige
NP
NP-
NP
vollständige
Mengen
Mengen
P = NP
P
P
I
II
III
Im Folgenden werden wir zeigen, dass die 3. Möglichkeit nicht möglich
ist.
Theorem
Ist P 6= NP, dann existiert (eektiv) eine Sprache L ∈ NP \ P, die
nicht NP-vollständig ist.
186 / 298
Die Sprachen Lf
Für eine schwach monoton wachsende Funktion
(x2
> x1 ⇒ f (x2 ) ≥ f (x1 ))
sei
Lf = {x ∈ Σ∗ | x ∈ SAT ∧ f (|x|)
f :N→N
ist gerade}
Bemerkung:
1. Ist der Wertebereich endlich, so ist die der maximale Wert gerade
oder ungerade. Je nachdem ist
Lf
fast ganz
SAT oder Lf
ist fast
leer (d.h. endlich).
2. Ist
f
in Polynomialzeit berechenbar, so gilt
Lf ∈ NP.
187 / 298
Konstruktion der Sprachen in
NP \ P
Im Folgenden geben wir ein Programm an, welches eine Funktion
f : N → N rekursiv in Zeit O(n) berechnet. =⇒ Lf ∈ NP.
Sei M1 , M2 , . . . eine Aufzählung aller deterministischen
Turingmaschinen mit einer zusätzlichen polynomialen Zeitschranke.
Eigentlich zählen wir alle Paare
(Mi , pj )
von deterministischen
Turingmaschinen und Polynomen auf.
Wir erhalten daraus obige Aufzählung, indem
Mi
mit einem
zusätzlichen Schrittzähler, welcher die polynomiale Zeitschranke
pj (n) = nj
sicherstellt, versehen wird.
188 / 298
Nicht
NP-vollständige Mengen innerhalb von NP \ P
Sei analog
R1 , R2 , . . .
eine Aufzählung aller Polynomialzeitreduktionen.
Wir verwenden ferner im Folgenden einen beliebigen (exponentiellen)
deterministischen Algorithmus zur Erkennung von
Zusammen mit der Linearzeitberechnung von
f
auch einen festen Algorithmus zur Erkennung von
berechne
Es sei
f (|x|).
Akzeptieren falle
L∆K =L\K ∪ K \L
Beachte: ist L ∈ C
C
und ist
f (|x|)
SAT.
erhalten wir damit
Lf : Auf Eingabe x
x ∈ SAT.
gerade und
die symmetrische Dierenz.
für eine der hier betrachteten Komplexitätsklassen
|L ∆ K | < ∞,
so gilt auch
K ∈ C.
189 / 298
Nicht
NP-vollständige Mengen innerhalb von NP \ P
FUNCTION f (n)
if n = 0 then return 0
else (∗ n > 0 ∗)
i := 0; k := 0
loop für genau n Befehlsschritte
k := f (i); i := i + 1
endloop
(∗ Beachte: alle rekursiven Aufrufe f (i) geschehen nur mit i < n. ∗)
(∗ Der Wert von k ist nach Durchlaufen dieser Schleife sehr klein. ∗)
if k = 2j (insbes. ∗ k gerade) ∗ then
suche für genau n Schritte in längenlexikograph. Reihenfolge ein x ∈ L(Mj ) ∆ Lf
endif
if k = 2j + 1 (insbes. ∗ k
ungerade) ∗ then
n Schritte in längenlexikograph. Reihenfolge
(x ∈ SAT ∧ Rj (x) ∈
/ Lf ) ∨ (x ∈
/ SAT ∧ Rj (x) ∈ Lf )
suche für genau
endif
if ein solcher Zeuge x ∈ Σ∗ wurde gefunden then return k + 1
else return k
endif
endif
ein
x ∈ Σ∗
mit
190 / 298
Nicht
NP-vollständige Mengen innerhalb von NP \ P
Bemerkung: f (n) ist wohldeniert und wird in O(n) Schritten
f (n) + 1 ≥ f (n + 1) ≥ f (n) für alle n ∈ N.
Wir zeigen jetzt mit Widerspruch: wenn P 6= NP gilt, so liegt Lf
weder in P noch ist Lf NP-vollständig (beachte: Lf ∈ NP).
berechnet. Es gilt weiter
Dazu überlegen wir zunächst:
1. Wenn
Lf ∈ P,
dann existiert ein
=⇒ L(Mj ) ∆ Lf = ∅
Aus der Berechnung von
f
folgt
j
mit
Lf = L(Mj ).
∀n ∈ N : f (n) ≤ 2j .
SAT ≤pm Lf .
=⇒ es gibt j ≥ 0 mit ∀x ∈ Σ∗ : x ∈ SAT ⇔ Rj (x) ∈ Lf .
=⇒ ¬∃x ∈ Σ∗ : (x ∈ SAT ∧ Rj (x) ∈
/ Lf ) ∨ (x ∈
/ SAT ∧ Rj (x) ∈
2. Wenn
Lf NP-vollständig
ist, dann ist
Lf ).
Aus der Berechnung von
f
folgt
∀n ∈ N : f (n) ≤ 2j + 1.
191 / 298
Nicht
NP-vollständige Mengen innerhalb von NP \ P
Ist also
Lf ∈ P
oder
Lf NP-vollständig,
so ist
f
beschränkt und wird
schlieÿlich stationär.
Man beachte nun:
f beschränkt und f (n) gerade für fast alle n, so gilt
|Lf ∆ SAT| < ∞ und Lf ist NP-vollständig.
Ist f beschränkt und f (n) ungerade für fast alle n, so ist Lf
endlich und damit Lf ∈ P.
der Vorraussetzung P 6= NP folgt nun:
f (n) = 2j für fast alle n.
=⇒ L(Mj ) = Lf .
=⇒ Lf ist NP-vollständig nach (1) oben. Widerspruch zu
L(Mj ) ∈ P.
f (n) = 2j + 1 für fast alle n.
=⇒ Rj ist Reduktion von SAT auf Lf .
Widerspruch zu (2) oben, da Lf endlich ist und wegen P 6= NP
1. Ist
2.
Aus
1.
2.
die Sprache
kann.
SAT nicht auf eine Sprache in P reduziert werden
192 / 298
Dünne Mengen und der Satz von Mahaney
Eine Menge
L ⊆ Σ∗
ist dünn, wenn ein Polynom
p(n)
mit
∀n ≥ 0 : w ∈ L | |w | = n ≤ p(n).
existiert.
Z. B. ist jede Sprache über einem unären Alphabet
{a}
dünn.
Satz von Mahaney
Gilt P 6= NP, so gibt es keine dünne Sprache, die NP-schwierig ist.
193 / 298
Beweis des Satzes von Mahaney
0
Es wird zunächst eine Menge SAT deniert:
SAT
0
F ist boolesche Formel in den Variablen x1 , . . . , xn ,
= hF , xi x ∈ {0, 1}n und ∃y ∈ {0, 1}n : (y ≥ x ∧ F (y ) = 1)
Hierbei ist
I
I
≥ die lexikographische Ordnung auf {0, 1}∗ und
F (y ) = 1 bedeutet, dass der Bitstring y als Belegung der
Variablen x1 , . . . , xn interpretiert wird und F sich unter dieser
Belegung zu wahr auswertet.
Behauptung: SAT0 ist NP-vollständig.
0
1. SAT ∈ NP: Rate Belegung y ≥ x und überprüfe, ob F (y ) = 1.
0
2. SAT ist NP-schwierig:
O.B.d.A. enthalte
0
F
x1 , . . . , xn . Wir reduzieren SAT
F 7→ hF , 0n i. Es gilt oensichtlich:
die Variablen
auf SAT mit der Abbildung
F ∈ SAT ⇔ hF , 0n i ∈ SAT0
194 / 298
Beweis des Satzes von Mahaney
F in den Variablen x1 , . . . , xn denieren
f : [0, . . . , 2n − 1] → {0, 1} durch
0
1, falls hF , xi ∈ SAT
f (x) =
Für eine Formel
Funktion
wir eine
0, sonst
Der Denitionsbereich von
Der Graph von
f
f
wird hier mit
ist eine Treppenfunktion:
{0, 1}n
identiziert.
1
0
0n
Der Wert
für
F.
y
y
1n
ist hier die (lexikographisch) gröÿte erfüllende Belegung
195 / 298
Beweis des Satzes von Mahaney
Angenommen
∈ NP, gibt
0
SAT auf L. Wir
Da SAT
von
L ⊆ {0, 1}∗
0
ist eine dünne
NP-schwierige Sprache.
H : Σ∗ → {0, 1}∗
es eine Polynomialzeitreduktion
interpretieren dies am besten als eine ezient
berechenbare Hash-Funktion. Aber möglicherweise ist
L
unentscheidbar!
hF , xi ∈ SAT0 ⇔ H(hF , xi) ∈ L
Die Länge einer Eingabe
hF , xi
denieren wir im folgenden zu
und wir können o.B.d.A. annehmen, dass die Formel
aus der Menge
x1 , . . . , xn
L
n = |F |
nur Variablen
enthält.
Wir zeigen, dass unter obigen Annahmen SAT
Da
F
∈ P,
d.h.
P = NP gilt.
nach Annahme eine dünne Sprache ist, gibt es ein Polynom
p(n)
mit
H(hF , xi) | hF , xi ∈ SAT0 ∧ |hF , xi| ≤ n ≤ p(n).
196 / 298
Beweis des Satzes von Mahaney
Sei
I = [0, . . . , 2n − 1].
Ist 2
n
≤ 2p(n), so werten wir alle Belegungen
I (irgendwie) in 2 · p(n) nichtleere
aus. Ansonsten unterteilen wir
Teilintervalle.
Jedes Intervall wird durch die linke Grenze und die Länge repräsentiert.
Für die linken Grenzen
xi
wird
(Hash-)Tabelle abgelegt.
Wenn dabei zwei Tupel
hF , xi i
H(hF , xi i)
und
berechnet und in einer
hF , xj i
auf denselben Wert
abgebildet werden, ndet eine Kollisionsauösung statt:
xi < xj . Dann werden alle Teilintervalle mit linken
Grenzen xi , xi+1 , . . . , xj−1 gelöscht, denn alle haben denselben
Funktionswert f (xj ). Nur das Interval mit linker Grenze Xj überlebt.
Sei o.B.d.A.
Man beachte, dass dabei das Intervall, das die gröÿte erfüllende
Belegung
y
enthält (sofern überhaupt eine erfüllende Belegung
existiert), nicht gelöscht wird:
aus
xi ≤ y < xj
würde sich
H(hF , xi i) 6= H(hF , xj i)
ergeben.
197 / 298
Beweis des Satzes von Mahaney
Am Ende dieser Prozedur sind die Werte
H(hF , xi i)
für alle linken
Grenzen der verbleibenden Intervalle verschieden.
p(n) positive Antworten (f (xk ) = 1) geben kann,
sind hF , xp(n)+1 i, . . . , hF , xl i ∈
/ SAT0 und die zugehörigen Intervalle mit
den linken Grenzen xp(n)+1 , . . . , xl können gelöscht werden, ohne das
Intervall mit der gröÿten erfüllenden Belegung y zu löschen.
Da es nur maximal
Am Ende bleiben also höchstens
p(n)
Intervalle übrig.
Jetzt wird eine Intervallhalbierung bei den verbleibenden Intervallen
durchgeführt. Einpunktintervalle werden nicht verändert.
Dies erzeugt maximal 2
· p(n)
Intervalle, die nach dem gleichen
Verfahren wiederum auf maximal
p(n)
Intervalle verringert werden.
Dann erfolgt eine erneute Intervallhalbierung usw.
n
Intervall I
Nach höchstens
Halbierungen gibt es nur noch Einpunktintervalle
(da das
2
n Elemente enthält) und das Verfahren der
Intervallhalbierungen wird abgebrochen.
198 / 298
Beweis des Satzes von Mahaney
Die bis zu diesem Zeitpunkt verbrauchte Zeit ist polynomial
beschränkt.
Seien
x1 , . . . , x` (` ≤ p(n))
die linken Grenzen der verbleibenden
1-Punkt-Intervalle.
Jetzt kann in polynomialer Zeit für jedes
berechnet werden.
i,
1
≤ i ≤ `,
der Wert
F (xi )
F (xi ) = 0 für alle i , so ist F unerfüllbar. Sonst ist F erfüllbar
gröÿte xi mit F (xi ) = 1 ergibt die gröÿte erfüllende Belegung).
Ist
Damit können wir F
∈ SAT?
(das
in Polynomialzeit entscheiden.
199 / 298
Vollständige Probleme für
Sei
Lcfe = {hG i| G
P
ist eine kontextfreie Grammatik mit
Dabei stellen die spitzen Klammern
Grammatiken dar,
cfe
hi
L(G ) = ∅}.
eine geeignete Kodierung von
steht für contextfreeempty.
Theorem
Lcfe ist P-vollständig.
Beweis:
(A) Lcfe ∈ P
Teste für eine gegebene Grammatik
G,
ob das Startsymbol
S
produktiv ist.
(B) Lcfe
ist
P-schwierig.
Wir reduzieren
HORNSAT auf Lcfe .
200 / 298
Reduktion
Sei
ϕ = C1 ∧ · · · ∧ Cm eine Formel in HORN−KNF in den booleschen
B1 , . . . , Bn . Unter Hinzunahme einer neuen Variablen F (für
Variablen
falsch) gilt ohne Einschränkung:
1.
C1 = { ¬F }
2. Alle
Ci
C2 , . . . , Cm
enthalten genau ein positives Literal, denn wenn
ursprünglich keins enthielt, dann kann man
Ziel: Konstruktion einer Grammatik Gϕ
F , B1 , . . . , Bn
F
hinzufügen.
in den Nichterminalen
und leerem Terminalalphabet
∅
mit
ϕ ∈ HORNSAT ⇐⇒ Gϕ (F ) = ∅.
Hierbei bezeichne
Gϕ (A)
die erzeugte Sprache, wenn
∗
Startsymbol ist. Man beachte ∅
A
das
= { ε }.
201 / 298
Konstruktion von Gϕ
C2 , . . . , Cm in der Form A1 ∧ · · · ∧ Ak → B.
C2 , . . . , Cm genau ein positives Literal enthalten.
Für k = 0 erzeugen wir die Grammatikregel A → ε; für k ≥ 1 erzeugen
wir die Grammatikregel B → A1 · · · Ak . Dies deniert Gϕ .
Schreibe alle Klauseln
Dies ist möglich, da
ϕ
enthält keine Fakten (also ist stets
k ≥ 1),
genau dann wenn
Gϕ
keine Terminalregeln enthält. Dies zeigt die Behauptung in diesem Fall.
Sei daher ohne Einschränkung
C2 = { A }
Streiche alle Klauseln der Form
und damit
A1 ∧ · · · ∧ Ak → A
A
ein Fakt.
(insbesondere wird
C2 gestrichen) und ersetze jede verbliebene Klausel
Ci = { B, ¬A1 , . . . , ¬Ak } durch Ci \ { ¬A }.
0
Wir erhalten eine neue Formel ϕ und eine Grammatik Gϕ0
mit
ϕ ∈ HORNSAT ⇐⇒ ϕ0 ∈ HORNSAT ⇐⇒ Gϕ0 (F ) = ∅ ⇐⇒ Gϕ (F ) = ∅,
denn
ϕ0 ∈ HORNSAT ⇐⇒ Gϕ0 (F )
gilt nach Induktion über die Zahl
der Fakten. Die anderen Äquivalenzen überprüft man direkt.
202 / 298
Straight-Line Programme (SLP)
Ein SLP ist eine kontext-freie Grammatik
partiellen Ordnung
<
G = (V , Σ, P, S) mit einer
V so, dass alle Regeln
auf der Variablenmenge
A → B1 · · · Bk
die folgende Bedingung erfüllen
∀1 ≤ i ≤ k : A < Bi .
Ein SLP kann maximal ein Wort erzeugen, daher codiert ein SLP ein
Wort und man kann Straight-Line Programme zur Datenkompression
(analog zu Lempel-Ziv) einsetzen.
Sei
Gn
das SLP mit den Regeln
Terminalregel
An → a.
Ai → Ai+1 Ai+1
für 0
≤ i < n und
n und
der
Dann ist Gröÿe des SLP linear in
L(Gn ) =
a2
n
.
203 / 298
Boolesche Schaltkreise
Denition boolescher Schaltkreis
Ein boolescher Schaltkreis
C = ({1, . . . , o}, E , s)
I
I
∀(i, j) ∈ E : i < j ,
C
ist ein gerichteter markierter Graph
für ein
d.h.
G
o∈N
mit folgenden Bedingungen.
ist azyklisch.
s : {1, . . . , o} → {¬, ∧, ∨, true, false}
s(i) ∈ {∧, ∨}
⇒
Eingangsgrad(i)
=2
Eingangsgrad(i)
=1
s(i) ∈ {true, false}
⇒
Eingangsgrad(i)
=0
s(i) = ¬
s(i)
wobei gilt:
ist die Sorte von Knoten
⇒
i.
Die Knoten werden als Gatter bezeichnet.
Das Gatter
o
(output) ist das Ausgangsgatter von
C.
204 / 298
Boolesche Schaltkreise
Durch Auswerten (im intuitiven Sinne) des Schaltkreises
Gatter
i
ein Wert
v (i) ∈ {true, false}
C
kann jedem
zugeordnet werden.
Ein Schaltkreis ist monoton, falls er keine NOT-Gatter enthält.
(Die Gatter mit Werten
true
oder
false
sind weiterhin erlaubt.)
CV) ist das folgende Problem:
Circuit Value (
INPUT: Ein boolescher Schaltkreis C
FRAGE: Wertet sich das Ausgangsgatter von C
zu
true aus?
MCV) ist das folgende Problem:
Monotone Circuit Value (
INPUT: Ein monotoner boolescher Schaltkreis C
FRAGE: Wertet sich das Ausgangsgatter von C zu true aus?
205 / 298
Circuit Value und
MCV sind P-vollständig
Satz
CV und MCV sind P-vollständig.
Beweis:
(i) CV ∈ P: Klar, werte alle Gatter in der Reihnfolge 1, 2, . . . , o
(ii) MCV ist P-schwierig:
Betrachte den Beweis zur P-Vollständigkeit von Lcfe .
Zu einer kontext-freien Grammatik
logspace) ein SLP
SG
G
aus.
kann man sehr einfach (in
konstruieren mit
L(G ) = ∅ ⇐⇒ L(SG ) = ∅.
Alle Produktionen von
SG
sind etwa vom vom Typ
A → B1 B2 B3 | · · · |Z1 Z2 Z3
oder
Wir konstruieren einen monotonen Schaltkreis
A → v ∈ Σ∗
C (v )
wie folgt:
206 / 298
Circuit Value und
MCV sind P-vollständig
G (v ) wird ein Gatter in C (v ) zugeordnet.
G (v ) ist das Ausgangsgatter von C (v ).
A → B1 B2 B3 | · · · |Z1 Z2 Z3 führt zu folgender
Jedem Nichtterminal von
Das Startsymbol von
Die Produktion
Verdrahtung:
B1 B2 B3
Z1 Z2 Z3
·········
A
Eine Variable
true-Gatter.
A
mit der Produktion
A → v ∈ Σ∗
wird zu einem
207 / 298
Circuit Value und
Eine Variable
A,
MCV sind P-vollständig
für die keine Produktion mit
existiert, wird zu einem
false-Gatter.
A
auf der linken Seite
Beachte: Der so erzeugte Schaltkreis C (G ) ist in der Tat azyklisch,
+
SG sind keine Ableitungen der Form A → uAv mit u, v ∈ V ∗
und A ∈ V möglich.
Es gilt: L(SG ) 6= ∅ ⇐⇒ GatterS wertet sich in C (G ) zu true aus.
denn in
Einziges Problem: Der Eingangsgrad von UND- bzw. ODER-Gattern in
G (v )
ist möglicherweise
≥ 3.
Lösung: Ersetze Gatter mit Eingangsgrad
d
entsprechende Gatter mit Eingangsgrad 2.
(für
d ≥3
durch
d −1
208 / 298
Circuit Value und
MCV sind P-vollständig
Bemerkung: In einem Schaltkreis kann ein Gatter Ausgangsgrad > 1
haben. Dies scheint für die P-Schwierigkeit wichtig zu sein:
Die Menge der (variablen-freien) booleschen Ausdrücke kann durch
folgende Grammatik deniert werden:
A ::= true |
false
| (¬A) | (A ∧ A0 ) | (A ∨ A0 )
Booleschen Ausdrücke werden somit zu Bäumen, wenn man sie in
Schaltkreise umwandelt.
Buss 1987: Die Menge der booleschen Ausdrücke, die sich zu wahr
NC1 ⊆ L.
auswerten ist vollständig für die Komplexitätsklasse
209 / 298
Vollständige Probleme für
Boolesche Formeln
PSPACE: Quantizierte
Quantizierte boolesche Formeln
M
Die Menge
der quantizierten booleschen Formeln ist die kleinste
Menge mit:
I
xi ∈ M
I 0, 1
I
für alle
∈M
i ≥1
E , F ∈ M, i ≥ 1 =⇒ (¬E ), (E ∧ F ), (E ∨ F ), ∀xi E , ∃xi E ∈ M
Alternativ:
M
lässt sich durch eine eindeutige kontextfreie Grammatik
über dem Terminalalphabet
Σ = {x, 0, 1, (, ), ¬, ∧, ∨, ∀, ∃} erzeugen.
x 1{0, 1}∗ dargestellt.
Dabei werden Variablen durch Wörter aus
210 / 298
Erfüllbarkeit von quantizierten booleschen Formeln
Die Erfüllbarkeit von quantizierten booleschen Formeln wird durch die
Existenz einer erfüllenden Belegung deniert.
Eine Belegung ist eine Funktion
b : {x1 , x2 , . . .} → {0, 1}.
F
auf die in
F
sei
b[xj 7→ z]
die Belegung mit
Diese kann für eine gegebene Formel
vorkommenden
Variablen eingeschränkt werden.
Für
I
I
z ∈ {0, 1}
und eine Belegung
b[xj 7→ z](xi ) = b(xi )
b[xj 7→ z](xj ) = z .
für
b
i 6= j
und
211 / 298
Erfüllbarkeit von quantizierten booleschen Formeln
Induktive Denition der Erfüllbarkeit einer Formel
Belegung
F
bezüglich einer
b:
Die Belegung
b
erfüllt die Formel
F
genau dann, wenn eine der
folgenden Bedingungen zutrit:
F
F
F
F
F
F
F
=
=
=
=
=
=
=
Wird
1,
xj
(¬E )
(F1 ∧ F2 )
(F1 ∨ F2 )
∃xj E
∀xj E
F
und
und
und
und
und
und
b(xj ) = 1,
b erfüllt E nicht,
b erfüllt F1 und F2 ,
b erfüllt F1 oder F2 ,
b[xj 7→ 0] oder b[xj 7→ 1] erfüllt E ,
b[xj 7→ 0] und b[xj 7→ 1] erfüllen E .
von jeder Belegung erfüllt, so heiÿt
F
gültig.
212 / 298
Erfüllbarkeit von quantizierten booleschen Formeln
Die Menge
Frei(F ) der freien Variablen der Formel F
ist wie folgt
deniert:
Frei(xi ) = {xi }
I Frei(¬F ) = Frei(F )
I Frei((F ∧ G )) = Frei((F ∨ G )) = Frei(F ) ∪ Frei(G )
I Frei(∃xj F ) = Frei(∀xj F ) = Frei(F ) \ {xj }
Eine Formel F mit Frei(F ) = ∅ nennt man geschlossen.
I
Beachte: Die Erfüllbarkeit einer geschlossenen Formel ist nicht von
der Belegung abhängt, d. h. existiert eine erfüllende Belegung, so ist
die Formel bereits gültig.
Bezeichnung: QBF ist die Menge der geschlossenen quantizierten
booleschen Formeln, die gültig sind.
213 / 298
QBF ist PSPACE-vollständig
Theorem
QBF ist PSPACE-vollständig.
Beweis:
(i) QBF ∈ PSPACE:
Sei
E
eine geschlossene quantizierte boolesche Formel, in der die
Variablen
x1 , . . . , xn vorkommen.
E nur aus 1, x1 , . . . , xn , ¬, ∧, ∃
O.b.d.A. ist
aufgebaut.
x1 , . . . , xn
ϕ gültig
Der folgende rekursive deterministische Algorithmus, in dem
globale Variablen sind, überprüft in polynomiellen Platz, ob
ist.
214 / 298
QBF ist PSPACE-vollständig
FUNCTION check(E )
if E = 1 then return(1)
elseif E = xi then return(xi )
elseif E = (¬F ) then return(not check(F ))
elseif E = (E1 ∧ E2 ) then return(check(E1 ) and check(E2 ))
elseif E = ∃xi F then
xi := 1
if check(F ) = 1 then
return(1)
else
xi := 0
return(check(F ))
endif
endif
ENDFUNC
215 / 298
QBF ist PSPACE-vollständig
(ii) QBF ist PSPACE-schwierig:
Sei L ∈ PSPACE. Es gilt L = L(M) für eine p(n)-platzbeschränkte
1-Band-Turingmaschine, wobei
p(n)
ein geeignetes Polynom sei.
Im weiteren werden Kongurationen binär kodiert.
Ohne Einschränkung ist die Länge aller Binärkodierungen der von einer
Startkonguration
Start(w ), |w | = n, aus erreichbaren
Kongurationen durch
p(n)
und deren Anzahl durch 2
p(n) begrenzt.
Betrachte den Savitch-Ansatz:
Reach(Start(w ), Accept, p(n)) ⇐⇒ w ∈ L
Reach(α, β, i) = ∃γ Reach(α, γ, i − 1)∧ Reach(γ, β, i − 1)
Reach(α, β, 0) = α `M1 β
für
i >0
≤
216 / 298
QBF ist PSPACE-vollständig
Die direkte Einsetzung würde auf eine Formel exponentieller Länge
führen.
Lösung: Wir führen für die Kongurationen Kongurationsvariable
X , Y , U, V , . . .
ein und denieren für
i > 0:
Reach(X , Y , i) :=
∃U ∀V ∀W
!
(V = X ∧ W = U) ∨ (V = U ∧ W = Y )
=⇒ Reach(V , W , i − 1)
1. Schritt: Berechne für Eingabe w ∈ Σ∗
mit
Anwendung obiger Rekursion, beginnend mit
Reach(Start(w ), Accept, p(n)), eine Formel F
|w | = n
durch iteriertes
in den
X , Y , . . ..
F kommen atomare Formeln der Gestalt Reach(X , Y , 0) und
X = Y sowie die Konstanten vor Start(w ) und Accept vor.
Kongurationsvariablen
In
217 / 298
QBF ist PSPACE-vollständig
2. Schritt: Wir wandeln F
in eine geschlossene quantizierte
boolesche Formel um:
I Ersetze jede Kongurationsvariable
booleschen Variablen
∀x1 ∀x2 · · · ∀ xp(n)
I Die Konstanten
x1 , . . . , xp(n) .
X
durch einen Block von
∀X wird
für ∃X .
Aus
und entsprechend
p(n)
somit der Block
Start(w ) und Accept werden durch konkrete
Bitstrings ersetzt.
I
X =Y
ersetzen wir durch die Formel
I Aus einer atomaren Formel
Vp(n)
i=1
(xi ⇔ yi ).
Reach(X , Y , 0) wird wie im Beweis
zum Satz von Cook eine boolesche Formel die einen 1-Schritt
Übergang beschreibt.
Wir erhalten so eine geschlossene quantizierte boolesche Formel, die
genau dann erfüllbar ist, wenn
w ∈ L.
218 / 298
Orakel-Turingmaschinen u. relative Schwierigkeit von
P =? NP Weder in SS2011 noch WS16/17 behandelt
Eine nichtdeterministische Orakel-Turingmaschine (kurz OTM)
M?
ist
eine nichtdeterministische Turingmaschine mit folgenden
Besonderheiten:
I
M?
hat drei ausgezeichneten Zuständen
qJ , qN , q?
sowie
I ein ausgezeichnetes Arbeitsband das Orakelband auf
welches nur geschrieben wird.
I Das Orakelband enthält zu jedem Zeitpunkt einen String
über einem Alphabet
I Bendet sich
w (o)
Σ.
M ? im Zustand
q?
so kann
M?
unabhängig von den
gelesenen Bandsymbolen nichtdeterministisch in den Zustand
oder den Zustand
Eine OTM
auÿer
q?
M?
qJ
qN
gehen.
ist deterministisch, falls sich
M?
auf allen Zuständen
deterministisch verhält.
219 / 298
Orakel-Turingmaschinen
Zeit- und Platzschranken werden für OTMs wie für normale
Turingmaschinen deniert.
Wir betrachten dafür eine OTM als eine nichtdeterministische
Turingmaschine.
Sei
A ⊆ Σ∗
eine beliebige (nicht notwendigerweise entscheidbare)
Menge.
Wir denieren Berechnungen einer Maschine
v∈
MA
auf eine Eingabe
MA
wie
Σ∗ wie folgt:
I Auf Zuständen in
I Bendet sich
M
Q \ {q? }
verhält sich
im Zustand
q? ,
so ist der Folgezustand
(unabhängig von gelesenen Bandsymbolen)
aktuell
w (o) ∈ A
(bzw.
M ?.
w (o) 6∈ A)
qJ
(bzw.
qN ),
falls
gilt.
220 / 298
Relative Komplexitätsklassen
Wir können jetzt Komplexitätslassen wie
P
A
NPA
Es gibt eine deterministische polynomial zeit
=
L⊆Σ ?
A
beschränkte OTM M mit L = L(M )
∗ Es gibt eine nichtdeterministische polynomi=
L⊆Σ ?
A
al zeitbeschränkte OTM M mit L = L(M )
∗
denieren.
Bemerkung:
SAT ⊆ PSPACE Es ist oen, ob =
1. NP ∪ CoNP ⊆ P
A
∗
A
2. A ∈ P für alle A ⊆ Σ , damit kann insbesondere P
gilt.
unentscheidbare Sprachen enthalten.
3. Ist
A
entscheidbar, so ist
NPA
eine Familie entscheidbarer
Sprachen.
4. Trivialerweise gilt
PA ⊆ NPA .
221 / 298
Eine Welt in der
Theorem
Es gibt ein Orakel
Beweis:
Betrachte eine
P = NP
A ⊆ Σ∗
in
PSPACE mit PA = NPA .
PSPACE-vollständige Sprache, etwa A = QBF.
Dann gilt
PSPACE ⊆ PQBF ⊆ NPQBF ⊆
Also gilt
[
k≥1
NSPACE(nk ) = PSPACE
PSPACE = PQBF = NPQBF
222 / 298
Eine Welt in der
P 6= NP
Theorem
Es gibt ein entscheidbares Orakel
Beweis:
B ⊆ {0, 1}∗
mit
PB 6= NPB .
B ⊆ {0, 1}∗ wird so deniert, dass gilt:
∀n ≥ 0 : |B ∩ {w ∈ {0, 1}∗ | |w | = n}| ≤ 1
∗
Für eine Sprache B ⊆ {0, 1} sei
LB = 1n ∃w ∈ B mit |w | = n .
Das Orakel
Dann gilt oensichtlich:
LB ∈ NPB .
Noch zu zeigen: Es gibt eine entscheidbare Sprache
B
mit
LB ∈
/ PB .
223 / 298
Eine Welt in der
Sei
M1? , M2? , . . .
P 6= NP
eine eektive Aufzählung aller deterministischen
Orakel-Turingmaschinen mit zusätzlicher polynomialer Zeitschranke.
Wir nehmen an, dass jedes
Mi?
in der Aufzählung unendlich oft
vorkommt.
Dies kann z.B. dadurch erreicht werden, dass
M ? (i, j) := Mi?
aus einer
ursprünglichen Aufzählung deniert wird und dann die
Orakel-Turingmaschinen aus
werden.
{M ? (i, j)|(i, j) ∈ N × N}
aufgezählt
B durch
S Mengen
Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i} mit B = i≥0 Bi und eine
Ausnahmemenge X mit B ∩ X = ∅:
Wir denieren rekursiv das Orakel
224 / 298
Eine Welt in der
I Für
i =0
setze
P 6= NP
B0 = X = ∅.
I Für i > 0 simulieren wir die Rechnung von
i dlog ie Schritte.
Wir nehmen an, dass
mit
Bi−1 ∩ X = ∅
Mi?
Mi?
B0 ⊆ B1 ⊆ · · · ⊆ Bi−1
i
auf Input 1 für
und eine Menge
X
schon deniert sind.
w mit |w | < i , so
Bi−1 fortgesetzt.
?
Befragt Mi im Laufe der Rechnung ein Wort w mit |w | ≥ i , so
setze die Rechnung in dem nein-Zustand fort und füge w zu X
I Befragt
im Laufe der Rechnung ein Wort
wird die Rechnung entsprechend dem Orakel
I
hinzu.
Mi? innerhalb der Zeitschranke i dlog ie die Eingabe 1i ,
so setze Bi := Bi−1 .
?
dlog ie
i
Verwirft Mi innerhalb der Zeitschranke i
die Eingabe 1 , so
i
betrachte das lexikographisch erste Wort bi in {0, 1} \ X . Setze
dann
Bi−1 ∪ {bi } falls bi existiert
Bi =
Bi−1
sonst
I Akzeptiert
I
225 / 298
Eine Welt in der
Es gilt mit
I
B=
S
i≥0
P 6= NP
Bi
:
Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i}
I
B
I
B ∩ X = ∅.
ist entscheidbar, denn für
|w | = i
gilt:
w ∈ B ⇔ w ∈ Bi .
LB ∈
/ PB .
B
Angenommen, es wäre LB = L(M ) für eine deterministische,
?
polynomial zeitbeschränkte OTM M .
?
Dann gibt es ein Polynom p(n) so, dass M p(n)-zeitbeschränkt ist.
dlog ie und
Wähle jetzt i genügend groÿ so, dass ∀n ≥ i : p(n) ≤ n
M ? = Mi? gilt.
?
Dies ist möglich, da M in der Aufzählung beliebig oft vorkommt.
Wir zeigen jetzt
226 / 298
Eine Welt in der
P 6= NP
1. Fall: 1i ∈ LB = L(MiB ).
Dann gilt
Bi−1 = Bi
nach Denition von
nach Konstruktion von
LB .
B
und damit 1
Widerspruch!
2. Fall: 1i ∈/ LB = L(MiB ), d.h. MiB
dlog ie .
Zeitschranke i
i
Ist {0, 1} \ X 6= ∅, so existiert ein
i
1 ∈ LB . Widerspruch!
i
∈
/ LB
i
verwirft 1 innerhalb der
bi ∈ B
mit
|bi | = i
und damit
Es ist daher noch zu zeigen, dass für alle zuvor genügend groÿ
{0, 1}i \ X 6= ∅
Denition von X bis zum i -ten
gewählten
Bei der
i
gilt:
i
X
j=1
Schritt wurden maximal
2
j dlog je ≤ i · i dlog ie ≤ 2log i+dlog ie
Orakelanfragen gestellt.
227 / 298
Eine Welt in der
X
P 6= NP
enthält also maximal 2
log i+dlog ie2 Wörter der Länge
Für alle zuvor genügend groÿ gewählten
2
weshalb
{0, 1}i \ X
log i+dlog ie2
i
gilt nun
≤ i.
< 2i ,
nicht leer ist.
228 / 298
Interaktive Beweissysteme
Es gibt zwei Personen in unserem System: Alice und Bob.
Alice ist allmächtig (mindestens jedoch eine
PSPACE-Maschine). Bob ist bieder und ehrlich
(d.h. eine
deterministische, polynomial-zeitbeschränkte
Turingmaschine) und besitzt einen Würfel. Bob stellt Fragen
an Alice. Dieses Frage-Antwort Wechselspiel wird als
Protokoll bezeichnet.
Ein interaktives Beweissystem (IBS) ist ein solches Protokoll.
229 / 298
Alice und Bob
Alice versucht für ein
gilt.
Eine Sprache
x ∈L
L
x ∈ Σ∗
stets, Bob zu überzeugen, dass
x ∈L
lässt sich durch ein IBS entscheiden, wenn Bob für ein
Alice mit hoher Wahrscheinlichkeit glaubt und sich für
x∈
/L
mit
sehr geringer Wahrscheinlichkeit vom Gegenteil überzeugen lässt.
Wir werden zunächst zwei Spezialfälle interaktiver Beweissysteme
genauer betrachten.
230 / 298
Zero-Knowledge-Proof
Ein Zero-Knowledge-Proof ist dadurch gekennzeichnet, dass Bob zwar
davon überzeugt wird, dass Alice einen Beweis für das betrachtete
Problem kennt, aber darüber hinaus keinerlei Information über den
Beweis oder eine mögliche Lösung des Problems erhält.
Unter der Annahme, dass das kryptologische RSA-Verfahren sicher ist,
können wir den folgenden Satz beweisen.
Theorem
Für das 3-Färbbarkeitsproblem eines Graphen gibt es einen
(interaktiven) Zero-Knowledge-Proof.
231 / 298
Beweisanfang
Erinnerung: Das Problem der 3-Färbbarkeit eines Graphen (also
{G = (V , E ) | G
ist 3-färbbar}) ist
NP-vollständig.
Wir nehmen nun an, dass Alice die 3-Färbbarkeit von Graphen
entscheiden kann. Ein Beweis für die 3-Färbbarkeit eines Graphen wäre
die Angabe einer Lösung. Alice gibt im Folgenden Beweissystem diese
Lösung jedoch nicht preis, sondern überzeugt Bob nur davon, dass sie
sie kennt. Dies wird erreicht durch die RSA-Verschlüsselung, die Bob
falls die Verschlüsselung sicher ist nicht knacken kann.
232 / 298
n3 Runden
Eingabe
G = (V , E )
mit
n = |V |.
Es werden
n3
Runden durchgeführt.
In jeder Runde arbeitet Alice wie folgt:
I Sie wählt eine Zufallspermutation der Farben
π : {0, 1, 2}→{
˜ 0, 1, 2}.
I Sie erzeugt ein RSA-Kryptosystem für jeden Knoten i .
pi , qi < 2n und
ni = pi qi und
I Sie wählt also groÿe Primzahlen
mit ggT(ei , ϕ(ni ))
= 1, wobei
ϕ(ni ) = (pi − 1)(qi − 1).
I Sie berechnet ein 0
< s i < ni
mit
si e i ≡ 1
I Alice wählt desweiteren Zufallszahlen
Es gilt jetzt für alle
a ∈ Z: asi ei ≡ a
mod
xi
mod
mit 0
eine Zahl
ei < 2n
(pi − 1)(qi − 1).
< 3xi + 2 < ni .
ni .
233 / 298
Protokoll
I Sie sendet Bob eine Liste (ni , ei , zi )i=1,...,n mit
zi ≡ (3xi + π(c(i)))ei mod ni .
I Bob wählt zufällig eine Kante
pk , qk , sk
(für
k ∈ {i, j})
(i, j) ∈ E .
Er fragt Alice nach
pk , qk
nk = pk qk und
(pk − 1)(qk − 1) und entschlüsselt yk = zksk
sowie nach den Beweisen, dass
Primzahlen sind. Er überprüft
sk ek ≡ 1
mod nk .
mod
I Er berechnet auÿerdem Werte
ck = yk
mod 3.
ck ∈ {0, 1, 2}
Hat sich Alice korrekt verhalten, so gilt
ck = π(c(k)).
ci 6= cj gilt.
und
Falls Bob
n3
durch
zksk = 3xk + π(c(k))
mod
nk
Bob ist mit dieser Runde einverstanden, falls
Runden einverstanden ist, akzeptiert er
G
als 3-färbbar.
234 / 298
Alice muss betrügen, falls G nicht 3-färbbar ist
Alice hat sich auf eine 3-Färbung des Graphen codiert und kann diese
G
nicht mehr ändern. Angenommen,
mindestens eine Kante
(i, j) ∈ E ,
ist nicht 3-färbbar. Dann gibt es
an der Bob merken kann, dass Alice
betrügt (zum Beispiel daran, dass eine der
pk
keine Primzahl ist).
Ist das RSA-System jedoch in Ordnung, so merkt Bob, dass
und damit
π(c(i)) = π(c(j)),
also
c(i) = c(j)
Runde mindestens mit der Wahrscheinlichkeit
1
|E | entdeckt. Insgesamt
n 3
bleibt sie folglich mit einer Wahrscheinlichkeit kleiner
unentdeckt.
Wir zeigen
1
−
1
|E |
n3
≤ e −n
ci = cj
ist. Alice wird also pro
1
−
1
|E |
(< 2−n ).
235 / 298
1−
1
n 3
|E |
< 2−n :
Es gilt:
1
−
1
n 3
|E |
≤ e −n
⇔ n2 (ln(|E |) − ln(|E | − 1)) ≥
1
⇐
|E |
ln(|E |)
− ln(|E | − 1) ≥
Es reicht daher zu zeigen: ln(|E |)
1
(wegen |E | < n2 )
− ln(|E | − 1) ≥
1
|E | .
Die Korrektheit dieser Ungleichung folgt aus der Ableitung ln
0
(x) =
1
x.
Wie man dem Graphen der ln-Funktion unmittelbar ansieht, gilt für
alle
x >1
die Abschätzung ln
0
(x) < ln(x) − ln(x − 1).
236 / 298
Zero-Knowledge-Proofs für
NP
Da das 3-Färbbarkeitsproblem eines Graphen
jedes
NP-vollständig ist, hat
NP-Problem einen Zero-Knowledge-Proof, der auf dem
RSA-Verfahren basiert.
237 / 298
Zero-Knowledge-Proof für die (Nicht-)Isomorphie von
Graphen
NP. Es ist
P liegt, noch, ob es NP-vollständig ist. Es
Das Problem, ob zwei Graphen isomorph sind, liegt in
weder bekannt, ob es in
gibt allerdings Hinweise, die darauf hindeuten, dass dieses Problem
nicht
NP-schwierig ist.
Es ist nicht bekannt, ob das Problem der Nichtisomorphie von Graphen
in
NP liegt. Intuitiv erscheint dieses Problem jedoch schwieriger als
das der Isomorphie zweier Graphen. Bei der Isomorphie können wir
einen Isomorphismus raten und überprüfen eine Vorgehensweise, die
uns bei der Nichtisomorphie nicht möglich ist.
Theorem
Die Nichtisomorphie von Graphen hat einen perfekten
Zero-Knowledge-Proof.
238 / 298
Beweisanfang
Die Eingabe besteht aus 2 Graphen
G0 = (V0 , E0 )
V0 = V1 = {1, . . . , n}.
Alice behauptet: G0 ∼
6 G1 .
=
und
G1 = (V1 , E1 )
mit
I Bob wählt
bi ∈ {0, 1}
m
πi ∈ Perm({1, . . . , n})
(1 ≤ i ≤ m).
Permutationen
zufällig
und
m
Bits
Dann übermittelt Bob an Alice in einer einzigen Runde die Liste
(πi (Gbi ))1≤i≤m .
I Bob verlangt von Alice jetzt einen Bitstring
0
akzeptiert, falls ∀i ∈ {1, . . . , m} bi = bi .
0
b10 b20 . . . bm
und
239 / 298
Beweisende
Sind
G0
und
G1
nicht isomorph, so kann Alice diesen Bitstring
berechnen. Sind sie jedoch isomorph, so kann Alice den Bitstring
b1 b2 . . . bm
nicht rekonstruieren. Denn Alice sieht nur Paare von
G0
0 0
0
und einer Zufallspermutation von G0 . Der Bitstring b1 b2 . . . bm muss
also zufällig gewählt werden Alice hat keine andere Wahl. Wenn
Alice betrügen muss, dann ist die Wahrscheinlichkeit, nicht entdeckt
−m .
zu werden, damit gleich 2
240 / 298
Interaktive Beweissysteme
Ein interaktives Beweissystem (IBS) ist ein Protokoll
(A, B)
zwischen
Alice und Bob.
Alice und Bob erhalten die gleiche Eingabe
x
(mit
|x| = n),
die von
beiden nur gelesen werden darf. In dem Protokoll werden polynomial
viele Runden durchgeführt (p(n)) und in jeder Runde werden
polynomial lange Botschaften ausgetauscht (diese Botschaften seien
a1 , b1 , a2 , b2 , . . . , ap(n) , bp(n) ).
Jede Runde beginnt mit einer Botschaft
von Alice, die von der Eingabe und dem Ergebnis vorheriger Runden
abhängt (ai
= A(x, a1 , b1 , . . . , bi−1 )).
Bobs Antwort hängt ebenfalls
von der Eingabe und den bisher ausgetauschten Botschaften sowie von
Zufallszahlen
ri
ab, die in jeder Runde neu berechnet werden und Alice
unbekannt sind (bi
= B(x, a1 , b1 , a2 , . . . , ai−1 , bi−1 , ai , r1 , . . . , ri )). In
bp(n) ∈ {ja, nein}).
der letzten Runde sagt Bob ja oder nein (also
241 / 298
Interaktive Beweissysteme
Bob ist dabei randomisierte polynomial zeitbeschränkte
Turingmaschine.
(Eine randomisierte Turingmaschine (RTM) ist eine deterministische
Turingmaschine, die zusätzlich Zugri auf Zufallszahlen hat. Man kann
sich eine RTM als eine deterministische Turingmaschine vorstellen, die
ein weiteres (Nur-Lese-)Band besitzt, auf dem unendlich viele
Zufallsbits (0 oder 1) stehen und das nur in einer Richtung gelesen
werden darf.)
IP ⊆ PSPACE darf Alice allmächtig sein, d.h. Alice
ist eine beliebige Funktion. Für die Richtung PSPACE ⊆ IP ist Alice
eine PSPACE-Maschine.
Für die Richtung
242 / 298
Interaktive Beweissysteme
(A, B) entscheidet eine Sprache L ⊆ Σ∗ ,
∗
Eingaben x ∈ Σ folgendes gilt:
Ein IBS
I Ist
x ∈ L,
so akzeptiert Bob die Eingabe mit einer
x∈
/ L,
so gibt es kein IBS
Wahrscheinlichkeit
I Ist
falls für alle
≥ (1 − 2−n ).
(A0 , B)
in dem Bob die Eingabe mit
−n akzeptiert.
einer höheren Wahrscheinlichkeit als 2
IP ist die Menge der Sprachen, die durch ein IBS entschieden werden
können:
IP := {L ⊆ Σ∗ | ∃ IBS (A, B) : (A, B) entscheidet L}
243 / 298
Interaktive Beweissysteme Beispiele
Beispiel: Die bereits betrachteten Protokolle zur 3-Färbbarkeit von
Graphen und zur Graphen-Nichtisomorphie sind interaktive
Beweissysteme.
Bemerkung: Es gilt NP ⊆ IP, da Alice die erfolgreiche Rechnung
einer NP-Maschine Bob zur Überprüfung vorlegen kann. Für ein
spezielles Problem aus NP kann Alice auch eine Lösung angeben: Für
SAT übermittelt Alice beispielsweise eine erfüllende Belegung an Bob.
Bob wertet die Formel unter dieser Belegung aus und akzeptiert, wenn
sich als Wert der Formel wahr ergibt.
244 / 298
IP ⊆ PSPACE
Theorem
IP ⊆ PSPACE.
Für diese Richtung ist Alice allmächtig. Die Beschränkung von Alice
ist, dass auch sie nur polynomial lange und polynomial viele
Botschaften an Bob übermitteln darf.
245 / 298
IP ⊆ PSPACE (Fortsetzung)
Sei
B
eine fest gewählte randomisierte polynomial zeitbeschränkte
Turingmaschine (Bob). Wir konstruieren für eine Eingabe
x ∈ Σ∗
eine
optimale Alice in polynomialem Platz. Wir können annehmen, dass ein
akzeptierendes Protokoll
P
zwischen Alice und Bob die folgende Form
hat:
P = (a1 , b1 , . . . ap , bp , r1 , . . . , rp ) .
ai , bi , ri ∈ {0, 1} Bits, wobei die r1 , . . . , rp die von
p = p(|x|) ein festes Polynom
jedes vollständige Protokoll besteht aus p Runden).
Hierbei bezeichnen
Bob erzeugten Zufallsbits sind und
darstellt (d.h.
Formal sind Alice und Bob Funktionen (genauer, Funktionsfamilien):
ai
= A(x, a1 , b1 , . . . , ai−1 , bi−1 )
bi
= B(x, a1 , b1 , . . . , ai−1 , bi−1 , ai , r1 , . . . , ri )
Für ein gegebenes Paar
bp = 0
und
x ∈ Σ∗
hängt die Akzeptanz (also
bp = 1) nur vom Zufallsvektor (r1 , . . . , rp ) ab. Wir sagen
(r1 , . . . , rp ) akzeptiert wird. Man beachte, dass es für eine
bzw.
auch, dass
(A, B)
feste Alice 2
p viele vollständige Protokolle gibt.
246 / 298
IP ⊆ PSPACE (Fortsetzung)
Ab jetzt seien
Funktion
A,
B
und
x
fest gewählt. Eine optimale Alice ist diejenige
die maximal viele Zufallsvektoren
Statt unter allen möglichen Kandidatinnen für
(r1 , . . . , rp ) akzeptiert.
A zu suchen, werden
wir die Menge der möglichen (Alice-) Funktionen stark einschränken
und diese Einschränkung schrittweise aufgeben. Zu Anfang ist die
Einschränkung so stark, dass es nur eine einzige Alice gibt. Am Ende
ist die Einschränkung leer und damit wird das Optimum unter allen
Funktionen gefunden.
Die Einschränkung wird durch Protokollpräxe
mit
c ∈ {a, b}, i ≤ p
Stellen wir uns vor, Alice
(r1 , . . . , rp )
Pi = (a1 , b1 , . . . , ci )
gegeben, die Alice befolgen muss.
A,
Pi und ein Zufallsvektor
r = (r1 , . . . , rp ) deniert
ein solches Präx
sind gegeben. Der Zufallsvektor
P = (a10 , b10 , . . . , ap0 , bp0 , r ) zwischen Alice und Bob. Falls
Pi ein Präx von P ist, sagen wir, dass r zu Pi passt. Zu jeder A und
jedem Pi können wir also die Zahl der (r1 , . . . , rp ) bestimmen, die
sowohl zu Pi passen, als auch akzeptiert werden.
ein Protokoll
247 / 298
IP ⊆ PSPACE (Fortsetzung)
Formal denieren wir einen Wert, der von Alice
Pi = (a1 , b1 , . . . , ci ), c ∈ {a, b}
f (A, Pi ) = |{r | r = (r1 , . . . , rp )
Eine Alice heiÿt optimal bzgl.
A
und
abhängt:
Pi ,
passt zu
Pi
und wird akzeptiert}| .
falls sie das folgende Maximum
erreicht:
f (Pi ) = max {f (A, Pi ) | A
ist eine Alice} .
Man beachte, dass das Maximum für jedes
x ∈ Σ∗
nur über eine
endliche Menge (von Alice-Funktionen) gebildet wird. Das Maximum
existiert und wird von einer Alice realisiert. Das Ziel ist die Berechnung
von
f (λ),
wobei
λ
den leeren Präx bezeichnet. Denn, ist
gilt per Denition:
x ∈ L =⇒ f (λ) ≥ (1 − 2−n ) · 2p ,
L ∈ IP
x∈
/ L =⇒ f (λ) ≤
2
−n
so
· 2p .
248 / 298
IP ⊆ PSPACE (Fortsetzung)
Wir zeigen, dass sich
f (λ)
in polynomialem Platz berechnen lässt.
Aber eigentlich werden wir mehr tun. Wir zeigen, dass man in jedem
Schritt einer Interaktion zwischen Alice und Bob eine optimale
Strategie für Alice in polynomialem Platz berechnen kann. Wir rechnen
von hinten nach vorne.
Zu Anfang sei das vollständige Protokoll
(a1 , b1 , . . . , bp )
vorgeschrieben. Dann gibt es nur eine einzige Alice und wir können
direkt zählen.
f (a1 , b1 , . . . , bp ) = |{r | r = (r1 , . . . , rp )
passt und wird akzeptiert}|.
In den meisten Fällen wird die Zahl Null oder sehr klein sein.
249 / 298
IP ⊆ PSPACE (Fortsetzung)
Betrachte jetzt einen Präx, der auf
ai
endet:
Pi = (a1 , b1 , . . . , ai−1 , bi−1 , ai ).
Induktiv nehmen wir an, dass die Werte
f (a1 , b1 , . . . , ai , 1) schon berechnet sind.
Alice A0 und einer Alice A1 realisiert.
f (a1 , b1 , . . . , ai , 0)
und
Diese Werte werden von einer
(r1 , . . . , rp ) nicht gleichzeitig
zu beiden Protokollpräxen (a1 , b1 , . . . , ai , 0) und (a1 , b1 , . . . , ai , 1)
passen kann. Wählt Bob also in der i -ten Runde bi = 0, so verhält sich
eine optimale Alice wie A0 , wählt Bob bi = 1, so verhält sich eine
optimale Alice wie A1 . Zählen wir die akzeptierten Zufallsvektoren
Der Punkt ist jetzt, dass ein Zufallsvektor
zusammen, so werden keine doppelt gezählt. Daher gilt:
f (a1 , b1 , . . . , ai ) =
X
f (a1 , b1 , . . . , ai , j) .
j=0,1
250 / 298
IP ⊆ PSPACE (Fortsetzung)
Betrachte jetzt einen Präx, der auf
bi
endet:
Pi = (a1 , b1 , . . . , ai , bi ).
ai+1 = 0 oder ai+1 = 1. Mit Induktion
Werte f (a1 , b1 , . . . , ai , bi , 0) und
Für Alice gibt es jetzt die Wahl
kennen wir jedoch die beiden
f (a1 , b1 , . . . , ai , bi , 1).
Wir können die bessere Strategie wählen. Damit
ergibt sich:
f (a1 , b1 , . . . , ai , bi ) = max{f (a1 , b1 , . . . , ai , bi , j) | j = 0, 1} .
Dieser Ansatz führt auf die Berechnung von
f (λ).
251 / 298
IP ⊆ PSPACE (Fortsetzung und Ende)
Es verbleibt, den Platzbedarf zu analysieren. Um zu testen, ob
(r1 , . . . , rp )
zu
(a1 , . . . , ap , bp )
passt, müssen wir
p
mal einen Test
?
bi = B(x, a1 , b1 , . . . , ai , r1 , . . . , ri )
durchführen. Dies ist in Polynomialzeit möglich. Uns reicht die
Aussage, dass dies in polynomialem Platz möglich ist. Wir erhöhen die
Mächtigkeit von IP also nicht, wenn Bob selbst eine randomisierte
PSPACE-Maschine ist. Sei s(2i) bzw. s(2i − 1) der Platzbedarf zur
f (a1 , b1 , . . . , ci ). Dann gilt s(2p) = q(n) für ein
n = |x|. Ferner gilt s(i) ∈ s(i + 1) + O(p) mit
p = p(n). Wir erhalten für den Platzbedarf s(0) für f (λ):
s(0) ∈ O(q(n) + p(n)2 ).
Berechnung von
Polynom
q
und
252 / 298
IP unter Reduktionen abgeschlossen
Lemma
IP ist unter polynomialer Zeitreduktion abgeschlossen:
L ≤pm L0
und
L0 ∈ IP ⇒ L ∈ IP
Der Beweis zu diesem Lemma ist trivial, denn Bob kann die Reduktion
L ≤pm L0
berechnen, da er eine polynomial zeitbeschränkte
Turingmaschine ist.
253 / 298
PSPACE ⊆ IP
Theorem (Shamir, 1990)
IP = PSPACE.
Die leichte Richtung (IP ⊆ PSPACE) haben wir gerade gezeigt. Wir
müssen also nur noch PSPACE ⊆ IP zeigen. Hierfür geben wir einen
Beweis nach A. Shen an.
QBF PSPACE-vollständig ist, reicht es nach obigem Lemma zu
zeigen, dass QBF ∈ IP.
Da
254 / 298
PSPACE ⊆ IP (Fortsetzung)
Es sei
B
eine boolesche Formel in den Variablen
x1 , . . . , xk
und
Q̃ = {∀x1 ∃x2 . . . Qk xk B(x1 , . . . , xk )}
die Menge aller quantizierten Formeln, so dass jede Variable
gebunden auftritt.
Wir setzen
B = {0, 1}
mit 0
= false ,
1
= true .
Mit
QBF = {Φ ∈ Q̃ | Φ = 1} bezeichnen wir die wahren Formeln.
Im Folgenden sei
Φ ∈ Q̃ mit Eingabelänge |Φ| = d . Es ist d > 2k .
p mit d 4 < p ≤ 2d 4 (Bertrand'sches Postulat).
Wähle eine Primzahl
In diesem Bereich ist der Primzahltest auch für Bob sehr leicht. Alle
weiteren arithmetischen Rechnungen sind mod
Grundkörper ist also
Teilmenge von
F
F = Z/pZ.
auf.
p
Wir fassen auch
gemeint, der
B = {0, 1}
als
255 / 298
PSPACE ⊆ IP (Fortsetzung)
Wir ordnen jeder booleschen Formel
Polynom
b(X ) ∈ F[X ]
B(X )
mit
X = (x1 , . . . , xk )
b(X ) = 1,
falls
B(X ) = true,
b(X ) = xi ,
falls
B(X ) = xi ,
b(X ) = b0 (X ) · b1 (X ),
falls
B(X ) = B0 (X ) ∧ B1 (X ),
b(X ) = 1 − b0 (X ),
b(X ) = b0 (X ) + b1 (X ) −
b0 (X ) · b1 (X ),
Wegen 1
Polynom
ein
induktiv wie folgt zu:
falls
B(X ) = ¬B0 (X ),
falls
B(X ) = B0 (X ) ∨ B1 (X ).
− (1 − b0 )(1 − b1 ) = b0 + b1 − b0 · b1 kann Bob das
b(X ) ∈ F[X ] selbst berechnen, da er auch bei der
Oder-Verknüpfung eine Verdoppelung der Datengröÿe vermeiden kann.
Φ ∈ Q̃ mit Φ = ∀x1 ∃x2 . . . Qk xk B(X ) ist b(X ) ein Polynom vom
Grad ≤ d . Ab jetzt betrachten wir nur noch Polynome vom Grad ≤ d .
Für
Sollte Alice jemals ein Polynom mit einem höheren Grad vorlegen, so
lehnt Bob sofort ab.
Man beachte, dass
b(u1 , . . . , uk ) ∈ {0, 1}
für alle
(u1 , . . . , uk ) ∈ Bk
256 / 298
PSPACE ⊆ IP (Fortsetzung)
Wir denieren zunächst Operatoren
wie folgt:
Ax P(x, Y )
Ex P(x, Y )
Hierbei sei
gilt:
Ax und Ex für x = xi , 1 ≤ i ≤ k
= P(0, Y ) · P(1, Y ),
= P(0, Y ) + P(1, Y ) − P(0, Y ) · P(1, Y ).
Y = (x1 , . . . , xi−1 , xi+1 , . . . , xk ),
sowie
P(x, Y ) ∈ F[X ].
Es
Ax P(x, Y ), Ex P(x, Y ) ∈ F[Y ] ⊆ F[X ].
257 / 298
PSPACE ⊆ IP (Fortsetzung)
Oensichtlich gilt ferner:
Φ = Ax1 Ex2 . . . qk xk b(x1 , . . . , xk ) ∈ {0, 1} ⊆ F ⊆ F[X ],
qk = E für k gerade. Man beachte,
k
dass es Sinn ergibt Φ(X ) = Φ oder auch Φ(V ) = Φ für V ⊆ F zu
schreiben. Das Problem ist, dass Φ = Ax1 P(x1 ) für das Polynom
P(x1 ) = Ex2 . . . qk xk b(x1 , . . . , xk ) gilt, wobei P(x1 ) einen
wobei
qk = A
für
k
ungerade und
exponentiellen Grad haben kann. Man betrachte etwa:
Ay Ax1 Ax2 . . . Ak xk (y ) = Ay (y 2 ).
k
Im Originalbeweis von Shamir wurde dieses Problem durch so
genannte einfache Polynome gelöst.
258 / 298
PSPACE ⊆ IP (Fortsetzung)
Shen benutzt die Beobachtung, dass AxP(x, Y ) = AxQ(x, Y ) und
ExP(x, Y ) = ExQ(x, Y ) gelten, falls Q(x, Y ) ≡ P(x, Y )
2
mod (x = x) ist. Vor einer Auswertung von AxP(x, Y ) bzw.
ExP(x, Y ) können wir also den x -Grad auf 1 reduzieren.
259 / 298
PSPACE ⊆ IP (Fortsetzung)
Dafür genügt es, das Polynom
Dies ist leicht:
P(x, Y ) =
X
P(x, Y ) mod (x − x 2 )
zu berechnen.
ai (Y )x i
i≥0
= a0 (Y ) +
X
≡ a0 (Y ) +
X
ai (Y )x i
i≥1
ai (Y )x
mod
i≥1
= a0 (Y ) − a0 (Y )x +
X
(x − x 2 )
ai (Y ) x
i≥0
= P(0, Y ) − P(0, Y )x + P(1, Y )x
= P(1, Y ) · x + (1 − x) · P(0, Y ).
260 / 298
PSPACE ⊆ IP (Fortsetzung)
Für
P(x, Y ) ∈ F[X ]
durch:
denieren wir formal einen Reduktionsoperator
RxP(x, Y ) = P(1, Y ) · x + (1 − x) · P(0, Y ).
x ∈ F[X ], der den Rest mod (x 2 − x) berechnet. Man beachte,
dass RxP(u, Y ) = P(u, Y ) für u ∈ {0, 1} gilt. Hierbei wird bei
RxP(u, Y ) der Operator Rx auf P angewendet und dann an (u, Y )
für
ausgewertet. Daher gilt
AxP(x, Y )
ExP(x, Y )
=
=
Ax RxP(x, Y ) und
Ex RxP(x, Y ).
261 / 298
PSPACE ⊆ IP (Fortsetzung)
Also gilt:
Φ = Ax1 R x1 Ex2 R x2 R x1 . . . qk xk R xk . . . R x1 b(X ).
Im Folgenden sei
S(X ) = S(x1 , . . . , xk ) ∈ F[x1 , . . . , xk ] ⊆ F[X ]
ein
Polynom, welches als Sux in der oberen Zeile auftritt. Der Grad von
S(X )
ist stets
≤ d,
und ab
qk xk
1 und 2 begrenzt. Für gegebene
b(u1 , . . . , uk )
mit
v
ist der Grad für jedes
u1 , . . . , uk , v ∈ F
xi
sogar durch
kann Bob den Wert
vergleichen. Damit gibt es ein (triviales) Protokoll
mit der Eigenschaft:
Pr( Bob akzeptiert | b(u1 , . . . , uk ) = v )
Pr( Bob akzeptiert | b(u1 , . . . , uk ) 6= v )
=
1,
=
0.
262 / 298
PSPACE ⊆ IP (Fortsetzung)
α zwischen Alice und
(u1 , . . . , uk , v ) ∈ Fk+1 gilt:
Induktiv nehmen wir die Existenz eines Protokolls
Bob und eines
εα ≥ 0
an, so dass für alle
Pr( Bob akzeptiert | S(u1 , . . . , uk ) = v )
Pr( Bob akzeptiert | S(u1 , . . . , uk ) 6= v )
=
1,
≤ εα .
x = xi ∈ {x1 , . . . , xk }, u = ui , Y = (x1 , . . . , xi−1 , xi+1 , . . . , xk )
U = (u1 , . . . , ui−1 , ui+1 , . . . , uk ).
Es sei
und
S(u1 , . . . , uk ) nur von den freien Variablen in S(X )
Anfang ist Φ = Φ(u1 , . . . , uk ) unabhängig von den
Man beachte, dass
abhängt. Also zu
ui .
Insbesondere:
Φ = Φ(0, . . . , 0)
263 / 298
PSPACE ⊆ IP (Fortsetzung)
Wir unterscheiden drei Fälle:
P(Y ) =
P(Y ) =
P(x, Y ) =
A-Fall:
E-Fall:
R-Fall:
Wir konstruieren ein Protokoll
(u1 , . . . , uk , v ) ∈ Bk+1
β
AxS(x, Y ),
ExS(x, Y ),
RxS(x, Y ).
so, dass für alle
gilt:
Pr( Bob akzeptiert | P(u, U) = v )
Pr( Bob akzeptiert | P(u, U) 6= v )
d.h.
ε β = εα +
d
p.
Man beachte, dass
P(Y )
auch als
P(x, Y )
=
1,
≤ εα +
d
,
p
gelesen werden kann.
264 / 298
PSPACE ⊆ IP (Fortsetzung)
Nach quadratisch vielen Runden erhalten wir also ein Protokoll mit:
Pr( Bob akzeptiert | Φ = 1)
Pr( Bob akzeptiert | Φ = 0)
Durch
=
1,
< d2
d
1
< ,
p
d
da
d 4 < p.
d
log d -fache Wiederholung können wir die Wahrscheinlichkeit
unter 2
−d drücken, dass Bob eine falsche Formel akzeptiert.
265 / 298
PSPACE ⊆ IP (Fortsetzung)
(u1 , . . . , uk , v ) ∈ Bk+1 gegeben. Wir sind in der
Bob den Beweis von P(u, U) = v verlangt, wobei
{u1 , . . . , uk } \ {u} = U .
Sei
(Zu Anfang verlangt Bob den Beweis
Dann ist
s(x) = S(x, U) ∈ F[x]
Situation, dass
Φ(0, { 0, . . . , 0 }) = 1.)
≤ d.
(a0 , . . . , ad ) von d + 1
jeweils ein Polynom vom Grad
Alice übergibt solche Polynome durch eine Liste
Koezienten.
A-Fall:
s(x) = S(x, U) von Alice.
s(0) · s(1) = v .
Bob wählt r ∈ F zufällig und verlangt von Alice
Beweis s(r ) = S(r , U) gemäÿ Protokoll α.
1) Bob fordert
2) Bob veriziert
3)
den
266 / 298
PSPACE ⊆ IP (Fortsetzung)
P(u, U) = AxS(x, U) 6= v .
Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt
P(u, U) = s(0) · s(1). Also entdeckt Bob den Fehler im 2. Schritt.
Wir sind in dem Fall
Will Alice unerkannt betrügen, so muss sie ein Polynom
t(x) 6= S(x, U)
liefern!
267 / 298
PSPACE ⊆ IP (Fortsetzung)
E-Fall
Wie eben, nur in 2. veriziert Bob
s(0) + s(1) − s(0) · s(1)
P(u, U) = ExS(x, U) 6= v .
s(x) = S(x, U) liefert, so gilt
P(u, U) = s(0) + s(1) − s(0) · s(1) 6= v . Also entdeckt Bob den
Wir sind in dem Fall
Falls Alice das korrekte Polynom
Fehler
im 2. Schritt.
Will Alice unerkannt betrügen, so muss sie erneut ein Polynom
t(x) 6= S(x, U)
liefern!
268 / 298
PSPACE ⊆ IP (Fortsetzung)
R -Fall
s(x) = S(x, U) von Alice.
veriziert s(0) · (1 − u) + s(1) · u = v .
wählt r ∈ F zufällig und verlangt von Alice
1) Bob fordert
2) Bob
3) Bob
den
Beweis
s(r ) = S(r , U) = S(u1 , . . . , ui−1 , r , ui+1 , . . . , uk )
gemäÿ Protokoll α.
P(u, U) = s(0) · (1 − u) + s(1) · u 6= v .
Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt
P(u, U) = s(0) · (1 − u) + s(1) · u 6= v . Also entdeckt Bob den
Wir sind in dem Fall
Fehler
auch jetzt im 2. Schritt.
Will Alice unerkannt betrügen, so muss sie erneut ein Polynom
t(x) 6= S(x, U) liefern!
Falls P(u, U) = v ist, so
kann Alice jeweils korrekt spielen und Bob
überzeugen.
269 / 298
PSPACE ⊆ IP (Fortsetzung)
P(u, U) 6= v .
s(x) = S(x, U) liefert, so gilt
P(u, U) = s(0) · s(1) im A-Fall, P(u, U) = s(0) + s(1) − s(0)s(1) im
E-Fall und P(u, U) = s(0) · (1 − u) + s(1) · u im R -Fall. Also entdeckt
Zusammenfassung: Zunächst betrachten wir den Fall
Falls Alice das korrekte Polynom
Bob den Fehler jeweils im 2. Schritt.
t(x) vom Grad ≤ d
t(x) 6= s(x) ∈ F[x]. Bob fordert den Beweis t(r ) = S(r , U)
gemäÿ α. Falls t(r ) = s(r ), so kann Alice den Beweis erbringen.
Andernfalls akzeptiert Bob mit einer Wahrscheinlichkeit ≤ εα nach
Annahme, da dann Bob den Beweis von S(r , U) = t(r ) verlangt, aber
t(r ) 6= s(r ) = S(r , U) vorliegt.
Da t(x) − s(x) ein Polynom mit Grad ≤ d ist, gibt es höchstens d
d
Nullstellen für t(x) 6= s(x). Also gilt Pr( t(r ) = s(r ) ) ≤
p in diesem
d
Fall. Insgesamt ist die Betrugswahrscheinlichkeit ≤ εα + .
p
Will Alice betrügen, so muss sie ein Polynom
liefern mit
270 / 298
PSPACE ⊆ IP (Beispiel)
Wir wollen das Protokoll zwischen Alice und Bob an einem Beispiel
nachvollziehen.
Wir gehen von folgender Formel aus:
F
= ∀x∃y (x ∨ y ) ∧ (x ∨ y )
Der zugehörige arithmetische Ausdruck ist
Φ = Ax R x Ey R y R xb(x, y ).
Der Ausdruck ergibt ausgewertet 1, denn die Formel
F
ist wahr.
271 / 298
PSPACE ⊆ IP (Beispiel)
Die folgenden Formeln sind im Prinzip selbst für Alice zu groÿ, um sie
explizit hin zuschreiben:
b(x, y ) = (1 − y + xy )(1 − x + xy )
R xb(x, y )
R y R xb(x, y )
Ey R y R xb(x, y )
R x Ey R y R xb(x, y )
Ax R x Ey R y R xb(x, y )
=
1
=
1
=
1
=
1
=
1
=
1
=
1
− x − y + 3xy − x 2 y − xy 2 + x 2 y 2
− x − y + 2xy
− x − y + 2xy
− x + x − (1 − x)x
− x + x2
272 / 298
PSPACE ⊆ IP (Beispiel)
Nun folgt die Beschreibung des eigentlichen Protokolls zwischen Alice
und Bob. Um das Protokoll lesbarer zu machen, rechnen wir nicht
modulo einer Primzahl, sondern genau.
Runde 1:
Ax R x Ey R y R xb(x, y ) = 1.
s(x) = R x Ey R y R xb(x, y ).
Alice liefert: t(x) = 1.
Bob veriziert t(0) · t(1) = 1.
a) Alice behauptet:
b) Bob verlangt:
c)
d)
e) Bob würfelt zufälligerweise 1, und erwartet den
Beweis für die folgende Behauptung:
Runde 2:
t(1) = 1 = R x Ey R y R xb(1, y ).
s(x) = Ey R y R xb(x, y ).
2
Alice liefert: t(x) = 1 − x + x .
Bob veriziert t(0)(1 − 1) + t(1) · 1 = 1.
a) Alice behauptet:
b) Bob verlangt:
c)
d)
e) Bob würfelt zufälligerweise 2, und erwartet den
Beweis für die folgende Behauptung:
273 / 298
PSPACE ⊆ IP (Beispiel)
Runde 3:
t(2) = 3 = Ey R y R xb(2, y ).
Bob verlangt: s(y ) = R y R xb(2, y ).
Alice liefert: t(y ) = 1 − 2 − y + 4y = 3y − 1.
a) Alice behauptet:
b)
c)
d) Bob veriziert
t(0) + t(1) − t(0)t(1) = −1 + 2 + 2 = 3.
e) Bob würfelt zufälligerweise 3, und erwartet den
Beweis für die folgende Behauptung:
Runde 4:
t(3) = 8 = R y R xb(2, 3).
s(y ) = R xb(2, y ).
t(y ) = 1 − 2 − y + 4y = 3y − 1.
a) Alice behauptet:
b) Bob verlangt:
c) Alice liefert:
d) Bob veriziert
t(0)(1 − 3) + t(1)3 = 2 + 2 · 3 = 2 + 6 = 8.
e) Bob würfelt zufälligerweise 4, und erwartet den
Beweis für die folgende Behauptung:
274 / 298
PSPACE ⊆ IP (Beispiel)
Runde 5:
t(4) = 11 = R xb(2, 4).
s(x) = b(x, 4).
t(x) = (4x − 3)(3x + 1).
a) Alice behauptet:
b) Bob verlangt:
c) Alice liefert:
d) Bob veriziert
t(0)(1 − 2) + t(1)2 = 3 + 4 · 2 = 3 + 8 = 11.
e) Bob würfelt zufälligerweise 5, und erwartet den
Beweis für die folgende Behauptung:
Runde 6:
t(5) = 17 · 16 = b(5, 4).
b(5, 4) = 16 · 17 = t(5).
a) Alice behauptet:
b) Bob veriziert
c) Bob ist zufrieden.
Bob akzeptiert die Formel als wahr, nachdem weitere Durchgänge die
Betrugswahrscheinlichkeit wie gefordert vermindert haben.
275 / 298
Monotone Schaltkreise
f : Bn → B heiÿt monoton, falls
f (x1 , . . . , xn ) ≤ f (y1 , . . . , yn ) gilt, sofern xi ≤ yi für alle 1 ≤ i ≤ n.
Eine boolesche Funktion
D.h. durch einen Wechsel von 0 nach 1 in der Eingabe kann die
Ausgabe nicht auf 0 zurückfallen. Ein Schaltkreis heiÿt monoton, falls
er keine NOT-Gatter besitzt.
276 / 298
Monotone Schaltkreise (Forts.)
Ein monotoner Schaltkreis berechnet eine monotone Funktion.
f : Bn → B (mit
n
n−1 − 2
höchstens 2 + 2
Umgekehrt gibt es zu jeder monotonen Funktion
n ≥ 1)
einen monotonen Schaltkreis mit
Gattern, der
f
berechnet. Dies folgt aus Abbildung 1, die die induktive
Denition der Schaltkreise am Beispiel
n=3
darstellt.
x1
&
x2
f (1, x2 , x3 )
≥1
x3
xout
f (0, x2 , x3 )
Abbildung: Induktive Konstruktion monotoner Schaltkreise am Beispiel einer
3-stelligen Funktion
277 / 298
Monotone Schaltkreise (Forts.)
Es ist extrem schwierig, für konkrete Funktionen untere Schranken für
die Gröÿe zugehöriger Schaltkreise zu beweisen. Alle in
P
berechenbaren Funktionen haben Schaltkreise polynomieller Gröÿe.
A. A. Razborov konnte eine explizite exponentielle untere Schranke für
die Zahl der Gatter in einem monotonen Schaltkreis für das Problem
CLIQUE nachweisen.
Razborov wurde hierfür in Kyoto 1990 mit dem Rolf-Nevanlinna-Preis
ausgezeichnet. Er wird alle vier Jahre für herausragende Beiträge im
mathematischen Bereich der Informatik beim Internationalen
Mathematikerkongress vergeben. Der 40. Geburtstag eines Preisträgers
darf nicht vor dem ersten Januar des Jahres des Kongresses liegen, in
dem der Preis vergeben wird. Die Auszeichnung wurde 1981 von der
Geschäftsführung der International Mathematical Union (IMU)
eingeführt und ist zu Ehren des nnischen Mathematikers Rolf
Nevanlinna benannt, der ein Jahr zuvor verstarb.
278 / 298
Es gibt Sonnenblumen!
Im Beweis des Satzes von Razborov kommen sog. Sonnenblumen vor.
Denition
p ≥ 2 ist eine Familie {X1 , . . . , Xp } von
Z existiert mit: Xi ∩ Xj = Z für alle
Xi \ Z bezeichnen wir als Blütenblätter,
Eine Sonnenblume der Gröÿe
p
Mengen, für die eine Menge
1
≤ i < j ≤ p . Die Mengen
Z heiÿt der Kern.
die Menge
Lemma (P. Erd®s, R. Rado)
Sei p ≥ 2 und F = {X1 , . . . , Xm } eine Familie von m Mengen mit
m > (p − 1)` · `! und |Xi | ≤ ` für alle 1 ≤ i ≤ m. Dann enthält F eine
Sonnenblume der Gröÿe p .
279 / 298
Sonnenblumen
Beweis: Mit Induktion nach
Für
`=1
enthält
Kardinalität
Z = ∅.
`>1
≤ 1.
F
`.
mindestens
p
paarweise disjunkte Mengen der
Diese bilden eine Sonnenblume der Gröÿe
p
mit Kern
D ⊆ F eine maximale Teilfamilie paarweise disjunkter
|D| ≥ p , so wählen wir analog zu ` = 1 den Kern
Z = ∅S. Sei also |D| ≤ p − 1. Dann gilt |D| ≤ (p − 1) · ` für
D = {X | X ∈ D}. Für alle Mengen X ∈ F \ D gilt X ∩ D 6= ∅, da
D maximal ist. Daher gibt es ein d ∈ D und mindestens
(m − (p − 1))/((p − 1)`) > (p − 1)`−1 · (` − 1)! − 1/` Mengen
X ∈ F \ D mit d ∈ X . Für eine weitere Menge D0 ∈ D gilt d ∈ D0 .
`−1 · (` − 1)! Mengen X ∈ F mit
Insgesamt gibt es also mehr als (p − 1)
0
d ∈ X . Betrachte F = {X \ {d} | d ∈ X ∈ F}. Dann enthält F 0 nach
Induktionsvoraussetzung eine Sonnenblume {X1 \ {d}, . . . , Xp \ {d}}
0
der Gröÿe p mit Kern Z . Damit ist {X1 , . . . , Xp } eine Sonnenblume
0
der Gröÿe p in F mit Kern Z = Z ∪ {d}.
Sei
und
Mengen. Falls
280 / 298
Der Satz von Razborov
Wir betrachten ungerichtete Graphen
Knotenmenge
V = {1, . . . , n}.
G = (V , E )
monotonen Schaltkreis, der die Graphen mit
eine Clique der Gröÿe
k
mit der
Im Folgenden bezeichnet
n
Cn,k
Knoten akzeptiert, die
haben. Die Eingabegatter heiÿen
genau dann mit 1 belegt, wenn die Kante
einen
{i, j}
in
E
gij
und sind
vorhanden ist:
gij (G ) = 1 ⇔ {i, j} ∈ E
Allgemein bezeichnen wir mit
Eingabe
g (G )
den Wert eines Gatters
g
bei
G.
Theorem (A. A. Razborov, 1985)
Falls
n
genügend groÿ ist, besitzt jeder monotone Schaltkreis
1·√
8n
mindestens r = n 6
viele Gatter.
Cn,k
281 / 298
Beweis des Satzes von Razborov
Beweisidee: Wir versehen induktiv die Gatter
g
von
Cn,k
mit einer
Bg , die dann in natürlicher Weise zu einer
Bg : Γn → B führt, wobei Γn die Menge aller ungerichteten
Graphen mit n Knoten ist. Danach messen wir die Abweichung von
g (G ) und Bg (G ) auf einer Menge von Testgraphen G und zeigen, dass
die Abweichung gering ist, wenn es in Cn,k wenig Gatter gibt.
groben Beschriftung
Abbildung
Andererseits werden wir zeigen, dass die Abweichung am
Ausgabegatter notwendigerweise groÿ ist. Also muss
Cn,k
viele Gatter
besitzen.
282 / 298
Beweis des Satzes von Razborov
Nun zum Beweis: Wir legen zunächst die Parameter fest. Wir
denieren:
√
k := b 4 nc,
√
√
` := b kc ≈ 8 n,
p := `dlog2 ne,
M := (p − 1)` · `!.
Dies ist der Sonnenblumenwert!
Der Logarithmus wird also zur Basis 2 gebildet und aufgerundet, die
anderen Werte werden abgerundet. Die Rechnung ist jedoch genügend
robust, so dass es nicht essentiell ist.
283 / 298
Beweis des Satzes von Razborov (Forts.)
Im Folgenden beschriften wir die Gatter induktiv mit Familien
{X1 , . . . , Xm }, wobei Xi ⊆ V gilt. Sei Bg die Beschriftung eines
g . Dann denieren wir für einen Graphen G = (V , E ) den
Wert Bg (G ) ∈ B durch:
X
Bg (G ) ⇐⇒ ∃X ∈ Bg :
⊆ E.
Gatters
2
Dabei bedeutet hier und im Folgenden
k -elementigen
die Familie der
X.
Es gilt also
eine Clique von
gij werden mit Bgij
G : gij (G ) = Bgij (G ).
Die Eingabegatter
für alle Graphen
Bg
X
k
Bg (G ) genau
G enthält.
= {{i, j}} beschriftet, also gilt
Teilmengen einer Menge
dann, wenn die Familie
284 / 298
Beweis des Satzes von Razborov (Forts.)
Eine Beschriftung heiÿt zulässig, falls
X ∈B
|B| ≤ M
und
|X | ≤ `
für alle
gilt. An den Eingangsgattern ist die Beschriftung zulässig.
Folgendes Verfahren transformiert eine beliebige Familie
B = {X1 , . . . , Xm } in eine zulässige Beschriftung. Im ersten Schritt
0
ersetzen wir B durch B = {X ∈ B | |X | ≤ `}. Falls jetzt noch
0
|B | > M gilt, so suchen wir eine Sonnenblume {X1 , . . . , Xp } ⊆ B0 mit
Kern Z und ersetzen {X1 , . . . , Xp } durch Z . Diesen Vorgang
bezeichnen wir als Pücken der Sonnenblume. Obiges Lemma
garantiert, dass wir eine Sonnenblume nden. Das Pücken
wiederholen wir so lange, bis wir höchstens
M
Mengen haben. Das
Ergebnis der Prozedur ist eine zulässige Familie, die wir mit
reduce(B)
bezeichnen.
285 / 298
Beweis des Satzes von Razborov (Forts.)
g ein Gatter mit Eingabegattern f und h. Induktiv seien f
Bf = {Xi | i ∈ I } und h mit Bh = {Yj | j ∈ J} jeweils zulässig
beschriftet. Die Beschriftung Bg von g denieren wir als
reduce(Bf ∪ Bh ), falls g = f ∨ h
Bg =
reduce(Bf · Bh ), falls g = f ∧ h
Sei jetzt
Dabei gilt
mit
Bf · Bh = {Xi ∪ Yj | (i, j) ∈ I × J}.
286 / 298
Beweis des Satzes von Razborov (Forts.)
out von Cn,k ergibt sich eine zulässige
Bout und wir untersuchen jetzt die Abweichungen der
Werte Bout (G ) von den Werten Cn,k (G ). Hierbei bezeichnet
Cn,k (G ) = out(G ) den Wert des Schaltkreises Cn,k bei Eingabe G .
Folgenden sei r die Anzahl der Gatter in Cn,k . Mit Widerspruch
nehmen wir an, dass für unendliche viele n gilt:
Am Ausgangsgatter
Beschriftung
1 √
8n
r < n6·
Wir wollen die Abweichung von
1
< n 5 ·` .
Cn,k (G )
und
Im
(∗)
Bout (G )
auf einer Menge
von positiven und negativen Testgraphen bestimmen. Positive
Testgraphen sind nur solche mit
Cn,k (G ) = 1,
negative nur solche mit
Cn,k (G ) = 0.
287 / 298
Beweis des Satzes von Razborov (Forts.)
Das Verhalten bei positiven Testgraphen
Positive Testgraphen: Eine Teilmenge
dem Graphen
(V ,
P
2
)
P⊆V
mit
|P| = k
wird mit
gij gilt also
Cn,k (P) = 1, da
identiziert. Für ein Eingabegatter
gij (P) = 1 genau dann, wenn {i, j} ⊆ P . Ferner gilt
P eine Clique der Gröÿe k ist. Es gibt kn positive Testgraphen.
288 / 298
Beweis des Satzes von Razborov (Forts.)
Sei
P = (V , E )
ein positiver Testgraph. Wir sagen, dass für
Fehler am Gatter
g
vorliegt, falls
g (P) = 1,
aber
P
Bg (P) = 0
ein
gilt. Wir
bestimmen die maximale Fehlerzahl am Ausgangsgatter. Ein Fehler am
Ausgangsgatter entsteht in einem monotonen Schaltkreis an einem
Gatter
g
mit Eingabegattern
f
und
h
an denen der Fehler noch nicht
Bf = {Xi | i ∈ I } und
Bh = {Yj | j ∈ J} zulässig beschriftet. Falls g = f ∨ h gilt, so entsteht
Bg durch Pücken der in der Menge {Xi | i ∈ I } ∪ {Yj | j ∈ J}.
Enthält die Menge {Xi | i ∈ I } ∪ {Yj | j ∈ J} ein Z mit Z ⊆ P , so gilt
dies auch nach dem Pücken. Fehler können für P also an keinem
vorliegt. Die Eingabegatter
f
und
h
seien mit
OR-Gatter entstehen.
289 / 298
Beweis des Satzes von Razborov (Forts.)
g = f ∧ h ein AND-Gatter und Bf (P) = Bh (P) = 1. D.h. es gibt
ein Xi ∈ Bf mit Xi ⊆ P und ein Yj ∈ Bh mit Yj ⊆ P . Damit gilt
Xi ∪ Yj ⊆ P . Da durch das Pücken einer Sonnenblume kein neuer
Sei
Fehler entstehen kann, kann dies nur im ersten Schritt von reduce
geschehen, wenn
Bg
durch
Bg0 = {Z ∈ Bg | |Z | ≤ `}
ersetzt wird.
290 / 298
Beweis des Satzes von Razborov (Forts.)
|Z | ≥ ` + 1 fest. Dann gilt für die Anzahl
Z als Clique enthalten:
V
n − |Z |
n−`−1
|{P ∈
| Z ⊆ P}| =
≤
.
k
k − |Z |
k −`−1
Sei zunächst
Z ⊆V
mit
der
positiven Testgraphen, die
Es können maximal
M2
viele Mengen in
Daher gilt für die Beschriftung
Bout
Bf · Bh
gelöscht werden.
am Ausgangsgatter:
1. Fall: Alle positiven Testgraphen werden falsch ausgewertet, d.h. es
n
k
entstehen mindestens
2
r ·M ·
2. Fall: oder
Bout (P) = 1
viele Fehler:
n−`−1
k −`−1
für mindestens ein
≥
n
P∈
k
V
k
.
291 / 298
Beweis des Satzes von Razborov (Forts.)
1. Fall: Alle positiven Testgraphen falsch ausgewertet
Fall (1) impliziert
r≥
1
M2
n
k n−`−1
k−`−1
·
1
n! · (k − ` − 1)!
n(n − 1) · · · (n − `)
= 2·
k! · (n − ` − 1)!
M k(k − 1) · · · (k − `)
`
1
1
n−`
n−` `
=
≥ 2·
·
M
k
k
(p − 1)2` · `!2
`
1
n−`
≥
> n 5 ·` ,
2
2
p ·` ·k
=
1
M2
·
wobei die letzte Ungleichung gilt, da
n
genügend groÿ ist. Dies ist ein
1 ·`
Widerspruch zur Annahme, dass die Zahl der Gatter r kleiner
als n 5
Bout (P) = 1 für mindestens ein P ∈ Vk
ein Z ⊆ V mit |Z | ≤ ` und Z ∈ Bout 6= ∅.
ist. Daher gilt ab jetzt
Insbesondere gibt es
.
292 / 298
Beweis des Satzes von Razborov (Forts.)
Das Verhalten bei negativen Testgraphen
c : V → {1, . . . , k − 1} der
V deniert einen Graphen Gc = (V , E ) mit
E = {{i, j} | c(i) 6= c(j)}. Der Graph Gc ist (k − 1)-färbbar, also gilt
Cn,k (Gc ) = 0, und Gc = (V , E ) für den durch c denierten negativen
n
Testgraphen. (Es gibt (k − 1) Färbungen, aber sehr viel weniger
negative Testgraphen Gc .) Wir zählen die Färbungen und fassen daher
Färbungen c selbst als Eingaben für den Schaltkreis auf. Wir setzen
B(c) = B(Gc ). An den Eingabegattern gilt gij (c) = 1 genau dann,
wenn c(i) 6= c(j).
Sei c : V → {1, . . . , k − 1} eine Färbung. Für Z ⊆ V sei R(Z ) das
Ereignis, dass eine Farbe in Z wiederholt vorkommt (repeated color):
Negative Testgraphen: Eine Färbung
Knotenmenge
R(Z )
Für eine Beschriftung
B(c)
⇔
B
⇔
∃i, j ∈ Z , i 6= j : c(i) = c(j)
B = {Zi | i ∈ I }
gilt damit:
enthält eine Clique von
Gc
⇔
∃Z ∈ B : ¬R(Z ).
293 / 298
Beweis des Satzes von Razborov (Forts.)
Behauptung: Sei
Pr(B(c))
≥ 1/2.
B 6= ∅
Beweis: Für i, j ∈ V
Z ∈B
mit
|Z | ≤ `.
eine zulässige Beschriftung. Dann gilt
mit
i 6= j
gilt Pr(c(i)
Dann gilt
Pr(R(Z ))
≤
|Z |
2
·
1
≤
k −1
= c(j)) = 1/(k − 1).
Sei
`(` − 1)
1
≤ .
− 1)
2
2(k
Dies beweist die Behauptung.
k |Z | =
Das Geburtstagsparadoxon zeigt, dass ab
Pr(R(Z ))
≥ 1/2
gilt. Oben ist
`=
j√
k
√
2k ln k
.
294 / 298
Beweis des Satzes von Razborov (Forts.)
Da am Ausgabegatter
Bout 6= ∅
und
Cn,k (c) = 0
für alle Färbungen
c
gilt, müssen also sehr viele Abweichungen entstanden sein. Wir sagen
jetzt, dass für
Bg (c) = 1
c
ein Fehler am Gatter
g
vorliegt, falls
g (c) = 0,
aber
gilt. Wir bestimmen wiederum die maximale Fehlerzahl am
g mit den
f und h mit zulässigen Beschriftungen
Bf = {Xi | i ∈ I } und Bh = {Yj | j ∈ J}. Bei einem AND-Gatter
nehmen wir Bf (c) = 0 oder Bh (c) = 0 an, bei einem OR-Gatter
nehmen wir Bf (c) = Bh (c) = 0 an. Es sei Bg (c) = 1
Dies bedeutet R(Z ) für alle Z ∈ Bf · Bh bzw. für alle Z ∈ Bf ∪ Bh .
Ausgangsgatter. Wie oben betrachten wir ein Gatter
Eingabegattern
Das Löschen von Mengen kann diese Eigenschaft nicht verändern.
Problematisch ist das Pücken. Insgesamt gibt es maximal
r · M 2 /(p − 1)
viele Pückungen. Wir zählen die Fehler, die durch eine
{Z1 , . . . , Zp } eine Sonnenblume mit
entsteht nur, wenn R(Z1 ), . . . , R(Zp ) und
Pückung entstehen können. Sei
Kern Z . Ein neuer
¬R(Z ) gelten.
Fehler
295 / 298
Beweis des Satzes von Razborov (Forts.)
{Z1 , . . . , Zp } eine Sonnenblume mit Kern Z und
|Zi | ≤ ` für alle 1 ≤ i ≤ p . Dann gilt
p
Pr(R(Z1 ) ∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) ≤ (1/2) .
Beweis: Die p Ereignisse R(Zi ) ∧ ¬R(Z ) sind unabhängig, da
{Z1 , . . . , Zp } eine Sonnenblume ist. Damit erhalten wir:
Behauptung: Sei
Pr(R(Z1 )
∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) =
≤
p
Y
i=1
p
Y
Pr(R(Zi )
∧ ¬R(Z ))
Pr(R(Zi ))
i=1
≤ (1/2)p .
Denn wie eben berechnet gilt Pr(R(Zi ))
beweist die Behauptung.
≤ 1/2,
falls
|Zi | ≤ `.
Dies
296 / 298
Beweis des Satzes von Razborov (Forts.)
Wir haben jetzt alles zusammen. Es muss gelten:
Anzahl Pückungen
×
Pr(Beim Pücken entsteht neuer Fehler)
≥
Pr(Färbung wird am Ausgabegatter positiv bewertet)
oder formal:
denn es wird maximal
r · M2
·
p−1
p
1
2
r · M 2 /(p − 1)
1
≥ ,
2
gepückt und die Beschriftung
am Ausgabegatter ist nicht leer.
297 / 298
Beweis des Satzes von Razborov (Forts.)
Dies bedeutet
r
≥
≥
p
p − 1 p−1
(p − 1) · 2p−1
2
·
2
=
≥
M2
((p − 1)` · (`!))2
(p`)2`
`
`
1
n`
n
n
≥
≥ n 3 ·` .
=
2
2
2
2
`
p ·`
(p`)
k 2 log n
Damit ist der Satz von Razborov bewiesen.
298 / 298
Zugehörige Unterlagen
Herunterladen