Berechenbarkeit und Komplexität Vorlesung 16

Werbung
Berechenbarkeit und Komplexität
Vorlesung 16
Prof. Dr. Wolfgang Thomas
Lehrstuhl Informatik 7
RWTH Aachen
12. Januar 2015
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
1 / 17
Alternative Charakterisierung der Klasse NP
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann in NP, wenn es einen
Polynomialzeitalgorithmus V (einen sogenannten Verifizierer) und
ein Polynom p mit der folgenden Eigenschaft gibt:
x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(|x|) : V akzeptiert y #x.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
2 / 17
Beweis: Von der NTM zu Zertifikat & Verifizierer
Gegeben:
Sei M eine NTM, die L ∈ NP in polynomieller Zeit erkennt.
M’s Laufzeit sei beschränkt durch ein Polynom q.
O.B.d.A. sehe die Überführungsrelation von δ immer genau
zwei Übergänge vor, die wir mit 0 und 1 bezeichnen.
Konstruktion von Zertifikat und Verifizierer:
Für die Eingabe x ∈ L beschreibe y ∈ {0, 1}q(n) den Pfad von
M auf einem akzeptierenden Rechenweg.
Wir verwenden y als Zertifikat.
Der Verifizierer V erhält als Eingabe y #x und simuliert einen
Rechenweg der NTM M für die Eingabe x.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
3 / 17
Beweis: Von der NTM zu Zertifikat & Verifizierer
Korrektheit der Konstruktion:
Gemäß Konstruktion gilt
x ∈ L ⇔ M akzeptiert x
⇔ ∃y ∈ {0, 1}q(n) : V akzeptiert y #x.
Der Verifizierer kann die durch das Zertifikat y beschriebene
Rechnung mit polynomiellem Zeitverlust simulieren.
Somit erfüllen y und V die im Satz geforderten Eigenschaften.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
4 / 17
Beweis: Von Zertifikat & Verifizierer zur NTM
Gegeben:
Verifizierer V mit polynomieller Laufzeitschranke und Polynom p
mit der Eigenschaft:
x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(|x|) : V akzeptiert y #x.
Konstruktion der NTM:
1
M rät das Zertifikat y ∈ {0, 1}∗ , |y | ≤ p(n).
2
M führt V auf y #x aus und akzeptiert, falls V akzeptiert.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
5 / 17
Beweis: Von Zertifikat & Verifizierer zur NTM
Korrektheit der Konstruktion:
M erkennt die Sprache L, weil gilt
x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(n) : V akzeptiert y #x
⇔ Es gibt einen akzeptierenden Rechenweg für M
⇔ M akzeptiert x.
Die Laufzeit von M ist polynmiell beschränkt, denn
die Laufzeit von Schritt 1 entspricht der Länge des Zertifikats,
und
die Laufzeit von Schritt 2 entspricht der Laufzeit des
Verizierers.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
6 / 17
Die Komplexitätsklasse EXPTIME
Definition (Komplexitätsklasse EXPTIME)
EXPTIME ist die Klasse der Probleme, die sich auf einer DTM mit
Laufzeitschranke 2q(n) berechnen lassen, wobei q ein geeignetes
Polynom ist.
Wie verhält sich NP zu P und EXPTIME?
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
7 / 17
Wie verhält sich NP zu P und EXPTIME?
Im Folgenden schränken wir die Klassen P und EXPTIME auf
Entscheidungsprobleme ein, um sie mit der Klasse NP in
Beziehung setzen zu können.
Satz
P ⊆ NP ⊆ EXPTIME
Beweis:
Offensichtlich gilt P ⊆ NP, weil eine DTM als eine spezielle NTM
aufgefasst werden kann.
Wir müssen noch zeigen NP ⊆ EXPTIME.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
8 / 17
Exponentielle Laufzeitschranke für Probleme aus NP
Sei L ∈ NP. Die Länge der Zertifikate für L sei p(n).
Wir beschreiben einen det. Algorithmus A mit exponentieller
Laufzeitschranke, der L entscheidet:
Bei Eingabe x ∈ {0, 1}n startet A den Verifizierer V mit y #x
für jedes Zertifikat y ∈ {0, 1}p(n) .
A akzeptiert, falls V eines der generierten Zertifikate
akzeptiert.
Laufzeitanalyse:
Sei p ′ eine polynomielle Laufzeitschranke für V .
Die Laufzeit unseres Algorithmus ist dann höchstens
′
2p(n) · p ′ (p(n) + 1 + n) ≤ 2p(n) · 2p (p(n)+1+n)
′
≤ 2p(n)+p (p(n)+1+n) = 2q(n)
für das Polynom q(n) = p(n) + p ′ (p(n) + 1 + n).
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
9 / 17
Die große offene Frage der Informatik lautet
P = NP?
Diese Frage ist so bedeutend, weil sehr viele wichtige Probleme in
NP enthalten sind, für die kein Polynomialzeitalgorithmus bekannt
ist.
Immerhin gibt es tiefliegende Erkenntnisse zu dieser Fragestellung.
Die wichtigste Erkenntnis: Man kann die Frage auf konkrete
Entscheidungsprobleme L reduzieren und weiß: Wenn es einen
Unterschied zwischen P und NP gibt, dann gehört L dazu.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
10 / 17
Klassische Problemreduktion
Erinnerung: Für Sprachen K ⊆ Σ∗1 , L ⊆ Σ∗2 wurde definiert
K ≤ L gdw. es gibt f : Σ∗1 → Σ∗2 berechenbar mit
w ∈ K ⇔ f (w ) ∈ L
Anschaulich: “L ist mindestens so schwierig wie K ”
Genauer wissen wir:
Wenn K ≤ L und K unentscheidbar, dann L unentscheidbar.
Wir übertragen diese Definition nun auf den Fall, dass wir statt
Berechenbarkeit und Entscheidbarkeit mit Berechenbarkeit in
Polynomzeit und Entscheidbarkeit in Polynomzeit arbeiten.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
11 / 17
Problemreduktion in Polynomzeit
Definition (Polynomzeitreduktion)
Für Sprachen K ⊆ Σ∗1 , L ⊆ Σ∗2 gelte
K ≤p L :gdw. es gibt f : Σ∗1 → Σ∗2 polynomzeitberechenbar mit
w ∈ K ⇔ f (w ) ∈ L
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
12 / 17
Eine Bemerkung
Lemma
Wenn K ≤p L und L ∈ P, dann K ∈ P.
Äquivalent dazu: Wenn K ≤p L und K 6∈ P, dann L 6∈ P.
Der Beweis ist einfach: Sei Mf eine TM, die f in Polynomzeit p(n)
berechnet, mit w ∈ K ⇔ f (w ) ∈ L,
o.B.d.A. so, dass für Eingabe w bei Termination nur f (w ) auf dem
Band steht; die Länge von f (w ) ist dann ≤ p(|w |).
Sei ML eine TM, die L in Polynomzeit q(n) entscheidet.
M arbeite zuerst wie Mf und dann wie ML . M entscheidet dann K
und ist q(p(n))-zeitbeschränkt, also ist K ∈ P.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
13 / 17
NP-Vollständigkeit
Definition
Eine Sprache L0 heißt NP-vollständig, wenn
L0 zu NP gehört
für jede Sprache L aus NP gilt: L ≤p L0
Die zweite Bedingung hat zur Konsequenz:
Kann man L0 in Polynomzeit entscheiden, dann auch L.
Dann sehen wir, dass sich die offene Frage, ob NP mehr Sprachen
enthält als P, reduzieren lässt auf die Frage, ob L0 ∈ P:
Bemerkung
Wenn P6=NP und L0 NP-vollständig, dann L0 ∈ NP \ P.
Hierzu betrachte L ∈ NP \ P. Wegen L ∈ NP gilt dann L ≤p L0 ,
Wegen L 6∈ P also L0 6∈ P, ferner L0 ∈ NP nach Voraussetzung,
dass L0 NP-vollständig ist.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
14 / 17
Zum Problem SAT
Die Definition “L0 NP-vollständig” garantiert natürlich noch nicht,
dass es solche Sprachen L0 gibt. Wir stellen nun ein erstes Beispiel
vor: “SAT”
Definition (Boolesche Logik / KNF)
Formeln der Booleschen Logik werden aus Aussagevariablen
x1 , x2 , . . . durch Anwendung von “und” (∧), “oder” (∨) und
“nicht” (¬, Überstrich) aufgebaut.
Wir betrachten hier Formeln in konjunktiver Normalform (KNF).
Dies sind Konjunktionen aus Disjunktionen (Klauseln).
Diese sind aus “Literalen” aufgebaut: Variablen xi und ihre Negate
xi .
Beispiele Boolescher Formeln:
ϕ1 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x3 )
ϕ2 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x2 )
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
15 / 17
Belegungen, Erfüllbarkeit
Eine Belegung ist eine Funktion β, die jeder Variablen einer Formel
einen der Werte 0 oder 1 zuordnet.
Beispiel: β1 : x1 7→ 1, x2 7→ 0, x3 7→ 1
Eine Belegung β erfüllt eine Formel ϕ, wenn die Ersetzung von xi
durch das Bit β(xi ) in ϕ den Wert 1 liefert (mit den üblichen
Auswertungsregeln).
Beispiel:
Die Belegung β1 : x1 →
7 1, x2 7→ 0, x3 7→ 1 erfüllt
ϕ1 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x3 )
Die Formel ϕ heißt erfüllbar, wenn es dafür eine erfüllende
Belegung gibt.
Wie oben gezeigt: ϕ1 ist erfüllbar.
ϕ2 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x2 ) ist nicht erfüllbar.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
16 / 17
SAT
Problem (SAT)
Gegeben: Boolesche Formel ϕ in KNF.
Frage: Ist ϕ erfüllbar?
Es gibt eine einfache Lösung durch einen Probieralgorithmus:
Teste bei n vorkommenden Variablen x1 , . . . , xn alle 2n möglichen
Belegungen von x1 , . . . , xn durch und prüfe jeweils, ob sich bei
Auswertung der Wert 1 ergibt.
Unser nächstes Ziel ist der Nachweis, dass wir mit SAT ein erstes
NP-vollständiges Problem haben.
Wolfgang Thomas, Informatik 7 ()
Vorlesung Berechenbarkeit und Komplexität
12. Januar 2015
17 / 17
Herunterladen