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 EType Array Len Hi Ptr 0 Spatio‐ temporal Interactive Networks and Graphs (STING) Extensible Representation Physical Vertex ID High Water Mark Length EType 0 1 EType 1 Z EType Z Logical Vertex Array 0 a0 T0 W0 7 6 1 a1 T1 W1 6 0 2 a2 T2 W2 0 1 3 4 a4 T4 W4 2 17 5 a5 T5 W5 23 5 Physical to Logical 6 a6 T6 W6 1 0 Mapper Edge Block Edge Block Header Next Block # Edges EType Pointer Vertex ID in this Block Edge 1 High Water Mark Smallest Largest in this Timestamp Timestamp Block Edge 2 Edge 3 Edge 4 Adj Vertex Edge ID Weight Timestamp Timestamp 1 2 Edge X N-1 Physical Vertex out-deg Vertex ID Weight in-deg Edge Block Pointer VType H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 74 Analyse: Löschen von Kanten Baumkante? j n Ist zu löschende Kante Teil eines Dreiecks? j n Vermerke mögliche Aufspaltung! Keine Aufspaltung! j Statische Neuberech‐ nung! Weitere Kanten vorhanden? n Zahl möglicher Aufspaltungen über Grenzwert? H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse j 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