4 greedy-algorithmen (gierige algorithmen) · 4 greedy-algorithmen (gierige algorithmen) i...

22
Andreas Jakoby Universit¨ at zu L¨ ubeck Algorithmik WS 07/08 2. Vorlesung, 31.10.2007 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f¨ ur die exakte oder approximative osung von Optimierungsproblemen verwendet. I Typischerweise konstruiert ein Greedy-Algorithmus eine L¨ osung Komponente f¨ ur Komponente, wobei der Wert einer einmal gesetzten Komponente nie zur¨ uckgenommen wird. I Beispiele: die Algorithmus von Kruskal, die Konstruktion eines Huffman-Codes und der Approximationsalgorithmus f¨ ur das Binpacking Problem Best-Fit. 24

Upload: others

Post on 24-Oct-2019

50 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

4 Greedy-Algorithmen (gierige Algorithmen)I Greedy-Algorithmen werden oft fur die exakte oder approximative

Losung von Optimierungsproblemen verwendet.

I Typischerweise konstruiert ein Greedy-Algorithmus eine LosungKomponente fur Komponente, wobei der Wert einer einmalgesetzten Komponente nie zuruckgenommen wird.

I Beispiele: die Algorithmus von Kruskal, die Konstruktion einesHuffman-Codes und der Approximationsalgorithmus fur dasBinpacking Problem Best-Fit.

24

Page 2: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Philosophie von Greedy-Verfahren

I Iterative Konstruktion einer Losung unter Verwendung lokalerOptimalitatskriterien.

I Hoffnung: Lokale Optimalitat fuhrt auch zur globalen Optimalitat —oder zumindest zu einer guten Approximation.

I Verschiedene lokale Kriterien fuhren zu verschiedenen Algorithmen.

Analysemethoden fur Greedy-Verfahren

Um zu zeigen, dass ein Greedy-Verfahren eine optimale Losung findet,werden im wesentlichen zwei Analysemethoden eingesetzt:

1. the greedy algorithm stays ahead: In jedem Schritt ist die gefundenepartielle Losung des Greedy-Verfahrens mindestens so gut wie jedeandere partielle Losung.

2. exchange argument: Jede Losung kann Schrittweise in die Losungdes Greedy-Verfahrens transformiert werden, ohne dass hierbei dieGute der Losung abnimmt.

25

Page 3: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

4.1 Minimale Spannbaume

I Gegeben ist ein ungerichteter, zusammenhangender, gewichteterGraph G = (V , E ) mit einer positiven Kostenfunktion f : E → R+.

I Wir nehmen an, dass fur alle Kanten e ∈ E f (e) > 0 ist.

I Wir nennen T = (V ′, E ′) einen Spannbaum von G , wenn V = V ′

und T ein Baum ist.

I Gesucht ist ein Baum T = (V , E ′) mit E ′ ⊆ E , so dass,∑

e∈E ′ f (e)minimal unter allen Spannbaumen von G ist.

I Ist f (e) konstant 1, so konnen wir dieses Problem wieder mit Hilfeder Breiten- oder Tiefensuche losen.

I Wir werden im Folgenden das Verfahren von Kruskal vorstellen.

26

Page 4: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

I Zur effizienten Implementation benutzen wir die Datenstruktur derPriorityqueue und der Partition. Die letztere Datenstruktur ist auchunter dem Namen UNION/FIND-Datenstruktur bekannt.

I Wir starten mit |V | einelementigen Mengen, von denen jede einenanderen Knoten des Graphen enthalt.

I Diese Mengen werden als Baume mit jeweils einem Knoteninterpretiert.

I Sukzessive verschmelzen wir diese Mengen durch Hinzunahme einerKante mit minimalen Kosten: Finde die minimale Kante, die zweiKnoten aus unterschiedlichen Mengen verbindet und vereinige diebeiden Mengen.

27

Page 5: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Was ist eine Priorityqueue?

I Wir betrachten eine Teilmenge M eines Universums U, wobei jedemElement m ∈ M eine Prioritat p(m) (oder kurz p) zugeordnet wird.

I insert(m, p): fugt m ∈ U mit Prioritat p in M ein.

I deletemin: gibt das Element aus M mit minimaler Prioritat zuruckund entfernt dieses aus M.

I readmin: gibt das Element aus M mit minimaler Prioritat zuruckohne es zu entfernen.

I decpriority(m, d): die Prioritat von m in M wird um d reduziert.

Eine Priorityqueue kann mit Hilfe eines Heaps (Heapsort) soimplementiert werden, dass die Laufzeiten der Initialisierung in O(|M|),von readmin in O(1) und der drei verbleibenden Operationen inO(log |M|) liegen.

28

Page 6: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Was ist eine UNION/FIND-Datenstruktur bzw. eine Partition?

I Partitionen stellen eine eingeschrankte Form von Mengen dar.

I Der abstrakten Datentyp ist wie folgt definiert:I U = {1, . . . , n} sei ein Universum.I P = {P1, . . . , Pk} sei eine Menge von disjunkten, nicht leeren

Teilmengen von U mit U =Sn

i=1 Pi . Wir nennen diese TeilmengenPartitionsblocke oder kurz Blocke.

I Jedem Partitionsblock Pi wird ein Element ni ∈ Pi als Reprasentant(bzw. als Name) zugeordnet.

I Auf P sind die folgenden zwei Prozeduren definiert: Sei x ∈ U undni , nj Reprasentanten zweier Partitionsblocke Pi und Pj .

I find(x) liefert den Reprasentanten ni der Menge Pi mit x ∈ Pi .I union(ni , nj ) vereinigt die Blocke mit den Reprasentanten ni und nj .

Diese Operation verandert die Menge P, d.h.P = (P \ {Pi , Pj}) ∪ {Pi ∪ Pj}. Der Reprasentant der neuen Mengeist entweder ni oder nj .

29

Page 7: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Die UNION/FIND-Datenstruktur kann recht einfach so implementiertwerden, dass

I die Initialisierung in Zeit O(|U|),

I jede union-Operation in konstanter Zeit und

I jede find-Operation in Zeit O(log2 |U|)ausgefuhrt werden kann. Einige aufwendigere Implementierungenerlauben es die Laufzeit der find-Operation erheblich zu reduzieren.

30

Page 8: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Algorithmus MST-Kruskal()Eingabe: global gegebener Graph GErgebnis: minimaler Spannbaum T = (V , E ′)

1: Bilde die Priorityqueue Q aller e ∈ E mit Prioritaten f (e).2: Initialisiere die Partitionen {v} fur alle v ∈ V .3: E ′ := ∅, k = |V |4: while k > 1 do5: {v , w} := deletemin(Q); v0 := find(v); w0 := find(w);6: if v0 6= w0 then7: union(v0, w0); E ′ := E ′ ∪ {{v , w}}; k := k − 1;8: end if9: end while

10: Return(T = (V , E ′))

31

Page 9: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Beispiel

9

3

26

4 16

5

7

1

13

2

3

4

6

1 5

0. Initialisierung

2

5

3

1

4

6

1. deletemin= {3, 6}find(3) 6= find(6)

1

1

6

5

42

3

2. deletemin= {1, 2}find(1) 6= find(2)

2

1

51

2 4

3

6

32

Page 10: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

3. deletemin= {5, 1}find(5) 6= find(1)

2

1

351

2 4

3

6

4. deletemin= {5, 6}find(5) 6= find(6)

4

3

1

2

51

2 4

3

6

5. deletemin= {2, 6}find(2) = find(6)

4

3

1

2

51

2 4

3

6

6. deletemin= {1, 6}find(1) = find(6)

4

3

1

2

51

2 4

3

6

7. deletemin= {2, 3}find(2) = find(3)

4

3

1

2

51

2 4

3

6

8. deletemin= {3, 4}find(3) 6= find(4)

4

9

3

2

1

51

2 4

3

6

33

Page 11: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Korrektheit

Lemma 1 Sei

I G = (V , E ) ein ungerichteter Graph,

I T = (V , ET ) ein minimaler Spannbaum fur G ,

I W = (V , EW ) ein Wald der in T enthalten ist, d.h. EW ⊆ ET und

I S ⊆ V eine Knotenmenge, so dass keine Kante aus EW zwischenden Mengen S und V \ S verlauft.

Wir nennen eine Kante aus E kreuzend, wenn sie einen Knoten aus Smit einem Knoten aus V \ S verbindet. Ist e ∈ E eine kreuzende Kante,die minimale Kosten unter allen kreuzenden Kanten besitzt, dann istauch W ′ := (V , EW ∪ {e}) in einem minimalen Spannbaum enthalten.

34

Page 12: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Beweis von Lemma 1:

Angenommen, T enthalt W aber nicht W ′.

e

SV \ S

I Dann gilt e 6∈ ET .

I T ist ein Spannbaum, somit gibt es vonjedem Knoten in V einen Weg zu jedemanderen Knoten in V .

I Addieren wir e zu T , so schließen wireinen Kreis C .

I C besitzt neben e noch eine kreuzendeKante e′.

I Sei T ′ := (V , (ET ∪ {e}) \ {e′}).

I T ′ ist ein Spannbaum von G , da T ′ wieder zyklenfrei ist und |V | − 1Kanten hat.

I Da f (e) minimal unter allen kreuzenden Kanten ist, giltf (e) ≤ f (e′).

35

Page 13: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Beweis von Lemma 1 (Teil 2)

I Ist f (e) < f (e′), so gilt∑

w∈E ′T

f (w) <∑

w∈ETf (w) fur

E ′T = (ET ∪ {e}) \ {e′}. Dieses widerspricht der Annahme, dass Tein minimaler Spannbaum ist. Wir konnen somit ausschließen, dassf (e) < f (e′) ist.

I Ist f (e) = f (e′), so haben T und T ′ die gleichen Kosten. Da T einminimaler Spannbaum ist, muss auch T ′ ein minimaler Spannbaumsein. Wir haben somit gezeigt, dass W ′ in einem minimalenSpannbaum enthalten ist. �

36

Page 14: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Korrektheit vom Kruskals Algorithmus

I Der MST-Algorithmus nimmt immer eine minimale kreuzende Kantein den bereits konstruierten Wald W auf.

I Sei e = {u, v} = deletemin(Q).I Uber die Abfrage find(u) = find(v) wird uberpruft, ob u und v

bereits in einer Komponente von W liegen. Beachte: Mit jedereingefugten Kante {u′, v ′} vereinigen wir die entsprechendenMengen find(u′) und find(v ′). Somit reprasentiert jede Menge derPartition einen Baum des konstruierten Walds.

I Ist find(u) = find(v), so verwerfen wir die Kante.I Ist find(u) 6= find(v), so stellt S die Knotenmenge des Teilbaums dar,

in dem u liegt. Somit ist e eine minimale kreuzende Kante.

I Aus Lemma 1 konnen wir nun schließen, dass W ′ = (V , EW ∪ {e})in einem minimalen Spannbaum enthalten ist, wenn auchW = (V , EW ) in einem minimalen Spannbaum enthalten ist.

37

Page 15: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Laufzeit von Kruskals Algorithmus

I Die Initialisierung der Priorityqueue gelingt in Zeit O(|E |).

I Die Initialisierung der Partitionen gelingt in Zeit O(|V |).

I Die While-Schleife muss im Worst-Case |E | mal durchlaufen werden.Bei jedem Durchlauf werden einmal die Operationen deletemin undzweimal die Operation find aufgerufen. Nach unseren Annahmenuber die Priorityqueue und der UNION/FIND-Datenstruktur konnenwir diese Operationen in Zeit O(|E | · log |E |) ausfuhren.

I In |V | − 1 Durchlaufen der While-Schleife wird jeweils einmal eineunion-Operation aufgerufen.

I Zusammen erhalten wir eine Laufzeit von O(|E | · log |E |).

38

Page 16: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Satz 1 Sei G = (V , E ) ein zusammenhangender, ungerichteter,gewichteter Graph. Dann berechnet Kruskals Algorithmus einenminimalen Spannbaum fur G in Zeit

O(|E | · log |E |) .

Beobachtung 1 Betrachten wir die Aussage von Lemma 1 und denKorrektheitsbeweis von Kruskals Algorithmus, so erkennen wir, dass wirhierbei ein exchange argument angewendet haben.

39

Page 17: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

4.2 Intervall-Scheduling

Definition 3 [Intervall-Scheduling Problem] Gegeben sei

I eine Menge R = {1, . . . , n} von n Jobs und

I zwei Funktionen s, f : R → N.

Hierbei gilt fur alle Jobs is(i) ≤ f (i)

I s(i) nennen wir die Startzeit von Job i und

I f (i) nennen wir die Endzeit von Job i .

Job i steht im Konflikt mit Job j , wenn

I i 6= j und

I die Intervalle [s(i), f (i)[ und [s(j), f (j)[ sich uberlappen.

Mit [s(i), f (i)[ bezeichnen wir das nach rechts offene reelle Intervall.

40

Page 18: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Definition 3 (Teil 2)

I Eine Teilmenge S ⊆ R ist eine zulassige Schedule, wenn Skonfliktfrei ist, d.h. fur alle i , j ∈ S steht i nicht im Konflikt zu j .

I Eine Teilmenge S ⊆ R ist eine optimale Schedule, wenn S einezulassige Schedule maximaler Kardinalitat ist, d.h. |S | ist maximal.

Aufgabe: Bestimme eine optimale Schedule!

41

Page 19: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Wir starten mit einem Grundgerust fur einen Greedy-Algorithmus fur dasIntervall-Scheduling Problem:

Algorithmus Greedy-Intervall-Schedule(R)Eingabe: Menge RErgebnis: optimale Schedule S

1: S := ∅2: while R 6= ∅ do3: wahle ein eine Job i ∈ R4: S := S ∪ {i};5: entferne alle Jobs aus R, die zu i im Konflikt stehen6: R := R \ {i}7: end while8: Return(S)

Unsere Aufgabe besteht jetzt darin, den Auswahlmechanismus in Zeile 3naher zu beschreiben.

42

Page 20: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Wir starten mit einer einfachen Beobachtung:

Beobachtung 2 Fur alle Auswahlmechanismen ist das Ergebnis S einezulassige Schedule.

Diese Beobachtung folgt unmittelbar daraus, dass wir in Zeile 5 alle Jobsloschen, die zu einem einmal in die Schedule aufgenommenen Job imKonflikt stehen.

43

Page 21: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

Einfache Auswahlmechanismen:

1. wahle i mit s(i) = minj∈R s(j)

2. wahle i mit f (i)− s(i) = minj∈R f (j)− s(j)

3. wahle das i , welches mit den wenigsten Jobs in R im Konflikt steht

4. wahle i mit f (i) = minj∈R f (j)

44

Page 22: 4 Greedy-Algorithmen (gierige Algorithmen) · 4 Greedy-Algorithmen (gierige Algorithmen) I Greedy-Algorithmen werden oft f ur die exakte oder approximative L osung von Optimierungsproblemen

Andreas Jakoby

Universitat zu Lubeck

Algorithmik WS 07/08

2. Vorlesung, 31.10.2007

I Anhand der nachfolgenden Graphik konnen wir leicht erkennen, dassdie ersten drei Auswahlmechanismen auf Folie 44 keine optimaleSchedule liefern.

3.

2.

1.

I Behauptung Benutzen wir jedoch den vierten Mechanismus in Zeile3 von Algorithmus Greedy-Intervall-Schedule, so erhalten wir eineoptimale Schedule. Dieses muss aber noch bewiesen werden!

45