Komplexitätstheorie - Zentrum für Angewandte Informatik der

Werbung
Informatik II
Komplexitätstheorie
Komplexitätstheorie
Rainer Schrader
Zentrum für Angewandte Informatik Köln
16. Februar 2009
1 / 58
2 / 58
Komplexitätstheorie
Komplexitätstheorie
• im verbleibenden Teil der Vorlesung wollen wir uns mit einer groben
Einteilung beschäftigen, die Fragestellungen als „leicht” und „schwer”
klassifiziert
Gliederung
• das Kriterium dazu ist die Laufzeit, die benötigt wird, um die
• Einführung
• polynomielle Reduktionen
Fragestellung zu beantworten (bzw. zu entscheiden, ob ein gegebenes
x in einer Sprache L liegt)
• NP-Vollständigkeit von SAT
• weitere NP-vollständige Probleme
• wir werden dabei akzeptieren, dass die Antwort länger dauern darf,
wenn x lang ist
• wir fordern jedoch, dass die Laufzeit nicht mit der Inputlänge explodiert,
sondern moderat ansteigt
3 / 58
4 / 58
Komplexitätstheorie
Komplexitätstheorie
• die Komplexitätstheorie
• beruht weiterhin auf der Turingmaschine als Rechnermodell
• beschäftigt sich ausschließlich mit berechenbaren Problemen
• hier ist ein Beispiel für ein Entscheidungsproblem:
• klassifiziert diese nach ihren Schwierigkeitsgraden
• eine Clique der Größe k ist eine Teilmenge V 0 ⊆ V mit
• |V 0 | = k und
• (d.h. nach dem Zeit- und Speicherplatzbedarf zu ihrer Lösung)
• {u, v } ∈ E für alle u, v ∈ V 0 , u 6= v
• und benutzen wir die Begriffe „Turingmaschine” und „Algorithmus”
synonym
CLIQUE
• wir beschränken uns zunächst
Instanz: ungerichteter Graph G = (V , E ) und k ∈ N
• auf Entscheidungsprobleme (formalisiert als Sprachen wie im
letzten Kapitel)
Frage: besitzt G eine Clique der Größe mindestens k ?
• auf den Zeitbedarf
6 / 58
5 / 58
Komplexitätstheorie
Komplexitätstheorie
Beispiel: Der folgende Graph
2
1
• sei G = (V , E ), k eine Instanz des Cliquenproblems
• wir können diese Instanz wie gezeigt binär kodieren als
3
code(G = (V , E ), k )
6
5
• und dem Cliquenproblem eine Sprache zuordnen:
4
L = {code(G = (V , E ), k ) : G hat eine Clique der Größe mindestens k }
enthält eine eine Clique der Größe 3, aber keine Clique der Größe 4.
• jede Instanz des Cliquenproblems kann bei kanonischer
• damit haben wir das Cliquenpoblem auf ein Spracherkennungsproblem
Knotennumerierung 1, 2, . . . , |V | durch die Liste der Endknoten der
Kanten {i , j }, hier:
zurückgeführt
• in weiteren werden wir uns auf Entscheidungsprobleme konzentrieren
• und ignorieren die Kodierung und das zugrundeliegende
12 13 14 15 16 23 24 26 35 45 56
sowie Angabe von k kodiert werden
Spracherkennungsproblem
• d.h. es reichen (im Wesentlichen) n = 2|E | log |V | + log k Bits zur
Spezifikation einer Instanz
7 / 58
8 / 58
Komplexitätstheorie
Komplexitätstheorie
Zeitbedarf
Laufzeit einer DTM:
• sei L eine Sprache
• sei M eine DTM, die L entscheidet
• für x ∈ Σ∗ sei T M (x ) die Anzahl der Rechenschritte, die M bis zum
• als Zeitbedarf fassen wir die Anzahl der Schritte auf, die eine
Turingmaschine benötigt, um ein Problem zu lösen
• der Zeitbedarf wird eine Funktion vom Input x sein
• wie in „Informatik I” sind wir weniger an konkreten Aussagen für jedes
Entscheiden von x ausführt
x interessiert
• sondern am Verhalten für alle Inputs gleicher Länge
• wir werden daher Schranken in Abhängigkeit von der Anzahl der Bits
• sei t : N → N
• M heißt t (n)-zeitbeschränkt, falls T M (x ) ≤ t (|x |)
• d.h. in Abhängigkeit von der Länge |x |
• wir messen somit den maximal benötigten Zeitbedarf bei einem Input
• für alle Inputs x der Länge |x | = n gilt:
• anschaulich:
des Inputs herleiten
• M hält nach höchstens t (n) Schritten
mit n bits
9 / 58
10 / 58
Komplexitätstheorie
Komplexitätstheorie
Laufzeit einer NDTM:
• wir lassen also zu, dass der Zeitbedarf eine Funktion der Größe n der Instanz ist
• die folgende Tabelle gibt einen Eindruck der Wachstumsraten für verschiedene
• sei L eine Sprache
• sei M eine NDTM, die L akzeptiert
• sei
T M (x ) =

min{Länge einer akzeptierenden Berechnung},
0,
solche Funktionen („Laufzeitfunktionen“):
falls x ∈ L
sonst
n
• anschaulich: für x ∈ L ist die Laufzeit die Anzahl der Rechenschritte,
n2
die M auf einem kürzesten Weg bis zum Akzeptieren von x ausführt
n3
• für t : N → N heißt M t (n)-zeitbeschränkt, falls T M (x ) ≤ t (|x |)
n5
• anschaulich:
2n
3n
• für alle Inputs x der Länge |x | = n gilt:
• für x ∈ L existiert eine akzeptierende Berechnung, die höchstens
t (n) Schritten ausführt
11 / 58
10
0,00001
sek
0,0001
sek
0,001
sek
0,1
sek
0,001
sek
0,059
sek
20
0,00002
sek
0,0004
sek
0,008
sek
3,2
sek
1
sek
58
min
30
0,00003
sek
0,0009
sek
0,027
sek
24,3
sek
17,9
min
6,5
Jahre
40
0,00004
sek
0,0016
sek
0,064
sek
1,7
min
12,7
Tage
3855
Jahrhund.
50
0,00005
sek
0,0025
sek
0,125
sek
5,2
min
35,7
Jahre
2 × 108
Jahrhund.
60
0,00006
sek
0,0036
sek
0,216
sek
13,0
min
366
Jahrhund.
1, 3 × 1013
Jahrhund.
12 / 58
Komplexitätstheorie
Komplexitätstheorie
• nun betrachten wir den Effekt von verbesserter Computertechnologie im gleichen
Szenario
• wir zeigen jeweils die größte Probleminstanz, die in einer Stunde gelöst werden
• für das Cliquenproblem sind nur Algorithmen mit exponentieller Laufzeit
kann, wenn Computer 100 bzw. 1000 mal schneller sind als unsere derzeitigen
Laufzeitfunktion
n
n2
n3
n5
2n
3n
derzeitiger
Computer
N1
N2
N3
N4
N5
N6
100 mal schneller
Computer
100N1
10N2
4,64N3
2,5N4
N5 + 6,64
N6 + 4,19
bekannt, d.h. es ist hoffungslos, sehr große Instanzen praktisch zu lösen
• die Komplexitätstheorie hilft uns, zu verstehen, warum wir uns so
1000 mal schneller
Computer
1000N1
31,6N2
10N3
3,98N4
N5 + 9,97
N6 + 6,29
schwer damit tun, gute Algorithmen für viele Probleme zu finden
• als „gut” bezeichnen wir Algorithmen mit polynomieller Laufzeit
• sie gibt uns Techniken, für neue Probleme festzustellen, ob sie im
Wesentlichen genauso schwierig wie das Cliquenproblem sind
Wir sehen den gewaltigen Unterschied zwischen polynomiellen und exponentiellen
Laufzeitfunktionen.
13 / 58
14 / 58
Komplexitätstheorie
Komplexitätstheorie
P und NP
• P ist die Menge aller Sprachen, die
• von einer deterministischen Turingmaschine
entschieden werden,
Gliederung
• Einführung
• polynomielle Reduktionen
• deren Laufzeit durch ein Polynom in der Länge des Inputs
beschränkt ist
• NP-Vollständigkeit von SAT
• weitere NP-vollständige Probleme
• NP ist die Menge aller Sprachen, die
• von einer nichtdeterministischen Turingmaschine
akzeptiert werden,
• deren Laufzeit durch ein Polynom in der Länge des Inputs
beschränkt ist
15 / 58
16 / 58
Komplexitätstheorie
Komplexitätstheorie
• wir wollen Entscheidungsprobleme betrachten
Beispiele für Sprachen in P:
• {(x1 , . . . , xn , π) | π ist Permutation, die die xi monoton steigend anordnet}
• {(G(V , E ), c, T ) : T ist ein minimal aufspannender Baum im Graphen G}
• {(G(V , E ), c, P ) : P ist ein kürzester Weg im Graphen G}
• d.h. wir suchen:
• bestimmte Objekte aus einer Menge,
• die eine bestimmte Eigenschaft erfüllen
• (z.B. Cliquen der Größe mindestens k )
Erläuterung zum Sortieren:
• das Entscheidungproblem ist in NP, wenn gilt:
• Kodierung des Inputs: x1 , . . . , xn , π
P
P
• Länge der Kodierung: ni=1 log(xi ) + n + ni=1 log(i ) + n Bits
• Lufzeit zum Sortieren, z.B.: O(n log n) = Polynom(Inputlänge)
• rate eine Objekt
• teste in polynomieller Zeit, ob es in der Menge liegt
• teste in polynomieller Zeit, ob es in die Eigenschaft hat
Beispiele für Sprachen, die nicht offensichtlich in P liegen, folgen später.
17 / 58
18 / 58
Komplexitätstheorie
Komplexitätstheorie
Bemerkungen
• offensichtlich gilt P ⊆ NP
• es ist unbekannt, ob P = NP oder P 6= NP gilt
• wie bei den berechenbaren Funktionen wollen wir dazu die Struktur von
NP näher zu untersuchen
• diese Frage gilt als das wichtigste offene Problem der Theoretischen
• bisher wissen wir lediglich, dass P ⊆ NP
Informatik
• das Clay Mathematics Institute (CMI) in Cambridge, MA, hat für seine
• wir versuchen den Reduzierbarkeitsbegriff sinnvoll zu übertragen
Lösung einen Preis von 1 Mio $ ausgesetzt
• die von einer großen Mehrheit akzeptierte Arbeitshypothese ist P 6= NP
• wir werden im Folgenden einen Einblick gewinnen, warum das so ist
19 / 58
20 / 58
Komplexitätstheorie
Komplexitätstheorie
• wie „” ist auch „p ” transitiv, denn:
• seien L und L0 zwei Sprachen
• „” ist transitiv
• L heißt polynomiell reduzierbar auf L0 , falls gilt:
• das Produkt von zwei Polynomen ist ein Polynom
• L ist reduzierbar auf L0 mittels einer Funktion f
• d.h. x ∈ L ⇐⇒ f (x ) ∈ L0
• L und L0 heißen polynomiell äquivalent, falls L p L0 und L0 p L
• Notation: L ≡p L0
• f ist in polynomieller Zeit berechenbar
• L heißt NP-schwer, falls für alle L0 ∈ NP gilt: L0 p L
• Notation: L p L0
• L heißt NP-vollständig, falls L NP-schwer ist und L ∈ NP
22 / 58
21 / 58
Komplexitätstheorie
Komplexitätstheorie
Lemma
Sei
Lemma
L NP-vollständig.
Sei L NP-vollständig.
(i) L ∈ P ⇐⇒ P = NP
(i) L ∈ P ⇐⇒ P = NP
(ii) L0 ∈ NP und L p L0 =⇒ L0 ist NP-vollständig
(ii) L0 ∈ NP und L p L0 =⇒ L0 ist NP-vollständig
(iii) L und L0 NP-vollständig =⇒ L ≡p L0 .
(iii) L und L0 NP-vollständig =⇒ L ≡p L0 .
Beweis von (i):
Beweis von (ii) und (iii):
• sei L ∈ P und L0 ∈ NP
• dann ist L0 polynomiell reduzierbar auf L vermittels einer Funktion f
• insbesondere ist f polynomiell deterministisch berechenbar
• (ii) sei L00 ∈ NP
• es ist L00 p L p L0
• somit ist auch L0 NP-vollständig.
• zu gegebenem x berechne f (x ) und teste in polynomieller Zeit, ob
f (x ) ∈ L.
• (iii) folgt aus der Definition
• damit ergibt sich ein polynomieller Test, ob x ∈ L0
• die Umkehrung gilt offensichtlich
23 / 58
24 / 58
Komplexitätstheorie
Komplexitätstheorie
• mit den NP-vollständigen Problemen haben wir den harten Kern der
Gliederung
Probleme in NP ausgezeichnet, denn
• sie sind alle „gleich schwierig”
• Einführung
• polynomielle Reduktionen
• und ist eines „einfach”, so sind alle Problem in NP „einfach”
• NP-Vollständigkeit von SAT
• weitere NP-vollständige Probleme
• wir wissen aber noch nicht, ob diese Teilmenge nichtleer ist
25 / 58
26 / 58
Komplexitätstheorie
Komplexitätstheorie
• sei X = {x1 , x2 , . . . , xn } eine Menge Boolescher Variablen
• wollen wir also 1 Mio $ verdienen, so reicht es, für ein beliebiges
• eine Klausel ist eine Disjunktion von Literalen der Form xi oder
NP-vollständiges Problem A eine der beiden Alternativen zu zeigen:
(1) A ∈ P
oder
x i über X
(2) A ∈
/P
• z.B. sind folgende Ausdrücke Klauseln über X = {x1 , x2 }:
• im Fall (1) folgt P = NP, im Fall (2) folgt P 6= NP
• jetzt fehlt nur noch ein erstes NP-vollständiges Problem
K1 = x1 ∨ x 2
K2 = x 1 ∨ x2
K3 = x1 ∨ x2
K4 = x 1
• eine Boolesche Funktion ist in konjunktiver Normalform (KNF), wenn
sie als Konjunktion von Klauseln ausgedrückt ist
• als Vorbereitung erinnern wir uns an die im Kapitel Rechnerarchitektur
• die neue Definition unterscheidet sich von der früheren nur dadurch,
eingeführten Booleschen Funktionen
dass Klauseln nun auch weniger als n Literale haben dürfen
• ein wenig anders als dort definieren wir die konjunktive Normalform
(KNF) wie folgt:
• z.B. entspricht die KNF gegeben durch X = {x1 , x2 } und
C = {c1 , c2 } der Funktion f = (x1 ∨ x 2 ) ∧ (x 1 ∨ x2 )
27 / 58
28 / 58
Komplexitätstheorie
Komplexitätstheorie
Erfüllbarkeitsproblem SAT (satisfiability)
• eine KNF f ist erfüllbar, wenn es eine Belegung der Variablen
(x1 , x2 , . . . , xn ) gibt, so dass f den Wert 1 hat
Instanz:
• für eine KNF f bedeutet das offensichtlich:
Frage:
f erfüllbar ⇐⇒ alle Klauseln der KNF erfüllbar
eine Menge X = {x1 , x2 , . . . , xn } von Booleschen Variablen und
eine Menge C = {K1 , K2 , . . . , Km } von Klauseln über X
V
ist F = m
i =1 Ki erfüllbar?
Satz (Cook)
SAT ist NP-vollständig.
Beispiele:
• die KNF f = (x1 ∨ x 2 ) ∧ (x 1 ∨ x2 ) ist erfüllbar, denn es gilt f = 1 für
Beweisidee:
x1 = x2 = 1 (oder x1 = x2 = 0)
• (i) SAT ist in NP:
• die KNF f = (x1 ∨ x 2 ) ∧ (x1 ∨ x2 ) ∧ x 1 ist dagegen nicht erfüllbar
• rate eine Belegung der Variablen
• prüfe nach, ob B mit dieser Belegung den Wert 1 hat
• (um die letzte Klausel zu erfüllen, muss x1 = 0 sein, für x2 = 0 ist die
zweite Klausel nicht erfüllt, für x2 = 1 ist die erste Klausel nicht erfüllt)
• damit ist SAT ∈ NP
29 / 58
30 / 58
Komplexitätstheorie
Komplexitätstheorie
(ii) SAT ist NP-schwer, d.h. für jedes L ∈ NP gilt: L p SAT :
• der Beweis ist etwas technisch, aber die Idee ist recht einfach
Gliederung
• von einem L ∈ NP wissen wir nur, dass eine NDTM M existiert, die
L in polynomieller Zeit akzeptiert
• wir definieren zu einem Input x eine KNF f , die die Arbeitsweise von
• Einführung
• polynomielle Reduktionen
• die KNF hat eine Länge, die durch ein Polynom in |x | beschränkt ist
• NP-Vollständigkeit von SAT
• weitere NP-vollständige Probleme
M auf x simuliert
• die KNF ist erfüllbar, genau dann wenn M mit Input x akzeptiert
• damit ist x ∈ L ⇐⇒ f (x ) = 1
• d.h. SAT ist NP-schwer.
31 / 58
32 / 58
Komplexitätstheorie
Komplexitätstheorie
Satz
3-SAT ist NP-vollständig.
• die Aussage des Satzes von Cook lässt sich noch etwas verschärfen
• sei f eine Boolesche Formel in konjunktiver Normalform
Beweis:
• f heißt 3-KNF , falls in jeder Klausel höchstens drei Literale
• sei K = y1 ∨ · · · ∨ ys eine Klausel mit yi ∈ {x1 . . . xn , x 1 , . . . , x n } und
vorkommen.
• Beispiel:
• sei
s≥4
• sei z eine neue Variable
• betrachte die Boolesche Funktion
f = (x1 ∨ x2 ∨ x3 ) ∧ (x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 )
K1 = (y1 ∨ · · · ∨ ys−2 ∨ z ) ∧ (ys−1 ∨ ys ∨ z )
3-SAT = {f : f ist eine erfüllbare 3-KNF}.
• offensichtlich gilt:
Satz
• K1 ist in konjunktiver Normalform
• K hat eine erfüllende Belegung ⇐⇒ K1 hat eine erfüllende
Belegung
3-SAT ist NP-vollständig.
• K1 enthält nur Klauseln der Länge s − 1
33 / 58
34 / 58
Komplexitätstheorie
Komplexitätstheorie
• per Induktion folgt:
• sei K eine Klausel der Länge s ≥ 4
• K kann durch eine Boolesche Formel K 0 ersetzt werden, so dass
• mit Hilfe von 3-SAT wollen wir eine graphentheoretische Fragestellung als
NP-vollständig nachweisen
• sei G = (V , E ) ein Graph
• eine Teilmenge U ⊆ V von Knoten heißt unabhängig oder stabil , falls keine
• K 0 ist eine 3-KNF
• K 0 hat s − 3 neue Variablen
• K 0 besteht aus s − 2 Klauseln
zwei Knoten aus U durch eine Kante in E verbunden sind
• K hat eine erfüllende Belegung ⇐⇒ K 0 hat eine erfüllende
Belegung
• wir führen diese Reduktion für jede Klausel mit mehr als drei Variablen
durch
• dadurch entsteht eine polynomiell beschränkte Menge von Klauseln
und polynomiell viele neue Variablen
• dies liefert eine polynomiell berechenbare Abbildung g mit
• sei UM = {(G, k ) : G enthält eine stabile Menge der Größe mindestens k }
f ∈ SAT ⇐⇒ g(f ) ∈ 3-SAT
35 / 58
36 / 58
Komplexitätstheorie
Komplexitätstheorie
Beispiel:
• Sei
f = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 )
Satz
• der zu f gehörige Graph G ist:
UM ist NP-vollständig.
x3
Beweis:
• wir reduzieren 3-SAT auf UM
• sei B eine Boolesche Formel in 3-KNF mit Klauseln C1 , C2 , . . . , Cm .
• zu B konstruieren wir einen Graphen G = (V , E ) wie folgt:
x1
x2
x3
x1
x2
x1
x2
• für jede Klausel Ci enthält G ein Dreieck, wobei die Knoten dieses
Dreiecks mit den Literalen in Ci bezeichnet werden
x3
• zwei Knoten werden durch eine Kante verbunden, wenn sie
• sei k = m (Anzahl der Klauseln)
• höchstens ein Knoten eines Dreiecks liegt in einer unabhängigen Menge
komplementären Literale entsprechen
• daher ist die Kardinalität einer unabhängigen Menge in G höchstens
m.
38 / 58
37 / 58
Komplexitätstheorie
Komplexitätstheorie
• sei G = (V , E ) ein Graph
• eine Teilmenge C ⊆ V von Knoten heißt Clique , falls je zwei Knoten
• wir behaupten: G enthält eine unabhängige Menge der Größe
m genau dann, wenn B erfüllbar ist
aus C durch eine Kante in E verbunden sind.
• sei CLIQUE
• sei dazu U eine unabhängige Menge der Größe m
• U enthält genau einen Knoten von jedem Dreieck und keine zwei
= {(G, k ) : G enthält eine Clique der Größe mindestens k }
• offensichtlich gilt:
Knoten, die komplementären Literalen entsprechen
• setzen wir die Literale, die den Knoten in U entsprechen, auf „wahr”,
Clique in G = (V , E ) ↔ unabhängige Menge in G 0 = (V , E 0 )
so erhalten wir eine Belegung, die B erfüllt
• wobei G 0 = (V , E 0 ) mit e ∈ E 0 ⇐⇒ e ∈
/ E der komplementäre
Graph ist
• ist umgekehrt x eine Wahrheitsbelegung, die B erfüllt
• dann hat mindestens eine Variable in jedem Dreieck den Wert „wahr”
• und keine zwei komplementären Literale sind „wahr”
• ist U eine Teilmenge von Knoten, die in jedem Dreieck genau eine
wahre Variable hat, so ist U unabhängig.
39 / 58
40 / 58
Komplexitätstheorie
Komplexitätstheorie
• das Mengenüberdeckungsproblem „MÜP” spielt eine wichtige Rolle bei
der Optimierung von Schaltkreisen
• wir haben MÜP damals als Optimierungsproblem definiert
• bereits eine einfache „Entscheidungsvariante“ von MÜP ist
• Damit folgt:
NP-vollständig:
MÜP
Korollar
CLIQUE ist NP-vollständig.
2
Instanz:
endliche Menge U = {u1 , u2 , . . . , us }, eine Teilmengenfamilie
M = {M1 , M2 , . . . , Mk } ⊆ 2U , Zahl t ≤ k
Frage:
∗
∗
gibt
S es eine Teilfamilie M ⊆ M mit |M | = t , so dass
M ∈M∗ M = U ?
41 / 58
42 / 58
Komplexitätstheorie
Komplexitätstheorie
• sei (X , C) eine 3-SAT-Instanz mit Variablenmenge
Satz
X = {x1 , x2 , . . . , xn } und Klauselmenge C = {K1 , K2 , . . . , Km }
MÜP ist NP-vollständig.
• wir konstruieren (in polynomieller Zeit) dazu eine MÜP-Instanz
(U, M, t ) wie folgt:
Beweis:
U = {1, 2, . . . , m, m + 1, m + 2, . . . , m + n}
(i) MÜP ist in NP:
• rate eine Teilfamilie M∗
• prüfe, ob M∗ eine Überdeckung liefert
(d.h. s = m + n)
• für jedes i ∈ {1, 2, . . . , n} seien
• prüfe, ob |M | = t
• die Überprüfungen können in polynomieller Zeit durchgeführt werden
∗
Ti
Ti 0
• also gilt MÜP ∈ NP
=
=
{j | xi kommt in Klausel Kj vor} ∪ {m + i },
{j | x i kommt in Klausel Kj vor} ∪ {m + i }.
• dann sei
(ii) MÜP ist in NP-schwierig:
M = {T1 , T10 , T2 , T20 , . . . , Tn , Tn0 }
• wir zeigen 3-SAT ≤p MÜP
(d.h. k = 2n)
• und sei t = n.
43 / 58
44 / 58
Komplexitätstheorie
U
Ti
Ti 0
M
t
=
=
=
=
=
Komplexitätstheorie
{1, 2, . . . , m, m + 1, m + 2, . . . , m + n}
{j | xi kommt in Klausel Kj vor} ∪ {m + i },
{j | x i kommt in Klausel Kj vor} ∪ {m + i }
{T1 , T10 , T2 , T20 , . . . , Tn , Tn0 }
n
• sei M∗ = {M1 , M2 , . . . , Mn } eine Lösung von MÜP
• dann wird für jedes 1 ≤ i ≤ n das Element m + i genau einmal
• sei (a1 , a2 , . . . , an ) ∈ {0, 1}n eine erfüllende Belegung der Variablen
(x1 , x2 , . . . , xn )
Mi =
=
=
=
=
=
(U, M, t ) hat eine Lösung =⇒ (X , C) erfüllbar:
(X , C) erfüllbar =⇒ (U, M, t ) hat eine Lösung:
• für i = 1, . . . , n wähle
U
Ti
Ti 0
M
t
{1, 2, . . . , m, m + 1, m + 2, . . . , m + n}
{j | xi kommt in Klausel Kj vor} ∪ {m + i },
{j | x i kommt in Klausel Kj vor} ∪ {m + i }
{T1 , T10 , T2 , T20 , . . . , Tn , Tn0 }
n
überdeckt

Ti ,
Ti 0 ,
• d.h. M∗ enthält genau eine der Mengen Ti , Ti0
• nach Umnumerieren gilt Mi ∈ {Ti , Ti0 } für i = 1, . . . , n
• für i ∈ {1, 2, . . . , n} setze
falls xi = 1
falls xi = 0
• nach Konstruktion gilt |M∗ | = n = t und
S

M ∈M∗ M = U
xi =
1
0
falls Mi = Ti
falls Mi = Ti0
• dann enthält jede Klausel ein Literal mit Wert 1 und (X , C) hat eine
erfüllende Belegung.
46 / 58
45 / 58
Komplexitätstheorie
Komplexitätstheorie
Wir erklären nun informell, wie man den Begriff der NP-Schwierigkeit auf
Optimierungsprobleme ausdehnen kann:
• wir nehmen an, dass zur Lösung des Optimieringsproblems ein „Orakel”
Beispiel
existiert
Das Problem MENGENÜBERDECKUNG ist NP-schwierig:
• diese Orakel liefert optimale Lösungen in konstanter Zeit
• mit Hilfe dieses Orakles entwirft man einen deterministischen
• zur Lösung von MÜP verwende MENGENÜBERDECKUNG mit
Einheitskosten c(Mi ) = 1 für 1 ≤ i ≤ n
polynomiellen Algorithmus für ein NP-vollständiges Problem,
• dieser Algorithmus verwendet das Orakel als ein Unterprogramm
• wenn man das Orakel durch einen polynomiellen Algorithmus realisiert
• damit könnte MÜP mit einem Aufruf von MENGENÜBERDECKUNG
gelöst werden
könnte,
• dann würde dies die polynomielle Lösbarkeit des NP-vollständigen
Problems implizieren
• und somit P = NP.
47 / 58
48 / 58
Komplexitätstheorie
Komplexitätstheorie
• die nächste Aussage gibt eine interessante Zusatzinformation über die
Komplexität des Wortproblems für formale Sprachen
• wir haben im letzten Kapitel gesehen, dass das Wortproblem
Wir erwähnen an dieser Stelle noch zwei weitere Entscheidungsprobleme,
die wir im Kapitel Rechnerarchitektur besprochen haben:
• für Typ-0-Sprachen nicht entscheidbar ist
• für Typ-1-Sprachen entscheidbar ist und
• EULER-KREIS liegt in P
• HAMILTON-KREIS ist NP-vollständig
• für Typ-2- und Typ-3-Sprachen in polynomieller Zeit entscheidbar
ist
• Details in der Spezialvorlesung über Theoretische Informatik
• der im Beweis für Typ-1-Sprachen angegebene Algorithmus hat eine
exponentielle Laufzeit
• wir zeigen jetzt, dass diese Laufzeit wohl auch nicht zu verbessern ist
(es sei denn, P = NP)
50 / 58
49 / 58
Komplexitätstheorie
Komplexitätstheorie
• wir ordnen M einen LBA M 0 zu
• dazu erweitern wir einen Input x um weitere Blanks
• d.h. wir identifizieren x1 , . . . , xn mit 2p(n) x1 x2 . . . xn 2p(n)−n
Satz
Das Wortproblem für Typ-1-Sprachen ist NP-schwierig.
• M 0 gestartet mit 2p(n) x1 x2 . . . xn 2p(n)−n verhält sich wie M gestartet
Beweisskizze:
mit x1 , . . . , xn
• wir haben bereits gezeigt: „LBA-akzeptiert ⇐⇒ Typ-1”
• sei L ∈ NP beliebig
• zu M 0 gibt es eine äquivalente Typ-1-Grammatik GM 0
• damit gilt:
• dann gibt es zu ist L eine NDTM M , die L in polynomieller Zeit
akzeptiert
x ∈ L(M ) ⇐⇒
• sei p das zugehörige Polynom
51 / 58
2p(n) x1 . . . xn 2p(n)−n ∈ L(M 0 )
⇐⇒
S ⇒∗ x, . . . , xn
⇐⇒
x ∈ L(GM 0 )
52 / 58
Komplexitätstheorie
x ∈ L(M ) ⇐⇒
Komplexitätstheorie
2p(n) x1 . . . xn 2p(n)−n ∈ L(M 0 )
⇐⇒
S ⇒∗ x, . . . , xn
⇐⇒
x ∈ L(GM 0 )
• es gibt derzeit über 3000 Probleme, deren NP-Vollständigkeit bzw.
NP-Schwierigkeit bewiesen wurde
• die Funktion, die x die Grammatik GM 0 sowie das Wort
• für keines konnte die Mitgliedschaft in P nachgewiesen werden
2p(n) x 2p(n)−1 zuordnet, ist in polynomieller Zeit berechenbar
• damit festigt sich die Überzeugung, dass P 6= NP gilt
• sie liefert eine polynomielle Reduktion von L auf das Wortproblem für
• und die Suche nach einem (deterministischen) polynomiellen
Typ-1-Sprachen
Algorithmus für ein NP-schwieriges Problem nicht sehr erfolgreich sein
wird
• es ist unbekannt, ob das Wortproblem für Typ-1-Sprachen in NP liegt
• eventuell ist es noch schwieriger als die NP-vollständigen Probleme
53 / 58
Komplexitätstheorie
54 / 58
Komplexitätstheorie
1. Szenario Der Algorithmenspezialist hat keine Ahnung von Komplexitätstheorie. Er strampelt sich wochenlang ab und muss dann so vor seinen Chef
treten:
• die erste „Bibel“ für die Theorie der NP-Vollständigkeit ist das Buch
Michael R. Garey and David S. Johnson,
Computers and Intractability – A Guide to the Theory of NP-Completeness,
W. H. Freeman, 1979.
• aus diesem Buch stammen Teile dieser Kurzdarstellung
• die Autoren beschreiben den praktischen Nutzen in einem Cartoon:
• ein Algorithmenspezialist in einer Firma erhält die Aufgabe, einen
„Ich kann keinen effizienten Algorithmus finden. Ich fürchte, ich bin einfach zu dumm.”
effizienten Algorithmus für ein NP-schwieriges Problem aus der Praxis
zu finden. (Die meisten Praxisprobleme sind NP-schwierig!)
Hier muss man wohl um seine Karriere fürchten.
55 / 58
56 / 58
Komplexitätstheorie
Komplexitätstheorie
3. Szenario
• er kennt die Komplexitätstheorie und hat während seines Studiums
2. Szenario Mit einer geringen Wahrscheinlichkeit (das gelingt fast nie) kann
er beweisen, dass das Problem nicht in sub-exponentieller Zeit lösbar ist, dann
hat er natürlich bessere Karten:
fleißig NP-Schwierigkeitsbeweise geübt
• es fällt ihm daher nicht schwer, die NP-Schwierigkeit des vorliegenden
Problems zu beweisen
• dann hat er einen fast so guten Auftritt wie im zweiten Szenario:
„Ich kann keinen effizienten Algorithmus finden, weil das unmöglich ist.”
„Ich kann keinen effizienten Algorithmus finden, aber diese berühmten Leute können
das auch nicht.”
Aber, wie gesagt, ein solcher Erfolg wäre schon sehr ungewöhnlich.
Zumindest wäre dem Chef dann klar, dass es nichts nützt, ihn zu feuern und
einen anderen Algorithmenspezialisten einzustellen.
57 / 58
58 / 58
Herunterladen