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