high performance = innovative computer systems + efficient algorithms friedhelm meyer auf der heide...

43
High Performance = Innovative Computer Systems + Efficient Algorithms u v w u v w Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Algorithmen und Komplexität SS2004

Upload: bruna-wortz

Post on 05-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 2: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 3: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 4: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 5: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 6: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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!

Page 7: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 8: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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!

Page 9: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 10: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

Friedhelm Meyer auf der Heide 10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Turingmaschinen

Page 11: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 12: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

Friedhelm Meyer auf der Heide 12

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätRechnungen einer NTM

Berechnungsbaum einer NTM bei Eingabe w

Page 13: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

Friedhelm Meyer auf der Heide 13

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätLaufzeit von NTMs

Page 14: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

Friedhelm Meyer auf der Heide 14

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Komplexitätsklassen

Page 15: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.“

Page 16: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

Friedhelm Meyer auf der Heide 16

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätÜber NP

- P µ NP

- Offenes Problem: P NP?

Page 17: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 18: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 19: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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}

Page 20: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 21: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 22: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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)

Page 23: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 24: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 25: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 26: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 27: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 28: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 29: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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‘

Page 30: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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:

Page 31: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 32: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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}

Page 33: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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, …….)

Page 34: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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!)

Page 35: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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)).

Page 36: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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]

Page 37: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 38: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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]

Page 39: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 40: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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

Page 41: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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)

Page 42: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.

Page 43: High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen

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.