23
ADS: Algorithmen und Datenstrukturen 2 Teil 9 Gerhard Heyer, Florian Holz unter Verwendung der Materialien der letzten Jahre Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität Leipzig 19. Juni 2013 1 / 17

ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

ADS: Algorithmen und Datenstrukturen 2Teil 9

Gerhard Heyer, Florian Holzunter Verwendung der Materialien der letzten Jahre

Abteilung Automatische SprachverarbeitungInstitut für InformatikUniversität Leipzig

19. Juni 2013

1 / 17

Page 2: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Greedy-Algorithmus I

Greedy-Algorithmen sind mit dem dynamischen Programmieren verwandt,jedoch einfacher.

Die Grundsituation ist dieselbe:Es geht um ein Optimierungsproblem; es soll sukzessiv eine optimaleLösung — in Bezug auf eine gegebene Bewertungsfunktion — konstruiertwerden. Während man beim dynamischen Programmieren solche optimaleLösung für alle kleineren Teilprobleme konstruiert und mit Hilfe dieser ineiner Tabelle eingetragenen Daten die nächst größere optimale Lösungkonstruiert, verzichtet man bei Greedy auf die Buchführung mittels einerTabelle. Stattdessen wird der nächste Erweiterungsschritt zu einer(hoffentlich) optimalen Lösung lediglich auf Grund der lokal verfügbarenInformationen getätigt.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 2 / 17

Page 3: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Greedy-Algorithmus II

Annahme: Es gibt eine Gewichtsfunktion w , die die Güte einer Lösung(auch einer Teillösung) misst. Es soll eine Lösung mit maximalen w -Wertkonstruiert werden.

1 Starte mit der leeren Lösung.2 Erweitere die bisher konstruierte Teillösung wie folgt: Wenn zur

Erweiterung dieser Teillösung k Erweiterungsmöglichkeiten zurVerfügung stehen, die auf die vergrößerten Teillösungen L1, . . . , Lkführen, wähle diejenige Teillösung Li mit w(Li ) maximal.

Der Name Greedy = gefräßig erklärt sich dadurch, dass einGreedy-Algorithmus nach der Methode vorgeht: Nimm immer das größteStück. Dieses Greedy-Prinzip kann in vielen Fällen funktionieren undtatsächlich auf eine optimale Lösung führen — ohne den Aufwand, der beidynamischem Programmieren betrieben werden muss.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 3 / 17

Page 4: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Unabhängigkeitssystem

Sei E eine endliche Menge undM eine Menge von Teilmengen von E ,alsoM⊆ P(E ). Dann heißt (E ,M) Mengensystem.Ein Mengensystem (E ,M) heißt Unabhängigkeitssystem, wenn∅ ∈ M und zu jeder Menge inM auch alle Teilmengen enthaltensind, also gilt:

Aus A ∈M und B ⊆ A folgt B ∈M.Ein Unabhängigkeitssystem ist somit abgeschlossen unter Bildung vonTeilmengen. Man kann eine inM gefundene Menge “kleiner” machenund bleibt inM.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 4 / 17

Page 5: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Gewichtsfunktion und Optimierungsproblem

Sei (E ,M) ein Mengensystem und w : E → R+.w heißt GewichtsfunktionOptimierungsproblem: Finde L ∈M, das die Gewichtssummemaximiert. Für alle A ∈M soll also gelten:∑

x∈L

w(x) ≥∑x∈A

w(x)

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 5 / 17

Page 6: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Kanonischer Greedy-Algorithmus

Der einem Unabhängigkeitssystem (E ,M) und Gewichtsfunktionw : E → R+ zugeordnete kanonische Greedy-Algorithmus arbeitet wie folgt:

Ordne alle Elemente in E nach absteigendem Gewicht:w(e1) ≥ w(e2) ≥ . . .w(e|E |) ;L← ∅ ;for k ← 1 to |E | do

if L ∪ {ek} ∈ M thenT ← T ∪ {ek}

endendAusgabe der Lösung T ;Dieser Algorithmus liefert allerdings nicht immer die optimale Lösung.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 6 / 17

Page 7: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel

E = {e1, e2, e3}M = { ∅, {e1}, {e2}, {e3}, {e2, e3} }w(e1) = 3, w(e2) = w(e3) = 2Dazu liefert der kanonische Greedy-Algorithmus die Lösung L = {e1}mit Gewichtssume w(e1) = 3Die optimale Lösung ist L∗ = {e2, e3} mit Gewichtssummew(e2) + w(e3) = 4.

Kriterium, wann Greedy das Opimierungsproblem löst?

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 7 / 17

Page 8: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Matroid

Ein Unabhängigkeitssystem (E ,M) heißt Matroid, wenn für alleA,B ∈M die folgende Austauscheigenschaft gilt:Ist |A| > |B|, dann gibt es x ∈ A \ B , so dass B ∪ {x} ∈ M.Sei (E ,M) ein Matroid und B ∈M ein maximales Element, also füralle x ∈ E \ B gilt: B ∪ {x} /∈M. Wir bezeichnen B als Basis desMatroids (E ,M).Beobachtung: Alle Basen eines Matroids enthalten dieselbe AnzahlElemente. Anders gesagt, sind B und C Basen von (E ,M), dann gilt|B| = |C |

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 8 / 17

Page 9: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Exkurs: Bezug zur Linearen Algebra

Matroideigenschaft ist eine abstrakte Charakterisierung von linearerUnabhängigkeit und Basen.

E = VektorraumM = Menge aller linear unabhängigen Teilmengen von EAustauscheigenschaft: vgl. Basisergänzungssatz und Austauschlemmaaus der linearen Algebra.Basis = linear unabhängige Menge, bei der jede Obermenge linearabhängig ist.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 9 / 17

Page 10: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Matroid garantiert Optimalität

Sei (E ,M) ein Mengensystem.

Satz (Greedy-Optimalität):Der kanonische Greedy-Algorithmus liefert auf (E ,M) eine optimaleLösung für beliebige Gewichtsfunktion w : E → R+

m

(E ,M) ist ein Matroid.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 10 / 17

Page 11: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Auftragsplanung

Gegeben:Menge E von n Aufträgen, jeweils in einer Zeiteinheit (an einem Tag)zu bewältigen.Zu jedem Auftrag x ∈ E gibt es Gewinn w(x) > 0 (Gewichtsfunktion).Termin d(x), bis zu dem der Auftrag x abgeschlossen sein muss (sonstkein Gewinn).

Gesucht: Menge L ⊆ E von Aufträgen, so dassa) der Gesamtgewinn

∑x∈L w(x) maximal ist, und

b) L sich so sortieren lässt, dass jeder Auftrag vor seinemAbschlusstermin erledigt wird. MengeM zulässiger Auftragsmengenist also gegeben durch

A ∈M⇔ ∀s ∈ N : |{y ∈ A : d(y) ≤ s}| ≤ s

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 11 / 17

Page 12: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Auftragsplanung: Beispiel

Auftragsmenge E = {a, b, c , d , e}

Auftrag x Wert w(x) Termin d(x)a 13 2b 7 1c 9 1d 3 2e 5 1

Lösung Gewinn∅ 0{a} 13{b} 7{c} 9{d} 3{e} 5{a, b} 20{a, c} 22{a, d} 16{a, e} 18{b, d} 10{c , d} 12{d , e} 8

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 12 / 17

Page 13: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Auftragsplanung: Lösung

Ordne Aufträge ek absteigend nach Gewinn: w(e1) ≥ w(e2) ≥ . . .w(e|E |)Jetzt der kanonische Greedy-Algorithmus wie folgt:

L← ∅ ;for k ← 1 to |E | do

if L ∪ {ek} ist eine zulässige Lösung thenT ← T ∪ {ek}

endendAusgabe der Lösung T

In T = {e1, e2, ..., ei} seien die Aufträge nach ihrem Abschlusstermingeordnet: d1 ≤ d2 ≤ ... ≤ diLösung T ist genau dann zulässig, wenn gilt:d1 ≥ 1, d2 ≥ 2, ..., di ≥i.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 13 / 17

Page 14: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

... und noch mal der Kruskal-Algorithmus

Kruskal-Algorithmus (1956) für minimalen Spannbaum auf ungerichtetemzusammenhängendem Graph (V ,E ) mit Kantengewicht w(e) für e ∈ E

1 Erzeuge eine PriorityQueue Q mit der Kantenmenge E sortiert nachGewicht (kleinstes zuerst). Initialisiere F als leere Menge.

2 Entferne Kante e = {u, v} aus Q3 Falls (V ,F ) keinen Pfad zwischen u und v enthält:

F := F ∪ {e}

(sonst: tue nichts)4 Falls Q nicht leer, zurück zu 2.5 Ausgabe F .

Greedy-Algorithmus zur Minimierung der Summe der Kantengewichte

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 14 / 17

Page 15: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = [{2, 3}, {4, 5}, {1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}]

T = {}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 16: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

0.5

1.3

0.8 2.4

0.6

1.5

1.8

Q = [{4, 5}, {1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}]

T = {{2, 3}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 17: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = [{1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}]

T = {{2, 3}}, {4, 5}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 18: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = [{1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}]

T = {{2, 3}}, {4, 5}, {1, 3}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 19: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = [{3, 5}, {2, 4}, {2, 5}, {3, 4}]

T = {{2, 3}}, {4, 5}, {1, 3}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 20: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = [{2, 4}, {2, 5}, {3, 4}]

T = {{2, 3}}, {4, 5}, {1, 3}, {3, 5}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 21: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Beispiel-Lauf: Kruskal-Algorithmus

2

3

4

5

1

1.9

1.8

0.5

1.3

0.8 2.4

0.6

1.5

Q = []

T = {{2, 3}}, {4, 5}, {1, 3}, {3, 5}}

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 15 / 17

Page 22: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Kruskal: Korrektheit (1)

E = KantenmengeGewichtsfunktion w : E → R = KantengewichteM enthält F ⊆ E genau dann wenn (V ,F ) azyklisch (Wald) ist.

Wende Satz über Greedy-Optimalität an:

Kruskal findet optimale Lösung für beliebige Kantengewichte

m

(E ,M) ist ein Matroid.

Der Kruskal minimiert, während der kanonische Greedy-Algorithmus maximiert.Der Algorithmus ist direkt anwendbar nach Transformation der Kantengewichtew ′(e) = c − w(e). Die Konstante c ist so groß zu wählen, dass alle w ′(e) positivwerden.

G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 16 / 17

Page 23: ADS: Algorithmen und Datenstrukturen 2 - Teil 9asv.informatik.uni-leipzig.de/uploads/document/file_link/634/ADS209.pdf · Der Kruskal minimiert, während der kanonische Greedy-Algorithmus

Greedy-Algorithmen

Kruskal: Korrektheit (2)

Behauptung: (E ,M) ist ein Matroid.

Beweis(skizze):(E ,M) ist Unabhängigkeitssystem, denn Teilgraphen von azyklischenGraphen sind azyklisch.Austauscheigenschaft: Seien A,B ∈M mit |A| > |B|, also (V ,A) azyklischund (V ,B) azyklisch. (V ,A) ist disjunkte Vereinigung von |V | − |A|Bäumen, (V ,B) ist disjunkte Vereinigung von |V | − |B| Bäumen. Somitbesteht (V ,B) aus mehr Bäumen als (V ,A), und es gibt Knoten u, v ∈ V ,die in demselben Baum von (V ,A) liegen, aber nicht innerhalb einesBaums von (V ,B). Insbesondere können u und v so gewählt werden, dassdie Kante {u, v} := e in A liegt aber nicht in B . Ausserdem ist(V ,B ∪ {e}) azyklisch nach Wahl von u und v aus verschiedenen Bäumenvon (V ,B). Also e ∈ A \ B und B ∪ {e} ∈ M, q.e.d.

(E ,M) heißt graphisches Matroid.G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 9 SS 2013 17 / 17