Effiziente Algorithmen (2), WS 2013/2014, ¨Ubungsblatt 6

Werbung
TU Ilmenau, Fakultät IA
Institut TI, FG Komplexitätstheorie und Effiziente Algorithmen
Univ.-Prof. Dr. Martin Dietzfelbinger, Dipl.-Inf. Martin Aumüller
http://www.tu-ilmenau.de/iti/lehre/lehre-ws-20132014/ea-ii/
Effiziente Algorithmen (2), WS 2013/2014, Übungsblatt 6
Themen für die sechste Übungsstunde am 27.11. bzw. 29.11.13. Abgabe von Lösungsvorschlägen (mit Übungsgruppe!) für die markierten Aufgaben (*) bis zum 26.11.2013, 17 Uhr,
per E-Mail an [email protected] oder in meinem Büro (Zuseb. 1057).
Achtung: Die Übung am 29.11. findet (einmalig) im Sr HU 011 statt.
Aufgabe 1 (Der Algorithmus von Hopcroft und Karp)
In Abschnitt 2.3.1 der Vorlesung haben Sie einen Matching-Algorithmus kennengelernt,
der ein kardinalitätsmaximales Matching in einem bipartiten Graphen G in Zeit O(nm)
bestimmt. Es wurde dabei erwähnt, dass der Algorithmus prinzipiell dem Vorgehen der
Ford-Fulkerson-Methode im Flussnetzwerk Ĝ entspricht. Wir wollen in dieser Aufgabe
den Algorithmus von Hopcroft und Karp betrachten, der (prinzipiell) dem Vorgehen der
Sperrflussmethode in Ĝ entspricht.
Der Algorithmus hat folgendes abstraktes Vorgehen: Wir starten mit M = ∅. In jeder
Runde bilden wir den zu M und G gehörenden Digraphen GM = (U, EM ) auf Basis der
beiden Knotenmengen F und N . (Siehe Abschnitt 2.3.1 im Skript.) Im nächsten Schritt
wird aus GM nun G0M erstellt, wobei G0M nur noch aus den kürzesten F -N -Wegen in GM
besteht. In diesem Graphen werden nun iterativ knotendisjunkte F -N -Wege gesucht,
solange dies möglich ist. (Achtung: Verschiedene N -Knoten können sich auf den gleichen
freien Knoten beziehen. Wie kann dieses Problem gelöst werden?) Das Matching M wird
mittels dieser Wege erweitert und eine neue Runde beginnt. Der Algorithmus stoppt,
wenn in GM kein F -N -Weg existiert.
(a) Geben Sie den oben beschriebenen Algorithmus in Pseudocode an. Achten Sie
darauf, die (den abstrakten Schritten entsprechenden) konkreten Algorithmen zu
benennen und zu verwenden.
(b) Zeigen Sie exemplarisch, dass sich das Vorgehen dieses Algorithmus in G und das
Vorgehen der Sperrflussmethode in Ĝ entsprechen.
Hinweis: Hierfür bietet es sich an, eine Runde in beiden Algorithmen darzustellen.
Wählen Sie dafür ein Beispiel und ein (aussagekräftiges) Ausgangs-Matching.
(c) Welche Laufzeit hat der Algorithmus von Hopcroft und Karp? Formulieren Sie die
zentralen Lemmata (Lemma 2.3.6. und Lemma 2.3.7.) in Matchingterminologie!
2
Effiziente Algorithmen (2), WS 2013/2014, Übungsblatt 6
Aufgabe 2 (Maschinenverleih)*
Die Ilmenauer Maschinenbaufirma Doppelt hält besser steckt in der Krise. Die Auftragslage ist schlecht und viele Maschinen stehen still. Ihr Chef Klaus A. beschließt, solche
Maschinen an andere Unternehmen zu verleihen, um zusätzlich etwas Geld zu verdienen.
Vier Maschinen M1 , M2 , M3 , M4 bietet er den vier Firmen F1 , F2 , F3 , F4 zum Verleih an
und erhält prompt Angebote der Unternehmen. Das Angebot jedes Unternehmens für
die jeweilige Maschine kann der folgenden Tabelle entnommen werden.
M1
M2
M3
M4
F1
45
50
0
45
F2
0
55
60
0
F3
0
15
25
5
F4
30
0
75
35
Gesucht ist nun natürlich eine gewinnbringendste Zuordnung von Maschinen zu Firmen.
Zur Risikominderung soll jede Maschine an genau eine Firma verliehen werden.
Lösen Sie die folgenden Teilaufgaben:
(a) Formulieren Sie das Problem als gewichtetes Matchingproblem in einem bipartiten
Graphen.
(b) Wenden Sie den Auktions-Matching-Algorithmus an, um eine optimale (d.h. den
höchsten Gewinn bringende) Zuordnung von Maschinen zu Firmen zu bestimmen.
(An einigen Stellen bietet es sich dabei an, die Berechnung abzukürzen.) Wie lautet
diese?
(c) Wenden Sie die ungarische Methode an, um eine optimale Zuordnung von Maschinen zu Firmen zu bestimmen.
Aufgabe 3 (Ungarische Methode in O(n3 ))*
In der Vorlesung wurde die Ungarische Methode vorgestellt. Sie haben eine einfache
Laufzeitanalyse gesehen, mit der man ohne großen Aufwand eine Laufzeit von O(n4 )
erreichen kann. Wir wollen diese Laufzeit nun auf O(n3 ) senken. Bearbeiten Sie dafür
die folgenden Aufgaben:
(a) Gehen Sie davon aus, dass Sie die für die Labelanpassung nötige Zahl α (Zeile 22
in Algorithmus 2.4.7) in jedem Schritt kennen. Beschreiben Sie nun eine Datenstruktur, mit der Sie in Zeit O(n2 ) einen matchingvergrößerenden Weg (Zeile 5-30
im Algorithmus 2.4.7) bestimmen können.
(b) Geben Sie nun eine Datenstruktur an, mit der die Berechnung von α in Zeit O(n2 )
(pro Finden eines mvW) möglich ist.
Hinweis: Für die Berechnung von α benötigt man die minimalen Kantenwerte
zwischen Knoten aus S und Knoten aus W − T . Sei αw dieser minimale Wert
für w ∈ W . Führen Sie nun während der Berechnung eines mvW diesen Wert
jeweils mit; aktualisieren Sie ihn geschickt, falls ein neuer Knoten zu S hinzugefügt
wird. Wie berechnen Sie aus den αw -Werten den Wert α? Begründen Sie, dass die
Laufzeitbeschränkung eingehalten wird.
Herunterladen