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 4 Programm des Tages: Zusammenhang Kürzeste Wege 2 Henning Meyerhenke, Institut für Theoretische Informatik
Tiefensuche (Haus)Aufgabe: Tiefensuche, SCC Führen Sie DFS auf dem dargestellten Graphen aus. Starten Sie dabei beim Knoten A und beachten Sie die lexikographische Ordnung der Knoten! Führen Sie den SCC-Algorithmus von Kosaraju (z. B. in [Cormen et al., Introduction to Algorithms, 1. Aufl., S. 489]) am Beispiel aus! 3 Henning Meyerhenke, Institut für Theoretische Informatik
Kosarajus Algorithmus Kosarajus Algorithmus 1. Rufe DFS(G) auf, um die Beendigungs-Zeitstempel f [u] für jeden Knoten u zu berechnen 2. Berechne G T, den transponierten Graphen 3. Rufe DFS(G T ) auf, beachte dabei die absteigende Reihenfolge der Zeitstempel f [u] aus Schritt 1 4. Gebe die DFS-Bäume aus Schritt 3 aus, sie bilden die starken ZHKs 4 Henning Meyerhenke, Institut für Theoretische Informatik
Kosarajus Algorithmus Kosarajus Algorithmus 1. Rufe DFS(G) auf, um die Beendigungs-Zeitstempel f [u] für jeden Knoten u zu berechnen 2. Berechne G T, den transponierten Graphen 3. Rufe DFS(G T ) auf, beachte dabei die absteigende Reihenfolge der Zeitstempel f [u] aus Schritt 1 4. Gebe die DFS-Bäume aus Schritt 3 aus, sie bilden die starken ZHKs Kosarajus Algorithmus ist asymptotisch optimal: O(n + m) Aber: Zweifacher Durchlauf in der Praxis nachteilig Daher: In der Praxis z. B. Tarjans Algorithmus verwenden (nur ein Durchlauf) 4 Henning Meyerhenke, Institut für Theoretische Informatik
Definitionen DFS-Nummer, Tiefensuch(halb)ordnung Sei v 1,..., v n die Reihenfolge, in der die Knoten markiert werden. Dann heißt DFS(v i ) die DFS-Nummer von v i. Die DFS-Nummer DFS((v, w)) einer Kante (v, w) sei die DFS-Nummer des Knotens, von dem aus die Kante durchlaufen wird. 5 Henning Meyerhenke, Institut für Theoretische Informatik
Definitionen DFS-Nummer, Tiefensuch(halb)ordnung Sei v 1,..., v n die Reihenfolge, in der die Knoten markiert werden. Dann heißt DFS(v i ) die DFS-Nummer von v i. Die DFS-Nummer DFS((v, w)) einer Kante (v, w) sei die DFS-Nummer des Knotens, von dem aus die Kante durchlaufen wird. Wir definieren eine Tiefensuch(halb)ordnung auf V E durch: DFS(p) DFS(q) p q p, q V E (1) DFS(p) < DFS(q) p q p, q V E (2) 5 Henning Meyerhenke, Institut für Theoretische Informatik
Kantenklassifikation Definition Sei S der Stapel (Stack) der Tiefensuche. Die Kanten werden während der Tiefensuche wie folgt klassifiziert: Zum Zeitpunkt, da die Kante (v, w) markiert wird, wird sie zu einer Baumkante, falls w noch nicht markiert ist, 6 Henning Meyerhenke, Institut für Theoretische Informatik
Kantenklassifikation Definition Sei S der Stapel (Stack) der Tiefensuche. Die Kanten werden während der Tiefensuche wie folgt klassifiziert: Zum Zeitpunkt, da die Kante (v, w) markiert wird, wird sie zu einer Baumkante, falls w noch nicht markiert ist, Rückwärtskante, falls w markiert ist, w v und w S 6 Henning Meyerhenke, Institut für Theoretische Informatik
Kantenklassifikation Definition Sei S der Stapel (Stack) der Tiefensuche. Die Kanten werden während der Tiefensuche wie folgt klassifiziert: Zum Zeitpunkt, da die Kante (v, w) markiert wird, wird sie zu einer Baumkante, falls w noch nicht markiert ist, Rückwärtskante, falls w markiert ist, w v und w S Querkante, falls w markiert ist, w v und w / S und 6 Henning Meyerhenke, Institut für Theoretische Informatik
Kantenklassifikation Definition Sei S der Stapel (Stack) der Tiefensuche. Die Kanten werden während der Tiefensuche wie folgt klassifiziert: Zum Zeitpunkt, da die Kante (v, w) markiert wird, wird sie zu einer Baumkante, falls w noch nicht markiert ist, Rückwärtskante, falls w markiert ist, w v und w S Querkante, falls w markiert ist, w v und w / S und Vorwärtskante, falls w markiert ist und w v. 6 Henning Meyerhenke, Institut für Theoretische Informatik
Dynamische Graphen Ungerichteter schlichter dynamischer Graph Dynamisch: Kanten werden eingefügt und gelöscht Andere Arten von Dynamik existieren! [https://gephi.org/tag/dynamics/] 7 Henning Meyerhenke, Institut für Theoretische Informatik
Dynamische Graphen Ungerichteter schlichter dynamischer Graph Dynamisch: Kanten werden eingefügt und gelöscht Andere Arten von Dynamik existieren! [https://gephi.org/tag/dynamics/] Trivial: Statischen Algorithmus auf veränderten Graphen anwenden 7 Henning Meyerhenke, Institut für Theoretische Informatik
Dynamische Graphen Ungerichteter schlichter dynamischer Graph Dynamisch: Kanten werden eingefügt und gelöscht Andere Arten von Dynamik existieren! [https://gephi.org/tag/dynamics/] Trivial: Statischen Algorithmus auf veränderten Graphen anwenden Annahme: Skaleninvariantes Netzwerk Aufgabe: Berechnung und kostengünstige Aktualisierung der ZHK 7 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (1) ZHK ist globale Eigenschaft Einfacher Fall: Einfügen von Kanten Schwieriger: Löschen von Kanten 8 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (1) ZHK ist globale Eigenschaft Einfacher Fall: Einfügen von Kanten Schwieriger: Löschen von Kanten Soziale Netzwerke (und weitere) sind oft skaleninvariant 8 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (1) ZHK ist globale Eigenschaft Einfacher Fall: Einfügen von Kanten Schwieriger: Löschen von Kanten Soziale Netzwerke (und weitere) sind oft skaleninvariant Bedeutet: Stark unterschiedliche Gradverteilung (power law) Später genauer: Kleine maximale Distanz zwischen beliebigem Knotenpaar (Durchmesser) 8 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (2) Frage 1: Welche Eigenschaften ergeben sich noch bei Skaleninvarianz? Frage 2: Was bedeutet das für die Berechnung der ZHK? 9 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (2) Frage 1: Welche Eigenschaften ergeben sich noch bei Skaleninvarianz? Frage 2: Was bedeutet das für die Berechnung der ZHK? Die meisten Änderungen sind innerhalb einer Komponente Einfügungen verschmelzen meist kleine mit einer (der) großen Komponente(n) 9 Henning Meyerhenke, Institut für Theoretische Informatik
ZHK in dynamischen skaleninvarianten Graphen (2) Frage 1: Welche Eigenschaften ergeben sich noch bei Skaleninvarianz? Frage 2: Was bedeutet das für die Berechnung der ZHK? Die meisten Änderungen sind innerhalb einer Komponente Einfügungen verschmelzen meist kleine mit einer (der) großen Komponente(n) Problemfall Löschungen: Komponenten werden nur selten getrennt Erkenntnis: Der Tiefensuch-Baum erleichtert einem die Arbeit Vorschläge? 9 Henning Meyerhenke, Institut für Theoretische Informatik
DFS-Kantentypus hilft bei Löschung Baumkanten bilden Spannbaum Wdh.: Ein Spannbaum ist ein Teilgraph, der alle Knoten des Obergraphen verbindet und ein Baum ist 10 Henning Meyerhenke, Institut für Theoretische Informatik
DFS-Kantentypus hilft bei Löschung Baumkanten bilden Spannbaum Wdh.: Ein Spannbaum ist ein Teilgraph, der alle Knoten des Obergraphen verbindet und ein Baum ist Wenn die zu löschende Kante keine Baumkante ist, wird die Komponente nicht zerschnitten Nur bei wenigen Löschungen müssen aufwändigere Verfahren zum Einsatz kommen Was könnte die nächst-aufwändigere Aktion sein? 10 Henning Meyerhenke, Institut für Theoretische Informatik
Datenhaltung vs. Analyse Annahmen bzw. Entwurfsentscheidungen: Kantenaktionen (Einfügungen, Löschungen) treffen kontinuierlich ein Die Analyse findet in regelmäßigen Abständen statt Aktionen werden stapelweise bearbeitet Während der Analyse werden neu eintreffende Aktionen gepuffert 11 Henning Meyerhenke, Institut für Theoretische Informatik
Struktur des Algorithmus Aktionen stapelweise abarbeiten Gemäß Startknoten der Kante sortieren In unterschiedliche Warteschlangen (ins/del) einfügen Aktualisieren der Datenstruktur ZHK-Analyse: Löschungen durchführen Baumkante? Dreieck in Nachbarschaft? Falls zu viele mögliche Aufspaltungen: Statische Neuberechnung, sonst Einfügungen durchführen 12 Henning Meyerhenke, Institut für Theoretische Informatik
Datenstruktur STINGER vs NetworKit 13 Henning Meyerhenke, Institut für Theoretische Informatik
Flowchart: Löschen von Kanten 14 Henning Meyerhenke, Institut für Theoretische Informatik
(Parallele) Bestimmung von Dreiecken Aufgabe: Schnell bestimmen, ob Kante Teil eines Dreiecks ist 15 Henning Meyerhenke, Institut für Theoretische Informatik
(Parallele) Bestimmung von Dreiecken Aufgabe: Schnell bestimmen, ob Kante Teil eines Dreiecks ist Gemeinsame Nachbarn finden Frage der Existenz! Eine Möglichkeit: Bit-Vektoren 15 Henning Meyerhenke, Institut für Theoretische Informatik
Pseudocode fürs Löschen von {u, v} F: Flag für Dreieck, R: Zahl der möglichen Aufspaltungen 16 Henning Meyerhenke, Institut für Theoretische Informatik
Paralleles Einfügen von Kanten Sequentieller trivialer Ansatz: Falls die Kante zwei Knoten derselben Komponente verbindet: keine Änderung Falls die beide Knoten in unterschiedlichen Komponenten liegen: Verschmelze Komponenten 17 Henning Meyerhenke, Institut für Theoretische Informatik
Paralleles Einfügen von Kanten Sequentieller trivialer Ansatz: Falls die Kante zwei Knoten derselben Komponente verbindet: keine Änderung Falls die beide Knoten in unterschiedlichen Komponenten liegen: Verschmelze Komponenten So parallel schwierig umzusetzen Frage: Warum? 17 Henning Meyerhenke, Institut für Theoretische Informatik
Paralleles Einfügen von Kanten Sequentieller trivialer Ansatz: Falls die Kante zwei Knoten derselben Komponente verbindet: keine Änderung Falls die beide Knoten in unterschiedlichen Komponenten liegen: Verschmelze Komponenten So parallel schwierig umzusetzen Frage: Warum? Problemreduktion für den parallelen Fall 17 Henning Meyerhenke, Institut für Theoretische Informatik
Konstruktion des Komponentengraphen Für jede einzufügende Kante wird zunächst geprüft, ob sie den Komponentengraphen verändert Das muss parallel natürlich koordiniert werden Verschiedene Datenstrukturen möglich 18 Henning Meyerhenke, Institut für Theoretische Informatik
Konstruktion des Komponentengraphen Für jede einzufügende Kante wird zunächst geprüft, ob sie den Komponentengraphen verändert Das muss parallel natürlich koordiniert werden Verschiedene Datenstrukturen möglich Schließlich: ZHK-Algorithmus auf Komponentengraphen C C ist sehr viel kleiner als G, daher geringer Aufwand 18 Henning Meyerhenke, Institut für Theoretische Informatik
Pseudocode fürs Einfügen von {u, v} C: Komponentengraph, M / M : ZHK-Zugehörigkeit 19 Henning Meyerhenke, Institut für Theoretische Informatik
Ein paar experimentelle Ergebnisse (nicht ganz aktuell, beinhalten nicht alle alg. Fortschritte) 20 Henning Meyerhenke, Institut für Theoretische Informatik
Zwischenfazit Zusammenhang: Bestimmung von (starken) ZHK mit DFS Kategorisierung von DFS-Kanten Baumkanten bei der Aktualisierung der ZHK in dynamischen Graphen Aktualisierung um Größenordnungen schneller als statische Neuberechnung 21 Henning Meyerhenke, Institut für Theoretische Informatik
Inhalt Berechnung in statischen Graphen Berechnung in dynamischen Graphen Abstand und Durchmesser Grundlagen Das Phänomen der kleinen Welt Schnelle Schätzung des Durchmessers in großen ungerichteten Graphen 22 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Abstand und kürzeste Wege Definition (Pfadlänge) Sei ein gerichteter und gewichteter Graph G = (V, E) mit der Gewichtsfunktion w : E R gegeben. Das Gewicht (oder die Länge) eines Pfades p =< v 0, v 1,..., v k > ist die Summe der Gewichte seiner Kanten: w(p) := k i=1 w(v i 1, v i ) 23 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Abstand und kürzeste Wege Definition (Pfadlänge) Sei ein gerichteter und gewichteter Graph G = (V, E) mit der Gewichtsfunktion w : E R gegeben. Das Gewicht (oder die Länge) eines Pfades p =< v 0, v 1,..., v k > ist die Summe der Gewichte seiner Kanten: w(p) := k i=1 w(v i 1, v i ) Definition (Kürzester Pfad) Sei G = (V, E) wie oben. Das Gewicht eines kürzesten Pfades p zwischen u, v V ist definiert als: { min{w(p) : u erreicht v über p} d(u, v) = sonst Ein kürzester Pfad zwischen u, v V ist ein Pfad p mit w(p) = d(u, v). 23 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Abstand und Durchmesser 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 } (Durchmesser von G) Beispiel an der Tafel! 24 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Das Phänomen der kleinen Welt In vielen Netzwerken ist der Abstand zwischen den Knoten sehr klein Viele Experimente belegen das für unterschiedliche Netzwerke Mathematisch: Mittlere Distanz bzw. Durchmesser ist klein Implikationen für Algorithmen? Frage: Wie berechnet man den Durchmesser (schnell)? 25 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Das Phänomen der kleinen Welt In vielen Netzwerken ist der Abstand zwischen den Knoten sehr klein Viele Experimente belegen das für unterschiedliche Netzwerke Mathematisch: Mittlere Distanz bzw. Durchmesser ist klein Implikationen für Algorithmen? Frage: Wie berechnet man den Durchmesser (schnell)? Trivialer Ansatz 1: APSP, Maximum feststellen Aufwand kubisch bzw. O(n 2.376 polylog(n)) 25 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Das Phänomen der kleinen Welt In vielen Netzwerken ist der Abstand zwischen den Knoten sehr klein Viele Experimente belegen das für unterschiedliche Netzwerke Mathematisch: Mittlere Distanz bzw. Durchmesser ist klein Implikationen für Algorithmen? Frage: Wie berechnet man den Durchmesser (schnell)? Trivialer Ansatz 1: APSP, Maximum feststellen Aufwand kubisch bzw. O(n 2.376 polylog(n)) Trivialer Ansatz 2 (in ungewichteten Graphen): BFS von jedem Knoten Aufwand: O(n (n + m)) 25 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung in großen dünnen ungerichteten Graphen Ziel: Durchmesserabschätzung für dünn besetzte Graphen mit Millionen von Knoten Es gibt exakte Methoden, die schneller sind als die trivialen Ansätze Aber: Diese haben aber (fast) quadratischen Aufwand, zu viel für große Graphen 26 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung in großen dünnen ungerichteten Graphen Ziel: Durchmesserabschätzung für dünn besetzte Graphen mit Millionen von Knoten Es gibt exakte Methoden, die schneller sind als die trivialen Ansätze Aber: Diese haben aber (fast) quadratischen Aufwand, zu viel für große Graphen Abschätzung mit weniger Aufwand, Näherung reicht in den meisten Fällen ohnehin! 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. 26 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): ecc G (v) diam(g) 2 ecc G (v) (3) Berechenbar in Θ(n + m) Zeit und Platz. Die Güte der Schranken hängt natürlich stark vom Knoten v ab! 27 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Offensichtlich (aber nur in ungerichteten Graphen): ecc G (v) diam(g) 2 ecc G (v) (3) Berechenbar in Θ(n + m) Zeit und Platz. 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). (4) In solchen Graphen genügen zwei BFS! Bei irgendeinem Knoten u starten. Dann wiederholen bei einem Knoten v, der maximale Distanz von u hat. 27 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Im allgemeinen Fall stimmen Schranke und Durchmesser nicht überein. Aber: (Häufig) Bessere untere Schranke als vorher durch zwei (oder mehr) BFS! 28 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Im allgemeinen Fall stimmen Schranke und Durchmesser nicht überein. Aber: (Häufig) Bessere untere Schranke als vorher durch zwei (oder mehr) BFS! Weitere Verbesserungen möglich: Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (5) 28 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Im allgemeinen Fall stimmen Schranke und Durchmesser nicht überein. Aber: (Häufig) Bessere untere Schranke als vorher durch zwei (oder mehr) BFS! Weitere Verbesserungen möglich: Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (5) Frage 1: Warum gilt das Lemma? 28 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Im allgemeinen Fall stimmen Schranke und Durchmesser nicht überein. Aber: (Häufig) Bessere untere Schranke als vorher durch zwei (oder mehr) BFS! Weitere Verbesserungen möglich: Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (5) Frage 1: Warum gilt das Lemma? Frage 2: Wo kriegen wir den Spannbaum her? 28 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Durchmesserabschätzung Untere und obere Schranken Im allgemeinen Fall stimmen Schranke und Durchmesser nicht überein. Aber: (Häufig) Bessere untere Schranke als vorher durch zwei (oder mehr) BFS! Weitere Verbesserungen möglich: Lemma Sei T ein Spannbaum von G. Dann gilt: diam(g) diam(t ). (5) Frage 1: Warum gilt das Lemma? Frage 2: Wo kriegen wir den Spannbaum her? Antwort 2: BFS-Baum 28 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Schranken kombinieren Wir haben jetzt verschiedene untere und obere Schranken Alle mit einfachen Mitteln (BFS) zu berechnen Abwechselnd untere und obere Schranken verbessern Bei zufälligem Knoten starten (oder Heuristik anwenden) 29 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Schranken kombinieren Wir haben jetzt verschiedene untere und obere Schranken Alle mit einfachen Mitteln (BFS) zu berechnen Abwechselnd untere und obere Schranken verbessern Bei zufälligem Knoten starten (oder Heuristik anwenden) Heuristik: Startknoten mit hohem Knotengrad Gut geeignet für Schranke (4) Frage: Warum? 29 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Schranken kombinieren Wir haben jetzt verschiedene untere und obere Schranken Alle mit einfachen Mitteln (BFS) zu berechnen Abwechselnd untere und obere Schranken verbessern Bei zufälligem Knoten starten (oder Heuristik anwenden) Heuristik: Startknoten mit hohem Knotengrad Gut geeignet für Schranke (4) Frage: Warum? Grund: Der BFS-Baum eines hochgradigen Knotens hat oft einen kleinen Durchmesser 29 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Überlegungen zur Implementierung Iterieren der Schranken (4) und (5) Frage: Konvergiert die Iteration auf jeden Fall, wenn sie lange genug läuft? 30 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Überlegungen zur Implementierung Iterieren der Schranken (4) und (5) Frage: Konvergiert die Iteration auf jeden Fall, wenn sie lange genug läuft? Gegenbeispiel: Kreis aus n Knoten 30 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Überlegungen zur Implementierung Iterieren der Schranken (4) und (5) Frage: Konvergiert die Iteration auf jeden Fall, wenn sie lange genug läuft? Gegenbeispiel: Kreis aus n Knoten Abbruch, wenn der Unterschied D D kleiner als Schwellwert ist Alternativer Abbruch: (D D)/D < p für einen anderen Schwellwert p. Aufwand pro Iteration: θ(n + m) 30 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser
Experimentelle Ergebnisse [Magnien et al., JEA Vol. 13, Feb 2009] 31 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und 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) 32 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und 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 32 Henning Meyerhenke, Institut für Theoretische Informatik Abstand und Durchmesser