Professional Documents
Culture Documents
Durch die immer steigende Nutzung des Internets ist ein Ausbau der Haupt-
netzwerkverbindungen unumgänglich. Eine adäquate Lösung bietet die opti-
sche Übertragungstechnik mit ihrer extrem hohen Bandbreite. Eine so neue
und leistungsfähige Technik ist selbstverständlich sehr kostenintensiv. In die-
ser Arbeit wird ein optisches Netzwerk so konstruiert, dass die Kapazität
genügend groÿ und die Kosten minimal sind.
1
Inhaltsverzeichnis
1 Einführung 3
1.1 Problemstellung (Rwa) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Multidatenuss-Netzwerke (Mcf) . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Wellenlängendivisions-Multiplexen (Wdm) . . . . . . . . . . . . . . . . . . 3
1.4 Modell für optische Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Weitere Verbesserungen 10
4.1 Kürzeste Pfade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Dynamische kürzeste Pfade . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 Ergebnis 11
2
1 Einführung
Zur Lösung des hier beschriebenen Problems werden einige Begrie und Hilfsmittel benö-
tigt. Zunächst wird die Problemstellung erläutert, danach der behandelte Typ Netzwerk
beschrieben und zuletzt die technische Grundlage modelliert.
3
f (x) 600nm 550nm 500nm
c1 f1
a1 b1 e1
d1 g1
c2 f2
S a2 b2 e2 T
d2 g2
c3 f3
a3 b3 e3
d3 g3
4
1.5 Überblick
Diese Grundlagen werden für Lösung des Problems benötigt. Im folgenden Abschnitt
wird zunächst ein Approximationsalgorithmus beschrieben. Daraufhin wird das Konzept
von dynamischen Single Source Shortest Path-Bäumen behandelt, das den Ap-
proximationsalgorithmus verbessert. Auÿerdem werden noch einige Detailverbesserungen
vorgenommen. Zuletzt wird ein Fazit gezogen.
2.1 Idee
Ziel ist es, das Mcf-Problem zu lösen. Um dies zu leisten, betrachten wir das dazu duale
Problem: Dabei sollen den Pfaden Längen zugewiesen werden, sodass die gesamte Länge
des kürzesten Pfades gröÿer als 1 ist.
Beim Algorithmus wird der Graph nach Pfaden kürzer als 1 durchsucht und wenn ein
solcher gefunden wird, die Daten an ihm entlang geleitet. Zunächst werden die primären
Variablen betrachtet: Die Datenmenge auf einer Kante wird um einen Summanden er-
höht, der sich anhand der minimalen Kapazität aller Kanten im Pfad berechnet. Danach
werden auch die dualen Variablen aktualisiert, also die Pfadlängen mit einem Faktor in
Abhängigkeit des Summanden skaliert.
Zweck der parallelen Behandlung des primären Problems, also der Datenmenge auf den
Kanten, und des sekundären Problems, also der Länge der Kanten, ist, dass über die Län-
ge des kürzesten Pfades bestimmt werden kann, ob sich die Approximation der genauen
Lösung gut genug angenähert hat. Daher ist auch die Abbruchbedingung im Approxima-
tionsalgorithmus Algorithm 1 über die Länge des kürzesten Pfades deniert. Diese wird
nicht in der Ausgabe angegeben [Fle99].
2.2 Algorithmus
Im Folgenden wird der (1 + )-Approximationsalgorithmus (Algorithm 1) detailliert an-
hand des Codes erklärt. Für diesen gilt:
• Ausgabe: Längenfunktion L auf E: für jeden Pfad si → ti gilt L(P ath) > 1
5
Algorithm 1 (1 + )-Approximationsalgorithmus
1
1: {Initializing}∀e ∈ E, L(e) = δ = (1 + ) ((1 + ) n)− , fi (e) = 0
2: {Lower bound on length of a Sssp} λ = δ
3: while λ ≤ 1 + do
4: for all i = 1 . . . k do
5: P ath ←Sssp((si , ti ))
6: while L(P ) ≤ (1 + ) λ do
7: cm ← mine∈P ath {c (e)}
8: ∀e ∈ P ath do fi (e) ← fi (e) + log cm 1+
1+ δ
cm
9: ∀e ∈ P ath do L(e) ← L(e)(1 + c(e) )
10: P ath ←Sssp((si , ti ))
11: end while
12: end for
13: λ ← λ (1 + )
14: end while
Nach der Initialisierung (Zeile 1 und 2) leitet der Algorithmus die Daten entlang der
kürzesten Pfade: Für jede Anfrage (Zeile 4) wird der kürzeste Pfad berechnet (Zeile 5).
Solange der berechnete Pfad kürzer als die gesetzte Maximallänge ist (Zeile 6), wird der
Pfad bearbeitet: Mit der minimalen Kapazität (Zeile 7) wird die Erhöhung der Daten-
menge auf den Kanten (Zeile 8) und die Skalierung der Kantenlängen (Zeile 9) berechnet.
Der Algorithmus terminiert, wenn die Länge jedes kürzesten Pfades von der Quelle bis
zum Ziel für jede Anfrage >1 ist.
2.3 Korrektheit
Die Korrektheit des Algorithmus ist durch folgende drei Lemmata gegeben [Fle99].
Beweis: Initial gilt L(e) = δ für alle Kanten (s. Algorithm 1, Zeile 1). Da bei jedem Schritt
des Algorithmus ein Pfad mit L(P ath) ≤ 1 mit maximal 1+ multipliziert wird, kann ein
Pfad nicht länger als 1+ sein. Zusätzlich gilt auch, dass ein Pfad mit mindestens1+
1+
multipliziert wird, folglich ist die Anzahl der Verbesserungen ≤ m log1+ [Fle99].
δ
Beweis: Wenn der Fluss auf einer Kante erhöht wird, wird, um die Dualität zu erhalten,
die Länge der Kante mit 1 + ai 0
multipliziert. Nun gelten oensichtlich für alleP ≤ ai ≤
1 + a ≤ (1 + )a ai
Q
1∀i folgende zwei Gleichungen: und i (1 + ai ) ≥ (1 + ) . Als
i
ai bezeichnen wir hier eine Hilfsvariable, die für jeden Schritt unterschiedlich ist, aber
immer angegebene Restriktion erfüllt. Initial gilt L(e) = δ , nal L(e) < 1 + . Daraus
lässt sich der Schluss ziehen, dass f (e) ≤ c(e) log1+ 1+
δ korrekt ist [Fle99].
6
Beweis: Aufgrund des aufwendigen Beweises sei hier auf ihn verzichtet. Zu nden ist er
in [GK98].
2.4 Komplexität
Die Anzahl der Iterationen lässt sich mit einem Worst Case-Szenario abschätzen: Wenn
jeder Sssp aus nur genau einer Kante besteht, ist die Iterationsanzahl maximal, für die
1+
sich dann m log1+ δ als obere Schranke ergibt. Da sich δ direkt aus dem anzugebenen
Genauigkeitsparamter ergibt, kann δ so gewählt werden, dass die Anzahl der Iterationen
O m−2 log1+ n +
in liegt [BCL 03]. Für einen ersten naiven Ansatz verwenden wir
den klassischen Dijkstra-Algorithmus zur Sssp-Berechnung, der in O (m + n log n) liegt.
Daraus schlieÿen wir für die Komplexität des gesamten Algorithmus zur Lösung des
Rwa-Problems:
m log1+ n
O 2
(m + n log n)
3.1 Idee
Der klassische Dikstra untersucht bei der Berechnung des kürzesten Pfades jeden Knoten
im Netzwerk. Beim Approximationsalgorithmus unterscheiden sich die Netzwerktopolo-
gien von Schritt zu Schritt nur geringfügig. Es wird nur die Länge einer Kante erhöht.
Oensichtlich kommt also nicht jeder Knoten des Netzwerks in Frage, nun auf dem kür-
zesten Pfad zu liegen. Diese Tatsache wird berücksichtigt, indem der Sssp-Baum auf
Basis der Veränderung aktualisiert wird.
Der vorgestellte Algorithmus läuft in zwei Schritten ab. Zuerst wird das Netzwerk darauf-
hin untersucht, welche Knoten sich so geändert haben, dass sie den kürzesten Pfad beein-
usst haben könnten. Danach wird dann der konkrete kürzeste Pfad gesucht [FMSN00].
• Knoten pink und dessen Unterbaum weiÿ, wenn Distanz zur Quelle unverändert
7
3.2.1 Algorithmus
Im Folgenden wird der erste Schritt des Dsssp-Algorithmus, die Einfärbung des Graphen
(Algorithm 2), detailliert anhand des Codes erklärt. Für diesen gilt:
Algorithm 2 Einfärbung
Nach der Initialisierung (Zeile 1), wird für alle Knoten aus M (Zeile 2) beginnend mit
dem am nächsten zur Quelle (Zeile 3) geprüft, ob sich die Distanz zur Quelle geändert
hat (Zeile 4). Ist dies der Fall, wird der Knoten rot (Zeile 8) und sein Nachfolger pink
(Zeile 9 und 10) gefärbt, sonst der Knoten pink und sein Unterbaum implizit weiÿ (Zeile
5 und 6).
3.2.2 Korrektheit
Die folgenden vier Eigenschaften sind so gut gewählt, dass ihre Korrekteit den Algorith-
mus veriziert [BCL 03].
+
Eigenschaft 3.2 Jeder Nachfolger eines roten Knoten und kein Nachfolger eines pinken
Knoten wird in M eingefügt, solange er nicht im Sssp ist.
Algorithm 2, Zeile 8-10 zeigt, dass alle Nachfolger von roten Knoten in M eingefügt wer-
den, und Algorithm 2, Zeile 4-5, dass kein Nachfolger von weiÿen Knoten in M eingefügt
wird.
Eigenschaft 3.3 Ein Knoten ist genau dann weiÿ, wenn er niemals in M ist.
8
Dies ist implizit dadurch korrekt, dass alle Knoten, die jemals in M sind, mindestens
pink sind.
Eigenschaft 3.4 Wenn u und v in M sind, dann bedeutet D(u) ≤ D(v), dass u vor v
bearbeitet wird.
Sei hierfür t(x) der Zeitpunkt zu dem x bearbeitet wird, v ein gegebener Knoten, ∆(v)
die Menge der Knoten die vor v bearbeitet wird und P (v) ∈ ∆(v) der Vater von v . Es
gilt:
∀u ∈ ∆(v) : t(u) < t(P (v)) ∧ P4 ∧ D(P (v)) < D(v) → D(u) < D(P (v) < D(v))
∀u ∈ ∆(v) : t(P (v)) < t(u) gilt nach Denition: t(u) < t(v). Also wird v zumindest in
M eingereiht, wenn P (v) bearbeitet wird → v ∈ M wenn t(u).
M ist Prioritäts-Queue → bei t(u) ist u = min{x ∈ M } → D(u) < D(v).
Also gilt die Eigenschaft für ∆(v) ∪ {v}.
3.3.1 Algorithmus
Da der zweite Schritt in der Literatur bereits detailliert erläutert wurde [FMSN00], hier
nur eine kurze Erklärung anhand des zusammengefassten Pseudocodes Algorithm 3.
In Zeile 1 wird der Heap Q des Algorithmus so initalisiert, dassD(z) die Priorität des
Knoten z darstellt. Hat z keinen roten Nachbarn, gilt D(z) = ∞, sonst sei u der beste
rote Nachbar und es gilt D(z) = D(u) + c(u, z). Zeile 2 zeigt, dass der ganze Heap
abgearbeitet wird. In Zeile 3 wird der Knoten z mit minimaler Priorität extrahiert. Dann
wird kontrolliert, ob es im direkten Umfeld einen kürzeren Pfad als den aktuell kürzesten
gibt (Zeile 4-5). Falls dies so ist, wird der ganze Heap aktualisiert (Zeile 6).
9
3.3.2 Korrektheit
Zum Beweis der Korrekheit genügt folgendes Lemma, welches in [FMSN00] bewiesen
wird.
Lemma 3.1 Wenn sich die Länge einer Kante erhöht und Schritt 2 eine gute rot-pink-
weiÿ-Färbung übergeben bekommt, so wird ein valider Sssp-Baum berechnet.
3.4 Komplexität
Die Komplexität des gesamten Dsssp-Algorithmus ist in O(αβ log n), wobei α die Anzahl
der bearbeiteten Knoten und β ein intelligenter maximaler Grad ist. Beispiele für β sind
√
≤ 3 für planare Graphen, ≤ d für Graphen mit Grad d und = O( m) für generische
Graphen. Auf jeden Fall ist die Komplexität immer kleiner als die des klassischen Dijkstra
O(m + n log n) +
[BCL 03, FMSN00].
4 Weitere Verbesserungen
Zwei weitere Überlegungen zur Verbesserung des Rwa-Algorithmus kommen auf. Be-
trachtet wird die Berechnung der kürzesten Pfade und der dynamischen kürzesten Pfade.
Status Quo: Das Netzwerk hat n Knoten und m Kanten. Die Gröÿe des Hilfsgraphen
wird maÿgeblich bestimmt durch die Anzahl der Wellenlängen w und der Anfragen, hat
also O(n2 ) Knoten und O(wn2 ) Kanten.
10
4.2 Dynamische kürzeste Pfade
Es wird oensichtlich nur eine Ebene bei der Aktualisierung der kürzesten Pfade be-
rücksichtigt, da nach Denition eine Anfrage die Wellenlänge und damit die Ebene nicht
wechselt. Der Dsssp-Algorithmus mit der Komplexität O(αβ log n) lässt sich in einer
Ebene leicht durch Dijkstras O(m + n log n) nach oben abschätzen. Der Abschluss der
Aktualisierung benötigt nocheinmal O(n log w) [BCL+ 03].
5 Ergebnis
Verglichen mit
dem linearen
Programm, das den naiven Ansatz darstellt, ist die Verbes-
n4 w2 ε2
serung in O log1+ε n . Der Rwa-Algorithmus lässt sich letztendlich abschätzen durch:
log1+ε n
O ε2
wn2 (m + n log nw)
Der Algorithmus ist also bereits gut und kann auf komplexen Netzwerken arbeiten, bei
hochkomplexen Netzwerken weist er aber noch Ezienzprobleme auf. Wenn zusätzlich
noch hohe Genauigkeit verlangt wird, kann die Implementierung zu numerischen Ge-
+
nauigkeitsproblemen führen [BCL 03]. Weitere Verbesserungen das Algorithmus können
das Problem aber wirtschaftlich lösbar machen und damit das Tor zur kommerziellen
Nutzung aufstoÿen [Kau01].
11
Literatur
+
[BCL 03] Bouklit, M., D. Coudert, J-F. Lalande, C. Paul und H. Rivano:
Approximate multicommodity ow for WDM networks design. In: Sibeyn,
J. (Herausgeber): SIROCCO 10, Nummer 17 in Proceedings in Informatics,
Seiten 4356, Umea, Sweden, 2003. Carleton Scientic.
[GK98] Garg, N. und J. Konemann: Faster and Simpler Algorithms for Multicom-
modity Flow and Other Fractional Packing Problems. In: IEEE Symposium
on Foundations of Computer Science, Seiten 300309, 1998.
[Kau01] Kauffels, F.-J.: Durchblick im Netz, Kapitel 21. Optische Netze, die Zu-
kunft der Datenubertragung. MITP-Verlag, 2001.
12