Effiziente Algorithmen“ ¨Ubungsblatt 5, WS 09/10

Werbung
TU Ilmenau, Fakultät IA
Institut TI, FG Automaten und Formale Sprachen
Prof. Dr. M. Kunde, Dipl.-Inf. Sascha Grau
http://www.tu-ilmenau.de/fakia/ea ws09.html
Effiziente Algorithmen“
”
Übungsblatt 5, WS 09/10
Abgabe bis: Dienstag, den 14.12.2009, 16:30 Uhr, Briefkasten im Blechhaus, zweiter Stock
Aufgabe 1 (Markierungen in Fibonacci-Heaps)
[Fredman & Tarjan 1984] In einem Fibonacci-Heap entspricht für einen Knoten des Ranges
k die Anzahl der Nachfolger in dessen Teilbaum (ihn mitzählend) mindestens Fk+2 (dabei
sei Fi die i-te Fibonacci-Zahl).
Die Operation decreaseKey2(x, k) entspreche decreaseKey(x, k) ohne Markenvergabe. D.h. sie
modifiziert den Schlüsselwert von x, trennt den in x verwurzelten Teilbaum von seinem bisherigen Baum
ab und fügt ihn als selbstständigen Baum in die Liste aller Bäume ein.
Fügen sie in einen leeren Fibonacci-Heap die Schlüsselfolge {1, . . . , 16} ein und führen sie danach eine
deleteMin-Operation durch. Finden sie auf dem entstehenden Heap eine Folge von 3 decreaseKey2
Operationen, so dass das obige zentrale Lemma verletzt wird.
Aufgabe 2 (Kürzeste Wege)
(k)
G = (V, E) sei ein gerichteter Graph mit V = {1, . . . , n} und Kantenlängen w(e) ≥ 0 für e ∈ E. Sei aij
die Länge eines kürzesten Weges von i nach j, der nur durch Knoten aus der Menge {1, . . . , k} läuft (i
(k)
und j ausgenommen). Falls kein solcher Weg existiert, sei aij = ∞. Beweisen Sie die folgenden Aussagen:
(
w((i, j)) falls (ij) ∈ E
(0)
(a) aij =
∞
sonst
n
o
(k)
(k−1) (k−1)
(k−1)
(b) aij = min aij
, aik
+ akj
für alle k ≥ 1.
Aufgabe 3 (Zuverlässigste Verbindung)
Gegeben Sein ein gerichteter Graph G = (V, E), bei dem jede Kante (u, v) ∈ E ein Kantengewicht
r(u, v) ∈ R mir 0 < r(u, v) < 1 besitzt. Das Kantengewicht r(u, v) gibt die Zuverlässigkeit eines
Kommunikationskanals vom Knoten u zum Knoten v an, d.h. r(u, v) ist die Wahrscheinlichkeit, dass
der Kanal von u nach v korrekt überträgt. Diese einzelnen Wahrscheinlichkeiten seien unabhängig.
Geben Sie einen effizienten Algorithmus an, der einen zuverlässigsten Weg zwischen zwei gegebenen
Knoten berechnet.
Aufgabe 4 (Kürzeste Wege und Spannbäume)
Sei G = (V, E) ein ungerichteter, zusammenhängender Graph mit Kantengewichten. Ein Spannbaum von
G ist ein azyklischer, zusammenhängender Teilgraph T = (V 0 , E 0 ) von G mit V 0 = V und E 0 ⊆ E. Ein
Spannbaum heißt minimal, wenn die Summe seiner Kantengewichte minimal unter allen Spannbäumen
ist.
(a) Zeigen Sie, dass die kürzesten Wege, die der Dijkstra-Algorithmus zu einer gegebenen Quelle
konstruiert, einen Spannbaum bilden (nicht unbedingt einen minimalen).
(b) Ist der Spannbaum, der durch den Dijkstra-Algorithmus konstruiert wird, ein minimaler
Spannbaum? Begründen Sie Ihre Anwort.
(c) Ist der Weg zwischen zwei Knoten in einem minimalen Spannbaumes in G auch ein kürzester Weg?
Begründen Sie Ihre Antwort.
Bitte wenden!
2
Effiziente Algorithmen“
”
Übungsblatt 5, WS 09/10
Aufgabe 5 (Eindeutige Kantengewichte und minimale Spannbäume)
Sei G = (V, E) ein ungerichteter, zusammenhängender Graph mit nicht negativen Kantengewichten
c(e) ≥ 0 für e ∈ E. Ferner gelte c(e) 6= c(e0 ) falls e 6= e0 , d.h. die Kantengewichte sind paarweise
verschieden. Zeigen Sie, dass es genau einen minimalen Spannbaum in G gibt.
Aufgabe 6 (Dynamische Minimale Spannbäume)
(a) Sei G = (V, E; c) ein ungerichteter Graph und T ein minimaler Spannbaum von G. Zeigen Sie, dass
für jede Kante (u, v) ∈ E, die nicht im Spannbaum liegt, und jede Kante (u0 , v 0 ) auf dem Weg ω
von u nach v in T folgende Ungleichung gilt:
c(u0 , v 0 ) ≤ c(u, v).
(b) G = (V, e; c) sei ein gewichteter Graph und T sei ein minimaler Spannbaum von G. Wir nehmen
an, dass G0 aus G durch Senken des Gewichts einer Kante außerhalb von T entsteht. Geben Sie
einen O(|V |) Algorithmus an, der einen minimalen Spannbaum T 0 von G0 aus T berechnet.
Herunterladen