Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische Informatik nationales Algorithmische Forschungszentrum Methoden in der Helmholtz-Gemeinschaft zur Netzwerkanalyse www.kit.edu
Vorlesung 5 Programm des Tages: Besprechung Übungsblatt 1, Teil 2 Kürzeste Wege 2 Henning Meyerhenke, Institut für Theoretische Informatik
Inhalt Das Phänomen der kleinen Welt Schnelle Schätzung des s in großen ungerichteten Graphen 3 Henning Meyerhenke, Institut für Theoretische Informatik
Abstand und Definition Für einen Multigraphen G = (V, E) definieren wir: ecc G (v) = max {d G (v, w) : w V } (Exzentrizität von v) rad(g) = min {ecc G (v) : v V } (Radius von G) diam(g) = max {ecc G (v) : v V } ( von G) 4 Henning Meyerhenke, Institut für Theoretische Informatik
Abstand und Definition Für einen Multigraphen G = (V, E) definieren wir: ecc G (v) = max {d G (v, w) : w V } (Exzentrizität von v) rad(g) = min {ecc G (v) : v V } (Radius von G) diam(g) = max {ecc G (v) : v V } ( von G) Phänomen der kleinen Welt In vielen Netzwerken ist der klein, manchmal sogar konstant 4 Henning Meyerhenke, Institut für Theoretische Informatik
abschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): ecc G (v) diam(g) 2 ecc G (v) (1) Die Güte der Schranken hängt natürlich stark vom Knoten v ab! 5 Henning Meyerhenke, Institut für Theoretische Informatik
abschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): ecc G (v) diam(g) 2 ecc G (v) (1) Die Güte der Schranken hängt natürlich stark vom Knoten v ab! Lemma Für Bäume (und bestimmte andere Graphklassen) gilt: Wird v so gewählt, dass d G (u, v) = ecc G (u) für einen Knoten u, dann diam(g) = ecc G (v). (2) In solchen Graphen genügen zwei BFS! Bei irgendeinem Knoten u starten. Dann wiederholen bei einem Knoten v, der maximale Distanz von u hat. 5 Henning Meyerhenke, Institut für Theoretische Informatik
abschätzung Untere und obere Schranken Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (3) 6 Henning Meyerhenke, Institut für Theoretische Informatik
abschätzung Untere und obere Schranken Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (3) Schranken kombinieren Alle Schranken sind mit BFS zu berechnen Abwechselnd untere und obere Schranken verbessern Bei zufälligem Knoten starten oder Heuristik anwenden 6 Henning Meyerhenke, Institut für Theoretische Informatik
Überlegungen zur Implementierung Iterieren der Schranken In ungerichteten Graphen: ecc G (v) diam(g) 2 ecc G (v) (1) Für Bäume (und bestimmte andere Graphklassen) gilt: Wird v so gewählt, dass d G (u, v) = ecc G (u) für einen Knoten u, dann diam(g) = ecc G (v) (2) Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ) (3) Abbruch, wenn der Unterschied D D < p oder (D D)/D < p für einen geeigneten Schwellwert (z. B. p = 5) Berechnung in riesiger ZHK 7 Henning Meyerhenke, Institut für Theoretische Informatik
Pseudocode Algorithm 1 Abschätzung des s 1: function ESTIMATEDIAMETER(G = (V, E), k) 2: while not converged do 3: /* try to improve lower bound */ 4: Compute ecc G (v) for suitable (e. g. random) v with BFS 5: Update D according to ecc G (v) 6: /* try to improve upper bound */ 7: Compute BFS tree T rooted at unused high-degree node u 8: Compute diam(t ) 9: Update D according to diam(t ) 10: end while 11: return (D, D) 12: end function 8 Henning Meyerhenke, Institut für Theoretische Informatik
Fazit ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) 9 Henning Meyerhenke, Institut für Theoretische Informatik
Fazit ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) Abschätzen des s für große Graphen BFS ist wesentliche Komponente 9 Henning Meyerhenke, Institut für Theoretische Informatik
Fazit ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) Abschätzen des s für große Graphen BFS ist wesentliche Komponente Literaturhinweis C. Magnien, M. Latapy, M. Habib: Fast Computation of Empirically Tight Bounds for the Diameter of Massive Graphs. Journal of Experimental Algorithmics, Volume 13, February 2009. 9 Henning Meyerhenke, Institut für Theoretische Informatik
Inhalt Das Phänomen der kleinen Welt Schnelle Schätzung des s in großen ungerichteten Graphen 10 Henning Meyerhenke, Institut für Theoretische Informatik
Einführung und Motivation kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich 11 Henning Meyerhenke, Institut für Theoretische Informatik
Einführung und Motivation kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich auch anderweitig hilfreich Paarweise kürzeste Wege ebenfalls von Interesse 11 Henning Meyerhenke, Institut für Theoretische Informatik
Einführung und Motivation kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich auch anderweitig hilfreich Paarweise kürzeste Wege ebenfalls von Interesse Frage: Welche Beispielanwendungen fallen Ihnen ein? 11 Henning Meyerhenke, Institut für Theoretische Informatik
Beispiel Eingabe: Gewichteter Graph G = (V, E) Ausgabe: Für jedes Knotenpaar (u, v) V V die Distanz von u nach v 12 Henning Meyerhenke, Institut für Theoretische Informatik
Beispiel All Pairs Shortest Path (APSP) Eingabe: Gewichteter Graph G = (V, Eingabe: Gewichteter Graph G=(V,E) E) Ausgabe: Für jedes Knotenpaar (u, v) V V die Distanz von u Ausgabe: nach v Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e f a 0 1 5 5 10 9 b 0 4 5 10 9 c -3 0 1 6 5 d -4 0 0 5 4 e 5 8 9 0-1 f 0 a 2 5 b -4 d 4 1 6 5 8 c e 7-1 f 23.10.2009 Vorl. GA (2): APSP 2 12 Henning Meyerhenke, Institut für Theoretische Informatik
Floyd-Warshall-Algorithmus Matrix W = (w ij ), die Graph repräsentiert: 0 i = j w ij = ω(i, j) i = j und (i, j) E i = j und (i, j) / E d (k) ij : Länge eines kürzesten i-j-pfads mit Knoten aus {1,..., k} 13 Henning Meyerhenke, Institut für Theoretische Informatik
Floyd-Warshall-Algorithmus Matrix W = (w ij ), die Graph repräsentiert d (k) ij : Länge eines kürzesten i-j-pfads mit Knoten aus {1,..., k} 1: function FLOYD-WARSHALL(W, n) 2: D (0) W 3: for k 1..n do 4: for i 1..n do 5: for j 1..n do 6: d (k) 7: end for 8: end for 9: end for 10: return D (n) 11: end function ij min{d (k 1) ij, d (k 1) ik + d (k 1) kj } 13 Henning Meyerhenke, Institut für Theoretische Informatik
Floyd-Warshall-Algorithmus Anmerkungen 1: function FLOYD-WARSHALL(W, n) 2: D (0) W 3: for k 1..n do 4: for i 1..n do 5: for j 1..n do 6: d (k) 7: end for 8: end for 9: end for 10: return D (n) 11: end function ij min{d (k 1) ij, d (k 1) ik + d (k 1) kj } Kubische Laufzeit Kürzeste Wege lassen sich ohne großen Aufwand mitberechnen Hausaufgabe: Ausführen am Beispiel 14 Henning Meyerhenke, Institut für Theoretische Informatik
und Matrixmultiplikation Wesentliche Zeile im FW-Algo: d (k) ij Seien D, W R n n. Dann: (D W ) ij = min{d (k 1) ij, d (k 1) ik + d (k 1) kj } n D ik W kj k=1 Ersetze nun durch + und + durch min. Dann gilt für D, W (R { }) n n : (D W ) ij = min 1 k n {D ik + W kj } 15 Henning Meyerhenke, Institut für Theoretische Informatik
und Matrixmultiplikation Wesentliche Zeile im FW-Algo: d (k) ij Seien D, W R n n. Dann: (D W ) ij = min{d (k 1) ij, d (k 1) ik + d (k 1) kj } n D ik W kj k=1 Ersetze nun durch + und + durch min. Dann gilt für D, W (R { }) n n : (D W ) ij = min 1 k n {D ik + W kj } Idee: Berechne D n 1 durch fortgesetzte Matrixmultiplikation D (1) = W, D (2) = W 2 = W W, D (4) = W 4 = W 2 W 2,... D (2 log(n 1) ) = W 2 log(n 1) = W 2 log(n 1) 1 W 2 log(n 1) 1 15 Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmus Pseudocode 1: function MMAPD(weight matrix W ) 2: D (1) W 3: m 1 4: while (m < n 1) do 5: D (2m) MATRIX- MULTIPLY(D (m), D (m) ) 6: m 2m 7: end while 8: return D (m) 9: end function 1: function MATRIXMULTIPLY(matrices A, B) 2: for i 1..n do 3: for j 1..n do 4: C ij 5: for k 1..n do 6: C ij = min{c ij, A ik + B kj } 7: end for 8: end for 9: end for 10: return C 11: end function 16 Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmus Diskussion Laufzeit des Algorithmus MMAPD: O(MATMULT(n) log n) MATMULT(n): Zeit für Multiplikation von zwei n n-matrizen 17 Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmus Diskussion Laufzeit des Algorithmus MMAPD: O(MATMULT(n) log n) MATMULT(n): Zeit für Multiplikation von zwei n n-matrizen Nachteil: Keine implizite Darstellung der kürzesten Wege Dazu wären alle Matrizen D (1),..., D (m) notwendig Dann stiege die Laufzeit auf O(MATMULT(n) n) :-( 17 Henning Meyerhenke, Institut für Theoretische Informatik
Algorithmus Diskussion Laufzeit des Algorithmus MMAPD: O(MATMULT(n) log n) MATMULT(n): Zeit für Multiplikation von zwei n n-matrizen Nachteil: Keine implizite Darstellung der kürzesten Wege Dazu wären alle Matrizen D (1),..., D (m) notwendig Dann stiege die Laufzeit auf O(MATMULT(n) n) :-( Bald: Lösung von APSP (mit Pfaden) in Zeit O(MATMULT(n) log 2 n) für ungewichtete, ungerichtete Graphen (randomisiert) 17 Henning Meyerhenke, Institut für Theoretische Informatik