Graphalgorithmen Robert Elsässer Vorlesung vom 13. Januar 2011 Programm des Tages: • Algorithmen in Rechnernetzwerken Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 0 Der Hypercube Definition 1: Der Hypercube der Dimension k wird mit Q(k) bezeichnet und ist wie folgt definiert: Q(k) Vk Ek = = = (Vk , Ek ) mit {0, 1}k {{u, v}; u, v ∈ {0, 1}k unterscheiden sich in genau einem Bit} Satz 1: Der Hypercube Q(k), k ≥ 2, enthält einen Hamilton-Kreis. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 1 Broadcasting Problem: Zum Zeitpunkt 0 verfügt ein Knoten v über eine Nachricht M . Diese Nachricht soll an alle Knoten des Graphen verteilt werden. Dabei darf jeder Knoten seine Nachricht direkt nur an benachbarte Knoten verschicken. Single-Port vs. Multi-Port Modell: Im single-port Modell darf ein Knoten in einem Schritt nur mit einem seiner Nachbarn kommunizieren. Im multi-port Modell ist Kommunikation mit allen Nachbarn erlaubt. Broadcasting-Algorithmus für den Hypercube for i := 0 to k − 1 do { for any node v in parallel do { if v informiert then { schicke Nachricht von Knoten v nach Knoten v(i); } } } Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 2 Das Cube-Connected-Cycles Netzwerk Definition 2: Das Cube-Connected-Cycles Netzwerk der Dimension k wird mit CCC(k) bezeichnet und ist wie folgt definiert: CCC(k) Vk Ek = = = (Vk , Ek ) mit {(i, u); 0 ≤ i < k, u ∈ {0, 1}k } {{(i, u), ((i + 1) mod k, u)}; 0 ≤ i < k, u ∈ {0, 1}k } ∪{{(i, u), (i, u(i))}; 0 ≤ i < k, u ∈ {0, 1}k } Die Kanten der ersten Menge heißen Kreiskanten und die Kanten der zweiten Menge werden Hypercube-Kanten genannt. Satz 2: Das Cube-Connected-Cycles Netzwerk der Dimension k besitzt folgende Eigenschaften: 1.) 2.) 3.) 4.) CCC(k) besitzt k · 2k Knoten und 3 · k · 2k−1 Kanten. CCC(k) ist regulär vom Grad 3. Der Durchmesser des CCC(k) ist 2k − 2 + b k2 c = b 5k 2 c − 2 für k > 3. Die Bisektionsweite des CCC(k) ist 2k−1. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 3 Routing-Algorithmus für das Cube-Connected-Cycles Netzwerk repeat k times { if ui 6= vi then { /* laufe Hypercube-Kante entlang */ sende Nachricht von (i, u) nach (i, u(i)); u := u(i); } if u 6= v then { /* laufe Kreiskante entlang */ sende Nachricht von (i, u) nach ((i + 1) mod k, u); i := (i + 1) mod k; } } laufe im Kreis des Knotens v auf kürzestem Weg bis zum entsprechenden j ; Satz 3: Das Cube-Connected-Cycles Netzwerk CCC(k) ist knotensymmetrisch. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 4 Das Butterfly Netzwerk Definition 3: Das Butterfly Netzwerk der Dimension k wird mit BF (k) bezeichnet und ist wie folgt definiert: BF (k) Vk Ek = = = (Vk , Ek ) mit {(i, u); 0 ≤ i < k, u ∈ {0, 1}k } {{(i, u), ((i + 1) mod k, u)}; 0 ≤ i < k, u ∈ {0, 1}k } ∪{{(i, u), ((i + 1) mod k, u(i))}; 0 ≤ i < k, u ∈ {0, 1}k } Die Kanten der ersten Menge heißen wieder Kreiskanten und die Kanten der zweiten Menge werden Kreuzkanten genannt. Satz 4: Das Butterfly Netzwerk der Dimension k besitzt die folgenden Eigenschaften: 1.) 2.) 3.) 4.) BF (k) besitzt k · 2k Knoten und 4 · k · 2k−1 = k · 2k+1 Kanten. BF (k) ist regulär vom Grad 4. Der Durchmesser des BF (k) ist k + b k2 c = b 3k 2 c. Die Bisektionsweite des BF (k) ist 2k . Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 5 Routing-Algorithmus für das Butterfly Netzwerk repeat k times { if ui 6= vi then { /* laufe Kreuzkante entlang */ sende Nachricht von (i, u) nach ((i + 1) mod k, u(i)); i := (i + 1) mod k; u := u(i); } else { /* laufe Kreiskante entlang */ sende Nachricht von (i, u) nach ((i + 1) mod k, u); i := (i + 1) mod k; } } laufe im Kreis des Knotens v auf kürzestem Weg bis zum entsprechenden j ; Satz 5: Das Butterfly Netzwerk BF (k) ist knotensymmetrisch. Satz 6: CCC(k) ist Teilgraph des BF (k). Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 6