finale Version des Vorlesungsskripts - ZIB

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

23.06.2013 Aufrufe

7.3 Der Netzwerk-Simplex-Algorithmus Algorithmus (7.29) muss nicht terminieren, da es möglich ist, dass Bögen in T existieren, die bereits ihre untere oder obere Kapazitätsschranke erreicht haben. Es gilt dann ε = 0 in Gleichung (7.18) und durch den Tausch der Bögen e und f ändert sich zwar die Baumlösung, jedoch weder der Fluss x noch der Zielfunktionswert. Ohne entsprechende Maßnahmen kann es tatsächlich zu Cycling kommen, d. h. nach einer endlichen Zahl solcher Schritte werden dieselben Bögen erneut getauscht und der Algorithmus gerät in eine Endlosschleife. Um Cycling zu vermeiden, muss man den Bogen f, der den Baum T verlässt, sorgfältig auswählen. Wir nennen eine Baumlösung (x, T, L, U) degeneriert, falls ein Bogen a ∈ T mit xa = la oder xa = ua existiert. Außerdem wählen wir einen festen Knoten r ∈ V , der im Folgenden als Wurzel aller Spannbäume T fungieren wird. (7.31) Definition. Eine Baumlösung (x, T, L, U) heißt stark zulässig, wenn für jeden Knoten i = r der eindeutige [i, r]-Weg P in T ein augmentierender Weg für x ist, d. h. wenn für alle Bögen a ∈ P gilt: la < xa, falls a ein Rückwärtsbögen und xa < ua, falls a ein Vorwärtsbogen ist. Insbesondere ist jede nicht degenerierte Baumlösung stark zulässig. △ Es ist leicht zu sehen, dass bei der Wahl r = k die Start-Baumlösung mit (T, L, U) = (A ′ \ A, A, ∅) für I ′ nicht degeneriert und daher stark zulässig ist. Sei e der im Pricing-Schritt gewählte Bogen und C der Kreis in T + e. Als Orientierung für C wählen wir die Richtung von e, falls e ∈ L und die entgegengesetzte Richtung, falls e ∈ U (der Grund für diese Abweichung von Algorithmus (7.29) wird im Beweis von Satz (7.37) klar). Ein Bogen in C − e heißt blockierend, wenn er nach dem Augmentieren eine Kapazitätsgrenze erreicht. Außerdem nennen wir den eindeutigen Knoten von C, der r in T am nächsten ist, den Scheitel von C. Wenn nun der Bogen f ∈ C im Augmentieren-Schritt nach der folgenden Regel gewählt wird, ist die resultierende Baumlösung wieder stark zulässig. (7.32) Regel des letzten blockierenden Bogens. Durchlaufe C beginnend beim Scheitel s in der Orientierung von C und wähle f als letzten blockierenden Bogen. △ (7.33) Satz. Sei (x, T, L, U) eine stark zulässige Baumlösung und e /∈ T der im Pricing-Schritt gewählte Bogen. Wenn im Augmentieren-Schritt der Bogen f gemäß (7.32) gewählt wird, so ist die neue Baumlösung nach dem Update-Schritt stark zulässig. △ Beweis. Sei x ′ der Fluss nach dem Augmentieren-Schritt. Wir müssen zeigen, dass für jeden Knoten i = r der [i, r]-Weg in T ′ := (T − f) + e bezüglich x ′ augmentierend ist. Dazu zerlegen wir den Kreis C in T + e in einen Weg W , der beim Scheitel s beginnt und C in Orientierungsrichtung durchläuft, den Bogen f, und einen Weg W ′ , der in s endet, also C = (W, f, W ′ ) (siehe Abbildung 7.2). 1. Fall: i ist der Scheitel s von C. In T und T ′ ist i auf demselben [i, r]-Weg P mit r verbunden. Für einen Bogen a ∈ P ändert sich weder der Fluss noch die Richtung zu r. Da P in T augmentierend ist, ist P daher auch in T ′ augmentierend. Für die folgenden Fälle genügt es also zu zeigen, dass der [i, s]-Weg augmentierend ist. 145

7 Flüsse mit minimalen Kosten W f r s W ′ Abbildung 7.2: Situation im Beweis von Satz (7.33). 2. Fall: i ist auf dem Weg W ′ . Weil f der letzte blockierende Bogen ist, wenn C in Orientierungsrichtung durchlaufen wird, ist kein Bogen in W ′ blockierend in der Richtung von C. Zusammen mit Fall 1 folgt, dass kein Bogen auf dem [i, r]-Weg blockierend ist. 3. Fall: i ist auf dem Weg W . Sei ε ≥ 0 die Augmentierungs-Menge im Augmentieren- Schritt. Ist ε > 0, so ist x ′ auf W um ε Einheiten größer als x, also ist kein Bogen von W in Richtung s blockierend. Gilt hingegen ε = 0, so impliziert f /∈ W , dass der [i, s]-Weg P in T und T ′ übereinstimmt und sich darauf weder Fluss noch Richtung zu r ändert. Wie im 1. Fall ist P daher auch in T ′ bezüglich x ′ augmentierend. 4. Fall: i ist nicht in C. Da (x, T, L, U) stark zulässig ist, ist der [i, r]-Weg augmentierend bezüglich x. Sind P und C bogendisjunkt, so ist P auch der [i, r]-Weg in T ′ und daher augmentierend bezüglich x ′ . Sonst sei j der erste Knoten auf P , der zu C gehört. In T ′ ist der [i, j]-Weg augmentierend bezüglich x ′ , weil in T augmentierend bezüglich x. Da für den Knoten j einer der ersten drei Fälle gilt, ist auch der [i, r]- Weg augmentierend in T ′ . ✷ Das folgende Ergebnis benötigen wir für den Terminierungs-Beweis. Es ermöglicht außerdem eine effizientere Berechnung des Knotenpreisvektors in Schritt 2 von Algorithmus (7.29). (7.34) Lemma. Sei (x, T, L, U) eine Baumlösung in Algorithmus (7.29) und sei y der zugehörige Knotenpreisvektor. Seien weiterhin die Bögen e = (u, v) und f die im Pricing- bzw. Augmentieren-Schritt gewählten Bögen und y ′ der neue Knotenpreisvektor. Schließlich sei T1 die Zusammenhangskomponente von T − f, die r enthält und T2 := V \ T1. Dann gilt: y ′ ⎧ ⎪⎨ yi i ∈ T1, i = yi + ¯xe ⎪⎩ yi − ¯xe i ∈ T2, u ∈ T1, i ∈ T2, u ∈ T2. (7.35) △ 146

7.3 Der Netzwerk-Simplex-Algorithmus<br />

Algorithmus (7.29) muss nicht terminieren, da es möglich ist, dass Bögen in T existieren,<br />

die bereits ihre untere oder obere Kapazitätsschranke erreicht haben. Es gilt dann<br />

ε = 0 in Gleichung (7.18) und durch den Tausch der Bögen e und f ändert sich zwar die<br />

Baumlösung, jedoch weder der Fluss x noch der Zielfunktionswert. Ohne entsprechende<br />

Maßnahmen kann es tatsächlich zu Cycling kommen, d. h. nach einer endlichen Zahl<br />

solcher Schritte werden dieselben Bögen erneut getauscht und der Algorithmus gerät in<br />

eine Endlosschleife.<br />

Um Cycling zu vermeiden, muss man den Bogen f, der den Baum T verlässt, sorgfältig<br />

auswählen. Wir nennen eine Baumlösung (x, T, L, U) degeneriert, falls ein Bogen a ∈ T<br />

mit xa = la oder xa = ua existiert. Außerdem wählen wir einen festen Knoten r ∈ V , der<br />

im Folgenden als Wurzel aller Spannbäume T fungieren wird.<br />

(7.31) Definition. Eine Baumlösung (x, T, L, U) heißt stark zulässig, wenn für jeden<br />

Knoten i = r der eindeutige [i, r]-Weg P in T ein augmentierender Weg für x ist, d. h.<br />

wenn für alle Bögen a ∈ P gilt: la < xa, falls a ein Rückwärtsbögen und xa < ua,<br />

falls a ein Vorwärtsbogen ist. Insbesondere ist jede nicht degenerierte Baumlösung stark<br />

zulässig. △<br />

Es ist leicht zu sehen, dass bei der Wahl r = k die Start-Baumlösung mit (T, L, U) =<br />

(A ′ \ A, A, ∅) für I ′ nicht degeneriert und daher stark zulässig ist.<br />

Sei e der im Pricing-Schritt gewählte Bogen und C der Kreis in T + e. Als Orientierung<br />

für C wählen wir die Richtung von e, falls e ∈ L und die entgegengesetzte Richtung,<br />

falls e ∈ U (der Grund für diese Abweichung von Algorithmus (7.29) wird im Beweis von<br />

Satz (7.37) klar). Ein Bogen in C − e heißt blockierend, wenn er nach dem Augmentieren<br />

eine Kapazitätsgrenze erreicht. Außerdem nennen wir den eindeutigen Knoten von C,<br />

der r in T am nächsten ist, den Scheitel von C. Wenn nun der Bogen f ∈ C im Augmentieren-Schritt<br />

nach der folgenden Regel gewählt wird, ist die resultierende Baumlösung<br />

wieder stark zulässig.<br />

(7.32) Regel <strong>des</strong> letzten blockierenden Bogens. Durchlaufe C beginnend beim<br />

Scheitel s in der Orientierung von C und wähle f als letzten blockierenden Bogen. △<br />

(7.33) Satz. Sei (x, T, L, U) eine stark zulässige Baumlösung und e /∈ T der im Pricing-Schritt<br />

gewählte Bogen. Wenn im Augmentieren-Schritt der Bogen f gemäß (7.32)<br />

gewählt wird, so ist die neue Baumlösung nach dem Update-Schritt stark zulässig. △<br />

Beweis. Sei x ′ der Fluss nach dem Augmentieren-Schritt. Wir müssen zeigen, dass für<br />

jeden Knoten i = r der [i, r]-Weg in T ′ := (T − f) + e bezüglich x ′ augmentierend ist.<br />

Dazu zerlegen wir den Kreis C in T + e in einen Weg W , der beim Scheitel s beginnt<br />

und C in Orientierungsrichtung durchläuft, den Bogen f, und einen Weg W ′ , der in s<br />

endet, also C = (W, f, W ′ ) (siehe Abbildung 7.2).<br />

1. Fall: i ist der Scheitel s von C. In T und T ′ ist i auf demselben [i, r]-Weg P mit r<br />

verbunden. Für einen Bogen a ∈ P ändert sich weder der Fluss noch die Richtung<br />

zu r. Da P in T augmentierend ist, ist P daher auch in T ′ augmentierend. Für die<br />

folgenden Fälle genügt es also zu zeigen, dass der [i, s]-Weg augmentierend ist.<br />

145

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!