N P - Was ist das? Beispiele N P und coN P Komplexitätstheorie 2 - Die Klasse NP Arne Müller Proseminar Theoretische Informatik, 27.11.2007 Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Noch keine Lösung in P gefunden? Probleme, die irgendwie nicht so effizient lösbar sind Es gibt Probleme bei denen wurde bis heute kein deterministischer Algorithmus gefunden, der das Problem in polynomieller Zeit löst. Mögliche Ursachen: Es gibt einen Algorithmus, wir haben ihn noch nicht gefunden. Es gibt keinen Algorithmus, der das Problem effizient löst. Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Der Hamiltonpfad Ein Problem, das irgendwie nicht so effizient lösbar ist Ein Pfad p in einem gerichteten Graphen G heißt Hamiltonpfad genau dann, wenn p durch alle Knoten des Graphen verläuft. H AMPATH = {< G, s, t > |G ist ein gerichteter Graph mit einem Hamiltonpfad von s zu t} Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Laufzeitkomplexität des Hamiltonpfadproblems Schon einen Algorithmus in P gefunden? Lösung des Problems in exponentieller Laufzeit: durchprobieren aller Pfade von s nach t. findet man einen Pfad, der durch alle Knoten verläuft → akzeptieren sonst → nicht akzeptieren Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Wenigstens etwas geht “schnell” Es geht schon noch besser als exponentiell Hamiltonpfad von s nach t in Graph G schon gefunden? ⇒ Beweis für andere geht schnell. Eine Lösung von H AMPATH ist also in polynomieller Zeit verifizierbar. Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Polynomiell Verifizierbar nachprüfen in polynomieller Zeit Definition: Ein Prüfer für eine Sprache A ist ein Algorithmus V , mit A = {w|V akzeptiert < w, c > mit einer Zeichenkette c}. Messung der Laufzeit des Prüfers nur abhängig von der Länge von w Laufzeit eines polynomiellen Prüfers = O(p(|w|)). (p ist Polynom) Eine Sprache A heißt polynomiell verifizierbar, wenn ein solcher polynomieller Verifizieralgorithmus existiert. Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Die Klasse N P Achtung: N P 6= nicht polynomiell berechenbar Definition: N P ist die Klasse der Sprachen, die polynomiell verifizierbar sind. Satz: Eine Sprache A ist genau dann in N P, wenn eine nichtdeterministische Turing-Maschiene existiert, die in polynomieller Zeit A akzeptiert. Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P Die Klasse N P Achtung: N P 6= nicht polynomiell berechenbar Definition: N P ist die Klasse der Sprachen, die polynomiell verifizierbar sind. Satz: Eine Sprache A ist genau dann in N P, wenn eine nichtdeterministische Turing-Maschiene existiert, die in polynomieller Zeit A akzeptiert. Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P NTIME Eine Definition analog zu TIME bzw. DTIME N T IME (t(n)) = {L|L ist eine Sprache, die von einer nichtdeterministischen Turingmaschiene in O(t(n)) entschieden wird} Bemerkung: Analog zu P folgt NP = [ N T IME (n k ). k Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P NTIME Eine Definition analog zu TIME bzw. DTIME N T IME (t(n)) = {L|L ist eine Sprache, die von einer nichtdeterministischen Turingmaschiene in O(t(n)) entschieden wird} Bemerkung: Analog zu P folgt NP = [ N T IME (n k ). k Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest SAT - Das Erfüllbarkeitsproblem Gegeben: Ein boolscher Ausdruck z.B. (x1 ∨ x2 ∨ x 3 ) ∧ (x 1 ∨ x 2 ) ∧ (x 2 ∨ x3 ) ∧ (x 1 ∨ x3 ) Gibt es eine Belegung von x1 , x2 , x3 , sodass der Ausdruck wahr wird? Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest Graphisomorphie Gegeben: Zwei Graphen Kann durch Umbenennen der Knoten der eine Graph in den jeweils anderen überführt werden? Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest Gliederung 1 N P - Was ist das? Der Hamiltonpfad Polynomiell verifizierbar Die Klasse N P 2 Beispiele SAT Graphisomorphie Primzahltest 3 N P und coN P Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest auch der Primzahltest liegt in N P! P RIMES: Ist eine Zahl p ∈ N Primzahl? Satz von Kraitchik und Lehmer: p ist genau dann Primzahl, wenn ein a existiert mit ap−1 ≡ 1(mod p) ∧ a p−1 q 6≡ 1(mod p) ∀ Primzahlen q|(p − 1) Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P SAT Graphisomorphie Primzahltest auch der Primzahltest liegt in N P! P RIMES: Ist eine Zahl p ∈ N Primzahl? Satz von Kraitchik und Lehmer: p ist genau dann Primzahl, wenn ein a existiert mit ap−1 ≡ 1(mod p) ∧ a p−1 q 6≡ 1(mod p) ∀ Primzahlen q|(p − 1) Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P N P und coN P Was ist mit den Komplementen von Problemen in N P H AMPATH ∈ N P? ungewiss. SAT ∈ N P? ungewiss. P RIMES ∈ N P Ja. Aber: P RIMES ∈ P! Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P N P und coN P Was ist mit den Komplementen von Problemen in N P H AMPATH ∈ N P? ungewiss. SAT ∈ N P? ungewiss. P RIMES ∈ N P Ja. Aber: P RIMES ∈ P! Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P N P und coN P Was ist mit den Komplementen von Problemen in N P H AMPATH ∈ N P? ungewiss. SAT ∈ N P? ungewiss. P RIMES ∈ N P Ja. Aber: P RIMES ∈ P! Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P N P und coN P Was ist mit den Komplementen von Problemen in N P H AMPATH ∈ N P? ungewiss. SAT ∈ N P? ungewiss. P RIMES ∈ N P Ja. Aber: P RIMES ∈ P! Arne Müller Die Klasse NP N P - Was ist das? Beispiele N P und coN P für alle, die mal berühmt werden wollen Gilt also N P ∧ coN P = P ? oder gar N P = P ? Arne Müller Die Klasse NP