Rucksackproblem und Verifizierbarkeit

Ähnliche Dokumente
Polynomielle Verifizierer und NP

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Laufzeit einer DTM, Klasse DTIME

Theoretische Informatik 1

Einige Grundlagen der Komplexitätstheorie

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Johannes Blömer. Skript zur Vorlesung. Komplexitätstheorie. Universität Paderborn

Willkommen zur Vorlesung Komplexitätstheorie

NP-vollständige Probleme

Einführung in Algorithmen und Komplexität

Konjunktive Normalform

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Übungsblatt 4. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Die Klassen P und NP. Formale Grundlagen der Informatik 1 Kapitel 11. Die Klassen P und NP. Die Klasse P

Theoretische Grundlagen der Informatik

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Theoretische Grundlagen der Informatik

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

5.2 Endliche Automaten

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

abgeschlossen unter,,,, R,

VL-13: Polynomielle Reduktionen. (Berechenbarkeit und Komplexität, WS 2018) Gerhard Woeginger

Übung Theoretische Grundlagen

Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin

Theoretische Grundlagen der Informatik

NP-Vollständigkeit des Erfüllbarkeitsproblems

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

2.4 Kontextsensitive und Typ 0-Sprachen

Willkommen zur Vorlesung Komplexitätstheorie

Theorie der Informatik. Theorie der Informatik P und NP Polynomielle Reduktionen NP-Härte und NP-Vollständigkeit

Die Klasse NP und die polynomielle Reduktion

Berechenbarkeitstheorie 19. Vorlesung

Reduktionen. Formalisierung von Sprache A ist nicht schwerer als Sprache B.

Theoretische Informatik 1

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Theoretische Grundlagen der Informatik

Weitere universelle Berechnungsmodelle

Lösungen zur Ergänzung 12

Härte von Hamilton-Kreis und TSP Überblick über die Komplexitätslandschaft

subexponentielle Algorithmen (d.h. Laufzeiten wie z. B. 2 n oder

Reelle Komplexität - Grundlagen II

Kochrezept für NP-Vollständigkeitsbeweise

Klassische Informationstheorie: Berechenbarkeit und Komplexität

Rekursiv aufzählbare Sprachen

Vorlesung VL-13. P versus NP. Wdh.: LOOP versus WHILE. Korrektur: Primitiv rekursive Funktionen (2) Wdh.: Kostenmodelle der RAM

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 12

Die Komplexitätsklassen P und NP

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Probleme aus NP und die polynomielle Reduktion

NP-vollständige Probleme. Michael Budahn - Theoretische Informatik 1

Satz 227 3SAT ist N P-vollständig. Info IV 2 N P-Vollständigkeit 375/388 c Ernst W. Mayr

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012

Diskrete Mathematik II

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Einführung in die Informatik 2

Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

Einführung in die Theoretische Informatik

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

Algebraische Graphentheorie und Komplexitätstheorie Dr. Markus Severitt L A TEX-Mitschrift von Christina und Jan

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Theoretische Grundlagen der Informatik. Vorlesung am 27. November INSTITUT FÜR THEORETISCHE INFORMATIK

THEORETISCHE INFORMATIK UND LOGIK

Übungsblatt Nr. 5. Lösungsvorschlag

Präsenzübung Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität: Erläuterungen zur Turingmaschine

NP Vollständigkeit. Patryk Mazur

Transkript:

Rucksackproblem und Verifizierbarkeit Gegeben: n Gegenstände mit Gewichten G={g 1,g 2,,g n } und Werten W={w 1,w 2,,w n } sowie zulässiges Gesamtgewicht g. Gesucht: Teilmenge S {1,,n} mit i i S unter der Bedingung g g. wi i S ist maximal WS 2018/19 Klasse NP 1

Rucksackproblem und Verifizierbarkeit Gegeben: n Gegenstände mit Gewichten G={g 1,g 2,,g n } und Werten W={w 1,w 2,,w n } sowie zulässiges Gesamtgewicht g. Gesucht: Teilmenge S {1,,n} mit i i S unter der Bedingung g g. wi i S ist maximal RS ent :={ G,W,g,w es existiert ein S {1,,n} mit Σ i S g i g und Σ i S w i w } WS 2018/19 Klasse NP 2

Rucksackproblem und Verifizierbarkeit Liegt RS ent in P? Algorithmus mit Laufzeit Θ(n w) aus DuA ist kein polynomieller Algorithmus! Kennen weder Polynomialzeit DTM für RS ent noch können wir beweisen, dass eine solche nicht existieren kann. Lösungen für RS ent sind effizient überprüfbar. RS ent teilt diese Eigenschaften mit vielen anderen Problemen. WS 2018/19 Klasse NP 3

Verifizierer Definition 3.7 Sei L eine Sprache. DTM V heißt Verifizierer für L falls L = { w es gibt ein c, so dass V w,c akzeptiert } c: Zertifikat, Zeuge V heißt polynomieller Verifizierer, falls ein k N existiert mit L = { w es gibt ein c mit c w k, so dass V w,c akzeptiert } und die Laufzeit von V bei Eingabe w,c polynomiell in w ist. L heißt dann polynomiell verifizierbar. WS 2018/19 Klasse NP 4

Verifizierer für RS ent V 1 bei Eingabe G,W,g,w,S : 1. Teste, ob S die Kodierung einer Teilmenge von {1,,n} ist. Falls nicht, lehne ab. 2. Teste, ob Σ i S g i g und Σ i S w i w. Falls ja, akzeptiere, sonst lehne ab. WS 2018/19 Klasse NP 5

Das Problem des Handlungsreisenden TSP ent := {,L es gibt eine Rundreise durch alle n Städte der Länge L } WS 2018/19 Klasse NP 6

Verifizierer für TSP ent V 1 bei Eingabe,L,π : 1. Teste, ob π die Kodierung einer Permutation der Zahlen von 1 bis n. Falls nicht, lehne ab. n-1 2. Teste, ob Σ i=1 d π(i)π(i+1) + d π(n)π(1) L. Falls ja, akzeptiere, sonst lehne ab. WS 2018/19 Klasse NP 7

Element-Non-Distinctness L := { #w 1 # #w n w i {0,1}*, w i = w j für ein i j } Beispiele: #011#11#01#10#01 L #001#111#10#11 L WS 2018/19 Klasse NP 8

Klasse NP Definition 3.8 NP ist die Klasse der Sprachen, die polynomiell verifizierbar sind. RS ent, TSP ent NP. Satz 3.9 P NP. Offenes Problem Ist P = NP oder gilt P NP? WS 2018/19 Klasse NP 9

Nichtdeterministische Turingmaschinen Liefern alternative Beschreibung von NP. Erlaubt uns, die schwierigsten Probleme in NP zu identifizieren NP-Vollständigkeit. Geben der Turingmaschine die Möglichkeit, einen von mehreren möglichen Rechenschritten auszuwählen Nichtdeterminismus. Realisierung: δ(q, a) ist Menge von Tripeln der Form (q,b,d). NTMs nicht realistisch, aber sehr nützlich für Verständnis der Komplexität von Problemen. WS 2018/19 Klasse NP 10

Nichtdeterministische Turingmaschinen Definition 3.10 Eine nichtdeterministische 1-Band Turingmaschine (NTM) ist ein 4-Tupel (Q,Σ,Γ,δ), wobei Q,Σ,Γ endliche Mengen sind. Weiter gilt 1. Q ist die Zustandsmenge mit q 0,q accept,q reject Q, q accept q reject. 2. Σ ist das Eingabealphabet,, Σ. 3. Γ ist das Bandalphabet, Σ Γ,, Γ. 4. δ: Q\{q accept,q reject } Γ (Q Γ {L,R}) ist die Übergangsfunktion. WS 2018/19 Klasse NP 11

Nichtdeterministische Turingmaschinen (S) := Menge aller Teilmengen von S, Potenzmenge. Für alle q Q, a Γ, a : (p,b,d) δ(q, a) b. Für alle q Q: (p,a,r) δ(q, ) a =. Rechenschritt = einmalige Anwendung der Übergangsfunktion. WS 2018/19 Klasse NP 12

Beispiel einer NTM N 1 Q = {q 0,q 1,q 2,q 3 }, q accept = q 2, q reject = q 3. Σ = {0,1}, G={0,1,, } δ ist definiert durch die folgende Tabelle: δ 0 1 q 0 {(q 0,0,R),(q 3,0,R)} {(q 1,1,R)} {(q 0,,R)} {(q 3,,R)} q 1 {(q 0,0,R),(q 3,0,R)} {(q 2,1,L)} {(q 3,,R)} {(q 3,,R)} WS 2018/19 Klasse NP 13

NTM - Berechnung NTM N = (Q,Σ,Γ,δ). Berechnung bei Eingabe w Σ*: Startet im Zustand q 0, mit Bandinhalt w und Lesekopf auf. wendet in jedem Rechenschritt Übergangsfunktion δ an, bis Zustand q accept oder q reject erreicht wird, falls einer dieser Zustände je erreicht wird, sonst Endlosschleife. WS 2018/19 Klasse NP 14

Turingmaschine - Konfigurationen NTM N = (Q,Σ,Γ,δ), α,β Γ*, q Q. N ist in Konfiguration K = αqβ, wenn gilt: auf dem Band der DTM N steht αβ, gefolgt von Blanks, N befindet sich im Zustand q, der Lesekopf von N steht auf dem ersten Symbol von β. WS 2018/19 Klasse NP 15

NTM - Rechenschritt NTM N in Konfiguration K = αqaβ. δ(q, a) = { (q 1,b 1,D 1 ),,(q l,b l,d l ) }. N kann jeden durch ein Triple (q i,b i,d i ) δ(q, a) beschriebenen Rechenschritt ausführen. WS 2018/19 Klasse NP 16

Berechnungen und Konfigurationen Eingabe für N ist w, dann heißt s w Startkonfiguration. K=αqβ heißt akzeptierende Konfiguration, falls q = q accept. K=αqβ heißt ablehnende Konfiguration, falls q = q reject. Berechnung von N bei Eingabe w führt zu Folge K 1,K 2, von Konfigurationen. Es gibt mehrere Berechnungen von N bei Eingabe w, abhängig von den ausgewählten Rechenschritten. Darstellung möglicher Berechnungen im Berechnungsbaum. WS 2018/19 Klasse NP 17

Beispiel einer NTM N 1 Q = {q 0,q 1,q 2,q 3 }, q accept = q 2, q reject = q 3. Σ = {0,1}, Γ = {0,1,, } δ ist definiert durch die folgende Tabelle: δ 0 1 q 0 { (q 0,0,R),(q 3,0,R) } {(q 1,1,R)} {(q 0,,R)} {(q 3,,R)} q 1 { (q 0,0,R),(q 3,0,R) } {(q 2,1,L)} {(q 3,,R)} {(q 3,,R)} WS 2018/19 Klasse NP 18

Berechnungsbaum der NTM N 1 bei w = 011 q 0 011 q 0 011 0q 3 11 0q 0 11 δ 0 1 q 0 {(q 0,0,R),(q 3,0,R)} {(q 1,1,R)} {(q 0,,R)} {(q 3,,R)} q 1 {(q 0,0,R),(q 3,0,R)} {(q 2,1,L)} {(q 3,,R)} {(q 3,,R)} 01q 1 1 0q 2 11 WS 2018/19 Klasse NP 19

Berechnungsbaum einer NTM ablehnender Berechnungspfad K Startkonfiguration akzeptierender Berechnungspfad K K K r ablehnende Konfiguration K a akzeptierende Konfiguration WS 2018/19 Klasse NP 20

Akzeptieren und Entscheiden Definition 3.11 Sei N = (Q,Σ,Γ,δ) eine NTM. Die NTM akzeptiert w Σ*, wenn es mindestens eine akzeptierende Berechnung von N bei Eingabe w gibt. WS 2018/19 Klasse NP 21

Akzeptieren und Entscheiden NTM N hält bei Eingabe w Σ*, wenn alle Berechnungspfade von N bei Eingabe w endlich sind. Definition 3.12 Die von einer NTM N = (Q,Σ,Γ,δ) akzeptierte Sprache L(N) ist definiert als L(N) := { w Σ* N akzeptiert w }. NTM N akzeptiert die Sprache L, falls L = L(N). N entscheidet die von ihr akzeptierte Sprache L(N), wenn N immer hält. WS 2018/19 Klasse NP 22

Beispiel einer NTM N 1 Q = {q 0,q 1,q 2,q 3 }, q accept = q 2, q reject = q 3 Σ = {0,1}, Γ = {0,1,, } δ ist definiert durch die folgende Tabelle: δ 0 1 q 0 { (q 0,0,R),(q 3,0,R) } {(q 1,1,R)} {(q 0,,R)} {(q 3,,R)} q 1 { (q 0,0,R),(q 3,0,R) } {(q 2,1,L)} {(q 3,,R)} {(q 3,,R)} L(N 1 ) = { w {0,1}* w enthält die Teilfolge 11 } WS 2018/19 Klasse NP 23

NTM für RS ent RS ent :={ G,W,g,w es existiert ein S {1,,n} mit Σ i S g i g und Σ i S w i w } N bei Eingabe G,W,g,w : 1. Erzeuge nichtdeterministisch ein Wort c {0,1} n. c kodiert eine Teilmenge S {1,,n}. 2. Teste, ob Σ i S g i g und Σ i S w i w. Falls ja, akzeptiere, sonst lehne ab. WS 2018/19 Klasse NP 24

Laufzeit einer NTM Definition 3.13 NTM N (Q,Σ,Γ,δ) halte immer. Für w Σ* ist T N (w) die maximale Anzahl von Rechenschritten in einer Berechnung von N bei Eingabe w. Für n N ist T N (n) := max {T N (w) w Σ n }. T N : N N heißt Zeitkomplexität oder Laufzeit der NTM N. N hat Laufzeit O(f(n)), wenn T N (n) = O(f(n)). WS 2018/19 Klasse NP 25

Nichtdeterministische Zeitkomplexität Definition 3.14 Sei t : N N eine monoton wachsende Funktion. Die Klasse NTIME(t(n)) ist dann definiert als NTIME(t(n)) := L L ist eine Sprache, die von einer NTM mit Laufzeit O(t(n)) entschieden wird Satz 3.15 NP ist die Klasse der Sprachen, die von einer nicht-deterministischen Turingmaschine mit polynomieller Laufzeit entschieden werden, d.h. NP = U NTIME(n k ). k N WS 2018/19 Klasse NP 26

Vom Verifizierer zur NTM Sei L NP. Dann gibt es ein k N und einen polynomiellen Verifizierer V mit L = { w es gibt ein c mit c w k, so dass V w,c akz.} N für L bei Eingabe w der Länge n: 1. Erzeuge nichtdeterministisch ein Wort c der Länge höchstens n k (für das k oben). 2. Simuliere V mit Eingabe w,c. 3. Wenn V die Eingabe w,c akzeptiert, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 27

Einschränkung auf δ(q, a) 2 δ(q, a) (q 1,b 1,D 1 ) (q 2,b 2,D 2 ) (q 3,b 3,D 3 ) Ersetzen einen Schritt durch O(log( δ(q, a) ))=O(1) viele Schritte. Asymptotische Laufzeit bleibt unverändert. WS 2018/19 Klasse NP 28

Einschränkung auf δ(q, a) 2 δ(q, a) (q l,, ) (q r,, ) (q 1,b 1,D 1 ) (q 2,b 2,D 2 ) (q 3,b 3,D 3 ) Ersetzen einen Schritt durch O(log( δ(q, a) ))=O(1) viele Schritte. Asymptotische Laufzeit bleibt unverändert. WS 2018/19 Klasse NP 29

Von NTM zu Verifizierer Sei L U NTIME(n k ). Dann existiert NTM N, die L in poly k N Zeit entscheidet. V bei Eingabe w,c : 1. Interpretiere c {0,1}* als Kodierung eines möglichen Berechnungspfads von N bei Eingabe w. 2. Simuliere die Berechnung von N, die diesem Pfad entspricht. 3. Ist diese Berechnung von N akzeptierend, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 30

Boolesche Variablen, Operatoren, Formeln Boolesche Variablen x können Werte wahr oder falsch annehmen. wahr 1, falsch 0. Boolesche Operatoren: und ; oder ; nicht. Boolesche Formel: Ausdruck bestehend aus Booleschen Variablen und Operatoren, korrekt formatiert. Beispiel: φ = ( x y) (x z) WS 2018/19 Klasse NP 31

Belegungen und erfüllbare Formeln Boolesche Formel φ heißt erfüllbar, wenn es eine Belegung der Variablen in φ mit 1 und 0 gibt, so dass die Formel dann wahr (Wert = 1) ist. Beispiel: φ = ( x y) (x z) ist erfüllbar. Belegung x = 0, y = 1, z = 0. Beispiel: ψ = x x ist nicht erfüllbar. WS 2018/19 Klasse NP 32

Die Sprache SAT SAT := { φ φ ist erfüllbare Boolesche Formel } Beispiele: φ SAT, φ = ( x y) (x z) ψ SAT, ψ = x x WS 2018/19 Klasse NP 33

SAT liegt in NP V SAT bei Eingabe φ,c : 1. Teste, ob c die Kodierung einer Belegung der Variablen in φ ist. Falls nicht, lehne ab. 2. Falls c Belegung B kodiert und B die Formel φ erfüllt, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 34

SAT liegt in NP N SAT bei Eingabe φ : 1. Erzeuge nichtdeterministisch eine Belegung B der Variablen in φ. 2. Falls B die Formel φ erfüllt, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 35

Literale, Klauseln, KNF Literale sind Boolesche Variablen x oder Negationen Boolescher Variablen x. Klausel ist Disjunktion von Literalen. Beispiel: x 1 x 3 x 2 Formel ist in konjunktiver Normalform (KNF), wenn sie Konjunktion von Klauseln ist. φ = ( x 1 x 3 x 2 ) (x 5 x 6 ) (x 7 x 1 x 3 x 4 ) In 3-KNF Formel enthält jede Klausel 3 Literale. WS 2018/19 Klasse NP 36

Die Sprache 3SAT 3SAT := { φ φ ist erfüllbare 3-KNF Formel } Beispiele: φ 3SAT, φ = ( x 1 x 3 x 2 ) (x 5 x 6 x 4 ) (x 7 x 1 x 3 ) WS 2018/19 Klasse NP 37

3SAT liegt in NP N 3SAT bei Eingabe φ : 1. Falls φ keine 3KNF Formel ist, lehne ab. 2. Erzeuge nichtdeterministisch einen Bitvektor c. 3. Falls c Belegung B der Variablen in φ kodiert und B die Formel φ erfüllt, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 38

Graphen und Cliquen G = (V, E) ungerichteter Graph. C V heißt Clique, wenn für alle i,j C gilt {i,j} E. C heißt k-clique, wenn C Clique und C = k. 1 2 4 5 3 C = {1, 2, 4} ist 3-Clique. WS 2018/19 Klasse NP 39

Die Sprache Clique Clique := { G,k G ist ein ungerichteter Graph mit einer k-clique } G 0 := 1 2 4 5 3 G 0, 3 Clique WS 2018/19 Klasse NP 40

Clique liegt in NP N Clique bei Eingabe G,k : 1. Erzeuge nichtdeterministisch eine Teilmenge C der Größe k der Knoten von G. 2. Bilden die Knoten in C eine Clique in G, akzeptiere. Sonst lehne ab. WS 2018/19 Klasse NP 41

Simulation einer NTM durch eine DTM Satz 3.17 Sei t : N N eine monoton wachsende Funktion mit t(n) n für alle n N. Für jede NTM mit Laufzeit t(n) gibt es eine DTM mit Laufzeit 2 O(t(n)), die dieselbe Sprache entscheidet. WS 2018/19 Klasse NP 42

Simulation einer NTM durch eine DTM M Eingabeband 0 1 0 1 0 1 0 0 1 Simulationsband 0 1 1 1 0 1 1 0 Adressband 1 1 0 1 1 0 WS 2018/19 Klasse NP 43

Simulation einer NTM durch eine DTM 1. Schreibe c = 0 t(n) auf das 3. Band, das Adressband. 2. Kopiere w vom 1. Band (Eingabeband) auf das 2. Band (Simulationsband). 3. Simuliere die durch c kodierte Berechnung von N bei Eingabe w auf dem 2. Band. Wird in der Simulation eine akzeptierende Konfiguration erreicht, akzeptiere. Sonst gehe zu 4. 4. Gibt es keine weiteren Worte in {0,1} t(n), lehne ab. Sonst ersetze c durch das lexikographisch nächste Wort in {0,1} t(n) und gehe zu 2. WS 2018/19 Klasse NP 44

Konsequenz für NP NP U DTIME(2 n ) k n N Offenes Problem Ist P = NP oder gilt P NP? WS 2018/19 Klasse NP 45