high performance = innovative computer systems + efficient algorithms friedhelm meyer auf der heide...
TRANSCRIPT
High Performance =Innovative Computer Systems + Efficient Algorithms
u v
w
u v
w
Friedhelm Meyer auf der Heide 1
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Einführung in Algorithmen und Komplexität
SS2004
Friedhelm Meyer auf der Heide 2
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätWas 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
Friedhelm Meyer auf der Heide 3
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätZiele 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 4
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätKomplexitä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.
Friedhelm Meyer auf der Heide 5
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätKomplexitä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.
Friedhelm Meyer auf der Heide 6
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätÜ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!
Friedhelm Meyer auf der Heide 7
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätSprachen 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.
Friedhelm Meyer auf der Heide 8
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDie 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!
Friedhelm Meyer auf der Heide 9
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDie 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.
Friedhelm Meyer auf der Heide 10
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNichtdeterministische Turingmaschinen
Friedhelm Meyer auf der Heide 11
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNTM‘s
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 12
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätRechnungen einer NTM
Berechnungsbaum einer NTM bei Eingabe w
Friedhelm Meyer auf der Heide 13
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätLaufzeit von NTMs
Friedhelm Meyer auf der Heide 14
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNichtdeterministische Komplexitätsklassen
Friedhelm Meyer auf der Heide 15
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNP 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.“
Friedhelm Meyer auf der Heide 16
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätÜber NP
- P µ NP
- Offenes Problem: P NP?
Friedhelm Meyer auf der Heide 17
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDas 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.
Friedhelm Meyer auf der Heide 18
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDas Erfüllbarkeitsproblem (Satifiability, SAT)
SAT = { <> | ist erfüllbare Boole‘sche Formel}
Bem: SAT 2 NP
Friedhelm Meyer auf der Heide 19
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätKonjunktive 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}
Friedhelm Meyer auf der Heide 20
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexitätk-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
Friedhelm Meyer auf der Heide 21
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätCLIQUE
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 22
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätPolynomielle 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)
Friedhelm Meyer auf der Heide 23
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätPolynomielle 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.
Friedhelm Meyer auf der Heide 24
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNP-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.
Friedhelm Meyer auf der Heide 25
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätNP-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.
Friedhelm Meyer auf der Heide 26
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
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
Friedhelm Meyer auf der Heide 27
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDie 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
Friedhelm Meyer auf der Heide 28
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätDer 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.
Friedhelm Meyer auf der Heide 29
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätWeitere 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‘
Friedhelm Meyer auf der Heide 30
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätWeitere 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:
Friedhelm Meyer auf der Heide 31
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätWeitere 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
Friedhelm Meyer auf der Heide 32
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätWeitere 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}
Friedhelm Meyer auf der Heide 33
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätHeuristiken
…. 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 34
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätBacktracking
….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!)
Friedhelm Meyer auf der Heide 35
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätIdee 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)).
Friedhelm Meyer auf der Heide 36
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätBacktrack-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]
Friedhelm Meyer auf der Heide 37
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätBrand & 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
Friedhelm Meyer auf der Heide 38
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätApproximationsalgorithmen
…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 39
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätBsp 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.
Friedhelm Meyer auf der Heide 40
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätAppox. 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
Friedhelm Meyer auf der Heide 41
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätBsp. 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)
Friedhelm Meyer auf der Heide 42
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätAppr. Algo für MTSP
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 43
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätGrenzen der Approximierbarkeit
Satz: Falls NP P gilt, gibt es kein polynomiellen Appr. Algo
für TSP mit konstanter Güte c.