Proseminar Theoretische Informatik
Die Klasse NP
von Marlina Spanel
29.11.2011
1
Die Klasse NP
Gliederung
Gliederung
•
Problem des Handlungsreisenden
•
Die Klasse NP – Einleitung und Wiederholung
•
Sprachen
•
Nichtdeterministische Turingmaschinen
•
Verifizierbarkeit
•
Suchproblem-Definition
•
Sprachakzeptanz-Definition
•
Beweis der Äquivalenz der Definitionen
•
NTIME
•
Beispielprobleme aus NP
•
Beziehungen zu anderen Komplexitätsklassen
29.11.2011
2
Die Klasse NP
Das Problem des Handlungsreisenden
Das Problem des Handlungsreisenden
• Ein Händler soll durch die großen Städte eines Landes
reisen, um seine Waren anzubieten.
• Danach soll er wieder zu seinem Startpunkt reisen.
• Problem: Welches ist der kürzeste Weg?
29.11.2011
3
Die Klasse NP
Das Problem des Handlungsreisenden
Liegt das Problem des Handlungsreisenden in P?
• Bisher wurde kein deterministischer
Lösungsalgorithmus in Polynomialzeit entdeckt.
• Trotzdem ist es nicht auszuschließen, dass das Problem
dennoch in P liegt.
• → P-NP-Problem
29.11.2011
4
Die Klasse NP
Das Klasse NP - Einleitung
Das Klasse NP - Einleitung
• NP steht für nichtdeterministisch polynomielle Zeit
• Komplexitätsklasse, für die bekannt ist: P ⊆ NP
• Viele Probleme in NP lassen sich deterministisch
vermutlich nicht effizient lösen, das heißt mit
polynomiellen statt exponentiellen Algorithmen.
29.11.2011
5
Die Klasse NP
Das Klasse NP - Einleitung
Formale Sprachen
• Formale Sprache: Menge von Zeichenketten (genannt
Wörter), die sich aus einem bestimmten Zeichenvorrat
(genannt Alphabet) zusammensetzen und bestimmte
Eigenschaften erfüllen.
• Bsp.:
Σ = {0,1}
π€ ∈ Σ∗
π΄= π€ π€ >5
π΄ = {010101, 111100, … }
29.11.2011
6
Die Klasse NP
Das Klasse NP - Einleitung
Nichtdeterministische Turingmaschinen (NTM)
• Übergangsrelation statt Übergangsfunktion (DTM)
• Kein eindeutiger Lauf, sondern verschiedene mögliche
→ Akzeptiert, sofern ein akzeptierender Lauf
• Umwandlung polynomielle NTM → exponentielle DTM
• Können entscheiden, ob Wörter in einer Sprache A sind
→ man sagt dann, die NTM „entscheidet“ A
29.11.2011
7
Die Klasse NP
Das Klasse NP - Einleitung
Beispiel: Zusammengesetzte Zahlen
πΆπππππ ππ‘π = π π = ππ mit π, π ∈ β und π, π > 1
Eine NTM π, die diese Sprache entscheidet, wird auf einer
Zahl π§ ausgeführt:
1. π wählt nichtdeterministisch π‘ ∈ 2, 3, … ,
π§
2
2. π teilt die Eingabe π§ durch π‘. Ist das Ergebnis
ganzzahlig, akzeptiert π π§ ∈ πΆπππππ ππ‘π
29.11.2011
8
Die Klasse NP
Verifizierbarkeit
Verifizierbarkeit
29.11.2011
9
Die Klasse NP
Verifizierbarkeit
Hamiltonkreise
• Definition: Kreis in einem gerichteten Graphen, der
durch jeden Knoten genau einmal verläuft
a
c
b
29.11.2011
e
d
g
f
10
Die Klasse NP
Verifizierbarkeit
Hamiltonkreise
• Darstellung als Sprache:
π»πππππππ = πΊ πΊ enthält einen Hamiltonpfad
29.11.2011
11
Die Klasse NP
Verifizierbarkeit
Hamiltonkreise
• Beispiel einer deterministischen Lösung:
1. Alle Knoten des Graphen πΊ hintereinander auflisten.
2. Dann prüfen, ob πΊ zwischen jedem Knoten und dem
jeweils darauffolgenden eine Kante besitzt.
3. Mit allen denkbaren Reihenfolgen wiederholen: πΊ !
29.11.2011
12
Die Klasse NP
Verifizierbarkeit
Hamiltonkreise
• Ein gefundener Pfad kann in polynomieller Zeit auf
seine Richtigkeit überprüft bzw. verifiziert werden:
1. Die Knoten des gefundenen Pfades werden aufgelistet
und auf Vollständigkeit und Wiederholungen geprüft.
2. Sind alle jeweils genau einmal vorhanden, wird geprüft
ob zwischen jeweils zwei aufeinanderfolgenden Knoten
eine Kante liegt. Wenn ja πΊ ∈ π»πππππππ
29.11.2011
13
Die Klasse NP
Verifizierbarkeit
Zusammengesetzte Zahlen
πΆπππππ ππ‘π = π₯ π₯ = ππ mit π, π ∈ β und π, π > 1
n – Bit Zahl x
Laufzeit in Abhängigkeit von n
29.11.2011
14
Die Klasse NP
Verifizierbarkeit
Verifikator
• Ein Verifikator für eine Sprache π΄ ist ein Algorithmus π,
sodass:
π΄ = π€ π akzeptiert < π€, π > für irgendeinen String π
• π heißt dabei Zertifikat (auch Beweis, Zeuge)
• Laufzeit eines polynomiellen Verifikators: π π |π€|
29.11.2011
15
Die Klasse NP
Verifizierbarkeit
Verifikator
• Zertifikat für Wörter aus π»πππππππ :
• Der gefundene Hamiltonkreis selbst
• Zertifikat für Wörter aus πΆπππππ ππ‘π:
• Eine ganzzahlige Faktorisierung der zu
überprüfenden Zahl
29.11.2011
16
Die Klasse NP
Suchproblem-Definition
Suchproblem-Definition
NP ist die Klasse der Sprachen, die polynomielle
Verifikatoren besitzen.
π»πππππππ , πΆπππππ ππ‘π ∈ ππ
• Zusammenhang zu NTMs?
29.11.2011
17
Die Klasse NP
Suchproblem-Definition
Sprachakzeptanz-Definition
Eine Sprache liegt in NP, wenn sie von einer
nichtdeterministischen Turingmaschine entschieden wird.
• Äquivalenz der beiden Definitionen?
29.11.2011
18
Die Klasse NP
Beweis der Äquivalenz der Definitionen
Beweis der Äquivalenz der Definitionen
Zu zeigen:
πππ entscheidet π΄
29.11.2011
π verifiziert π₯ ∈ π΄ in π( π₯ )
19
Die Klasse NP
Beweis der Äquivalenz der Definitionen
:
Zu zeigen:
πππ entscheidet π΄
π verifiziert π₯ ∈ π΄ in π( π₯ )
πππ π entscheidet π΄ für jedes π ∈ π΄ gibt es eine
akzeptierende Rechnung π von π.
Damit kann π wie folgt simuliert werden:
29.11.2011
20
Die Klasse NP
Beweis der Äquivalenz der Definitionen
π=
Bei Eingabe von < π, π >
1. Simuliere π auf der Eingabe π und behandle dabei
jedes Symbol von π als Beschreibung der
nichtdeterministischen Entscheidung, die bei jedem
Schritt getroffen wird.
2. Wenn dieser durch π beschriebene Zweig von πs
Rechnung akzeptiert, akzeptiert auch π.
29.11.2011
21
Die Klasse NP
Beweis der Äquivalenz der Definitionen
:
Zu zeigen:
πππ entscheidet π΄
π verifiziert π₯ ∈ π΄ in π( π₯ )
Die πππ kann wie folgt konstruiert werden:
29.11.2011
22
Die Klasse NP
Beweis der Äquivalenz der Definitionen
πππ =
Bei Eingabe von π€ der Länge π:
1. Nichtdeterministische Wahl eines Strings π mit
π ≤ ππ
2. Führe π auf < π€, π > aus
3. Akzeptiert π, so akzeptiert die πππ.
29.11.2011
23
Die Klasse NP
NTIME
NTIME
πππΌππΈ π‘ π
= πΏ πΏ wird von einer NTM in π π‘ π entschieden
→ ππ =
29.11.2011
π
πππΌππΈ ππ
24
Die Klasse NP
Beispielprobleme in NP
Beispielprobleme in NP
ππ’ππ ππ‘ππ’π
= < π, π‘ > π = {π₯1 , … , π₯π } und für π¦1 , … , π¦π ⊆ π gilt:
π¦π = π‘
Bsp.: < 1,4,8,21 , 25 > ∈ ππ’ππ ππ‘ππ’π denn 4 + 21 = 25
29.11.2011
25
Die Klasse NP
Beispielprobleme in NP
Das Cliquenproblem
Clique: Ein (Unter-)Graph, in dem jeder Knoten mit jedem
anderen über eine Kante verbunden ist.
π-Clique: Clique bestehend aus π Knoten
πΆππππ’π = < πΊ, π > πΊ enthält eine π − Clique
29.11.2011
26
Die Klasse NP
Beziehungen zu anderen Komplexitätsklassen
Beziehungen zu anderen Komplexitätsklassen
• Bis heute nicht beweisbar: π = ππ
• Klasse der Entscheidungsprobleme, deren
Komplemente in ππ liegen: πΆπππ
• ππ und πΆπππ sind nicht disjunkt wegen: π ⊆ ππ ∩
πΆπππ
• Aus π = ππ würde demnach ππ = πΆπππ folgen
29.11.2011
27
Die Klasse NP
Beweis der Äquivalenz der Definitionen
• Insgesamt ist folgende Einordnung bekannt:
πΏ ⊆ ππΏ ⊆ πΏππΊπΆπΉπΏ ⊆ ππΆ ⊆ π ⊆ ππ
ππ ⊆ ππππ΄πΆπΈ = ππππ΄πΆπΈ ⊆ πΈππππΌππΈ ⊆ ππΈππππΌππΈ
• Dabei sind nur ganz wenige echte Inklusionen bekannt:
πΏππΊπΆπΉπΏ ⊂ π
π ⊂ πΈππππΌππΈ
29.11.2011
28
Die Klasse NP
Quellen
Quellen
•
Michael Sipser:
„Introduction to the Theory of Computation“ (2006)
•
Webseite der Princeton University:
„NP and NP Completeness“
•
Wikipedia.org:
NP (Komplexitätsklasse)
Nichtdeterministische Turingmaschine
29.11.2011
29
Die Klasse NP
Vielen Dank
29.11.2011
30