MA1503 Technische Universität München, Zentrum Mathematik Lehrstuhl für Angewandte Geometrie und Diskrete Mathematik Propädeutikum Diskrete Mathematik (MA 1503) Repetitorium Algorithmische Diskrete Mathematik Dr. René Brandenberg | B.Sc. Saskia Schiele Aufgabenblatt Repetitorium 2 Aufgabe 2.1 [1.5+2.5] a) Führen Sie den Algorithmus von Prim mit Startknoten a für den unten abgebildeten Graphen G aus. Verwenden Sie dazu die in den Übungen vorgestellte Tabelle. Geben Sie außerdem den berechneten Baum und sein Gewicht an. b) Sind die folgenden Aussagen über den unten abgebildeten Graphen G wahr oder falsch? Begründen Sie Ihre Antwort kurz. i) Jeder leichteste Spannbaum in G verwendet die Kante {h, j}, die maximales Gewicht hat. ii) Es gibt einen leichtesten Spannbaum in G, der die Kante {f, i} nicht verwendet. iii) Für alle zusammenhängenden Graphen ist der Kürzeste Wege Baum, den der Algorithmus von Dijkstra berechnet, ein leichtester Spannbaum. 8 a G 1 3 1 2 g k 2 4 6 b 9 d 8 4 e h 5 8 7 8 20 3 1 j 2 8 l c 3 f 5 i Lösung zu Aufgabe 2.1 a) Folgende Tabelle zeigt die Berechnungen des Algorithmus von Prim. Seite 1 von 4 WS 2014/15 m MA1503 y Neu in F σ(a) σ(b) σ(c) σ(d) σ(e) σ(f ) σ(g) σ(h) σ(i) σ(j) σ(k) σ(l) σ(m) – b d c e g f h – {a, b} {b, d} {b, c} {c, e} {e, g} {c, f } {e, h} 0 3 ∞ 2 2 8 1 ∞ 6 4 1 ∞ ∞ ∞ 3 3 3 ∞ ∞ 9 9 2 ∞ ∞ ∞ ∞ 4 4 4 ∞ ∞ ∞ ∞ ∞ ∞ 5 5 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 20 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ i {f, i} 20 ∞ ∞ ∞ j m l k {h, j} {j, m} {j, l} {m, k} 8 3 3 2 2 1 Der Algorithmus von Prim berechnet mit Start in Knoten a folgenden leichtesten Spannbaum im Graphen G: T = (V, {{a, b}, {b, d}, {b, c}, {c, e}, {e, g}, {c, f }, {e, h}, {f, i}, {h, j}, {j, m}, {j, l}, {m, k}}. a G g d 1 3 k 2 3 4 e b 20 h 1 2 1 j m 2 l c 3 5 f i Dieser leichteste Spannbaum hat das Gewicht l(T ) = 3 + 1 + 2 + 1 + 2 + 3 + 4 + 5 + 20 + 1 + 2 + 3 = 47. b) i) Wahr. Entfernt man die Kante {h, j} aus G, so gibt es keinen h, j-Weg mehr. Jeder Spannbaum von G muss aber einen h, j-Weg haben und das ist nur möglich, wenn die Kante {h, j} verwendet wird. ii) Falsch. Sei T ein Spannbaum in G, der die Kante {f, i} nicht verwendet und T 0 der Graph, der entsteht, wenn man zu T die Kante {f, i} hinzufügt. Der Graph T 0 hat also einen Kreis, der den Knoten i und die Kanten {f, i} und {i, h} verwendet. Entfernt man die Kante {i, h} aus T 0 so erhält man einen Baum T 00 mit l(T 00 ) = l(T ) − l({i, h}) + l({f, i}) < l(T ). Also kann T kein leichtester Spannbaum in G sein. iii) Falsch. Betrachte zum Beispiel folgenden Graphen H und wähle a als Startknoten: H d 4 5 2 a Seite 2 von 4 WS 2014/15 c 1 b MA1503 Der Algorithmus von Dijkstra berechnet folgenden Kürzeste Wege Baum mit Gewicht wP = 1 + 2 + 5 = 8: Dist() c d 5 2 1 a b x M a b c d – a b c d {a, b, c, d} {b, c, d} {c, d} {d} {} 0 ∞ 1 ∞ ∞ 3 ∞ 5 5 5 Der Algorithmus von Prim berechnet folgenden leichtesten Spannbaum mit Gewicht wD = 1 + 2 + 4 = 7: d 4 c y Neu in F σ(a) σ(b) σ(c) σ(d) – {a, b} {b, c} {c, d} 0 1 ∞ 2 5 5 4 b – b c d 2 a 1 Seite 3 von 4 WS 2014/15 MA1503 Aufgabe 2.2 Wahr oder falsch? Sei G = (V, E, l) ein zusammenhängender, gewichteter Graph mit l : E → R≥0 und e eine Kante minimalen Gewichts. Dann enthält jeder leichteste Spannbaum in G die Kante e. Lösung zu Aufgabe 2.2 falsch, betrachte r 1 s 1 1 t Hier haben alle Kanten minimales Gewicht, allerdings werden in jedem Spannbaum immer nur zwei dieser drei Kanten verwendet. Seite 4 von 4 WS 2014/15