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)