HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Algorithmen und Komplexität SS2004 w u v High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Was haben wir bisher gemacht? Universität Paderborn Algorithmen und Komplexität - Rechenmodell: Turingmaschine - Entscheidbare, rekursiv aufzählbare Sprachen, berechenbare Funktionen - Nicht entscheidbare, nicht rekursiv aufzählbare Sprachen - Grammatiken - Reguläre Grammatiken und endliche Automaten - Kontextfrei Grammatiken und Kellerautomaten Friedhelm Meyer auf der Heide 2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Ziele der Vorlesung - Vorstellung eines der wichtigsten Konzepte der Komplexitätstheorie: NP-Vollständigkeit. - Wir werden sehen: - NP-vollständige Probleme haben sehr große worst-case Laufzeit (falls ) - viele wichtigen (Optimierungs-) Probleme sind NP-vollständig - Aber: NP-vollständige Probleme „sind überall“: Wie gehen wir mit ihnen um? - Heuristiken - Approximationsalgorithmen Friedhelm Meyer auf der Heide 3 HEINZ NIXDORF INSTITUT Komplexitätsmaße Universität Paderborn Algorithmen und Komplexität TM(x) = Anzahl Schritte, die Turingmaschine M gestartet mit Eingabe x ausführt SM(x) = Anzahl Speicherzellen, die M bei Rechnung gestartet mit x besucht TM(n) = max{TM(x), |x|· n} (worst case Laufzeit) M hat Laufzeit O(t(n)) (M ist O(t(n) zeitbeschränkt), falls TM(n) = O(t(n)) gilt. Friedhelm Meyer auf der Heide 4 HEINZ NIXDORF INSTITUT Komplexitätsklassen Universität Paderborn Algorithmen und Komplexität t : N ! N sei monoton wachsend. DTIME(t(n)) = { L | L kann von einer TM in Zeit O(t(n)) entschieden werden} P = k ¸ 0 DTIME(nk) P ist die Klasse der Spachen , die von einer deterministischen TM in polynomieller Zeit entschieden werden können. P ist robust : z. B ergibt sich die gleiche Klasse, wenn wir TMs durch Registermachinen oder Java-Programme ersetzen. Friedhelm Meyer auf der Heide 5 HEINZ NIXDORF INSTITUT Über die Klasse P Universität Paderborn Algorithmen und Komplexität Jede Mehrband-TM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit O(t(n)²) simuliert werden. Jede RAM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit O(t(n)3) simuliert werden. Jede 1-Band-TM mit Laufzeit t(n) kann durch RAM mit Laufzeit O(t(n)) simuliert werden. P ist robust! Friedhelm Meyer auf der Heide 6 HEINZ NIXDORF INSTITUT Sprachen in P Universität Paderborn Algorithmen und Komplexität - MST: Eingabe: (G, c, k); entscheide, ob der gewichtete Graph (G,c) einen Spannbaum mit Gewicht · k enthält. - Path: Eingabe: (G, s, t); entscheide, ob im gerichteten Graphen G ein gerichteter Weg von s nach t existiert. - Rel_Prim: Eingabe: (x, y) 2 relativ prim sind. ; entscheide ob x and y - Matching: Eingabe (G, c, k); entscheide, ob der gewichtete Graph (G, c) ein Matching mit Gewicht ¸ k enthält. Friedhelm Meyer auf der Heide 7 HEINZ NIXDORF INSTITUT Die Klasse NP Universität Paderborn Algorithmen und Komplexität Verifizieren versus Berechnen - TSP: Eingabe (G, c, k); entscheide, ob es im gewichteten Graphen (G, c) eine Rundreise der Länge · k gibt. Berechnen (Finden) einer solchen Rundreise scheint sehr schwierig zu sein. Aber: Für eine gegebene Rundreise verifizieren, ob ihr Gewicht · k ist, ist einfach! Friedhelm Meyer auf der Heide 8 HEINZ NIXDORF INSTITUT Die Klasse NP Universität Paderborn Algorithmen und Komplexität Rucksackproblem: (RS) Gegeben sind n Objekte 1, …, n. Objekt i hat Gewicht gi und Wert wi, G={g1, … , gn}, W={w1,…,wn} , Gewichtsschranke (Rucksackgröße) g Optimierungsproblem: Suche S µ {1,…,n} so, dass i 2 S gi · g gilt und i 2 S wi maximal wird. Entscheidungsproblem: RSent = {<G,W,g,w> | Es gibt S µ {1,…,n} mit i 2 S gi · g und i 2 S wi ¸ w} scheint schwierig zu entscheiden zu sein. Aber: Für gegebenes S µ {1,…,n} zu verifizieren, dass S eine Lösung liefert, ist sehr einfach. Friedhelm Meyer auf der Heide 9 HEINZ NIXDORF INSTITUT Nichtdeterministische Turingmaschinen Universität Paderborn Algorithmen und Komplexität Friedhelm Meyer auf der Heide 10 HEINZ NIXDORF INSTITUT NTM‘s Universität Paderborn Algorithmen und Komplexität Rechnung einer NTM……… Beobachtung: NTM kann bei fester Eingabe w 2 * viele verschiedene Rechnungen durchführen. Wann akzeptiert sie w?? a) Falls 99 % der Rechnungen akzeptiert sind randomisierte (probabilistische) Algorithmen b) Falls mindestens eine Rechnung akzeptiert Nichtdeterminismus. Friedhelm Meyer auf der Heide 11 HEINZ NIXDORF INSTITUT Rechnungen einer NTM Universität Paderborn Algorithmen und Komplexität Berechnungsbaum einer NTM bei Eingabe w Friedhelm Meyer auf der Heide 12 HEINZ NIXDORF INSTITUT Laufzeit von NTMs Universität Paderborn Algorithmen und Komplexität Friedhelm Meyer auf der Heide 13 HEINZ NIXDORF INSTITUT Nichtdeterministische Komplexitätsklassen Universität Paderborn Algorithmen und Komplexität Friedhelm Meyer auf der Heide 14 HEINZ NIXDORF INSTITUT NP und nichtdeterministische TMs Universität Paderborn Algorithmen und Komplexität Satz: Es gibt polynomiellen Verifizierer für L genau dann, wenn es eine polynomiell zeitbeschränkte NTM für L gibt. Satz: NP = [k ¸ 0 NTIME (nk) „NP ist die Klasse aller Sprachen, die von NTMs in polynomieller Zeit akzeptiert werden können.“ Friedhelm Meyer auf der Heide 15 HEINZ NIXDORF INSTITUT Über NP Universität Paderborn Algorithmen und Komplexität - P µ NP - Offenes Problem: P NP? Friedhelm Meyer auf der Heide 16 HEINZ NIXDORF INSTITUT Das Erfüllbarkeitsproblem (Satifiability, SAT) Universität Paderborn Algorithmen und Komplexität • Eine Boole’sche Variable x kann Werte 0 und 1 (falsch und wahr) annehmen. • Eine Boole’sche Formel ist eine Verknüpfung von Boole’schen Variablen durch Boole’sche Operatoren, z.B. AND ( Æ ) , OR ( Ç ), NOT ( : ). Beispiel: = (:x Ç y) Æ (x Ç :z ) ist eine Boole’sche Formel mit Variablen x, y, z. • ist erfüllbar, falls es eine Belegung der Variablen mit Werten 0, 1 gibt, die wahr macht. Beispiel: ist erfüllbar, z. b. durch x=1, y=1, z=0. Friedhelm Meyer auf der Heide 17 HEINZ NIXDORF INSTITUT Das Erfüllbarkeitsproblem (Satifiability, SAT) Universität Paderborn Algorithmen und Komplexität SAT = { <> | ist erfüllbare Boole‘sche Formel} Bem: SAT 2 NP Friedhelm Meyer auf der Heide 18 HEINZ NIXDORF INSTITUT Konjunktive Normalform (KNF) Universität Paderborn Algorithmen und Komplexität • Literal: Variable oder negierte Variable • Klausel: Disjunktion K von Literalen, K= y1 Ç … Ç ym, yi Literale • Formel in Konjunktiver Normalform (KNF): Konjunktion von Klauseln, = K1 Æ … Æ Kl , Ki Klauseln • k-SAT Formel: Formel in KNF, in der jede Klausel aus k Literalen besteht. • k-SAT= { <> | ist erfüllbare Boole‘sche k- SAT Formel} Friedhelm Meyer auf der Heide 19 HEINZ NIXDORF INSTITUT k-SAT Universität Paderborn Algorithmen und Komplexität k-SAT= { <> | ist erfüllbare Boole‘sche k-SAT Formel} Bem: k-SAT 2 NP für jedes k. Satz : 2-SAT 2 P Friedhelm Meyer auf der Heide 20 HEINZ NIXDORF INSTITUT CLIQUE Universität Paderborn Algorithmen und Komplexität Eine k-Clique in einem Graphen G ist ein vollständiger Teilgraph von G mit k Knoten. CLIQUE = { <G,k> | G ist ein Graph der eine k-Clique enthält} Bem: CLIQUE 2 NP. Friedhelm Meyer auf der Heide 21 HEINZ NIXDORF INSTITUT Polynomielle Reduktion Universität Paderborn Algorithmen und Komplexität Sei A µ 1*, B µ 2*. A heißt polynomiell reduzierbar auf B, falls es eine in polynomieller Zeit berechenbare Funktion f: 1* ! 2* gibt, so dass für alle x 2 1* gilt: x 2 A , f(x) 2 B . Wir schreiben: A ·p B Lemma: • A ·p B und B 2 P ) A2P • A ·p B und B ·p C ) A ·p C (Transitivität) Friedhelm Meyer auf der Heide 22 HEINZ NIXDORF INSTITUT Polynomielle Reduktionen Universität Paderborn Algorithmen und Komplexität Satz: 3-SAT ist polynomiell auf CLIQUE reduzierbar, d.h. 3-SAT ·p CLIQUE. Was ist zu tun? Beschreibe eine in polynomieller Zeit berechenbare Funktion f, die zu einer 3-SAT Formel einen Graphen G und eine Zahl k berechnet, so dass gilt: Ist genau dann erfüllbar, wenn G eine k-Clique enthält. Friedhelm Meyer auf der Heide 23 HEINZ NIXDORF INSTITUT NP-Vollständigkeit Universität Paderborn Algorithmen und Komplexität Def. : L heißt NP-vollständig, falls gilt: • L 2 NP • Für jedes A 2 NP gilt A ·p L Satz: Ist L NP-vollständig und L 2 P, so ist P = NP. Korollar: Falls NP P gilt, dann sind alle NPvollständigen Sprachen in NP \ P, also insbesondere nicht in P. Friedhelm Meyer auf der Heide 24 HEINZ NIXDORF INSTITUT NP-vollständige Probleme Universität Paderborn Algorithmen und Komplexität Wir werden durch Masterreduktionen zeigen: SAT und 3-SAT sind NP-vollständig. Da wir schon gezeigt haben: • CLIQUE 2 NP und • 3-SAT ·p CLIQUE, folgt : CLIQUE ist NP-vollständig. Friedhelm Meyer auf der Heide 25 HEINZ NIXDORF INSTITUT Die NP-Vollständigkeit des Erfüllbarkeitsproblems Universität Paderborn Algorithmen und Komplexität Satz von Cook/Levin: SAT ist NP-vollständig. Zu zeigen: • SAT 2 NP (haben wir schon gezeigt) • Für jedes L 2 NP gilt: L ·p SAT Friedhelm Meyer auf der Heide 26 HEINZ NIXDORF INSTITUT Die Reduktion Universität Paderborn Algorithmen und Komplexität Sei L 2 NP, M=(Q, , , ) eine NTM, die L in Zeit t(n) entscheidet, für ein Polynom t. Aufgabe: Beschreibe eine in polynomieller Zeit berechenbare Funktion f, die bei Eingabe w 2 * eine Boole‘sche Formel berechnet, so, dass gilt: M akzeptiert w , ist erfüllbar Friedhelm Meyer auf der Heide 27 HEINZ NIXDORF INSTITUT Der Beweis Universität Paderborn Algorithmen und Komplexität Idee: Berechne aus Eingabe w, |w|=n, eine Formel , so dass erfüllende Belegungen für zu akzeptierenden Rechnungen von M gestartet mit w korrespondieren. Friedhelm Meyer auf der Heide 28 HEINZ NIXDORF INSTITUT Weitere NP-vollständige Probleme Universität Paderborn Algorithmen und Komplexität Eine Knotenüberdeckung in einem Graph G = (V,E) ist eine Menge U µ V mit für alle e 2 E. KNOTENÜBERDECKUNG := {<G, K>, G enthält Knotenüberdeckung der Größe k} - KNOTENÜBERDECKUNG 2 NP - CLIQUE · p KNOTENÜBERDECKUNG Aufgabe: Gebe eine in polynomieller Zeit berechenbare Funktion an, die zu jedem <G,k> ein (G‘, k‘) berechnet, so dass gilt: G‘ enthält Knotenüberdeckung G enthält k-Clique der Größe k‘ Friedhelm Meyer auf der Heide 29 HEINZ NIXDORF INSTITUT Weitere NP-vollständige Probleme Universität Paderborn Algorithmen und Komplexität SUBSETSUM - SUBSETSUM 2 NP 3-SAT ·p SUBSETSUM Aufgabe: Gebe einen in polynomieller Zeit berechenbare Funktion an, die zu jeder 3-SAT Formel eine Menge und ein berechnet, so dass gilt: Friedhelm Meyer auf der Heide 30 HEINZ NIXDORF INSTITUT Weitere NP-vollständige Probleme Universität Paderborn Algorithmen und Komplexität RUCKSACK: {<G, W, g, w> | es existiert S µ {1, …, n} mit i 2 S gi · g und i 2 S wi ¸ w} - RUCKSACK 2 NP - SUBSETSUM ·p RUCKSACK Friedhelm Meyer auf der Heide 31 HEINZ NIXDORF INSTITUT Weitere NP-vollständige Probleme Universität Paderborn Algorithmen und Komplexität Ein Hamiltonkreis in einem Graphen S ist ein Kreis in S, der jeden Knoten berührt. HAMILTONKREIS := {<G>, G enthält Hamiltonkreis} TSP:= {<G, k>, G ist vollständiger Graph mit Kantengewichten so dass G einen Hamiltonkreis mit Gesamtlänge · k enthält} Friedhelm Meyer auf der Heide 32 HEINZ NIXDORF INSTITUT Heuristiken Universität Paderborn Algorithmen und Komplexität …. sind Algorithmen, die exakte Lösungen für Probleme berechnen, „in der Praxis“ „häufig“ sehr schnell sind, aber typischerweise sehr schlechte worst case Laufzeit haben. Beispiele: - Backtracking - Branch & Bound - Lokale Verbesserung (Genetische Algorithmen, Simulated Annealing, …….) Friedhelm Meyer auf der Heide 33 HEINZ NIXDORF INSTITUT Backtracking Universität Paderborn Algorithmen und Komplexität ….findet Anwendung bei Problemen, deren Lösungen aus vielen Komponenten zusammengesetzt sind. Bsp : 3 SAT : Lösung: (a1, …, an) 2 {0,1}n HC : Lösung: Knotenfolge (1, v2, …, vn) Erste Idee: „erschöpfende Suche“ (exhaustive search) Durchsuche systematisch alle Lösungen durch Tiefen- oder Breitensuche im Suchbaum. 3 SAT: Binärer Baum der Tiefe n ! HC : n-ärer Baum der Tiefe n ! oder (etwas schlauer) Baum mit Graden n-1, n-2, n-3, … ! 2n Blätter nn Blätter (n-1)! Blätter. Worst Case und Best Case: O(2n) bzw. O(nn) bzw. O (n!) Friedhelm Meyer auf der Heide 34 HEINZ NIXDORF INSTITUT Idee des Backtracking Universität Paderborn Algorithmen und Komplexität Führe Tiefensuche aus, versuche frühzeitig an einem Knoten zu erkennen, ob unter ihm noch eine zulässige Lösung liegt, d.h.: ob die durch den Knoten beschriebene Teillösung zur Gesamtlösung vervollständigt werden kann. Falls nicht, gehe gar nicht erst in den Subbaum hinein, sondern gehe eine Kante rückwärts im Baum (backtrack)). Friedhelm Meyer auf der Heide 35 HEINZ NIXDORF INSTITUT Backtrack-Regeln für 3-SAT Universität Paderborn Algorithmen und Komplexität Frage: Wann ist Teillösung (a1, …, ai, x, x, …, x) für eine 3SAT-Formel garantiert nicht zur Gesamtlösung erweiterbar? Antwort: Wenn die belegten Variablen bereits mindestens eine Klausel falsch macht. Bsp. : enthält Klausel (x1 Ç :x2 Ç x5) und Teillösung ist (0,1,1,00, x x … x) Frage: Wann ist Teillösung garantiert zur Gesamtlösung erweiterbar? Antwort: Wenn die belegten Variablen bereits in jeder Klausel je mindestens ein Literal wahr macht. [Einfache Variante des Davis-Putnam Algorithmus] Friedhelm Meyer auf der Heide 36 HEINZ NIXDORF INSTITUT Brand & Bound Universität Paderborn Algorithmen und Komplexität ….. ist „Backtracking für Optimierungsprobleme“. Beispiel TSP: Gegeben: vollständiger Graph G mit Kantengewichten d(i,j) Gesucht : Rundreise 1, v1 … vn-1 mit minimaler Länge. Beobachtung: Da G vollständig ist, ist jede der (n-1)! möglichen Rundreise zulässig. Idee: Durchlaufe G wieder mit Tiefensuche, berechne an jeden Knoten untere Schranken LB für die Länge der kürzesten Rundreise, die mit dieser Teillösung T erreichbar ist. d.h.: Berechne Zahl LB, so dass jede Rundreise, die Erweiterung von T ist, Länge mindestens LB hat. Führe Backtrack durch, falls LB > beste bisher gefundene Lösung Friedhelm Meyer auf der Heide 37 HEINZ NIXDORF INSTITUT Approximationsalgorithmen Universität Paderborn Algorithmen und Komplexität …liefern in polynomieller Zeit Lösungen für Optimierungsprobleme, die nur um einen festen Faktor (die Güte des Appr. Algo) vom Optimum entfernt sind. TSP: Falls in (G, w) die kürzeste Rundreise Länge k hat, muss ein Appr. Alg. mit Güte c eine Rundreise der Länge liefern. [Minimierungsproblem, c > 1] Rucksack: Falls G, g, W eine Lösung mit Gewicht k erlaubt, muss ein Appr. Algo mit Güte c eine Lösung mit Gewicht liefern. [Maximierungsproblem, c < 1] Friedhelm Meyer auf der Heide 38 HEINZ NIXDORF INSTITUT Bsp 1: Max-Cut Universität Paderborn Algorithmen und Komplexität Ein Schnitt (Cut) eines Graphen G = (V, E) ist definiert durch eine Menge w(S):= # Kanten zwischen S und V-S in G. Max Cut: Berechne zu Graph G einen Max-Cut, d.h. Zugehöriges Entscheidungsproblem: Eingabe: (G, k) Frage : Ist Max-Cut ist NP-vollständig. Friedhelm Meyer auf der Heide 39 HEINZ NIXDORF INSTITUT Appox. Algo für Max-Cut Universität Paderborn Algorithmen und Komplexität Eingabe: G = (V, E) S := Solange v 2 V existiert, so dass w(S M {v}) > w(S) ist, setze S := S M {v} Ausgabe w(S), S Laufzeit: O(E) pro Schleifendurchlauf, · E Schleifendurchläufe polynomielle Laufzeit Appr. Güte: Algo liefert Lösung mit Güte ¸ ½ d.h. Für jeden Graphen G liefert er eine Lösung w(S) ¸ ½ Optimum Friedhelm Meyer auf der Heide 40 HEINZ NIXDORF INSTITUT Bsp. 2: Metrisches TSP (MTSP) Universität Paderborn Algorithmen und Komplexität Eingabe: vollst. Graph G mit Kantengewichten w(e) 2 , so dass die Dreiecksungleichung gilt: w(a,c) · w(a, b) + w (b,c). Ausgabe: minimale Rundreise (Permutation ) Spezialfall: Euklidisches TSP: Vµ , w(a,b) = ||a-b|| Die Entscheidungsprobleme zum metrischen und zum Euklidischen TSP sind NP-vollständig. (ETSP ist Spezialfall von MTSP) Friedhelm Meyer auf der Heide 41 HEINZ NIXDORF INSTITUT Appr. Algo für MTSP Universität Paderborn Algorithmen und Komplexität Eingabe: G = (V,E) vollständig, Kantengewichte die die Dreiecksungleichung erfüllen. 1. Berechne Minimalen Spannbaum T in (G, w). 2. Durchlaufe T in Preorder (Start bei beliebigen Knoten), gebe diese als Rundreise aus. Laufzeit: polynomiell Approximationsgüte: gefundene Rundreise ist höchstens um Faktor 2 länger als optimale Rundreise. Friedhelm Meyer auf der Heide 42 HEINZ NIXDORF INSTITUT Grenzen der Approximierbarkeit Universität Paderborn Algorithmen und Komplexität Satz: Falls NP P gilt, gibt es kein polynomiellen Appr. Algo für TSP mit konstanter Güte c. Friedhelm Meyer auf der Heide 43