Übung 5

Werbung
Effiziente Graphenalgorithmen
Wintersemester 2011/2012
Wolfgang Stille
5. Übung (Abgabe: 13.12.2011, Besprechung 15.12.2010)
Aufgabe 1 ::: Dequeue-Algorithmus von d’Esopo und Pape ::: 4 Punkte
In der Praxis hat sich die Dequeue-Variante von d’Esopo und Pape (Folie IV-52) des label-korrigierenden
Algorithmus für kürzeste Wege als einer der schnellsten Varianten bewährt. Für gewisse Instanzen kann
dieser Ansatz jedoch exponentielle Laufzeit haben. In dieser Aufgabe lernen wir solche bösartigen Beispiele kennen.
Sei D = (V, A) ein azyklischer Digraph auf n Knoten (von 1 bis n durchnummeriert) und Kanten (i, j)
für jedes Knotenpaar mit i > j . Die Kantenlängen seien `(i, j) := 2i−2 − 2 j−1 ≥ 0. Startknoten für die
Kürzeste-Wege-Suche sei Knoten n.
Um den Ablauf des Dequeue-Algorithmus eindeutig festzulegen, nehmen wir an, dass die Adjazenzliste
für jeden Knoten v ∈ V \ {n} absteigend bezüglich der Kopfknoten jeder Kante sortiert ist. Nur die
Adjazenzliste von Knoten n ist aufsteigend bezüglich der Kopfknoten jeder Kante sortiert.
Aufgabe: Konstruieren Sie den oben angegebenen Graphen für n = 6 und führen Sie den DequeueAlgorithmus (per Hand oder kleinem Programm in der Programmiersprache Ihrer Wahl) aus. Aus der
Ausgabe muss die Funktionsweise klar ersichtlich hervorgehen, insbesondere jedoch die Tatsache, dass
das Distanzlabel von Knoten 1 alle ganzzahligen Werte zwischen 15 und 0 annimmt.
Bemerkung: Für allgemeines n kann man ebenfalls zeigen, dass das Distanzlabel von Knoten 1 alle ganzzahligen Werte zwischen 2n−2 − 1 und 0 annimmt. Daraus folgt, dass die Dequeue-Methode
schlimmstenfalls exponentielle Laufzeit benötigt.
Aufgabe 2 ::: Arbitrage ::: 3 Punkte
Arbitrage bezeichnet die Ausnutzung von Diskrepanzen der Wechselkurse, um durch einen Ringtausch
für eine Einheit einer Währung mehr als eine Einheit der gleichen Währung zu erhalten. Nehmen wir
beispielsweise an, daß man für einen Euro 46,6 indische Rupien kaufen kann, für eine indische Rupie
2,5 japanische Yen und für einen Yen 0,0091 Euro bekommt. Dann kann man für einen Euro durch
Umtauschen 46, 6 · 2, 5 · 0, 0091 = 1, 0556 Euro erwerben, was einem Profit von 5, 56% entspricht.
Gegeben seien n Währungen c1 , . . . , cn und eine n × n-Matrix (ri j ) mit den Wechselkursen. Dabei gebe ri j
die Anzahl der Einheiten von Währung c j an, die man für eine Einheit der Währung ci bekommt.
Geben Sie einen effizienten Algorithmus an, der feststellt, ob es eine Folge von Währungen gibt, für die
ri1 i2 · ri2 i3 · . . . rik−1 ik · rik i1 > 1
gilt, und diese Folge auch ausgibt, falls eine existiert. Analysieren Sie die Laufzeit Ihres Algorithmus.
Aufgabe 3 ::: Johnson’s Algorithmus ::: 3 Punkte
Professor Wiseguy behauptet, daß es nicht notwendig ist, zu Beginn von Johnson’s Algorithmus (Folie
IV-62) einen neuen Startknoten zu erzeugen. Stattdessen könne man einfach D0 = D setzen und einen
beliebigen Startknoten s ∈ V verwenden.
1
(a) Geben Sie ein Beispiel für einen gerichteten gewichteten Graphen D an, für den der Ansatz des
Professors falsche Ergebnisse liefert.
(b) Zeigen Sie, daß die Ergebnisse, die von Wiseguy’s Modifikation auf stark zusammenhängenden
Graphen berechnet werden, korrekt sind.
Anmerkung: Der Professor setzt natürlich eine numerisch stabile Implementierung voraus, in welcher
x + ∞ − ∞ wiederum x ergibt. ∞ wird in der Regel durch eine sehr große Zahl "big M "dargestellt, z.B.
M := nC + 1, wobei C := max {cuv }.
(u,v )∈A
2
Herunterladen