fakult¨at f¨ur informatik

Werbung
TECHNISCHE UNIVERSITÄT MÜNCHEN
FAKULTÄT FÜR INFORMATIK
Lehrstuhl für Sprachen und Beschreibungsstrukturen
Grundlagen: Algorithmen und Datenstrukturen
Prof. Dr. Helmut Seidl, S. Pott, V. Prinz
SS 2009
Übungsblatt 12
14.07.2009
Abgabe: Keine Abgabe.
Aufgabe 12.1 (P) All Pairs Shortest Paths
Das All Pairs Shortest Paths (APSP)-Problem kann auf beliebigen Graphen mit n DijkstraAnwendungen gelöst werden, wenn man zuvor die Kantenkosten in geeignete positive Kosten
umwandelt.
Führen Sie anhand des folgenden Graphen G die ersten zwei Schritte des APSP-Algorithmus
aus:
a
8
e1 e2
7
b
-2
c
e4
e8
-2
4
e3
e6
e
1
d
e5
e7
3 e 9
9
5
f
a) Erweitern Sie G um eine künstliche Quelle s, die mittels 0-Kanten mit allen Knoten
im Graphen verbunden ist. Berechnen Sie unter Verwendung des Bellmann-Ford Algorithmus für s die kürzesten Wege. Geben Sie dabei die aktuellen Distanzen von s
zu allen Knoten nach jedem Durchlauf des Algorithmus über alle Graphkanten an.
Benutzen Sie dazu Lösungstabelle 1, und arbeiten Sie die Kanten in der Reihenfolge
e1 , e2 , e3 , ..., e9 , e0−Kante1 , ..., e0−Kante6 ab.
b) Berechnen Sie die reduzierten Kantenkosten r(v, w) := φ(v) + c(e) − φ(w) für alle
Kanten in G. Tragen Sie Ihre Lösung in Lösungstabelle 2 ein.
Lösungsvorschlag 12.1
a) Aktuellen Distanzen von s zu allen Knoten nach jedem Durchlauf des Bellmann-Ford
Algorithmus:
2
s
a
b
c
d
e
f
0
0
0
0
0
0
0
Runde 2
0
0
-2
-2
-1
0
0
Runden 3 - 6
0
0
-2
-2
-1
0
0
Start
Runde 1
0
Lösungstabelle 1.
b) Reduzierte Kantenkosten:
e1 e2
r(e)
10
0
e3
e4
e5
e6
e7
5
7
0
1
4
e8
e9
0 11
Lösungstabelle 2.
Aufgabe 12.2 (P) Minimale Spannbäume
Betrachten Sie den folgenden ungerichteten Graphen G:
6
1
7
1
1
2
2
1
4
3
4
3
4
5
3
1
4
2
6
2
5
2
4
9
8
1
1
10
Graph G.
Berechnen Sie mithilfe des Jarnik-Prim Algorithmus den minimalen Spannbaum des Graphen G ausgehend vom Knoten 1. Arbeiten Sie ausgehende Kanten eines Knoten in aufsteigender Reihenfolge der Zielknoten ab. Markieren Sie durch Zahlen an den Knoten, in welcher
Reihenfolge die Knoten vom Jarnik-Prim Algorithmus aus der Priority Queue entnommen
werden, und zeichnen Sie den resultierenden minimalen Spannbaum.
3
Lösungsvorschlag 12.2
1
1
7
5
2
3
2
3
6
4
7
5
9
4
6
8
10
8
10
9
Graph G.
Aufgabe 12.3 (P) Implizite Graphenrepräsentation
Sei [x] eine Kurzform für {0, ..., x − 1} wobei x ∈ N. Eine Menge hoch einer Zahl y bedeutet
die Menge der Folgen der Länge y der Elemente, z.B.:
{0, 1}3 = {(000), (001), (010), (011), (100), (101), (110), (111)}.
Zudem bedeute ab die b-te Stelle (die kleinste Stelle sei 0) der mehrstelligen Zahl a =
...a2 a1 a0 , also z.B. 23491 = 4.
Betrachten Sie folgende zwei Graphen:
a) Der d-dimensionale Graph BF (d) ist definiert auf der Knotenmenge V = [d + 1] × [2]d
und Kantenmenge E = E1 ∪ E2 wobei
E2 = {h(i, α), (i + 1, β)i|i ∈ [d], α, β ∈ [2]d , ∀j ∈ [d] : j = i ⇔ αj 6= βj }
Dabei ist d ∈ N.
b) Sei d ∈ N. Der d-dimensionale Graph CCC(d) ist definiert auf der Knotenmenge
V = {(a, p)|a ∈ [2]d , p ∈ [d]}
und Kantenmenge E = E1 ∪ E2 mit
E1 = {h(a, p), (a, (p + 1) mod d)i|a ∈ [2]d , p ∈ [d]}
E2 = {h(a, p), (b, p)i|a, b ∈ [2]d , p ∈ [d], ∀j ∈ [d] : j = p ⇔ aj 6= bj }
Zeichnen Sie BF (3) und CCC(3)!
4
Lösungsvorschlag 12.3
Beide Graphen haben Bedeutungen im Computerarchitektur / Networking Bereich.
a) BF (d) ist bekannt unter dem Namen Butterfly Graph.
000 001 010 011 100
101
110 111
0
1
2
3
b) CCC(d) nennt man den Cube-Connected-Cycle Graph.
(110,0)
(111,0)
(110,1)
(111,1)
(101,1)
(110,2)
(100,1)
(100,0)
(111,2)
2
(101,0)
(011,2)
(010,2)
1
(101,2)
(100,2)
(011,0)
0
(010,0)
000
(010,1)
(001,2)
(000,2)
(000,1)
(000,0)
(011,1)
(001,1)
(001,0)
001
010
011
100
101
110
111
Herunterladen