Kein Folientitel - Universität Paderborn

Werbung
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
Herunterladen