Einführung in die Informatik 2

Ähnliche Dokumente
Einführung in die Informatik 2

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

Komplexitätstheorie Einführung und Überblick (Wiederholung)

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

abgeschlossen unter,,,, R,

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Das P versus N P - Problem

Die Komplexitätsklassen P und NP

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Nichtdeterministische Platzklassen

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

Kapitel 1.3. Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln

Theoretische Informatik

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.

Einführung in die Informatik 1

Normalformen boolescher Funktionen

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

Theoretische Informatik SS 03 Übung 11

Übung zur Vorlesung Berechenbarkeit und Komplexität

3. Relationen Erläuterungen und Schreibweisen

Randomisierte Algorithmen

Erfüllbarkeit und Allgemeingültigkeit

Grundlagen der Künstlichen Intelligenz. 9.1 Einführung und Beispiele. 9.2 Constraint-Netze. 9.3 Belegungen und Konsistenz. 9.

Logik für Informatiker

Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1

Einführung in die Informatik

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Lösungsvorschläge Blatt Z1

Rechnerische Komplexität

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Laufzeit und Komplexität

Einführung in die Weihnachtliche Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Theoretische Informatik 1

WS 2009/10. Diskrete Strukturen

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

23.1 Constraint-Netze

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Grundlagen der Künstlichen Intelligenz

Schwierige Probleme in der Informatik Informationen für die Lehrperson

Kapitel 1.3. Normalformen aussagenlogischer Formeln. Mathematische Logik (WS 2010/11) Kapitel 1.3: Normalformen 1 / 1

Einführung in die Informatik 1

3. Musterlösung. Problem 1: Boruvka MST

Daniel Borchmann. Sommerakademie Görlitz September 2007

LogSpace. Isomorphie von Bäumen (gerichtet und ungerichtet) Entscheiden, ob ein Graph zusammenhängend ist (gerichtet und ungerichtet)

Komplexitätstheorie Slide 1. Komplexitätstheorie

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Induktive Definitionen

Praktische Grenzen der Berechenbarkeit

Algorithmen und Datenstrukturen (für ET/IT)

Aufgabe - Fortsetzung

Informatik I Komplexität von Algorithmen

Komplexität von Algorithmen

Probeklausur der Tutoren

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Graphentheorie 1. Diskrete Strukturen. Sommersemester Uta Priss ZeLL, Ostfalia. Hausaufgaben Graph-Äquivalenz SetlX

Spiele in der Informatik

Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Logic in a Nutshell. Christian Liguda

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)

Komplexität und Komplexitätsklassen

5 Zwei spieltheoretische Aspekte

Informatik I WS 07/08 Tutorium 24

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Speicherplatz-Komplexität 1 / 30

6. Induktives Beweisen - Themenübersicht

Randomisierte Algorithmen

Numerische Verfahren und Grundlagen der Analysis

Binäre Suchbäume (binary search trees, kurz: bst)

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 1. ALPHABETE, WÖRTER, SPRACHEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2011

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Konjunktive und disjunktive Normalformen

Wiederholung zu Flüssen

Mathematische Grundlagen der Computerlinguistik Relationen und Funktionen

Programmiertechnik II

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Aufgabe 3: Übersetzen Sie die folgenden natürlich-sprachlichen Aussagen in die Sprache der

Didaktische Grundlagen Arithmetik Vertiefung Übungen 4

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Algorithmen II Vorlesung am

Parametrisierte Algorithmen

Lösungen zur Prüfung in diskreter Mathematik vom 15. Januar 2008

Berechenbarkeit und Komplexität

Codes und Informationsgehalt

4 Greedy-Algorithmen (gierige Algorithmen)

1 Einführung Zwei Beispiele (MIN JOB SCHEDULING und MAXCUT) Notationen und Definitionen Übungsaufgaben...

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen I

6.3 Erfüllbarkeit von Wünschen

Transkript:

Einführung in die Informatik 2 NP-Vollständigkeit Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester 2009 Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 1 / 30

Polynomialzeit-Algorithmen Intuition: Berechnungsprobleme, die Polynomialzeit-Algorithmen erlauben, können als (theoretisch) effizient lösbar angesehen werden Fragen: Gibt es Berechnungsprobleme, die nicht effizient lösbar sind? Wie können wir dies für ein konkretes Problem feststellen? Welche Auswege gibt es, um mit solchen Problemen umgehen zu können?... Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 2 / 30

Eingabegrößen uniforme Eingabegröße: Anzahl der Komponenten zur Beschreibung der Eingabe (x 1,..., x n ) 1 = n für ganze Zahlen x i G 1 = n + m für Graph G = (V, E) mit V = n und E = m s 0 s 1... s n 1 1 = n für Buchstaben s i logarithmische Eingabegröße: Anzahl der Bits zur Beschreibung von ganzen Zahlen n log = 1 + log 2 n Beachte: (2 n ) 10 log = (10 n ) 2 1 = n + 1 (bei binärer Repräsentierung) 1111 }.{{.. 1111} 1 = 2 n (bei unärer Repräsentierung) 2 n -mal Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 3 / 30

Laufzeit Anzahl der elementaren Operationen eines Algorithmus (in Java) Notation: t A (x) ist Laufzeit des Algorithmus A auf Eingabe x worst-case: Laufzeit im schlechtesten Fall t max A (n) = max{t A(x) x ist Eingabe der Größe x = n } best-case: Laufzeit im besten Fall t min A (n) = min{t A(x) x ist Eingabe der Größe mit x = n } average-case: Laufzeit im Erwartungswert t avg A (n) = E x =nt A (x) Beachte: Laufzeitaussagen hängen von Eingaberepräsentierung ab Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 4 / 30

Laufzeit Fakten: ta min (n) tavg(n) tmax(n) für alle Eingabegrößen n A A ta max(n) t A(x) f (n) für alle Eingaben x mit x = n ta max(n) t A(x) g(n) für eine Eingabe x mit x = n ta min(n) t A(x) f (n) für eine Eingabe x mit x = n ta min(n) t A(x) g(n) für alle Eingaben x mit x = n Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 5 / 30

Laufzeit typische obere (worst-case) Laufzeitschranken: konstant: logarithmisch: linear: quadratisch: polynomiell: exponentiell: ta max (n) O(1) ta max (n) O(log n) ta max (n) O(n) t max A (n) O(n2 ) ta max(n) O(nk ) für ein k N ta max(n) 2O(nk) für ein k N wichtigste untere (worst-case) Laufzeitschranke superpolynomiell: ta max(n) Ω(nk ) für alle k N Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 6 / 30

Die Klasse P Entscheidungsprobleme: versuchen nicht Funktionswerte zu berechnen, sondern nur ob Eingabe gut oder schlecht ist betrachten Teilmengen L M der Grundmenge M aller möglichen Eingaben charakteristische Funktion c L : M {0, 1} von L: { 1 falls x L c L (x) = def 0 falls x / L Algorithmus A entscheidet ein Problem L, falls A die Funktion c L berechnet Beachte: Funktionen f können als Entscheidungsprobleme kodiert werden (L f = def {(x, y) f (x) y}) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 7 / 30

Die Klasse P Entscheidungsproblem L heißt polynomiell, falls es eine Algorithmus mit polynomieller Laufzeit gibt, der L entscheidet P = def {L L ist ein polynomielles Entscheidungsproblem} P steht für die Klasse der effizient lösbaren Entscheidungsprobleme Beispiele für Probleme in P: Menge der Palindrome, d.h. L = {w w {0, 1} und w = w R } Menge der matchenden Wortpaare, d.h. L = {(s, t) s kommt in t als Teilwort vor} Menge der zusammenhängenden Graphen Menge der Graphen mit Euler-Kreis Menge der planaren Graphen Menge der Primzahlen, d.h. L = {x x N und x ist Primzahl} Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 8 / 30

Die Klasse NP NP steht für nichtdeterministische Polynomialzeit L NP def es gibt ein Polynom p und ein B P, so dass für alle x M gilt: x L es gibt y mit y p( x ) und (x, y) B y heißt Lösung (Zeuge, Zertifikat) für x Anschauung für Probleme in NP: Lösungen verifizieren ist leicht richtige Lösung finden ist schwierig Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 9 / 30

Die Klasse NP Problem: Eingabe: Frage: Clique ungerichteter Graph G = (V, E), Zahl k N Gibt es U V mit U k und {u, v} E für alle u, v U mit u v? Clique liegt in NP: setze p(n) = def n setze B = def {(G, k, U) U ist Clique in G und U k} c B kann in Zeit O(n 2 ) berechnet werden (n = (G, k, U) 1 ) (G, k) Clique es gibt U mit U = U 1 (G, k) 1 und (G, k, U) B Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 10 / 30

Die Klasse NP Problem: Eingabe: Frage: Clique ungerichteter Graph G = (V, E), Zahl k N Gibt es U V mit U k und {u, v} E für alle u, v U mit u v? Wie schnell lässt sich Clique (deterministisch) lösen? Durchmusterung: auf Eingabe (G, k) durchlaufe alle Mengen U von k Knoten aus G und teste, ob U Clique in G ist Laufzeit hängt wesentlich von der Zahl der Knotenmengen ab: ( ) n k ( n ( k) maximal für k = n/2 : n ) ( ) n/2 = Θ 2 n n = Θ(2 n 1 2 log n ) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 10 / 30

Das P-NP-Problem Fakt: P NP für L P definiere B = def L {0, 1} und setze p(n) = 1 B P, denn: auf Eingabe (x, a) ignoriere a und wende Algorithmus für L auf x an Damit: x L (x, 0) B Also liegt L auch NP Frage: Gilt P = NP? bedeutendstes offenes Problem der Informatik und Mathematik steht auf Liste der Millenium-Probleme des Clay Mathematics Institute: 1.000.000 $ für Lösung Vermutung: P NP Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 11 / 30

Reduktionen Reduktionen definieren Relationen auf Entscheidungsproblemen in der Vorlesung: polynomielle Reduktionen A M in polynomieller Zeit auf B N reduzierbar def es gibt eine Funktion f : M N mit f FP, so dass für alle x M gilt: x A f (x) B f heißt Reduktionsfunktion (i.a. weder injektiv noch surjektiv) Notation: A p m B, falls A auf B in polynomieller Zeit reduzierbar Notation: A p m B, falls A p m B und B p m A Beachte: Reduktionsfunktion f i.a. weder injektiv noch surjektiv Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 12 / 30

Reduktionen f N B A M Reduktionsfunktion f für A p m B f bildet M total auf N ab (unabhängig von A und B) jedes Element von A muss nach B abgebildet werden jedes Element von A muss nach B abgebildet werden Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 13 / 30

Reduktionen Fakten: Relation p m ist reflexiv Relation p m ist transitiv Relation p m ist nicht antisymmetrisch Relation p m ist nicht symmetrisch Relation p m ist nicht total Relation p m ist symmetrisch (damit: Äquivalenzrelation) Ist A p m B und ist B P, so ist A P Ist A p m B und ist B NP, so ist A NP Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 14 / 30

Reduktionen Fakt: Hintereinanderausführung zweier Polynomialzeit-Algorithmen ist wieder ein Polynomialzeit-Algorithmus A mit Laufzeit ta max(n) p A(n) B mit Laufzeit tb max(n) p B(n) Algorithmus A B: wende A auf Eingabe x an mit Ergebnis y und wende dann B auf Eingabe y an Laufzeit für A B: t max A B (n) = O(tmax(n) + tmax A B (tmax A = O(p A (n) + p B (p A (n))) }{{} p A B (n) = O(p A B (n)) (n))) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 15 / 30

NP-Vollständigkeit L ist NP-schwer def für alle A NP gilt A p m L L ist NP-vollständig def L ist NP-schwer und L NP NP-vollständige Probleme sind schwierigste Probleme in NP Fakt: Liegt ein NP-vollständiges Problem in P, so gilt P = NP m.a.w.: Ist P NP, so liegt kein NP-vollständiges Problem in P Nachweis der NP-Vollständigkeit für konkretes Problem schließt polynomiellen Algorithmus für dieses Problem aus (es sei denn P = NP) Methodologie für Nachweis: Wähle irgendein NP-vollständiges Problem, welches dem gegebenen Problem ähnlich ist, und zeige Reduktion auf gegebenes Problem Frage: Welches ist das erste NP-vollständige Problem? Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 16 / 30

Erfüllbarkeit aussagenlogischer Formeln Menge L AL der aussagenlogischen (booleschen) Formeln (über,, ): für jede Variable x i ist x i L AL für H 1, H 2 L AL sind (H 1 H 2 ), (H 1 H 2 ), H 1 L AL ((x 1 x 2 ) (x 2 ( x 3 (x 2 x 1 )))) L AL ((x 1 x 2 ) (x 1 x 2 )) (( x 1 x 2 ) ( x 1 x 2 ))) L AL x 3 x 3 / L AL Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 17 / 30

Erfüllbarkeit aussagenlogischer Formeln konjunktive Normalform (KNF, CNF) für boolesche Formel H: H = k mi i=1 j=1 L ij, wobei L ij eine Variable x l oder eine negierte Variable x l ist die L ij heißen Literale die m i j=1 L ij heißen Klauseln (x 1 x 2 ) (x 1 x 2 ) ( x 1 x 2 ) ( x 1 x 2 ) ist KNF mit 4 Klauseln zu je 2 Literalen Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 18 / 30

Erfüllbarkeit aussagenlogischer Formeln Interessieren uns für die Wahrheitswerte aussagenlogischer Formeln: x y AND(x, y) 0 0 0 0 1 0 1 0 0 1 1 1 x y OR(x, y) 0 0 0 0 1 1 1 0 1 1 1 1 x NOT(x) 0 1 1 0 Für Formel H L AL (mit den Variablen x 1, x 2,..., x n ) definiere: Belegung von H ist Abbildung I : {x 1, x 2,..., x n } {0, 1} Ist H = x i, so definiere I (H) = def I (x i ) Ist H = (H 1 H 2 ), so definiere I (H) = def AND ( I (H 1 ), I (H 2 ) ) Ist H = (H 1 H 2 ), so definiere I (H) = def OR ( I (H 1 ), I (H 2 ) ) Ist H = H 1, so definiere I (H) = def NOT ( I (H 1 ) ) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 19 / 30

Erfüllbarkeit aussagenlogischer Formeln Wir betrachten die aussagenlogische Formel: H = def ((x 1 x 2 ) (x }{{} 2 ( x 3 (x 2 x 1 ))) }{{} H 1 Als Wertetabelle erhalten wir damit: H 2 ) I (x 1 ) I (x 2 ) I (x 3 ) I (H 1 ) I (H 2 ) I (H) 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 Beachte: Eine Belegung entspricht nur einer Zeile der Tabelle Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 20 / 30

Erfüllbarkeit aussagenlogischer Formeln Erfüllbarkeit von Formeln H (mit Variablen x 1, x 2,..., x n ): H heißt erfüllbar es gibt eine Belegung I : {x 1,..., x n } {0, 1} mit I (H) = 1 ((x 1 x 2 ) (x 2 ( x 3 (x 2 x 1 )))) ist erfüllbar ((x 1 x 2 ) (x 1 x 2 )) (( x 1 x 2 ) ( x 1 x 2 ))) ist nicht erfüllbar Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 21 / 30

Erfüllbarkeit aussagenlogischer Formeln Problem: Eingabe: Frage: Satisfiability Menge {x 1,..., x n } boolescher Variablen, boolesche Formel H(x 1,..., x n ) in KNF Ist H erfüllbar? Theorem: [Cook 1971, Karp 1972, Levin 1973] Satisfiability ist NP-vollständig Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 22 / 30

Ausgewählte NP-vollständige Probleme Problem: Clique Eingabe: ungerichteter Graph G = (V, E), Zahl k N Frage: Enthält G Clique der Größe k? Problem: k-colorability Eingabe: ungerichteter Graph G = (V, E) Frage: Ist G mit k Farben (zulässig) färbbar? Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 23 / 30

Ausgewählte NP-vollständige Probleme Problem: Hamilton Circuit Eingabe: ungerichteter Graph G = (V, E) Frage: Gibt es einen Hamilton-Kreis in G? Problem: Travelling Salesperson Eingabe: ungerichteter Graph G = (V, E) mit Kantengewichten w : E R +, Knotenmenge U V, Zahl k N Frage: Gibt es einen Kreis in G mit Gesamtgewicht höchstens k, der alle Knoten U besucht? Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 24 / 30

Ausgewählte NP-vollständige Probleme Problem: Subset Sum Eingabe: Zahlen a 1,..., a n, b N Frage: Gibt es I {1,..., n} mit i I a i = b? Problem: Eingabe: Knapsack n Gegenstände mit Gewichten g 1,..., g n N und Werten v 1,..., v n N, Parameter G, W N Frage: Gibt es I {1,..., n} mit i I g i G und i I v i W? Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 25 / 30

Ausgewählte NP-vollständige Probleme Problem: Quadratic Diophantine Equations Eingabe: Zahlen a, b, c N Frage: Gibt es x, y N mit ax 2 + by = c? Problem: Stable Triple Marriage Eingabe: gleich große Mengen A, B, C mit Personen dreier Geschlechter, Sympathiemenge H A B C (wobei (a, b, c) H bedeutet, dass a, b und c sich eventuell heiraten würden) Frage: Gibt es ein Arrangement mit A Heiraten (ohne Polygamie)? (M.a.W.: Gibt es bijektive Funktionen s : A B und r : A C mit (a, s(a), r(a)) H für alle a A?) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 26 / 30

Beispielreduktion Wollen zeigen: Satisfiability p m Clique es sei H eine Formel in KNF mit k Klauseln C 1,..., C k konstruieren Graph G H = (V H, E H ) wie folgt: V H = def { (L, i) i {1,..., k} und L ist ein Literal in Klausel C i } E H = def { {(L, i), (L, j)} i j und L L } Graph G H kann in polynomieller Zeit aus Formel H berechnet werden definiere Reduktionsfunktion als f (H) = def (G H, k) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 27 / 30

Beispielreduktion (y,1) (x,1) (x,2) (y,2) (z,2) (z,4) (x,4) (z,3) (y,3) (x,3) Graph G H für H = def (x y) (x y z) (x y z) ( x z) (beachte: x steht für x) Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 28 / 30

Beispielreduktion Fakt: H erfüllbar G H enthält Clique der Größe k H ist erfüllbar (mittels Belegung I ): dann gilt I (C 1 ) = = I (C k ) = 1 und in jeder Klausel wird zumindest ein Literal auf 1 gesetzt, seien L 1,..., L k solche Literale dann gilt L i L j für i j (sonst: 1 = I (x) = NOT ( I (x) ) = 0) damit ist {(L 1, 1),..., (L k, k)} Clique der Größe k in G H G H enthält Clique der Größe k (nämlich U V H ): für alle i {1,..., k} gibt es genau ein L i mit (L i, i) U da L i L j für i j, setze I so, dass I (L) = 1 für alle (L, i) U damit: I (C 1 ) = = I (C k ) = 1, also ist H erfüllbar Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 29 / 30

Beispielreduktion (y,1) (x,1) (x,2) (y,2) (z,2) (z,4) (x,4) (z,3) (y,3) (x,3) Graph G H für H = def (x y) (x y z) (x y z) ( x z) I (x) = I (y) = I (z) = 1 ist eine erfüllende Belegung für H {(x, 1), (x, 2), (x, 3), (z, 4)} ist eine Clique der Größe 4 in G H Sven Kosub (Algorithmik/TKS) EI2: NP-Vollständigkeit 30 / 30