BETWEENNESS CENTRALITY

Werbung
Vorlesung 4
BETWEENNESS CENTRALITY
101
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Aufgabe
!   Szenario: Sie arbeiten bei einem
sozialen Online-Netzwerk. Aus der
Netzwerk-Struktur Ihrer Benutzer
sollen Sie wichtige Eigenschaften
extrahieren.
[http://www.fahrschule-vatterodt.de/
images/social_network.jpg]
!   Aufgabe 2: Finden Sie wichtige
Personen im Netzwerk!
Wie modellieren Sie „wichtig“?
102
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zentralität durch kürzeste Wege
!   Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf
einem hohen Anteil kürzester Wege liegt.
!   Sei ¾st die Zahl der kürzesten Wege zwischen s und t.
!   Sei ¾st(v) die Zahl der kürzesten Wege zwischen s und t, auf
denen der Knoten v (als Zwischenknoten) liegt.
2
!   Beispiel: Knoten 5 liegt auf
allen kürzesten Wegen von
1 nach 8, insgesamt 6
6
1
3
5
8
7
4
103
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Betweenness Centrality
!   Intermediationszentralität (Betweenness Centrality) BC:
CB(v) = Σs ≠ v ≠ t 2 V ¾st(v) / ¾st
!   Folglich: Ein hoher BC-Wert gibt an, dass ein Knoten auf
einem hohen Anteil von kürzesten Pfaden liegt
!   Beispiel: CB(7) = 2,5
!
!
!
!
!
!
!
104
 
 
 
 
 
 
 
1-2: 0
1-3: 0
1-4: 0
1-5: 0
1-6: 0
1-8: 0,5
2-3: 0
2-4: 0
2-5: 0
2-6: 0
2-8: 0,5
3-4: 0
3-5: 0
3-6: 0
3-8: 0,5
4-5: 0
4-6: 0
4-8: 0,5
5-6: 0
5-8: 0,5
6-8: 0
Graphenalgorithmen und lineare Algebra Hand in Hand
2
6
1
3
5
8
7
4
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Weitere Anwendungen
!   Fehlertoleranz:
Knoten mit hoher BC fällt aus => große Auswirkungen
!   Informationsfluss:
Knoten mit hoher BC sind wichtige Informationsvermittler
!   Weitere?
105
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Paar-Abhängigkeit
!   Lemma: Ein Knoten v liegt genau dann auf dem kürzesten
Weg zwischen s und t, wenn d(s,v)+d(v,t)=d(s,t) gilt.
!   Paar-Abhängigkeit: ±st(v) = ¾st(v) / ¾st
!   CB ist Summe über die Paar-Abhängigkeiten von v:
CB(v) = Σs ≠ v ≠ t 2 V ¾st(v) / ¾st= Σs ≠ v ≠ t 2 V ±st(v)
106
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel
2
6
1
3
5
8
CB(5) = 12
7
4
Paar-Abhängigkeiten für Knoten 5:
1-6, 1-7, 1-8, 2-6, 2-7, 2-8, 3-6, 3-7, 3-8, 4-6, 4-7, 4-8
107
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Berechnung und Komplexität
!   Einfache Herangehensweise zur BC-Berechnung:
!   Berechne Länge und Zahl der kürzesten Wege zwischen allen
zulässigen Knotenpaaren
!   Berechne Summe aller Paar-Abhängigkeiten
!   Aber: Quadratisch viele Paar-Abhängigkeiten
Ø  Summierung hat kubischen Aufwand!
108
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zwischenfazit
!   Knoten-Zentralitäten sind ein Maß für die Wichtigkeit eines
Knotens in einem Netzwerk
! Betweenness Centrality (BC) nutzt dafür den
Anteil der kürzesten Wege, auf dem ein Knoten liegt
!   Triviale Berechnung von BC hat kubischen Aufwand
!   Schnelleres Verfahren bereits für recht kleine Graphen notwendig
!   Frage (MG):
Sehen Sie Ansätze für eine schnellere Berechnung?
109
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Ansatz zur Beschleunigung
Kombinatorisches Zählen von Wegen
! Def. (Vorgänger):
Ps(v) = {u 2 V: {u, v} 2 E, dG(s, v) = dG(s, u) + !(u, v)}
In Worten: Die Vorgängermenge von v bzgl. einer Quelle s
besteht aus den Nachbarn u von v, die auf einem kürzesten
Weg von s nach v liegen.
!   Beispiel:
!   s=1
!   v=8
!   P1(8) = {6, 7}
2
6
1
3
5
8
7
4
110
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Vorgänger für schnelle Berechnung
!   Lemma: Für s ≠ v 2 V gilt:
¾sv = Σu 2 Ps(v) ¾su
BFS und
Dijkstra (mit
FibonacciHeap)
!   Folgerung:
Ist ein Startknoten s 2 V gegeben,
lässt sich die Zahl und Länge der kürzesten Wege
zu allen anderen Knoten
in Zeit O(m + n log n) für gewichtete Graphen
und O(m) für ungewichtete berechnen.
!   Idee: Zwischenergebnisse mehrfach verwenden!
111
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Abhängigkeit eines Knotens
!   Ziel: Nicht alle Paar-Abhängigkeiten summieren müssen
! Def. (Abhängigkeit eines Knotens s von v ≠ s):
±s±(v) = Σt 2 V ±st (v) = Σt 2 V ¾st(v) / ¾st
±st(v) = ¾st(v) / ¾st
CB(v) = Σs ≠ v 2 V ±s±(v)
!   Wichtig: Diese Summen haben eine rekursive Beziehung!
!   Theorem: Für die Abhängigkeit ±s±(v)
eines Startknotens s 2 V
zu einem anderen Knoten v 2 V gilt:
±s±(v) = Σw: v 2 Ps(w) (¾sv / ¾sw)(1 + ±s±(w))
112
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Abbildung zum Beweis [Brandes 2001]
±s±(v) = Σw: v 2 Ps(w) (¾sv / ¾sw)(1 + ±s±(w))
CB(v) = Σs ≠ v ≠ t 2 V ±st(v)
113
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Akkumulation der Abhängigkeiten (1)
!   Beobachtung: Ähnlich wie bei Tiefensuche:
Bei Berechnung der kürzesten Wege
von einem Startknoten s 2 V in G
entsteht ein Baum aus den Kanten der „ersten Entdeckung“.
!   Folgerung: Sei der Baum der kürzesten Wege von einem
Startknoten s 2 V in G gegeben.
Dann lassen sich die Abhängigkeiten von s zu allen anderen
Knoten
!   in Zeit O(m) (ungewichtet) bzw. O(m + n log n) (gewichtet)
!   und Platz (n+m)
berechnen.
114
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Akkumulation der Abhängigkeiten (2)
Beweis:
!   Berechnung für jeden Startknoten s:
!   Führe SSSP bzw. BFS von s durch
!   Traversiere die Knoten in nicht-aufsteigender Reihenfolge
hinsichtlich ihrer Distanz zu s und
!   akkumuliere die Abhängigkeiten gemäß des Theorems
!   Aufwand:
!   Wir müssen pro Knoten eine Abhängigkeit und die Liste der
Vorgänger speichern.
!   Platzbedarf:
!   Pro Kante gibt es höchstens ein Element in allen diesen Listen.
115
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Der Algorithmus von Brandes
!   Berechne n Kürzeste-Wege-Bäume, einen pro s 2 V
!   Währenddessen auch die Mengen Ps(v) berechnen
!   Berechne für
!   jedes jeweilige s 2 V und alle anderen v 2 V
!   die Abhängigkeiten ±s±(v) mit Hilfe des Baumes, der
Vorgängermengen und des Theorems.
!   Vorgehensweise:
!   Starte an den Blättern des Baumes, arbeite dich wie auf der
vorigen Folie beschrieben schrittweise zur Wurzel voran
!   Akkumuliere den Abhängigkeitswert des Startknotens s zu jedem
einzelnen Knoten v im Zentralitätswert von v
±s±(v) = Σ{w: v 2 Ps(w)} (¾sv / ¾sw)(1 + ±s±(w))
116
Graphenalgorithmen und lineare Algebra Hand in Hand
CB(v) = Σs ≠ v ≠ t 2 V ±st(v)
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel
!   Siehe Tafel
117
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Resultat
!   BC kann in Zeit O(nm + n2 log n) und Platz O(n + m) auf
gewichteten Graphen berechnet werden.
!   Für ungewichtete Graphen reduziert sich die Laufzeit auf
O(nm).
Ø  Für dünn besetzte Graphen mit einer linearen Anzahl von
Kanten (linear in ) verbessert dies den naiven Algorithmus mit
kubischer Laufzeit um den Faktor O(n / log n) bzw. O(n).
118
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Pseudocode
! Graphenbasiert: Siehe Kopie
119
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Algebraische Formulierung
!   BFS mit Matrix-Vektor-Multiplikation
!   Vollständige Aktualisierung der Eltern- und Pfadinformationen
!   Vollständige BC-Aktualisierung
!   Pseudocode: Siehe Tafel
120
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Parallelisierung
!   Grobgranular:
Jede einzelne BFS/SSSP-Operation ist unabhängig von den
anderen, wenn die Zentralitätssummen atomar aktualisiert
werden
!   Feingranular:
Die einzelnen Teile jeder BFS/SSSP-Operation können
parallelisiert werden
!   Im Detail:
Feingranularer Ansatz
!   Vorteil: Datenstrukturen müssen nicht repliziert werden
121
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Feingranulare Parallelisierung
!   Beim Startknoten k starten
!   Sukzessive die Grenze der besuchten Knoten expandieren
!   Dabei die Zahl der kürzesten Wege zählen
!   Multimenge P(w) für die Vorgänger jedes Knotens w
!   Knoten in S(i) gleichzeitig bearbeiten
!   Pseudocode: Siehe Kopie
122
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenfassung
!   (Knoten-)Zentralitätsmaße: Wichtigkeit von Knoten im
Netzwerk
! Betweenness Centrality: Summe der Anteile an kürzesten
Wegen zwischen Knotenpaaren
!   Naiver Algorithmus erfordert kubische Laufzeit
!   Beschleunigung durch rekursive Akkumulation
!   Algebraisch: Für ungewichtete Graphen recht einfach
!   Parallel: Feingranular versus grobgranular
123
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Übung
!   In der Übung eine Einheit zur Zusammenfassung und
Wiederholung der bisherigen Ergebnisse
!
!
!
!
124
 
 
 
 
Was wurde behandelt?
Gemeinsamkeiten
Unterschiede
Was fällt Ihnen auf, positiv oder negativ?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Herunterladen