http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität
2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen zur Bestimmung minimal Spannender
Definition ungerichteter Graphen Definition Wege Untergraphen Kantengewichtete Graphen Ein ungerichteter Graph G ist eine algebraische Struktur G= V, E, wobei V eine endliche nicht leere Menge und E mit E V V eine symmetrische Relation auf V ist x, y V : x E y y E x. Wir bezeichnen V als Menge von Knoten (vertices) und E als Menge von Kanten (edges). Beispiel: G 1 = V 1,E 1 = {,v 2,,,v 5 }, {,v 2, v 2,,,,,, v 2,,,v 2,,,,,, }. G 1 v 2 e 1 ={, v 2, v 2, } e 2 e 3 e 4 v 5 e 5 ={, } Ronny Harbich 3
Definition von Wegen in einem Graphen Definition Wege Untergraphen Kantengewichtete Graphen Ein Weg w V n zwischen zwei Knoten x, y V ist ein n-tupel w= x 1, x 2,,x n mit x 1 = x, x n = y und n 2,n N genau dann, wenn x i, x i 1 E mit 1 i n 1,i N gilt. Wir nennen x Anfangsund y Endknoten des Weges w. W G ist die Menge aller Wege von G. Wir bezeichnen einen Weg x 1, x 2,, x n W G als Kreis, wenn Anfangs- und Endknoten mit x 1 = x n gleich sind und x i x j mit i j und i, j {k 1 k n 1,k N} gilt. Einen Graphen G, der keine Kreise enthält, nennen wir kreisfrei. Darüber hinaus heißt ein Graph G= V, E zusammenhängend, wenn zwischen je zwei unterschiedlichen Knoten x und y aus V ein Weg x,, y aus W G existiert, also gilt x, y V : x y x,, y W G Ronny Harbich 4
5 Beispiel zu Wegen in einem Graphen Definition Wege Untergraphen Kantengewichtete Graphen G 1 v 2 v 5 Weg: Kreis:,v 2, W G 1, W G 1 Nicht-zusammenhängend: G 1 = E 1,V 1 Zusammenhängend: V 1 {v 5 },E 1
Definition von Untergraphen von Graphen Definition Wege Untergraphen Kantengewichtete Graphen Wir bezeichnen einen Graphen G ' = V ',E ' als Untergraphen des Graphen G= V, E, wenn V ' V und E ' E gelten. Falls V ' =V gilt, dann heißt G ' spannend. Beispiel: G 1 ' v 2 G 1 v 2 v4 v 5 v 5 G'1 ist ein spannender Untergraph von G1 Ronny Harbich 6
7 Definition von kantengewichteten Graphen Definition Wege Untergraphen Kantengewichtete Graphen Ein kantengewichteter Graph G= V, E,w ist ein Graph V,E mit einer Abbildung w: E R +, wobei w x, y =w y, x. Wir nennen die Funktion w Gewicht (weight). Gewicht von G: w G = x, y E, x y w x, y w x, x 2 x, x E Beispiel: G 3 = {, v 2,, }, {,,,,,,,, v 2,,, v 2 }, w w, =w, =2, w, =w, =5,1, w v 2, =w, v 2 =3 G 3 v 2 2 5,1 3 w G 3 =10,1
8 Minimal spannende Definition von n und spannenden n Ein Baum (tree) T ist ein zusammenhängender und kreisfreier Graph V,E. Ein spannender Baum S ist ein Baum, der ein spannender Untergraph eines Graphen ist. Beispiel: T 1
9 Satz zur Existenz von spannenden n Minimal spannende Es existiert dann und nur dann ein spannender Baum in einem Graphen G, wenn G zusammenhängend ist.
10 Definition von minimal spannenden n Minimal spannende Ein minimal spannender Baum (Minimum Spanning Tree MST) M eines zusammenhängenden kantengewichteten Graphen G= V, E,w ist ein spannender Baum V, E ' vom Graphen V,E, falls kein anderer spannender Baum V,E von V,E derart existiert, dass w V,E, w w V, E ', w ' mit e E :w e =w e und e E ' :w ' e =w e gilt. Beispiel: G 5, M 1 1 v 2 4 2 5 9 5 1 Ein Graph G5 mit minimal spannenden Baum M1. Die Kanten von M1 sind rot markiert.
11 Minimal spannende Satz zur Existenz von minimal spannenden n Es existiert dann und nur dann ein minimal spannender Baum in einem kantengewichteten Graphen G, wenn G zusammenhängend ist.
12 Algorithmus von Kruskal Minimal spannende Eingabe: zusammenhängender kantengewichteter Graph G= V, E,w Ausgabe: minimal spannender Baum M = V, E ' von G B 1: E ' := ; E := E; B 2: solange E { B 3: B 4: E := E K; B 5: wenn V, E ' K kreisfrei, dann { B 6: E ' := E ' K; } } K :={ x, y, y, x } mit x, y {e E e ' E : w e ' w e };
13 Beispiel zum Algorithmus von Kruskal Minimal spannende G 5, M 1 1. 1 v 2 1 v 2 4 2 5 9 5 1 K ={,v 2, v 2, } E=E {, v 2, v 2, } E ' ={, v 2, v 2, }
14 Minimal spannende Beispiel zum Algorithmus von Kruskal (Fortsetzung) G 5, M 1 2. 1 v 2 1 1 v 2 4 2 5 9 5 1 K ={, } E= E {,v 2, v 2, } {, } E ' ={, v 2, v 2, }
15 Minimal spannende Beispiel zum Algorithmus von Kruskal (Fortsetzung) G 5, M 1 3. 1 v 2 2 1 v 2 4 2 5 9 5 1 K ={,,, } E= E {, v 2, v 2, } {, } {,,, } E ' ={, v 2, v 2,,,,, }
16 Minimal spannende Beispiel zum Algorithmus von Kruskal (Fortsetzung) G 5, M 1 4. 1 v 2 4 2 1 v 2 4 2 5 9 v 5 4 1 K ={,,, } E= E {,v 2, v 2, } {, } {,,, } {,,, } E ' ={, v 2, v 2,,,,,,,,, }
17 Eigenschaften von Kruskals Algorithmus Minimal spannende Der Algorithmus von Kruskal ist korrekt. Der Algorithmus von Kruskal lässt sich so implementieren, dass sein Aufwand O E log V ist.
18 Algorithmus von Prim Minimal spannende Algorithmus von Prim: Eingabe: zusammenhängender kantengewichteter Graph G= V, E, w Ausgabe: minimal spannender Baum M = V, E ' von G B 1: B 2: V ' :={v } mit v V; E ' := ; solange V ' V { x, y { p, q E p V ' q V V ' B 3: B 4: V ' :=V ' {y }; } p ', q ' E : p ' V ' q ' V V ' w p ',q ' w p, q } E ' := E ' { x, y, y, x };
19 Beispiel zum Algorithmus von Prim Minimal spannende E ' ={,,, } V ' ={, } 0. v 2 1. v 2 4 1 2. 1 v 2 3. 1 v 2 4 4 2 E ' ={,,,,,v 2, v 2, } V ' ={,,v 2 } E ' ={,,,,, v 2, v 2,,,,, } V ' ={,,v 2, }=V
20 Eigenschaften von Algorithmus Prim Minimal spannende Der Algorithmus von Prim ist korrekt. Der Algorithmus von Prim kann mit Hilfe eines Fibonacci-Heaps in O E V log V realisiert werden.
21 Minimal spannende Praktische Anwendung der Algorithmen: Verlegen von Netzwerkkabeln Gesucht sind minimale Kosten für das Netzwerk.
22 Minimal spannende Praktische Anwendung der Algorithmen: Verlegen von Netzwerkkabeln (Fort.) Ein minimal spannende Baum ist rot markiert.
23 Literatur http://www-e.uni-magdeburg.de/harbich/study.htm#graphs_mst