finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB

23.06.2013 Aufrufe

s 6/6 6/7 4/7 4/4 1 3 6 0/2 2/3 0/3 4 0/2 4/4 2 5 8 6/6 2/2 2/2 6.3 Einige Anwendungen 8/9 7 t Abbildung 6.3: Maximaler Fluss für den Beispiel-Digraph aus Abbildung 6.2. 8. Es gilt 1/1 1/1 VOR(t) = +7 VOR(7) = +6 VOR(6) = +3 VOR(3) = −4 VOR(4) = −2 VOR(2) = +s also ist der augmentierende Weg mit EPS(t) = 2 der folgende (s, 2), (4, 2), (3, 4), (3, 6), (6, 7), (7, t). Der neue Fluss ist in Abbildung 6.3 dargestellt. Dieser (s, t)-Fluss ist maximal, ein (s, t)-Schnitt minimaler Kapazität ist δ + ({s, 2}), ein anderer δ + ({s, 1, 2, 3, 4, 5}). △ 6.3 Einige Anwendungen In diesem Abschnitt geht es nicht um praktische Anwendungen, sondern um Anwendungen der im Vorhergehenden angegebenen Sätze und Algorithmen zur Lösung anderer mathematischer (Optimierungs-)Probleme. Matchings maximaler Kardinalität in bipartiten Graphen In (3.9) haben wir das bipartite Matchingproblem kennengelernt. Wir wollen nun zeigen, wie man die Kardinalitätsversion dieses Problems, d. h. alle Kantengewichte sind 1, mit Hilfe eines Maximalflussverfahrens lösen kann. Ist also G = (V, E) ein bipartiter Graph mit Bipartition V1, V2, so definieren wir einen Digraphen D = (W, A) wie folgt. Wir wählen zwei neue Knoten, sagen wir s und t, und setzen W := V ∪ {s, t}. Die Bögen von D seien die folgenden. Ist e = uv ∈ E eine Kante von G, so geben wir dieser die Richtung von V1 nach V2. Ist also u ∈ V1 und v ∈ V2, so wird aus uv ∈ E der Bogen (u, v) andernfalls der Bogen (v, u). Ferner enthält D die Bögen (s, u) für alle u ∈ V1 und die Bögen (v, t) für alle v ∈ V2. Alle Bögen von D erhalten die Kapazität 1. Die Konstruktion von D aus G ist in Abbildung 6.4 an einem Beispiel dargestellt. 1/5 3/3 1/1 125

6 Maximale Flüsse in Netzwerken s t G D Abbildung 6.4: Transformation eines bipartiten Matchingproblems in ein Maximalflussproblem. (6.16) Satz. Ist G ein bipartiter Graph und D der wie oben angegeben aus G konstruierte Digraph, dann ist der Wert eines maximalen zulässigen (s, t)-Flusses x in D gleich dem Wert eines kardinalitätsmaximalen Matchings in D. Ferner kann ein kardinalitätsmaximales Matching M direkt aus x konstruiert werden. △ Beweis. Hausaufgabe. ✷ Zusammenhangsprobleme in Graphen und Digraphen Mit Hilfe von Maximalflussalgorithmen können ferner für einen Digraphen die starke Zusammenhangszahl und die starke Bogenzusammenhangszahl in polynomialer Zeit bestimmt werden. Analog können in einem ungerichteten Graphen die Zusammenhangszahl und die Kantenzusammenhangszahl in polynomialer Zeit ermittelt werden. Mehrere Quellen und Senken Die Festlegung, dass wir in einem Digraphen einen Fluss von nur einer Quelle zu nur einer Senke schicken wollen, scheint auf den ersten Blick eine starke Einschränkung zu sein. Jedoch können Maximalflussprobleme mit mehreren Quellen und Senken sehr einfach auf das von uns behandelte Problem zurückgeführt werden. Gegeben sei ein Digraph D = (V, A) mit Bogenkapazitäten c(a) ≥ 0 für alle a ∈ A. Ferner seien S = {s1, . . . , sp} ⊆ V Quellen und T = {t1, . . . , tq} ⊆ V Senken. Es gelte S ∩ T = ∅. Ein zulässiger (S, T )-Fluss in D ist ein Vektor x ∈ R A mit folgenden Eigenschaften 0 ≤ xa ≤ ca für alle a ∈ A x(δ − (v)) = x(δ + (v)) für alle v ∈ V \ (S ∪ T ). Der Wert eines zulässigen (S, T )-Flusses x ist definiert als val(x) := s∈S (x(δ + (s)) − x(δ − (s))). Die Bestimmung eines maximalen (S, T )-Flusses in D kann wie folgt auf ein Maximalflussproblem in einem Digraphen D ′ = (V ′ , A ′ ) mit einer Quelle und einer Senke zurückgeführt werden. Wir wählen zwei neue Knoten s, t und setzen 126 V ′ := V ∪ {s, t}.

s<br />

6/6<br />

6/7<br />

4/7 4/4<br />

1 3 6<br />

0/2<br />

2/3<br />

0/3<br />

4<br />

0/2<br />

4/4<br />

2 5 8<br />

6/6 2/2<br />

2/2<br />

6.3 Einige Anwendungen<br />

8/9<br />

7 t<br />

Abbildung 6.3: Maximaler Fluss für den Beispiel-Digraph aus Abbildung 6.2.<br />

8. Es gilt<br />

1/1<br />

1/1<br />

VOR(t) = +7<br />

VOR(7) = +6<br />

VOR(6) = +3<br />

VOR(3) = −4<br />

VOR(4) = −2<br />

VOR(2) = +s<br />

also ist der augmentierende Weg mit EPS(t) = 2 der folgende (s, 2), (4, 2), (3, 4),<br />

(3, 6), (6, 7), (7, t). Der neue Fluss ist in Abbildung 6.3 dargestellt. Dieser<br />

(s, t)-Fluss ist maximal, ein (s, t)-Schnitt minimaler Kapazität ist δ + ({s, 2}), ein<br />

anderer δ + ({s, 1, 2, 3, 4, 5}). △<br />

6.3 Einige Anwendungen<br />

In diesem Abschnitt geht es nicht um praktische Anwendungen, sondern um Anwendungen<br />

der im Vorhergehenden angegebenen Sätze und Algorithmen zur Lösung anderer<br />

mathematischer (Optimierungs-)Probleme.<br />

Matchings maximaler Kardinalität in bipartiten Graphen In (3.9) haben wir das bipartite<br />

Matchingproblem kennengelernt. Wir wollen nun zeigen, wie man die Kardinalitätsversion<br />

dieses Problems, d. h. alle Kantengewichte sind 1, mit Hilfe eines Maximalflussverfahrens<br />

lösen kann.<br />

Ist also G = (V, E) ein bipartiter Graph mit Bipartition V1, V2, so definieren wir einen<br />

Digraphen D = (W, A) wie folgt. Wir wählen zwei neue Knoten, sagen wir s und t, und<br />

setzen W := V ∪ {s, t}. Die Bögen von D seien die folgenden. Ist e = uv ∈ E eine Kante<br />

von G, so geben wir dieser die Richtung von V1 nach V2. Ist also u ∈ V1 und v ∈ V2,<br />

so wird aus uv ∈ E der Bogen (u, v) andernfalls der Bogen (v, u). Ferner enthält D die<br />

Bögen (s, u) für alle u ∈ V1 und die Bögen (v, t) für alle v ∈ V2. Alle Bögen von D<br />

erhalten die Kapazität 1. Die Konstruktion von D aus G ist in Abbildung 6.4 an einem<br />

Beispiel dargestellt.<br />

1/5<br />

3/3<br />

1/1<br />

125

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!