Die Klasse NP - inf.fu-berlin.de Klasse NP.pdf · Das Klasse NP - Einleitung 29.11.2011 5 • NP...

30
Die Klasse NP von Marlina Spanel 29.11.2011 1 Proseminar Theoretische Informatik

Transcript of Die Klasse NP - inf.fu-berlin.de Klasse NP.pdf · Das Klasse NP - Einleitung 29.11.2011 5 • NP...

Die Klasse NP

von Marlina Spanel

29.11.2011 1

Proseminar Theoretische Informatik

Gliederung

29.11.2011 2

• 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

Die Klasse NP Gliederung

Das Problem des Handlungsreisenden

29.11.2011 3

• 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?

Die Klasse NP Das Problem des Handlungsreisenden

Liegt das Problem des Handlungsreisenden in P?

29.11.2011 4

• 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

Die Klasse NP Das Problem des Handlungsreisenden

Das Klasse NP - Einleitung

29.11.2011 5

• 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.

Die Klasse NP Das Klasse NP - Einleitung

Formale Sprachen

29.11.2011 6

• 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,… }

Die Klasse NP Das Klasse NP - Einleitung

Nichtdeterministische Turingmaschinen (NTM)

29.11.2011 7

• Ü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

Die Klasse NP Das Klasse NP - Einleitung

Beispiel: Zusammengesetzte Zahlen

29.11.2011 8

𝐶𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑒 = 𝑛 𝑛 = 𝑝𝑞 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 𝑁 𝑧 ∈ 𝐶𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑒

Die Klasse NP Das Klasse NP - Einleitung

Verifizierbarkeit

29.11.2011 9

Die Klasse NP Verifizierbarkeit

Hamiltonkreise

29.11.2011 10

• Definition: Kreis in einem gerichteten Graphen, der durch jeden Knoten genau einmal verläuft

Die Klasse NP Verifizierbarkeit

a

b

g

f d

e c

Hamiltonkreise

29.11.2011 11

• Darstellung als Sprache: 𝐻𝑎𝑚𝑘𝑟𝑒𝑖𝑠 = 𝐺 𝐺 enthält einen Hamiltonpfad

Die Klasse NP Verifizierbarkeit

Hamiltonkreise

29.11.2011 12

• 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: 𝐺 !

Die Klasse NP Verifizierbarkeit

Hamiltonkreise

29.11.2011 13

• 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

𝐺 ∈ 𝐻𝑎𝑚𝑘𝑟𝑒𝑖𝑠

Die Klasse NP Verifizierbarkeit

Zusammengesetzte Zahlen

29.11.2011 14

𝐶𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑒 = 𝑥 𝑥 = 𝑝𝑞 mit 𝑝, 𝑞 ∈ ℕ und 𝑝, 𝑞 > 1 n – Bit Zahl x Laufzeit in Abhängigkeit von n

Die Klasse NP Verifizierbarkeit

Verifikator

29.11.2011 15

Die Klasse NP Verifizierbarkeit

• 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: 𝑂 𝑝 |𝑤|

Verifikator

29.11.2011 16

Die Klasse NP Verifizierbarkeit

• Zertifikat für Wörter aus 𝐻𝑎𝑚𝑘𝑟𝑒𝑖𝑠:

• Der gefundene Hamiltonkreis selbst

• Zertifikat für Wörter aus 𝐶𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑒:

• Eine ganzzahlige Faktorisierung der zu überprüfenden Zahl

𝐻𝑎𝑚𝑘𝑟𝑒𝑖𝑠, 𝐶𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑒 ∈ 𝑁𝑃 • Zusammenhang zu NTMs?

Suchproblem-Definition

29.11.2011 17

NP ist die Klasse der Sprachen, die polynomielle Verifikatoren besitzen.

Die Klasse NP Suchproblem-Definition

• Äquivalenz der beiden Definitionen?

Sprachakzeptanz-Definition

29.11.2011 18

Eine Sprache liegt in NP, wenn sie von einer nichtdeterministischen Turingmaschine entschieden wird.

Die Klasse NP Suchproblem-Definition

Zu zeigen: 𝑁𝑇𝑀 entscheidet 𝐴

𝑉 verifiziert 𝑥 ∈ 𝐴 in 𝑝( 𝑥 )

Beweis der Äquivalenz der Definitionen

29.11.2011 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 Beweis der Äquivalenz der Definitionen

→ 𝑁𝑃 = 𝑁𝑇𝐼𝑀𝐸 𝑛𝑘𝑘

NTIME

29.11.2011 24

𝑁𝑇𝐼𝑀𝐸 𝑡 𝑛

= 𝐿 𝐿 wird von einer NTM in 𝑂 𝑡 𝑛 entschieden

Die Klasse NP NTIME

𝑆𝑢𝑏𝑠𝑒𝑡𝑆𝑢𝑚

= < 𝑆, 𝑡 > 𝑆 = {𝑥1, … , 𝑥𝑛} und für 𝑦1, … , 𝑦𝑘 ⊆ 𝑆 gilt: 𝑦𝑖 = 𝑡

Bsp.: < 1,4,8,21 , 25 > ∈ 𝑆𝑢𝑏𝑠𝑒𝑡𝑆𝑢𝑚 denn 4 + 21 = 25

Beispielprobleme in NP

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 Beispielprobleme in NP

• Bis heute nicht beweisbar: 𝑃 = 𝑁𝑃

• Klasse der Entscheidungsprobleme, deren Komplemente in 𝑁𝑃 liegen: 𝐶𝑜𝑁𝑃

• 𝑁𝑃 und 𝐶𝑜𝑁𝑃 sind nicht disjunkt wegen: 𝑃 ⊆ 𝑁𝑃 ∩𝐶𝑜𝑁𝑃

• Aus 𝑃 = 𝑁𝑃 würde demnach 𝑁𝑃 = 𝐶𝑜𝑁𝑃 folgen

Beziehungen zu anderen Komplexitätsklassen

29.11.2011 27

Die Klasse NP Beziehungen zu anderen Komplexitätsklassen

• Insgesamt ist folgende Einordnung bekannt: 𝐿 ⊆ 𝑁𝐿 ⊆ 𝐿𝑂𝐺𝐶𝐹𝐿 ⊆ 𝑁𝐶 ⊆ 𝑃 ⊆ 𝑁𝑃 𝑁𝑃 ⊆ 𝑃𝑆𝑃𝐴𝐶𝐸 = 𝑁𝑆𝑃𝐴𝐶𝐸 ⊆ 𝐸𝑋𝑃𝑇𝐼𝑀𝐸 ⊆ 𝑁𝐸𝑋𝑃𝑇𝐼𝑀𝐸 • Dabei sind nur ganz wenige echte Inklusionen bekannt: 𝐿𝑂𝐺𝐶𝐹𝐿 ⊂ 𝑃 𝑃 ⊂ 𝐸𝑋𝑃𝑇𝐼𝑀𝐸

29.11.2011 28

Die Klasse NP Beweis der Äquivalenz der Definitionen

• Michael Sipser:

„Introduction to the Theory of Computation“ (2006)

• Webseite der Princeton University:

„NP and NP Completeness“

• Wikipedia.org:

NP (Komplexitätsklasse) Nichtdeterministische Turingmaschine

Quellen

29.11.2011 29

Die Klasse NP Quellen

Vielen Dank

29.11.2011 30

Die Klasse NP