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