Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 Institutund für Theoretische KIT –Henning Universität desMeyerhenke, Landes Baden-Württemberg nationales Forschungszentrum in der Helmholtz-Gemeinschaft Algorithmische Methoden zur Netzwerkanalyse Informatik www.kit.edu Vorlesung 5 Programm des Tages: Besprechung Übungsblatt 1, Teil 2 Durchmesser Kürzeste Wege 2 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Inhalt Eigenschaften von Netzwerken Durchmesser Das Phänomen der kleinen Welt Schnelle Schätzung des Durchmessers in großen ungerichteten Graphen Eigenschaften von Knoten und Kanten Paarweise Abstände 3 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Abstand und Durchmesser Definition Für einen Multigraphen G = (V , E ) definieren wir: eccG (v ) = max {dG (v , w ) : w ∈ V } rad(G ) = min {eccG (v ) : v ∈ V } diam(G ) = max {eccG (v ) : v ∈ V } 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse (Exzentrizität von v ) (Radius von G) (Durchmesser von G) Eigenschaften von Netzwerken Durchmesser Abstand und Durchmesser Definition Für einen Multigraphen G = (V , E ) definieren wir: eccG (v ) = max {dG (v , w ) : w ∈ V } rad(G ) = min {eccG (v ) : v ∈ V } diam(G ) = max {eccG (v ) : v ∈ V } (Exzentrizität von v ) (Radius von G) (Durchmesser von G) Phänomen der kleinen Welt In vielen Netzwerken ist der Durchmesser klein, manchmal sogar konstant 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Durchmesserabschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): eccG (v ) ≤ diam(G ) ≤ 2 · eccG (v ) (1) Die Güte der Schranken hängt natürlich stark vom Knoten v ab! 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Durchmesserabschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): eccG (v ) ≤ diam(G ) ≤ 2 · eccG (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 dG (u , v ) = eccG (u ) für einen Knoten u, dann diam(G ) = eccG (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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Durchmesserabschätzung Untere und obere Schranken Lemma Sei T ein Spannbaum von G. Dann gilt: diam(G ) ≤ diam(T ). 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse (3) Eigenschaften von Netzwerken Durchmesser Durchmesserabschä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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Überlegungen zur Implementierung Iterieren der Schranken In ungerichteten Graphen: eccG (v ) ≤ diam(G ) ≤ 2 · eccG (v ) (1) Für Bäume (und bestimmte andere Graphklassen) gilt: Wird v so gewählt, dass dG (u , v ) = eccG (u ) für einen Knoten u, dann diam(G ) = eccG (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 0 für einen geeigneten Schwellwert (z. B. p = 5) Berechnung in “riesiger” ZHK 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Pseudocode Algorithm 1 Abschätzung des Durchmessers 1: function E STIMATE D IAMETER(G = (V , E ), k ) 2: while not converged do 3: /* try to improve lower bound */ 4: Compute eccG (v ) for suitable (e. g. random) v with BFS 5: Update D according to eccG (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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Fazit Durchmesser ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit Durchmesser wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Fazit Durchmesser ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit Durchmesser wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) Abschätzen des Durchmessers für große Graphen BFS ist wesentliche Komponente 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Fazit Durchmesser ist längster kürzester Weg über alle Knotenpaare gesehen Exakte Berechnung hat mindestens quadratische Laufzeit Durchmesser wichtiges Maß in der Netzwerkanalyse (Phänomen der kleinen Welt) Abschätzen des Durchmessers 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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Netzwerken Durchmesser Inhalt Eigenschaften von Netzwerken Durchmesser Das Phänomen der kleinen Welt Schnelle Schätzung des Durchmessers in großen ungerichteten Graphen Eigenschaften von Knoten und Kanten Paarweise Abstände 10 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände Einführung und Motivation Durchmesser kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände Einführung und Motivation Durchmesser kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich Paarweise Abstände auch anderweitig hilfreich Paarweise kürzeste Wege ebenfalls von Interesse 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände Einführung und Motivation Durchmesser kann nun abgeschätzt werden Exakte Berechnung z. B. durch paarweise Abstände möglich Paarweise Abstände auch anderweitig hilfreich Paarweise kürzeste Wege ebenfalls von Interesse Frage: Welche Beispielanwendungen fallen Ihnen ein? 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände 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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände All Pairs Shortest Path (APSP) Beispiel Eingabe: Gewichteter Graph G = (V , E ) • Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Knotenpaar (u , v ) ∈ V × V die Distanz von u • Ausgabe: Für jedes Paar von Knoten u,v∈V die Distanz nach v von u nach v sowie einen kürzesten Weg a b c d e 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 23.10.2009 12 f b c 7 -4 1 6 8 a Vorl. GA (2): APSP Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse 4 2 f -1 5 d 5 e 2 Eigenschaften von Knoten und Kanten Paarweise Abstände Floyd-Warshall-Algorithmus Matrix W = (wij ), die Graph repräsentiert: 0 wij = ω (i , j ) ∞ i=j i 6= j und (i , j ) ∈ E i 6= j und (i , j ) ∈ /E (k ) dij : Länge eines kürzesten i-j-Pfads mit Knoten aus {1, . . . , k } 13 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Floyd-Warshall-Algorithmus Matrix W = (wij ), die Graph repräsentiert (k ) dij : Länge eines kürzesten i-j-Pfads mit Knoten aus {1, . . . , k } 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 13 function F LOYD -WARSHALL(W , n) D (0) ← W for k ← 1..n do for i ← 1..n do for j ← 1..n do (k ) (k −1) (k −1) (k −1) dij ← min{dij , dik + dkj } end for end for end for return D (n) end function Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Floyd-Warshall-Algorithmus Anmerkungen 1: function F LOYD -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 (k ) (k −1) 6: dij ← min{dij 7: end for 8: end for 9: end for 10: return D (n) 11: end function (k −1) , dik (k −1) + dkj } 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 Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände und Matrixmultiplikation (k ) Wesentliche Zeile im FW-Algo: dij (k −1) ← min{dij (k −1) , dik (k −1) + dkj } Seien D , W ∈ Rn×n . Dann: n (D · W )ij = ∑ Dik · Wkj k =1 Ersetze nun · durch + und + durch min. Dann gilt für D , W ∈ (R ∪ {∞})n×n : (D ∗ W )ij = min {Dik + Wkj } 1≤k ≤n 15 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Paarweise Abstände und Matrixmultiplikation (k ) Wesentliche Zeile im FW-Algo: dij (k −1) ← min{dij (k −1) , dik (k −1) + dkj } Seien D , W ∈ Rn×n . Dann: n (D · W )ij = ∑ Dik · Wkj k =1 Ersetze nun · durch + und + durch min. Dann gilt für D , W ∈ (R ∪ {∞})n×n : (D ∗ W )ij = min {Dik + Wkj } 1≤k ≤n 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 , dlog(n−1)e ) D (2 15 = dlog(n−1)e W2 = dlog(n−1)e−1 W2 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse ... dlog(n−1)e−1 ∗ W2 Eigenschaften von Knoten und Kanten Paarweise Abstände Algorithmus Pseudocode 1: function MM APD(weight 2: 3: 4: 5: 6: 7: 8: 9: 16 matrix W ) D (1) ← W m←1 while (m < n − 1) do D (2m) ← MATRIX M ULTIPLY(D (m) , D (m) ) m ← 2m end while return D (m) end function 1: function MATRIX M ULTIPLY(matrices A, B) 2: for i ← 1..n do 3: for j ← 1..n do 4: Cij ← ∞ 5: for k ← 1..n do 6: Cij = min{Cij , Aik + Bkj } 7: end for 8: end for 9: end for 10: return C 11: end function Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Algorithmus Diskussion Laufzeit des Algorithmus MM APD: O( M AT M ULT (n) · log n) M AT M ULT (n): Zeit für Multiplikation von zwei n × n-Matrizen 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Algorithmus Diskussion Laufzeit des Algorithmus MM APD: O( M AT M ULT (n) · log n) M AT M ULT (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( M AT M ULT (n) · n) :-( 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände Algorithmus Diskussion Laufzeit des Algorithmus MM APD: O( M AT M ULT (n) · log n) M AT M ULT (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( M AT M ULT (n) · n) :-( Bald: Lösung von APSP (mit Pfaden) in Zeit O( M AT M ULT (n) · log2 n) für ungewichtete, ungerichtete Graphen (randomisiert) 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Eigenschaften von Knoten und Kanten Paarweise Abstände