ADS: Algorithmen und Datenstrukturen 2

Ähnliche Dokumente
ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

ADS: Algorithmen und Datenstrukturen 2

Datenstrukturen und Algorithmen (SS 2013)

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

ADS 2: Algorithmen und Datenstrukturen

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

Algorithmen und Datenstrukturen 2

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Algorithmische Graphentheorie

9 Minimum Spanning Trees

1 Matroide. 1.1 Definitionen und Beispiele. Seminar zur ganzzahligen Optimierung Thema: Durchschnitt von Matroiden - Satz von Edmonds von Dany Sattler

Rückblick: Starke Zusammenhangskomponenten

Kapitel IV Minimale Spannbäume

Durchschnitt von Matroiden

3.2 Generischer minimaler Spannbaum-Algorithmus

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algorithmen und Datenstrukturen 2-1. Seminar -

Informatik II, SS 2014

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Informatik II, SS 2016

Informatik II, SS 2016

Algorithmen und Datenstrukturen

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Lösungen zu Kapitel 5

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

Informatik II, SS 2014

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Übungsblatt 2 - Lösung

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

3. Musterlösung. Problem 1: Heapsort

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Vorlesung Datenstrukturen

21. Dynamic Programming III

Grundlagen: Algorithmen und Datenstrukturen

Kapitel IV Minimale Spannbäume

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Berechnung minimaler Spannbäume. Beispiel

ADS: Algorithmen und Datenstrukturen 2

Grundlagen Theoretischer Informatik 3 SoSe 2010 in Trier. Henning Fernau Universität Trier

Datenstrukturen und Algorithmen SS07

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen Kapitel 9. und

Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Suchen in Graphen):

Datenstrukturen und Algorithmen

Algorithmen & Komplexität

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Betriebswirtschaftliche Optimierung

Algorithmen I - Tutorium 28 Nr. 11

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Betriebliche Optimierung

5. Bäume und Minimalgerüste

1.Aufgabe: Minimal aufspannender Baum

Informatik II, SS 2018

Auslastungs- und Potenzialspiele

Algorithmen und Datenstrukturen Kapitel 9. und

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Das Problem des minimalen Steiner-Baumes

ADS 2: Algorithmen und Datenstrukturen

Wie wird ein Graph dargestellt?

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

3 Klassifikation wichtiger Optimierungsprobleme

Rückblick: divide and conquer

Algorithmen und Datenstrukturen

Theoretische Informatik 1

Graphen und Bäume. A.1 Graphen

Kombinatorische Optimierung

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Kap. 6.5: Minimale Spannbäume

Wiederholung. Divide & Conquer Strategie

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Theoretische Informatik 1

Grundbegriffe der Informatik Tutorium 8

Vorlesung Datenstrukturen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Bäume und Wälder. Definition 1

Kap. 6.5: Minimale Spannbäume ff

Bäume und Wälder. Definition 1

Graphen. Definitionen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

ADS: Algorithmen und Datenstrukturen 2

Transkript:

ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018, 08:59] 1 / 22

Erste Zwischenbilanz Wir haben bisher kennengelernt das Konzept und einige Hintergründe zur Kompression adaptive Walks und Fitnesslandschaften Graphen (ungerichtet, gerichtet, gewichtet), Spannbäume, transitive Hülle, Sortierung und Suche in Graphen, Zusammenhangskomponenten Dabei sind im wesentlichen drei Arten von Algorithmen zum Einsatz gekommen, Greedy-Algorithmen (Huffmann-Codierung, Kruskal) dynamische Programmierung (Warshall) probabilistische und genetische Algorithmen Heute soll das Konzept der Greedy-Algorithmen vertieft werden Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 2 / 22

Greedy-Algorithmen Annahme: Gewichtsfunktion w misst Güte einer Lösung (oder Teillösung). Ziel: Konstruiere Lösung mit maximalen Gewicht (w). 1 Starte mit leerer Lösung 2 In jedem Schritt: Erweitere die bisher konstruierte Teillösung. Unter k möglichen Erweiterungen, die zu Teillösungen L 1,..., L k führen, wähle L i, so dass w(l i ) maximal. (greedy = gierig) Also bedeutet greedy : Nimm immer das größte Stück. Oft wird die Greedy-Strategie im Sinne einer Heuristik verwendet. (Heuristik bedeutet dabei: i.d.r. wird eine brauchbar gute Lösung erzeugt) Es gibt aber auch Probleme, für die das Greedy-Prinzip optimal ist, d.h. tatsächlich immer zu einer optimalen Lösung führt. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 3 / 22

Unabhängigkeitssystem Sei E eine endliche Menge und M eine Menge von Teilmengen von E, also M P(E). Dann heißt (E, M) Mengensystem. Ein Mengensystem (E, M) heißt Unabhängigkeitssystem, wenn M und zu jeder Menge in M auch alle Teilmengen enthalten sind, also gilt: Aus A M und B A folgt B M. Ein Unabhängigkeitssystem ist somit abgeschlossen unter Bildung von Teilmengen. Man kann eine in M gefundene Menge kleiner machen und bleibt in M. Idee: für jede Menge A in M gelten die Elemente von A als unabhänigig voneinander. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 4 / 22

Gewichtsfunktion und Optimierungsproblem Sei (E, M) ein Mengensystem Sei w eine Funktion w : E R +, genannt Gewichtsfunktion Erweitere Notation (Gewicht einer Menge A M): w(a) := w(e) e A Optimierungsproblem: Finde A M, das die Gewichtssumme maximiert. Für alle A M soll also gelten: w(a ) w(a). Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 5 / 22

Kanonischer Greedy-Algorithmus... für Unabhängigkeitssystem (E, M) und Gewichtsfunktion w : E R + : A ; for e E in Reihenfolge absteigender Gewichte w(e) do if A {e} M then A A {e} end end return A Liefert der Algorithmus Greedy immer die optimale Lösung? (immer ˆ= für beliebige Mengensysteme und Gewichte?) Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 6 / 22

Beispiel: Greedy nicht immer optimal E = {a, b, c} M = {, {a}, {b}, {c}, {b, c} } w(a) = 3, w(b) = w(c) = 2 Dazu liefert der kanonische Greedy-Algorithmus die Lösung {a} mit Gewichtssume w(a) = 3 Die optimale Lösung ist {b, c} mit Gewichtssumme w(b) + w(c) = 4. Gesucht: Kriterium wann ist Greedy optimal? Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 7 / 22

Matroid Definition (Matroid) Ein Unabhängigkeitssystem (E, M) heißt Matroid, wenn für alle A, B M die folgende Austauscheigenschaft gilt: Ist A > B, dann gibt es x A \ B, so dass B {x} M. Definition (Basis) Sei (E, M) ein Matroid und B M ein maximales Element, also für alle x E \ B: B {x} / M. B heisst Basis des Matroids (E, M). Beobachtung: Alle Basen eines Matroids sind gleich gross. Also: sind B und C Basen des Matroids (E, M), dann B = C. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 8 / 22

Matroid garantiert Greedy-Optimalität Satz (Greedy-Optimalität): Sei (E, M) ein Unabhängigkeitssystem Für jede beliebige Gewichtsfunktion w : E R + berechnet der kanonische Greedy-Algorithmus eine optimale Lösung (E, M) ist ein Matroid. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 9 / 22

Greedy-Optimalität - Beweis (vgl. Schöning) Nehmen wir an, die Austauscheigenschaft gelte nicht. Dann gibt es A und B in M mit A < B, so dass für alle b B A gilt A {b} / M. Wir definieren folgende Gewichtsfunktion w : E R + r + 1,x A w(x) = r,x B A 0, sonst Sei r = B und wegen A < B, A = r 1. Der Greedy-Algorithmus wählt dann eine Menge T mit A T und T (B A) =. Also ist w(t ) = w(x A) A = (r + 1) A (r + 1)(r 1) = r 2 1. Wählt man stattdessen eine Lösung T B, so hat diese den Wert w(t ) r B = r 2. Der Greedy-Algorithmus liefert also nicht die optimale Lösung! Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 10 / 22

Greedy-Optimalität - Beweis (vgl. Schöning) Sei (E, U) ein Matroid mit Gewichtsfunktion w, welche die Elemente von E = {e 1,..., e n } absteigend anordnet, w(e 1 )... w(e n ) und T = {e i 1,..., e i k } die vom Greedy-Algorithmus gefundene Lösung. Nehmen wir an, T = {e j 1,..., e j k } sei eine bessere Lösung mit w(t ) > w(t ). Dann muss es einen Index µ geben mit w(e j µ ) > w(e i µ ) und µ dem kleinsten Index. Es sei A = {e i 1,..., e i µ 1} und B = {e j 1,..., e j µ } und A < B. Wegen der Austauscheigenschaft muss es ein Element e j σ B A geben, so dass A {e j σ } M. Es gilt aber w(e j σ ) w(e j µ ) > w(e i µ ), also hätte der Greedy-Algorithmus das Element e j σ bereits vor e i µ auswählen müssen. Widerspruch. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 11 / 22

Nutzen - Algorithmendesign Gegeben eine Optimierungsaufgabe, strukturiere die Anwendung in ein passend gewähltes Teilmengensystem (E, M) Lösungen des Optimierungsproblems müssen Lösungen des zu (E, M) gehörenden Maximierungs- bzw. Minimierungsproblems sein überprüfe, ob (E, M) die Matroid-Eigenschaft besitzt falls ja, wende den kanonischen Greedy-Algorithmus an das erfordert eine Prozedur, mit der überprüft werden kann, ob eine gegebene Teilmenge A M eine Lösung bzw. Teillösung des Optimierungsproblems ist Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 12 / 22

Auftragsplanung Gegeben: Menge E von n Aufträgen mit jeweils gleichem Zeitbedarf (ein Tag) Zu jedem Auftrag x E: Gewinn w(x) > 0 (Gewichtsfunktion). Anzahl Tage d(x), bis zu dem der Auftrag x abgeschlossen sein muss Gesucht: Menge L E von Aufträgen, so dass a) der Gesamtgewinn x L w(x) maximal ist, und b) L sich so sortieren lässt, dass jeder Auftrag vor seinem Abschlusstermin erledigt wird. Menge M zulässiger Auftragsmengen ist also gegeben durch L = {(d 1, p 1 ), (d 2, p 2 ),..., (d k, p k )} Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 13 / 22

Auftragsplanung: Beispiel Auftragsmenge E = {a, b, c, d, e} Auftrag x Wert w(x) Termin d(x) a 13 2 b 7 1 c 9 1 d 3 2 e 5 1 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 14 / 22

Auftragsplanung: Kanonischer Greedy-Algorithmus Ordne Aufträge in E absteigend nach Gewinn Jetzt der kanonische Greedy-Algorithmus wie folgt: A ; for e E in Reihenfolge absteigenden Gewinns w(e) do if A {e} M then A A {e} end end return A In A seien die Aufträge nach ihrem Abschlusstermin geordnet: d 1 d 2... d i Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 15 / 22

Auftragsplanung: Lösungsraum A Lösung Gewinn 0 {c} 9 {b} 7 {e} 5 {a} 13 {d} 3 {c, a} 22 {c, d} 12 {b, a} 20 {b, d} 10 {e, a} 18 {e, d} 8 {a, d} 16 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 16 / 22

Greedy Konstruktion des Huffmann-Baums Die Buchstaben eines Alphabets E = a 1, a 2,..., a n seien so durchnummeriert, dass p(a 1 ) p(a 2 )... p(a n ) (mit w(a i ) = p(a i )). 1 Erstelle für jeden Buchstaben einen einzelnen Knoten und notiere am Knoten die Häufigkeit. 2 Wiederhole die folgenden Schritte so lange, bis nur noch ein Baum übrig ist: Wähle die m Teilbäume mit der geringsten Häufigkeit in der Wurzel, bei mehreren Möglichkeiten die Teilbäume mit der geringsten Tiefe. Fasse diese Bäume zu einem neuen (Teil-)Baum zusammen. Notiere die Summe der Häufigkeiten in der Wurzel. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 17 / 22

Optimalität des Huffmann-Codebaums Ein Huffmann-Baum selber ist kein Matroid, kann aber in eine isomorphe Mengenstruktur abgebildet werden. In einem optimalen Codebaum B haben die beiden Blätter a 1 und a 2 einen gemeinsamen Vaterknoten. Für ((a 1, a 2 ), (a 3 ),..., (a n )) löst der Huffmann-Algorithmus die Aufgabenstellung mit p(a 1, a 2 )) = p(a 1 ) + p(a 2 ) optimal Die Expansion jedes Teilbaums, der nach der obigen Regel konstruiert worden ist, ist wieder optimal Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 18 / 22

... und noch mal der Kruskal-Algorithmus Kruskal-Algorithmus (1956) für minimalen Spannbaum auf ungerichtetem zusammenhängendem Graph (V, E) mit Kantengewicht w(e) für e E 1 Erzeuge Liste Q mit der Kantenmenge E aufsteigend sortiert nach Gewicht (kleinstes zuerst). Initialisiere F als leere Menge. 2 Entferne vorderste Kante e = {u, v} (mit kleinstem Gewicht) aus Q 3 Falls (V, F ) keinen Pfad zwischen u und v enthält: 4 Falls Q nicht leer, zurück zu 2. 5 Ausgabe F. F := F {e} Greedy-Algorithmus zur Minimierung der Summe der Kantengewichte Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 19 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 0.5 2 3 1.8 1.9 0.8 2.4 1.5 4 5 0.6 Q = [{2, 3}, {4, 5}, {1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}] F = {} Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 2 3 1.8 1.9 4 0.5 0.6 0.8 2.4 1.5 Q = [{4, 5}, {1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}] F = {{2, 3}} 5 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 0.5 2 3 1.8 1.9 0.8 2.4 1.5 Q = [{1, 3}, {1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}] F = {{2, 3}, {4, 5}} 4 5 0.6 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 0.5 2 3 1.8 1.9 0.8 2.4 Q = [{1, 2}, {3, 5}, {2, 4}, {2, 5}, {3, 4}] F = {{2, 3}, {4, 5}, {1, 3}} 1.5 4 5 0.6 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 0.5 Q = [{3, 5}, {2, 4}, {2, 5}, {3, 4}] F = {{2, 3}, {4, 5}, {1, 3}} 2 3 1.8 1.9 0.8 2.4 1.5 4 5 0.6 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus 1 1.3 Q = [{2, 4}, {2, 5}, {3, 4}] 0.5 2 3 1.8 1.9 0.8 2.4 F = {{2, 3}, {4, 5}, {1, 3}, {3, 5}} 1.5 4 5 0.6 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Beispiel-Lauf: Kruskal-Algorithmus Q = [] 1 1.3 0.5 2 3 1.8 1.9 0.8 2.4 F = {{2, 3}, {4, 5}, {1, 3}, {3, 5}} 1.5 4 5 0.6 Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 20 / 22

Kruskal: Korrektheit (1) E = Kantenmenge Gewichtsfunktion w : E R = Kantengewichte M 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 (E, M) ist ein Matroid. Der Kruskal minimiert, während der kanonische Greedy-Algorithmus maximiert. Der Algorithmus ist direkt anwendbar nach Transformation der Kantengewichte w (e) = c w(e). Die Konstante c ist so groß zu wählen, dass alle w (e) positiv werden. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 21 / 22

Kruskal: Korrektheit (2) Behauptung: (E, M) ist ein Matroid. Beweis(skizze): (E, M) ist Unabhängigkeitssystem, denn Teilgraphen von azyklischen Graphen sind azyklisch. Austauscheigenschaft: Seien A, B M Teilgraphen mit A > B, also (V, A) azyklisch und (V, B) azyklisch. (V, A) ist disjunkte Vereinigung von V A Bäumen, (V, B) ist disjunkte Vereinigung von V B Bäumen. Somit besteht (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 eines Baums von (V, B). Insbesondere können u und v so gewählt werden, dass die 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äumen von (V, B). Also e A \ B und B {e} M. (E, M) heißt graphisches Matroid. Prof. Dr. Gerhard Heyer (ASV, Uni LE) ADS 2, V6 16. Mai 2018 22 / 22