9. November 2011 ZHK in dynamischen Graphen Zentralitäten H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 67
ZHK in dynamischen Graphen Ungerichteter schlichter dynamischer Graph Dynamisch: Kanten werden eingefügt und gelöscht Annahme: Skaleninvariantes Netzwerk Aufgabe: Berechnung und kostengünstige Aktualisierung der ZHK ZHK ist globale Eigenschaft Einfacher Fall: Einfügen von Kanten Schwieriger: Löschen von Kanten H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 68
Annahme: Skaleninvarianter Graph Soziale Netzwerke (und weitere) sind oft skaleninvariant Stark unterschiedliche Gradverteilung (power law) Kleine maximale Distanz zwischen beliebigem Knotenpaar (Durchmesser) Was bedeutet das für die Berechnung der ZHK? Die meisten Änderungen innerhalb einer Komponente Einfügungen verschmelzen meist kleine mit einer (der) großen Komponente H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 69
Problemfall: Löschungen Komponenten werden nur selten getrennt Erkenntnis: Der Tiefensuch Baum erleichtert einem die Arbeit! Vorschläge? H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 70
DFS Kantentypus hilft bei Löschung Baumkanten bilden Spannbaum 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? H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 71
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 H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 72
Struktur des Algorithmus Aktionen im Stapel aufbereiten Gemäß Startknoten 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 H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 73
Datenstruktur STINGER Spatiotemporal Interactive Networks and Graphs (STING) Extensible Representation Physical Vertex ID Physical to Logical Mapper 0 1 2 3 4 5 6 EType Array Len Hi Ptr 0 1 Z Logical Vertex Array a0 T0 W0 7 a1 T1 W1 6 a2 T2 W2 0 6 0 1 a4 T4 W4 2 17 a5 T5 W5 23 5 a6 T6 W6 1 0 EType 0 EType 1 EType Z Edge Block Edge Block Header Edge 1 Edge 2 Edge 3 Edge 4 Next Block Pointer Adj Vertex ID EType Edge Weight Vertex ID Timestamp 1 High Water Mark # Edges in this Block Timestamp 2 High Water Mark in this Block Length Smallest Largest Timestamp Timestamp Edge X N-1 Physical Vertex Vertex ID Weight in-deg VType out-deg Edge Block Pointer H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 74
Analyse: Löschen von Kanten Baumkante? n j Ist zu löschende Kante Teil eines Dreiecks? j n Statische Neuberechnung! Keine Aufspaltung! Vermerke mögliche Aufspaltung! j Weitere Kanten vorhanden? n Zahl möglicher Aufspaltungen über Grenzwert? j H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 75
Parallele Bestimmung von Dreiecken Dreieck: Drei Knoten sind paarweise Nachbarn zueinander Aufgabe: Schnell bestimmen, ob Kante Teil eines Dreiecks ist Gemeinsame Nachbarn finden Frage der Existenz! Eine Möglichkeit: Bit Vektoren H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 76
Pseudocode fürs Löschen von {u,v} F: Flag für Dreieck, R: Zahl der möglichen Aufspaltungen H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 77
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 Warum? Problemreduktion parallel H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 78
Aufbau des Komponentengraphs 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 H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 79
Einfügen von Kanten C: Komponentengraph, M / M : ZHK Zugehörigkeit H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 80
Ein paar Ergebnisse (nicht ganz aktuell, beinhalten nicht alle algorithmischen Fortschritte) H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 81
Zusammenfassung Wege und Zusammenhang Wege: Wiederholung von grundlegenden Definitionen Kurze Wiederholung bekannter Algorithmen zur Bestimmung kürzester Wege Vertiefung APSP in den Übungen Zusammenhang: Bestimmung von (starken) ZHK mit DFS Kategorisierung von DFS Kanten Baumkanten bei der Aktualisierung der ZHK in dynamischen Graphen H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 82
H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 83
Zentralitäten Maße für die Bedeutung eines Knotens (oder evtl. auch einer Kante) in einem Netzwerk Beispiel: Gradzentralität Grad des Knotens Gibt einen Bonuspunkt für jeden Nachbarn Kann ein Indikator für die Bedeutung sein Aber: Was wird dadurch schlecht modelliert? H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 84
Eigenvektorzentralität Nicht alle Nachbarn sind gleich wichtig Die Wichtigkeit einer Person in einem Netzwerk hängt auch von der Wichtigkeit seiner Nachbarn ab Wert der Nachbarn soll proportional eingehen in eigenen Wert, Berechnung: Sei der Zentralitätsvektor, sei der initiale Zustand Aktualisierung: Matrixnotation: H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 85
Exkurs: Eigenwerte & Eigenvektoren H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 86
Darstellung in spektraler Form Zentralität genügt (Herleitung s. Tafel), daher ist der Eigenvektor von zum Eigenwert Zentralität von ist proportional zur Zentralität der Nachbarn: EV Zentralität kann groß sein, weil ein Knoten viele Nachbarn hat, die Nachbarn hohe EV Zentralität haben oder beides H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87