Die Klasse NP

Werbung
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
Herunterladen