Einführung in die Diskrete Mathematik ¨Ubung 10

Werbung
Technische Universität Chemnitz
Frank Fischer
Chemnitz, 5. Januar 2010
Abgabe: 4. Januar 2010
Einführung in die Diskrete Mathematik
Übung 10
1. Berechnen Sie für das folgende Netzwerk (Werte sind obere Kantenkapazitäten,
untere Kapazitäten sind 0) einen maximalen Fluss von s nach t mit dem Algorithmus von Ford und Fulkerson unter Verwendung jeweils kürzester augmentierender
Wege. Geben Sie alle Schnitte mit minimaler Kapazität an!
a
d
5
3
8
6
2
s
c
15
3
15
2
b
f
8
5
15
t
8
8
2
e
10
g
(3 Punkte)
2. Führen Sie den Algorithmus von Floyd für folgenden gerichteten Graphen aus. Wie
lassen sich die jeweils kürzesten Wege aus der Information rekonstruieren?
1
1
2
3
4
5 2
2
6
3
5
7
4
5
3 -2
-4 8
-1
7
(3 Punkte)
3. Für ein Netzwerk seien zusätzlich untere Kapazitäten l ∈ RA , l ≤ c gegeben. Ein
Fluss x ∈ RA sei zulässig, wenn er die Flusserhaltungsbedingungen und la ≤ xa ≤
ca für alle a ∈ A erfüllt.
(a) Modifizieren Sie den Algorithmus von Ford und Fulkerson so, dass er auch
für dieses Netzwerk mit einem gegebenen zulässigen Anfangsfluss einen maximalen Fluss ermittelt.
(3 Punkte)
(b) Konstruieren Sie ein Ersatznetzwerk, um in einer Phase 0 mit dem Algorithmus von Ford und Fulkerson einen zulässigen Fluss zu bestimmen. (3 Punkte)
4. Es sei eine Matrix A ∈ Qm×n gegeben. Die Elemente von A sollen so auf ganze Zahlen gerundet werden, dass der Rundungsfehler in jedem Element, in jeder Zeilenund Spaltensumme und in der Summe aller Elemente kleiner eins ist. Entwickeln
Sie einen Algorithmus, der das realisiert.
(4 Punkte)
5. Modifizieren Sie den Dijkstra-Algorithmus, um das Bottleneck-Path-Problem zu
lösen: Gegeben seien ein Digraph D = (V, A) mit Kantenlängen c(a) ≥ 0, a ∈ A
und s, t ∈ V . Finde einen (gerichteten) s − t−Weg, dessen längste Kante so kurz
wie möglich ist.
(3 Punkte)
Herunterladen