Kapitel 4: Komplexitätstheorie Das P=NP? Problem Einordnung

Werbung
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Einordnung
algorithmisch lösbare Probleme
Probleme, von denen man
„nichts genaues“ weiß
(/* Komplexitätsklasse NP */)
effizient lösbare Probleme
(/* Komplexitätsklasse P */)
4/2, Folie 1
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem (mit Blick auf Suchprobleme)
... es sei R ⊆ { 0,1 }* × { 0,1 }* eine polynomiell beschränkte Relation
... beim zu R gehörenden Suchproblem geht es darum, zu jedem x ∈ X
eine Lösung y ∈ R(x) zu finden (/* falls es eine solche gibt */)
 Suchprobleme mit effizient verifizierbaren Lösungskandidaten
Das zu R gehörende Suchproblem hat effizient verifizierbare Lösungskandidaten, wenn es einen Algorithmus V und ein Polynom p(.,.) gibt, so daß
für alle x, y ∈ { 0,1 }* gilt:
•
•
•
4/2, Folie 2
wenn y ∈ R(x) gilt, so gibt V die Zahl 1 aus und stoppt
wenn y ∉ R(x) gilt, so gibt V die Zahl 0 aus und stoppt
die Rechenzeit von V bei Eingabe x, y ist kleiner gleich p(|x|)
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem (mit Blick auf Suchprobleme)
Suchprobleme mit effizient
verifizierbaren Lösungskandidaten
effizient lösbare Suchprobleme
... die Frage, ob P = NP gilt, ist – mit Blick auf Suchprobleme – äquivalent zur
Frage, ob es schwieriger ist eine Lösung zu finden oder zu überprüfen, ob ein
Lösungskandidat eine Lösung ist
4/2, Folie 3
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
... die Komplexitätsklassen P und NP umfassen traditionell alle algorithmisch
lösbaren Entscheidungsprobleme, für die es Lösungsalgorithmen gibt, die
bestimmten Anforderungen an die von ihnen benötigte Rechenzeit genügen
... dabei steht P für polynomielle Rechenzeit mit Blick auf deterministische
Turing-Maschinen und NP für polynomielle Rechenzeit mit Blick auf nichtdeteministische Turing-Maschinen
 Entscheidungsprobleme (allgemein)
Ein Paar (S+,S-) mit S+,S- ⊆ { 0,1 }* und S+ ∩ S- = ∅ heißt Entscheidungsproblem.
4/2, Folie 4
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Effizient lösbare Entscheidungsprobleme
Ein Entscheidungsproblem (S+,S-) mit S+,S- ⊆ { 0,1 }* heißt effizient lösbar,
wenn es einen Algorithmus A und ein Polynom p(.) gibt, so daß für alle
x ∈ S+ ∪ S- gilt:
•
•
•
falls x ∈ S+ gilt, so gibt A die Zahl 1 aus und stoppt
falls x ∈ S- gilt, so gibt A die Zahl 0 aus und stoppt
die Rechenzeit von A bei Eingabe x ist kleiner gleich p(|x|)
... A kann man auf einer deterministischen Turing-Maschine
implementieren, die nur polynomielle Rechenzeit benötigt
 Komplexitätsklasse P
Die Klasse P enthält alle Entscheidungsprobleme (S+,S-) mit S+,S- ⊆ { 0,1 }*,
die effizient lösbar sind.
4/2, Folie 5
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 ... auf dem Weg zur Definition der Klasse NP
Ein Algorithmus V heißt Beweissystem für das Entscheidungsproblem (S+,S-)
mit S+,S- ⊆ { 0,1 }*, falls für alle x ∈ S+ ∪ S- und alle y ∈ { 0,1 }* gilt:
•
•
•
bei Eingabe x, y gibt V eine der Zahlen 0 oder 1 aus und stoppt
wenn x ∈ S- gilt, so gibt V die Zahl 0 aus und stoppt
(/* Korrektheit des Beweissystems V */)
wenn x ∈ S+ gilt, so gibt es ein y‘∈ { 0,1 }*, so daß V bei Eingabe
von x, y‘ die Zahl 1 ausgibt und stoppt
(/* Vollständigkeit des Beweissystems V */)
... y‘ ein Beweis (/* eine Zeuge */) dafür, daß x ∈ S+ gilt
4/2, Folie 6
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Beispiele
Nicht-Primzahl-Problem
•
•
gegeben:
gefragt:
natürliche Zahlen x > 1
gibt es eine Zahl y mit 1 < y < x, die x teilt
Erfüllbarkeits-Problem
•
•
4/2, Folie 7
gegeben:
gefragt:
© 2008 Prof. Steffen Lange
eine aussagenlogischen Formel F
gibt es eine Belegung β der Variablen in F,
die die Formel erfüllt (/* wahr macht */)
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Nicht-Primzahl-Problem
•
•
•
S sei die Menge aller natürlichen Zahlen größer oder gleich 2
S+ sei die Teilmenge aller Nicht-Primzahlen
S- sei die Teilmenge aller Primzahlen
•
(S+,S-) sei das interessierende Entscheidungsproblem
•
V sei ein Algorithmus, der bei Eingabe zweier Zahlen x, y ∈ S mit y < x
die Zahl 1 ausgibt, wenn die Zahl y die Zahl x teilt, und sonst die Zahl 0
ausgibt
... offenbar ist V ein Beweissystem für (S+,S-)
... wenn die Zahl y die Zahl x teilt, ist y ein Zeuge dafür,
daß x eine Nicht-Primzahl ist
4/2, Folie 8
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Erfüllbarkeits-Problem
•
•
•
S sei die Menge aller aussagenlogischen Formeln
S+ sei die Menge aller erfüllbaren aussagenlogischen Formeln
S- sei die Menge aller unerfüllbaren aussagenlogischen Formeln
•
(S+,S-) sei das interessierende Entscheidungsproblem
•
V sei ein Algorithmus, der bei Eingabe einer Formel F ∈ S und einer
Belegung β der Variablen in F die Zahl 1 ausgibt, wenn die Belegung β
die Formel F erfüllt, und sonst die Zahl 0 ausgibt
... offenbar ist V ein Beweissystem für (S+,S-)
... wenn β die Formel F erfüllt, so ist β eine Zeuge dafür,
daß F erfüllbar ist
4/2, Folie 9
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Entscheidungsprobleme mit effizienten Beweissystemen
Ein Algorithmus V heißt effizientes Beweissystem für das Entscheidungsproblem (S+,S-) mit S+,S- ⊆ { 0,1 }*, falls V ein Beweissystem für das
Entscheidungsproblem (S+,S-) ist und es Polynome p(.) und q(.) gibt, so
daß für alle x ∈ S+ ∪ S- und alle y ∈ { 0,1 }* gilt:
•
•
wenn x ∈ S+ gilt, so gibt es ein y‘∈ { 0,1 }* mit |y‘| ≤ q(|x|), so daß
V bei Eingabe von x, y‘ die Zahl 1 ausgibt und stoppt
die Rechenzeit von V bei Eingabe x, y ist kleiner gleich p(|x|)
... y‘ ein hinreichend kurzer Beweis (/* eine Zeuge */) dafür, daß x ∈ S+ gilt
... ob ein y ein Beweis (/* eine Zeuge */) dafür ist, daß x ∈ S+ gilt, kann
effizient überprüft werden
... V kann man auf einer deterministischen Turing-Maschine implementieren,
die nur polynomielle Rechenzeit benötigt
4/2, Folie 10
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Nicht-Primzahl-Problem
•
•
•
S sei die Menge aller natürlichen Zahlen größer oder gleich 2
S+ sei die Teilmenge aller Nicht-Primzahlen
S- sei die Teilmenge aller Primzahlen
•
(S+,S-) sei das interessierende Entscheidungsproblem
•
V sei ein Algorithmus, der bei Eingabe zweier Zahlen x, y ∈ S mit y < x
die Zahl 1 ausgibt, wenn die Zahl y die Zahl x teilt, und sonst die Zahl 0
ausgibt
... V ist ein polynomieller Algorithmus
... wenn die Zahl y die Zahl x teilt, muß |y| ≤ |x| gelten
4/2, Folie 11
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Erfüllbarkeits-Problem
•
•
•
S sei die Menge aller aussagenlogischen Formeln
S+ sei die Menge aller erfüllbaren aussagenlogischen Formeln
S- sei die Menge aller unerfüllbaren aussagenlogischen Formeln
•
(S+,S-) sei das interessierende Entscheidungsproblem
•
V sei ein Algorithmus, der bei Eingabe einer Formel F ∈ S und einer
Belegung β der Variablen in F die Zahl 1 ausgibt, wenn die Belegung β
die Formel F erfüllt, und sonst die Zahl 0 ausgibt
... V ist ein polynomieller Algorithmus
... für jede Belegung β gilt: |β| ≤ |F|
4/2, Folie 12
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Komplexitätsklasse NP
Die Klasse NP enthält alle Entscheidungsprobleme (S+,S-) mit S+,S- ⊆ { 0,1 }*,
für die es ein effizientes Beweissystem V für (S+,S-) gibt.
 Beziehung zu Nicht-deterministischen Turing-Maschinen
•
•
4/2, Folie 13
bei Eingabe von x ∈ S+ ∪ S- wird zunächst ein y ∈ { 0,1 }* mit |y| ≤ q(x)
geraten
danach wird auf der Eingabe x, y eine deterministische Turing-Maschine
gestartet, die V implementiert
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
effizient lösbare
Entscheidungsprobleme
(/* die Komplexitätsklasse P */)
Entscheidungsprobleme mit effizienten
Beweissystemen
(/* die Komplexitätsklasse NP */)
... die Frage, ob P = NP gilt, ist äquivalent zur Frage, ob es schwieriger ist einen
Beweis zu finden oder zu überprüfen, ob ein Beweis korrekt ist
4/2, Folie 14
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Kapitel 4: Komplexitätstheorie
Das P=NP? Problem
 Vermutung: Es gilt P ≠ NP.
... wer diese Vermutung bestätigen oder widerlegen kann, ist ein gemachter Mann
 unterstützende Argumente
... es ist intuitiv klar, daß es schwieriger ist, eine Lösung zu finden als zu überprüfen,
ob ein Lösungskandidat eine Lösung ist
... es ist intuitiv klar, daß es schwieriger ist, einen Beweis zu finden als zu überprüfen,
ob ein Beweis korrekt ist
... es gibt tausende Probleme (/* Such- bzw. Entscheidungsprobleme */), von denen
man weiß, daß sie zur Komplexitätsklasse NP gehören und für die man trotz heftigen
Bemühens bisher keinen effizienten Lösungsalgorithmus gefunden hat
4/2, Folie 15
© 2008 Prof. Steffen Lange
-
HDa/FbI
-
Grundlagen der Theoretischen Informatik
Herunterladen