430 likes | 627 Views
Einführung in Algorithmen und Komplexität. SS2004. Was haben wir bisher gemacht?. Rechenmodell: Turingmaschine Entscheidbare, rekursiv aufzählbare Sprachen, berechenbare Funktionen Nicht entscheidbare, nicht rekursiv aufzählbare Sprachen Grammatiken
E N D
Was haben wir bisher gemacht? • 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
Ziele der Vorlesung • - Vorstellungeines 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
Komplexitätsmaße • 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.
Komplexitätsklassen • 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.
Über die Klasse P • 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!
Sprachen in P • 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 ; entscheide ob x and y • relativ prim sind. • Matching: Eingabe (G, c, k); entscheide, ob der gewichtete • Graph (G, c) ein Matching mit Gewicht ¸ k enthält.
Die Klasse NP • 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!
Die Klasse NP • 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.
NTM‘s • Rechnung einer NTM……… • Beobachtung: NTM kann bei fester Eingabe w 2* • viele verschiedene Rechnungen durchführen. • Wann akzeptiert sie w?? • Falls 99 % der Rechnungen akzeptiert sind • randomisierte (probabilistische) Algorithmen • Falls mindestens eine Rechnung akzeptiert • Nichtdeterminismus.
Rechnungen einer NTM Berechnungsbaum einer NTM bei Eingabe w
NP und nichtdeterministische TMs • 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.“
Über NP • P µ NP • - Offenes Problem: P NP?
Das Erfüllbarkeitsproblem (Satifiability, SAT) • 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.
Das Erfüllbarkeitsproblem (Satifiability, SAT) • SAT = { <> | ist erfüllbare Boole‘sche Formel} • Bem: SAT 2 NP
Konjunktive Normalform (KNF) • 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}
k-SAT • k-SAT= { <> | ist erfüllbare Boole‘sche k-SAT • Formel} • Bem: k-SAT 2 NP für jedes k. • Satz : 2-SAT 2 P
CLIQUE • 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.
Polynomielle Reduktion • 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 ) A 2 P • A ·p B und B ·p C ) A ·p C (Transitivität)
Polynomielle Reduktionen • 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.
NP-Vollständigkeit • 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 NP-vollständigen Sprachen in NP \ P, also insbesondere nicht in P.
NP-vollständige Probleme • 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.
Die NP-Vollständigkeit des Erfüllbarkeitsproblems • 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
Die Reduktion • 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
Der Beweis • 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.
Weitere NP-vollständige Probleme • 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‘
Weitere NP-vollständige Probleme • 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:
Weitere NP-vollständige Probleme • 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
Weitere NP-vollständige Probleme • 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}
Heuristiken • …. 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, …….)
Backtracking • ….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 ! 2n Blätter • HC : n-ärer Baum der Tiefe n ! nn Blätter • oder (etwas schlauer) Baum • mit Graden n-1, n-2, n-3, … ! (n-1)! Blätter. • Worst Case und Best Case: O(2n) bzw. O(nn) bzw. O (n!)
Idee des Backtracking • 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)).
Backtrack-Regeln für 3-SAT • 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]
Brand & Bound • ….. ist „Backtracking für Optimierungsprobleme“. • BeispielTSP: • 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
Approximationsalgorithmen • …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]
Bsp 1: Max-Cut • 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.
Appox. Algo für Max-Cut • 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 Schleifen- • durchlä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
Bsp. 2: Metrisches TSP (MTSP) • 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)
Appr. Algo für MTSP • Eingabe: G = (V,E) vollständig, Kantengewichte • die die Dreiecksungleichung erfüllen. • Berechne Minimalen Spannbaum T in (G, w). • 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.
Grenzen der Approximierbarkeit • Satz: Falls NP P gilt, gibt es kein polynomiellen Appr. Algo • für TSP mit konstanter Güte c.