Einführung in Algorithmen und Komplexität

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Christian Scheideler SS 2009
Christian Scheideler SS 2009
Schwierigkeit von Aufgabenstellungen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Kontextfreie Grammatiken
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Universelle Turingmaschinen Eine universelle Turingmaschine.
Programmiertechniken: Zustand fungiert als „endlicher Speicher“
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Verifizieren versus Berechnen
Algorithmen und Komplexität
Christian Schindelhauer
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 26.
Das Traveling Salesman Problem (TSP)
Algorithmen für das Erfüllbarkeitsproblem SAT
Analyse der Laufzeit von Algorithmen
Wintersemester 2005 / Vorlesung
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Komplexitätstheorie Beispiel Matrixmultiplikation  Eingabe: Zwei nn-Matrizen A und B,  Ausgabe: die nn-Matrix C := A · B.  n²-mal "Zeile-mal-Spalte"
 Präsentation transkript:

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 Reguläre Grammatiken und endliche Automaten Kontextfrei Grammatiken und Kellerautomaten

- Wir werden sehen: - Vorstellung eines der wichtigsten Konzepte der 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

TM(n) = max{TM(x), |x|· n} (worst case Laufzeit) 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.

t : N ! N sei monoton wachsend. 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!

MST: Eingabe: (G, c, k); entscheide, ob der gewichtete 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.

Verifizieren versus Berechnen 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.

Nichtdeterministische Turingmaschinen

Beobachtung: NTM kann bei fester Eingabe w 2 * 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

Laufzeit von NTMs

Nichtdeterministische Komplexitätsklassen

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= { <> |  ist erfüllbare Boole‘sche k-SAT Formel} Bem: k-SAT 2 NP für jedes k. Satz : 2-SAT 2 P

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.

Def. : L heißt NP-vollständig, falls gilt: L 2 NP 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

Sei L 2 NP, M=(Q, , , ) eine NTM, die L in Zeit 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

Berechne aus Eingabe w, |w|=n, eine Formel , 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}

…. sind Algorithmen, die exakte Lösungen für 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“. 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

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]

Ein Schnitt (Cut) eines Graphen G = (V, E) 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.

Solange v 2 V existiert, so dass w(S M {v}) > w(S) ist, 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)

Eingabe: G = (V,E) vollständig, Kantengewichte 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.