Methoden der Netzwerkanalyse

Werbung
Methoden der Netzwerkanalyse
— Skript zur Vorlesung —
Ulrik Brandes
Sommersemester 2005
(letzte Änderung: 22. August 2006)
Prolog
Methoden der Netzwerkanalyse (Spezialvorlesung Algorithmen)
[AKTIV: wo treten Netzwerke auf ? ]
[AKTIV: welche Fragestellungen? ]
Bachelor Vertiefung, Master, HS Diplom/Lehramt
Grundlagen der Informatik, Angewandte Informatik
Ablauf
• Vorlesung wie üblich, Themen z.T. neu
• wöchentliche Übung:
Ausgabe Freitag, Besprechung Montag
• Termine:
Ü Mo 13:15–14:45 (HS062 M+I)
V Di 12:15–13:00 (HS14 JUR), Mi 12:15–13:45 (HS062 M+I, 12:30???)
• Prüfungen (Klausur/mündliche Prüfung Ende des Semesters für Schein)
i
bevor
Inhalt
bekanntgegeben
wird
Methoden der Netzwerkanalyse (SS 2005)
Geplanter Inhalt
1. Einführung
2. Zentralität
3. Cluster und Rollen
4. Netzwerkstatistik und -modelle
5. anschließendes Seminar geplant
Ankündigungen
Literatur: vertiefende Leseliste (später)
ii
Inhaltsverzeichnis
1 Einführung
1
1.1
Gradfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Teilgraphen, Wege und Zusammenhang . . . . . . . . . . . . . 11
2 Zentralität
3
31
2.1
Abstandszentralitäten
. . . . . . . . . . . . . . . . . . . . . . 35
2.2
Rückkopplungszentralitäten . . . . . . . . . . . . . . . . . . . 65
2.3
Kantenzentralitäten . . . . . . . . . . . . . . . . . . . . . . . . 88
3 Gruppen und Rollen
95
3.1
Dichte Teilgraphen . . . . . . . . . . . . . . . . . . . . . . . . 95
3.2
Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4 Modelle und Statistiken
110
iii
Kapitel 1
Einführung
Zunächst einige Definitionen zu zentralen Begriffen dieser Vorlesung. Diese
dienen vor allem der Erinnerung sowie der Auflösung von Mehrdeutigkeiten
durch abweichende Verwendung in anderen Veranstaltungen.
1.1 Def inition (Multimenge)
Eine Menge E zusammen mit einer Vielfachheit #E : E → N0 ihrer Elemente
heißt Multimenge. Wir schreiben kurz #e = #E (e) und e ∈k E, falls #e = k,
sowie e ∈ E bzw. e 6∈ E, falls e ∈k E für ein k ∈ N bzw. k = 0.
P
#e.
Die Kardinalität (auch: Mächtigkeit) |E| =
e∈E
Für Multimengen E, F gilt E ⊆ F , falls e ∈k E =⇒ e ∈l F mit k ≤ l. Ist
F jedoch eine gewöhnliche Menge, so gilt E ⊆ F , falls e ∈ E =⇒ e ∈ F
(unabhängig von #e).
1.2 Def inition (Multigraph)
Ein (gerichteter) Multigraph ist ein Paar G = (V, E) aus einer endlichen
Menge V von Knoten und einer Multimenge E ⊆ V × V von Kanten. Kanten
in {(v, v) : v ∈ V } nennen wir Schleifen, und ein Multigraph ist schlicht,
wenn er keine Schleifen hat. Kanten e ∈k E mit k > 1 heißen Multikanten
(auch: Mehrfachkanten).
1.3 Def inition (symmetrischer Multigraph)
Ein Multigraph G = (V, E) heißt symmetrisch, falls (v, w) ∈k E =⇒
(w, v) ∈k E, und anti-symmetrisch, falls (v, w) ∈ E =⇒ (w, v) 6∈ E. Zu einem beliebigen Multigraphen G = (V, E) ist der symmetrisierte Multigraph
1
Methoden der Netzwerkanalyse (SS 2005)
2
G′ = (V, E ∪ E ′ ) definiert durch (v, w) ∈k′ E ′ ⇐⇒ (v, w) ∈l E, (w, v) ∈k
E, k ′ = k − l > 0.
1.4 Bemerkung
Anti-symmetrische Multigraphen haben keine Schleifen.
1.5 Def inition (Graph)
Ein Multigraph G = (V, E) ohne Multikanten (e ∈1 E für alle e ∈ E, d.h. E
ist eine gewöhnliche Menge) ist ein (gewöhnlicher) Graph.
Zu einem Multigraphen G = (V, E) vereinbaren wir außerdem:
• n(G) = n = |V | und m(G) = m = |E|
• seine Größe |G| = n + m
• u Vorgänger von v, falls (u, v) ∈ E;
NG− (v) = N − (v) = {u : (u, v) ∈ E} die Menge aller Vorgänger
• w Nachfolger von v, falls (v, w) ∈ E;
NG+ (v) = N + (v) = {w : (v, w) ∈ E} die Menge aller Nachfolger
• x adjazent (benachbart) zu v, falls x Vorgänger oder Nachfolger von v;
NG (v) = N (v) = N − (v) ∪ N + (v) Menge aller Nachbarn von v
• e inzident zu v sowie v inzident zu e, falls e = (u, v) ∈ E oder e =
(v, w) ∈ E;
e′ inzident zu e, falls e′ = (u′ , w′ ), e = (u, w) ∈ E mit |{u, u′ , w, w′ }| <
|{u′ , w′ }| + |{u, w}|.
Da für unsere Zwecke weitgehend gleichbedeutend, definieren wir ungerichtete Multigraphen als Vereinfachung symmetrischer Multigraphen. Alle anderen Begriffe (gewöhnliche Graphen, Nachbarn, usw.) übertragen sich entsprechend.
1.6 Def inition (ungerichteter Multigraph)
~ = (V, E)
~ ist der zugehörige ungeZu einem symmetrischen Multigraphen G
richtete Multigraph Ḡ = (V, Ē) definiert durch {u, w} ∈k Ē ⇐⇒ (u, w) ∈k
~ und umgekehrt.
E
Methoden der Netzwerkanalyse (SS 2005)
3
Schließlich definieren wir noch eine Repräsentation von Multigraphen durch
Matrizen. Diese wird später als Brücke zur Linearen Algebra dienen.
1.7 Def inition (Adjazenzmatrix)
Zu einem Multigraphen G = (V, E) ist die Adjazenzmatrix A(G) = (av,w )v,w∈V
definiert durch
av,w = k ⇐⇒ (v, w) ∈k E .
1.8 Bemerkung
Die verschiedenen Graphenklassen sind wie oben definiert, damit die zugehörigen Adjazenzmatrizen gerade die folgenden Klassen bilden:
• (gerichtete) Multigraphen: N0n×n
• (gerichtete) Graphen: {0, 1}n×n
Symmetrische (Multi)graphen und ihre unterliegenden ungerichteten (Multi)graphen haben die gleiche, symmetrische Adjazenzmatrix und werden von
uns daher auch oft gar nicht unterschieden. Die Adjazenmatrix eines schleifenfreien (Multi)graphen hat auf der Diagonalen nur Nullen.
1.1
Gradfolgen
Wir beginnen mit lokalen Eigenschaften von Netzwerken.
1.9 Def inition (Knotengrade)
~ = (V, E)
~ ein Multigraph und v ∈ V , so heißen
Sind G
−
• d−
~ (v) = d (v) =
G
+
• d+
~ (v) = d (v) =
G
P
~
(u,v)∈E
P
~
(v,w)∈E
#(u, v) Eingangsgrad,
#(v, w) Ausgangsgrad und
• dG~ (v) = d(v) = d− (v) + d+ (v) Knotengrad oder kurz Grad von v.
Ist Ḡ = (V, Ē) ein ungerichteter Multigraph,
P so definieren wir den (ungerichteten) Grad von v als dḠ (v) = d(v) =
#{v, x} + 2 · #{v, v}.
{v,x}∈Ē
v6=x
Methoden der Netzwerkanalyse (SS 2005)
4
Für beliebige (Multi)graphen G definieren wir ferner
• δ(G) = min d(v) den minimalen Grad,
v∈V
• d(G) =
1
n
·
P
d(v) den durchschnittlichen Grad,
v∈V
• ∆(G) = max d(v) den maximalen Grad,
v∈V
sowie entsprechend für Ein- und Ausgangsgrade. Gilt δ(G) = d(G) = ∆(G),
so heißt G regulär.
1.10 Bemerkung
~ ist d ~ (v) = 2 · dḠ (v).
Für schlichte symmetrische Multigraphen G
G
1.11 Bemerkung
In gewöhnlichen Graphen sind d− (v) = |N − (v)| und d+ (v) = |N + (v)|, aber
d(v) = |N (v)| nur in anti-symmetrischen oder schlichten ungerichteten Graphen.
1.12 Lemma
Jeder schlichte ungerichtete Graph mit mindestens zwei Knoten enthält zwei
Knoten gleichen Grades.
Beweis: Gibt es keinen Knoten ohne Nachbarn, so liegen alle Knotengrade zwischen 1 und n − 1, sodass von den n Knoten mindestens zwei den
gleichen Grad haben müssen (Taubenschlagprinzip).
Gibt es genau einen Knoten ohne Nachbarn, liegen die Knotengrade der n−1
anderen Knoten zwischen 1 und n − 2.
1.13 Lemma (Handschlaglemma)
P
d(v) = 2m.
In (gerichteten wie ungerichteten) Multigraphen gilt
v∈V
Beweis:
Für gerichtete Multigraphen ist
P
v∈V
d− (v) = m =
P
d+ (v),
v∈V
woraus wegen d(v) = d− (v) + d+ (v) für alle v ∈ V die Behauptung folgt.
Ein ungerichteter Multigraph hat genau so viele Schleifen und halb so viele
andere Kanten wie der zugehörige symmetrische Multigraph. Die Behauptung folgt wieder aus der Definition des (ungerichteten) Knotengrades. Methoden der Netzwerkanalyse (SS 2005)
5
1.14 Def inition (Gradfolgen)
Gegeben sei ein gerichteter oder ungerichteter Multigraph G = (V, E) mit
Knotenmenge V = {v1 , . . . , vn }.
Die Folge D(G) = ((d− (v1 ), d+ (v1 )), . . . , (d− (vn ), d+ (vn ))) des gerichteten
bzw. D(G) = (d(v1 ) . . . , d(vn )) des ungerichteten Multigraphen G heißt dessen Gradfolge.
Welche Folgen natürlicher Zahlen sind Gradfolgen bestimmter Multigraph- Existenz
klassen? Das Handschlaglemma liefert eine notwendige Bedingung, die jedoch von
Isomeren
nur für allgemeine Multigraphen hinreichend ist. (Überlegen
Sie
sich
ein
VerP
P
fahren, um aus einer Folge ((a1 , b1 ), . . . , (an , bn )) mit ni=1 ai = ni=1 bi einen
Multigraphen mit ebendieser Gradfolge zu konstruieren!)
1.15 Def inition (konjugierte Zahlenfolge)
Zu einer Folge D = (d1 , . . . , dn ) von natürlichen Zahlen sei ∆ = maxj=1,...,n dj .
Die zu D konjugierte Folge D∗ = (d∗1 , . . . , d∗∆ ) ist definiert durch
d∗i = |{dj ≥ i : j = 1, . . . , n}| .
Für i > ∆ wird d∗i = 0 vereinbart.
Die konjugierte Folge lässt sich leicht aus einem Ferrers-Diagramm ablesen:
d1
d2
d3
d4
d5
d6
d∗1
•
•
•
•
•
•
6
d∗2
•
•
•
•
d∗3
•
•
d∗4
•
•
d∗5
•
4
2
2
1
5
4
2
2
1
1
15
Da es sich lediglich um zwei verschiedene Weisen des Abzählens handelt, gilt
n
X
i=1
di =
X
i≥1
d∗i .
Methoden der Netzwerkanalyse (SS 2005)
6
1.16 Satz (Ryser 1957; Gale 1957)
Eine Folge (a1 , b1 ), . . . , (an , bn ) von Paaren natürlicher Zahlen mit a1 ≥ . . . ≥
an und ai , bj ≤ n ist genau dann die Gradfolge eines Graphen, wenn
!
n
n
X
X
X
∗
ai =
bj =
bj
und
i=1
j≥1
j=1
k
X
k
X
n
X
ai ≤
i=1
b∗j
j=1
=
!
für k = 1, . . . , n − 1
min{bj , k}
j=1
Beweis: Die erste Bedingung ist offensichtlich notwendig und man sieht
leicht (wieder durch doppeltes Abzählen im Ferrers-Diagramm), dass die
Gleichheiten auf der rechten Seite der zweiten Bedingung gelten.
Um zu zeigen, dass die zweite Bedingung ebenfalls notwendig und zusammen
mit der ersten dann aber auch hinreichend ist, konstruieren wir ein bipartites
Flussnetzwerk mit Knoten s, v1+ , . . . , vn+ , v1− , . . . , vn− , t und Kanten (s, vj+ ) mit
Kapazität bj für alle j = 1, . . . , n, Kanten (vj+ , vi− ) mit Kapazität 1 für alle
i, j = 1, . . . , n und Kanten (vi− , t) mit Kapazität ai für alle i = 1, . . . , n.
v1+
1
v1−
b1
a1
a2
b2
s
t
an
bn
vn+
1
vn−
Ein maximaler st-Fluss,
der P
alle zu s und t inzidenten Kanten saturiert,
P
hat dann den Wert ni=1 ai = nj=1 bj . Zu jedem solchen Fluss definieren die
flusstragenden Kanten (vj+ , vi− ) einen Graphen mit der gewünschten Gradfolge, und umgekehrt definiert jeder solche Graph einen entsprechenden Fluss.
Um zu zeigen, dass ein solcher Fluss genau dann existiert, wenn zusätzlich
die zweite Bedingung gilt, betrachten wir Teilmengen S ⊆ {v1− , . . . , vn− }.
Methoden der Netzwerkanalyse (SS 2005)
7
Der gewünschte Fluss existiert genau dann, wenn aus jedem beliebigen S
höchstens so viel hinausfließen muss wie hineinfließen kann, d.h.
X
n
X
≤
ai
i: vi− ∈S
min{bj , |S|} .
j=1
Da die ai nicht-aufsteigend sortiert sind, gilt aber
P
ai ≤
i: vi− ∈S
|S|
P
ai für alle S.
i=1
Die Charakterisierung erlaubt Schleifen, lässt sich aber mit Hilfe der folgenden Variante konjugierter Folgen für schlichte Graphen umformulieren.
1.17 Def inition (korrigiert-konjugierte Zahlenfolge)
Zu einer nicht-aufsteigend sortierten Folge D = (d1 , . . . , dn ) von natürlichen
Zahlen ist die korrigiert-konjugierte Folge D̄ = (d¯1 , . . . , d¯d1 +1 ) definiert durch
d¯i = |{dj ≥ i − 1 : j = 1, . . . , i − 1}| + |{dj ≥ i : j = i + 1, . . . , n}| .
Zu korrigiert-konjugierten Folgen lässt sich entsprechend ein korrigiertes FerrersDiagramm angeben:
d1
d2
d3
d4
d5
d6
d¯1
×
•
•
•
•
•
5
d¯2
•
×
•
•
d¯3
•
•
·
d¯4
•
•
d¯5
•
•
d¯6
•
·
·
3
2
2
2
·
1
5
4
2
2
1
1
15
Auch für korrigiert-konjugierte Folgen gilt offensichtlich
n
X
i=1
di =
X
d¯i .
i≥1
Statt der Charakterisierung für schlichte Graphen geben wir gleich eine für
schlichte ungerichtete Graphen an.
Methoden der Netzwerkanalyse (SS 2005)
8
1.18 Satz (Erdős und Gallai 1960)
Eine Folge d1 ≥ . . . ≥ dn von natürlichen Zahlen ist genau dann die Gradfolge
eines schlichten ungerichteten Graphen, wenn
n
X
und
i=1
k
X
di ≡ 0 mod 2
di ≤
i=1
k
X
d¯i
für k = 1, . . . , n
(1.1)
i=1
Beweis: Gibt es einen schlichten ungerichteten Graphen G mit D(G) =
(d1 , . . . , dn ), so können wir o.E. d1 ≥ . . . ≥ dn annehmen. Die erste Bedingung
folgt dann aus dem Handschlaglemma. Wir folgern die zweite Bedingung
aus dem Satz über die Gradfolgen von gerichteten Graphen, indem wir den
zugehörigen symmetrischen Graphen so modifizieren, dass alle Knoten mit
di ≥ i eine Schleife erhalten. Die Gradfolge dieses gerichteten Graphen sei
((a1 , b1 ), . . . , (an , bn )). Dann ist für einen Index q (q < n da dn ≤ n − 1)
(
di + 1 für i ≤ q,
ai = b i =
di
sonst.
Aus dem Ferrers-Diagramm erhalten wir außerdem
(
d¯j + 1 für j ≤ q,
b∗j =
d¯j
sonst.
Mit dem Satz für gerichtete Graphen folgt dann
k
X
ai ≤
i=1
min{q, k} +
i=1
b∗i
i=1
k
k
X
k
X
k
di
k
X
d¯i + min{q, k}
i=1
für k = 1, . . . , n − 1.PDie Ungleichung
gilt
für den Fall k = n, denn
P
Pauch
n
n
¯
¯
wegen di ≤ n − 1 ist i=1 di = i≥1 di = i=1 di .
Die umgekehrte Richtung ist deutlich schwieriger und wird hier nicht bewiesen. Idee: Zeige zunächst die Existenz eines schlichten gerichteten Graphen
Methoden der Netzwerkanalyse (SS 2005)
9
mit entsprechenden Ein- und Ausgangsgraden und transformiere diesen sukzessive in einen schlichten symmetrischen Graphen mit gleicher Gradfolge.
Dessen zugehöriger ungerichteter Graph ist der gesuchte.
1.19 Satz
Bedingung (1.1) ist äquivalent zu
k
X
di ≤ k(k − 1) +
i=1
n
X
min{di , k}
für k = 1, . . . , n .
(1.2)
i=k+1
Beweis: Zu gegebener Folge d1 ≥ . . . ≥ dn sei ck die Anzahl der leeren
Felder (weder • noch × oder ·) im Quadrat {d1 , . . . , dk } × {d¯1 , . . . , d¯k } des
korrigierten Ferrers-Diagramms. Dann lässt sich Bedingung (1.2) schreiben
als
k
X
di ≤
i=1
k
X
d¯i + ck
(1.3)
i=1
Wegen ck ≥ 0 folgt (1.3), und damit auch (1.2), aus (1.1).
Die Umkehrung beweisen wir durch einen Widerspruch. Angenommen, es
gilt (1.3), aber
k
k
X
X
di >
d¯i
i=1
i=1
für ein k ≤ n (insbesondere also ck > 0). Da das Feld (1, 1) im korrigierten
Ferrers-Diagramm nicht leer ist, gilt c1 = 0 und damit k > 1. Sei nun q der
größte Index mit dq ≥ k − 1. Dann ist q < k, weil ck > 0, und wir erhalten
zunächst
k
k
k
n
X
X
X
X
¯
di = q(k − 1) +
di >
di +
di
i=1
i=1
und durch einfache Umformung
i=q+1
q
P
i=1
di > q(k − 1) +
i=k+1
n
P
i=k+1
di .
Methoden der Netzwerkanalyse (SS 2005)
10
Im Widerspruch dazu folgt aus (1.2)
q
X
di ≤ q(q − 1) +
i=1
n
X
min{di , q}
i=q+1
≤ q(q − 1) +
k
X
min{di , q} +
i=q+1
n
X
di
i=k+1
≤ q(q − 1) + (k − q)q +
n
X
di
i=k+1
≤ q(k − 1) +
n
X
di .
i=k+1
Die obigen Sätze sind globale Kriterien für die Realisierbarkeit von Zahlenfolgen als Gradfolgen, die in Linearzeit getestet werden können. Zum Abschluss
behandeln wir ein rekursives Kriterium, das unmittelbar auf einen Konstruktionsalgorithmus führt.
1.20 Satz (Havel 1955; Hakimi 1962)
Eine Folge d1 ≥ . . . ≥ dn mit d1 ≤ n − 1 ist genau dann Gradfolge eines
schlichten ungerichteten Graphen, wenn auch d2 −1, . . . , dd1 +1 −1, dd1 +2 , . . . , dn
Gradfolge eines solchen Graphen ist.
Der Beweis ergibt sich unmittelbar aus der folgenden Beobachtung.
1.21 Lemma
Zu einer Folge D = (d1 , . . . , dn ) mit d1 ≥ . . . ≥ dn sei GD die Menge aller
schlichten ungerichteten Graphen mit Knoten {v1 , . . . , vn }, in denen vi den
Grad di hat. Ist GD nicht leer, dann enthält sie einen Graphen mit N (v1 ) =
{v2 , . . . , vd1 +1 }.
Beweis: Da für d1 = n − 1 jeder Graph in GD die Bedingung erfüllt,
nehmen wir d1 < n − 1 an. Zu G = (V, E) ∈ GD definieren wir dann j(G)
als den kleinsten Index mit {v1 , vj } 6∈ E und wählen einen solchen Graphen
G = (V, E) ∈ GD , für den j(G) maximal ist.
Wir müssen zeigen, dass j(G) = d1 + 2 und nehmen daher an, es wäre
j = j(G) < d1 + 2. Von den d1 Nachbarn von v1 können dann höchstens
Methoden der Netzwerkanalyse (SS 2005)
11
d1 − 1 einen Index kleiner j haben, sodass es ein vi ∈ N (v1 ) mit i > j geben
muss. Daraus folgt dj ≥ di , und wegen v1 ∈ N (vi ) \ N (vj ) existiert dann auch
ein weiterer Knoten vk ∈ N (vj ) \ N (vi ).
v1
v2
v3
vj
vi
vk
Der Graph G′ = (V, E ′ ) mit E ′ = (E \{{v1 , vi }, {vj , vk }})∪{{v1 , vj }, {vi , vk }}
ist dann aber ebenfalls in GD und j(G′ ) > j = j(G) im Widerspruch zur
Maximalität.
1.2
Teilgraphen, Wege und Zusammenhang
1.22 Def inition (Teilgraph)
Ein Multigraph G = (V, E) enthält einen Multigraphen G′ = (V ′ , E ′ ), falls
V ′ ⊆ V und E ′ ⊆ E. Wir nennen G′ auch Teilgraph von G und schreiben
G′ ⊆ G.
1.23 Def inition (Weg und Kreis)
Ein (gerichteter) Weg (auch: Pfad) der Länge k ist ein Graph Pk = (V, E)
mit V = {v1 , . . . , vk+1 } und E = {(v1 , v2 ), . . . , (vk , vk+1 )}, wobei |E| = k
verlangt wird. Wir nennen Pk auch einen (v1 , vk+1 )-Weg. Der Graph Ck+1 =
(V, E ∪ {(vk+1 , v1 )}), (vk+1 , v1 ) 6∈ E, heißt (gerichteter) Kreis (auch: Zykel)
der Länge k + 1. Die Graphen Pk und Ck+1 heißen einfach, falls |V | = k + 1
(kein Knoten kommt doppelt vor).1
1.24 Satz
Jeder schlichte ungerichtete Graph G enthält einen Weg der Länge δ(G) und,
falls δ(G) ≥ 2, auch einen Kreis der Länge mindestens δ(G) + 1.
1
Unter einem ungerichteten Weg bzw. Kreis verstehen wir sowohl den zugehörigen ungerichteten Graphen, als auch den Graphen, der aus einem Weg bzw. Kreis durch Umdrehen beliebig vieler seiner Kanten entsteht.
Methoden der Netzwerkanalyse (SS 2005)
12
Beweis: Betrachte den letzten Knoten t eines längsten Weges in G. Da
es keinen längeren Weg gibt, müssen alle d(t) ≥ δ(G) Nachbarn von t Knoten
des Weges sein, und weil G schlicht ist, handelt es sich um verschiedene
Knoten.
t
Der erste zu t benachbarte Wegknoten schließt einen Kreis der Länge mindestens δ(G) + 1.
1.25 Def inition (Zusammenhang)
Ein Multigraph G = (V, E) heißt stark zusammenhängend, falls er für jedes
Paar v, w ∈ V sowohl einen (v, w)-Weg als auch einen (w, v)-Weg enthält.
G heißt (schwach) zusammenhängend, wenn der symmetrisierte Multigraph
stark zusammenhängend ist.
1.26 Def inition (mehrfacher Zusammenhang)
Ein ungerichteter Multigraph heißt k-fach (knoten)zusammenhängend, falls
jeder durch Entfernung von höchstens k − 1 beliebigen Knoten (und aller inzidenten Kanten) entstehende Multigraph zusammenhängend ist. Der
Multigraph heißt k-fach kantenzusammenhängend, falls jeder durch Entfernung von höchstens k − 1 beliebigen Kanten entstehende Multigraph zusammenhängend ist.
1.27 Def inition (Komponenten)
Zu einem schlichten Multigraphen heißt ein inklusionsmaximaler zusammenhängender (stark zushgd., k-fach zushgd., k-fach kantenzushgd.) Teilgraph (starke,
k-fache, k-fache Kanten-) Zusammenhangskomponente.2
2
In Multigraphen mit Schleifen werden diese zu den eindeutigen (starken, k-fachen
Kanten-) Zusammenhangskomponenten ihrer Knoten hinzugerechnet, für k > 1 aber als
eigene k-fache Zusammenhangskomponente gezählt.
Methoden der Netzwerkanalyse (SS 2005)
13
Tiefensuche
Linearzeitalgorithmen zur Bestimmung von Zusammenhangskomponenten
können als Spezialisierungen der folgenden Form der Tiefensuche formuliert
werden. Die Funktionen root, traverse und backtrack werden dazu abhängig
vom Komponententyp implementiert.
Algorithmus 1: (Gerichtete) Tiefensuche (depth-first search, DFS)
Eingabe : Multigraph G = (V, E)
Daten : Stack S (für Knoten auf DFS-Pfad)
Knotenarray incoming (für erste Eingangskante)
Knoten- und Kantenmarkierungen
foreach s ∈ V do
if s nicht markiert then
markiere s
incoming[s] ← nil
push s → S
−→ root(s)
while S nicht leer do
v ← top(S)
if ex. ein nicht markiertes e = (v, w) ∈ E then
markiere e
if w nicht markiert then
markiere w
incoming[w] ← e
push w → S
−→ traverse(v, e, w)
else
w ← pop(S)
−→ backtrack(w, incoming[w], top(S)) 3
Ist v1 , . . . , vn die Reihenfolge, in der die Knoten markiert werden, so heißt
DF S(vi ) = i die DFS-Nummer von vi . Die DFS-Nummer DF S((v, w)) =
DF S(v) einer Kante sei die DFS-Nummer des Knotens, von dem aus sie
durchlaufen wird. Wir definieren eine Tiefensuch(halb)ordnung auf V ∪ E
durch
DF S(p) ≤ DF S(q)
und DF S(p) < DF S(q)
3
⇐⇒
⇐⇒
Für einen leeren Stack S sei top(S) = nil.
pq
p≺q
für alle p, q ∈ V ∪ E
für alle p, q ∈ V ∪ E.
Methoden der Netzwerkanalyse (SS 2005)
14
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 (
• Querkante (
), falls w markiert ist, w v und w ∈ S,
), falls w markiert ist, w ≺ v und w 6∈ S, und
• Vorwärtskante (
), falls w markiert ist und v ≺ w.
B
A
E
G
F
H
D
C
I
Multigraph
5
9
4
6
8
3
6
4
7
5
10
1
12
1
2
3
14
11
7
9
8
2
15
13
(gerichtete) Tiefensuche
Indizes entsprechen Durchlaufreihenfolge der Knoten bzw. Kanten
Methoden der Netzwerkanalyse (SS 2005)
15
Ersetzt man die eingekastete Kantenauswahl durch
e = (v, w) ∈ E or e = (w, v) ∈ E ,
so werden die Kanten unabhängig von ihrer Richtung durchlaufen, z.B.:
14
13
2
6
1
9
8
15
2
4
3
1
5
11
12
7
10
3
4
7
6
5
8
9
ungerichtete Tiefensuche
Die folgenden Algorithmen benutzen alle das durch die Tiefensuche gegebene Gerüst. Wir geben daher nur die unterschiedlichen Versionen der drei
ausgelassenen Methoden an. Alle diese Algorithmen können so implementiert werden, dass sie linear (in der Größe des Multigraphen) viel Zeit und
Platz benötigen. In objekt-orientierten Programmen kann die Tiefensuche
dann z.B. als abstrakte Klasse (von der speziellere Algorithmen ableiten)
oder auch als Iterator über die Kanten (dessen Ausgabe die Spezialisierungen schrittweise verarbeiteten) implementiert werden.
(Schwache) Zusammenhangskomponenten
Algorithmus 2: (Schwache) Zusammenhangskomponenten
(Spezialisierung der ungerichteten Tiefensuche)
Daten : Komponente c (repräsentiert durch ersten Knoten)
Ausgabe: Knoten- und Kantenarray component
(zeigt auf den Repräsentanten)
root(vertex s) begin
c ← s; component[s] ← c
end
traverse(vertex v, edge e, vertex w) begin
component[e] ← c
component[w] ← c
end
Methoden der Netzwerkanalyse (SS 2005)
16
Zweifache Zusammenhangskomponenten
1.28 Lemma
Zwei Kanten sind genau dann in einer zweifachen Zusammenhangskomponente, wenn es einen einfachen ungerichteten Kreis gibt, der beide enthält.
Jede Kante liegt in genau einer zweifachen Zusammenhangskomponente.
Beweis: Zu zwei gegebenen Kanten eines zweifach zusammenhängenden
Multigraphen betrachte den ebenfalls zweifach zusammenhängenden Multigraphen, der dadurch entsteht, dass die Kanten durch je einen neuen Knoten
unterteilt werden. Wir erhalten dann einen einfachen ungerichteten Kreis aus
dem Satz von Menger (knotendisjunkte Version): In einem zweifach zusammenhängenden ungerichteten Multigraphen mit mindestens zwei Kanten gibt
es zwischen je zwei Knoten zwei knotendisjunkte Wege.
Umgekehrt ist jeder einfache ungerichtete Kreis zweifach zusammenhängend,
sodass je zwei seiner Kanten in einer zweifachen Zusammenhangskomponente
liegen.
Eine Kante e kann nicht in zwei verschiedenen zweifachen Zusammenhangskomponenten liegen, denn wegen der Inklusionsmaximalität müsste es sonst
in jeder dieser Komponenten eine weitere Kante e1 bzw. e2 geben, die nicht
in der jeweils anderen liegt. Zu diesen gibt es je einen einfachen ungerichteten
Kreis, auf dem sie gemeinsam mit e liegen. Die Vereinigung der beiden Kreise
enthält einen einfachen ungerichteten Kreis, auf dem e1 und e2 liegen.
e1
e
e2
Methoden der Netzwerkanalyse (SS 2005)
17
Jede zweifache Zusammenhangskomponente ist also Vereinigung von einfachen ungerichteten Kreisen. Wir nutzen nun aus, dass bei der ungerichteten
Tiefensuche jede Rückwärtskante einen Kreis schließt und jeder Kreis eine
Rückwärtskante enthält.
Algorithmus 3: Zweifache Zusammenhangskomponenten
(Spezialisierung der ungerichteten Tiefensuche)
Daten : Stack SE (Kanten in offenen Komponenten)
Stack C (offene Komponenten, repräsentiert durch erste
Kante)
Ausgabe: Kantenarray component (zeigt auf Repräsentanten)
traverse(vertex v, edge e, vertex w) begin
if e ist Schleife then component[e] ← e
else
push e → SE
if e ist Baumkante then push e → C
if e ist Rückwärtskante then
while w ≺ top(C) do pop(C)
end
backtrack(vertex w, edge e, vertex v) begin
if e = top(C) and e 6= nil then
pop(C)
repeat
e′ ← pop(SE )
component[e′ ] ← e
until e′ = e
end
Methoden der Netzwerkanalyse (SS 2005)
18
Mit der ungerichteten Tiefensuchreihenfolge aus dem obigen Beispiel durchläuft
der Algorithmus zur Bestimmung der zweifachen Zusammenhangskomponenten die folgenden Zwischenstufen (Indizes entsprechen DFS-Nummern):
1
1
1
1
2
2
2
2
3
4
3
3
4
(4, 3)
(3, 2)
(2, 1)
(4, 3)
(3, 2)
(2, 1)
C
SE
4
nach traverse(3, (4, 3), 4)
1
2
2
2
2
3
4
3
(2, 1)
(4, 1)
(2, 4)
(4, 3)
(3, 2)
(2, 1)
C
SE
3
4
SE
1
1
4
C
nach traverse(4, (2, 4), 2)
1
4
(3, 2)
(2, 1)
(2, 4)
(4, 3)
(3, 2)
(2, 1)
3
nach traverse(4, (4, 1), 1)
4
(2, 1)
(2, 3)
(4, 1)
(2, 4)
(4, 3)
(3, 2)
(2, 1)
C
SE
3
3
4
nach traverse(3, (2, 3), 2)
nach backtrack(2, (2, 1), 1)
sind C und SE leer
Methoden der Netzwerkanalyse (SS 2005)
19
1
1
5
1
1
4
7
3
4
6
3
4
3
6
7
2
6
3
5
2
6
2
4
1
5
2
5
1
(6, 7)1
(6, 5)
(1, 5)
(6, 7)1
(6, 5)
(1, 5)
C
SE
4
3
7
3
4
nach traverse(6, (6, 7)1 , 7)
(6, 7)1
(6, 5)
(1, 5)
(6, 7)2
(6, 7)1
(6, 5)
(1, 5)
C
SE
nach traverse(7, (6, 7)2 , 6)
8
1
1
5
1
8
5
1
8
5
1
7
3
3
4
7
3
4
6
7
2
6
3
5
2
6
2
4
1
5
2
4
5
4
3
6
7
3
(5, 8)
(1, 5)
(5, 8)
(1, 5)
C
SE
nach traverse(5, (5, 8), 8)
4
(5, 8)
(1, 5)
(8, 5)
(5, 8)
(1, 5)
C
SE
nach traverse(8, (8, 5), 5)
Methoden der Netzwerkanalyse (SS 2005)
20
8
8
8
1
1
5
1
8
5
1
8
5
1
4
3
3
4
2
6
3
5
8
9
7
2
4
1
5
2
5
6
6
9
7
2
9
6
3
4
7
(8, 9)
(5, 8)
(1, 5)
(8, 9)
(8, 5)
(5, 8)
(1, 5)
C
SE
4
8
3
7
(1, 5)
(8, 1)
(8, 5)
(5, 8)
(1, 5)
C
SE
3
4
nach traverse(9, (9, 9), 9)
9
nach traverse(8, (8, 1), 1)
Eine kompakte Darstellung der zweifachen Zusammenhangskomponenten eines Multigraphen ist der (bipartite) Block-Schnittknoten Baum, in dem eine
Sorte Knoten die Komponenten (Blöcke), und die andere Sorte die Schnittknoten (Knoten, die in mehr als einer nicht-trivialen Komponente liegen, weil
ihre Herausnahme den Multigraph unzusammenhängend macht) repräsentiert.
G
E
A,B,C,D
D
G
E,G
D,E,F
F
F,H
Block-Schnittknoten Baum
H
H,I
Methoden der Netzwerkanalyse (SS 2005)
21
1.29 Satz
Algorithmus 3 berechnet die zweifachen Zusammenhangskomponenten eines
Multigraphen in Linearzeit.
Beweis: Wir beweisen die Korrektheit des Algorithmus durch Induktion
über die Anzahl der Aufrufe von traverse und backtrack. Für jede Kante des
Graphen wird einmal traverse aufgerufen, backtrack aber nur für Baumkanten. Wir nennen eine markierte Baumkante, über die noch kein Backtracking
erfolgt ist, offen. Jede andere markierte Kante ist fertig. Zu jedem Zeitpunkt
induzieren die offenen Kanten einen Weg. Zu jeder zweifachen Zusammenhangskomponente des markierten Teilgraphen gibt es eine eindeutige erste
Kante, und eine Komponente heißt offen (fertig), wenn ihre erste Kante offen
(fertig) ist.
Nach den ersten t Aufrufen von traverse und backtrack sei Gt der von den
markierten Kanten induzierte Teilgraph. Die offenen zweifachen Zusammenhangskomponenten, ihre Kantenmengen und ihre ersten Kanten bezeichnen
(i)
(i)
(i)
(i)
wir mit Gt , Et und et , 1 ≤ i ≤ kt , in der Reihenfolge, in der die et
markiert wurden. Wir zeigen die folgenden Invarianten:
1. Die Kanten jeder fertigen zweifachen Zusammenhangskomponenten zeigen auf deren erste Kante.
(1)
(kt )
2. Auf C liegen et ≺ . . . ≺ et
in dieser Reihenfolge.
(1)
(kt )
3. Auf SE liegen die Kanten aus Et , . . . , Et
in dieser Reihenfolge.
Natürlich sind alle drei Aussagen vor dem ersten Aufruf richtig. Wir setzen
daher voraus, dass sie für ein t > 0 nach t − 1 Aurufen gelten und unterscheiden zwei Fälle.
1. Fall (Aufruf von traverse(v, e, w)):
Im Sonderfall, dass e eine Schleife ist, wird diese unmittelbar zu einer eigenen
Komponente. Ist e eine Baumkante, so ist w ein Knoten vom Grad 1 in Gt
und damit e die einzige Kante einer neuen offenen Komponente. Alle drei
Invarianten bleiben richtig. Ist e eine Rückwärtskante aber keine Schleife,
so bildet sie zusammen mit dem letzten, bei w v beginnenden Teilstück
des Weges der offenen Kanten einen einfachen Kreis. Alle auf diesem Kreis
liegenden Kanten gehören zu derselben zweifachen Zusammenhangskomponente von Gt , und da alle Kanten e′ mit w ≺ e′ von C entfernt werden, gelten
die Invarianten weiterhin.
Methoden der Netzwerkanalyse (SS 2005)
22
2. Fall (Aufruf von backtrack(w, e, v)):
Im Fall e = nil ist w ein Knoten, der in der äußeren Schleife der Tiefensuche
auf den Stack S gelegt wurde. Alle Kanten der (schwachen) Zusammenhangskomponente und damit auch alle ihre zweifachen Zusammenhangskomponenten waren damit schon beim vorhergehenden Aufruf fertig, sodass C und SE
leer sind. Andernfalls wird die Kante e fertig, und aufgrund der zweiten Invariante ist sie genau dann erste Kante der offenen Komponente mit höchstem
Index, wenn sie ganz oben auf C liegt. Da es in der ungerichteten Tiefensuche keine Quer- oder Vorwärtskanten gibt, kann die zugehörige Komponente
nicht mehr wachsen und ist daher fertig. Wegen der dritten Invariante werden
durch die repeat-Schleife die richtigen Kanten vom Stack entfernt.
Da die Tiefensuche sicher in Linearzeit durchgeführt werden kann, ist nur zu
zeigen, dass die Aufrufe von traverse und backtrack insgesamt linear viel Zeit
benötigen. Dies folgt aber unmittelbar aus der Beobachtung, dass jede Kante
nur höchstens einmal auf SE und C abgelegt wird.
Methoden der Netzwerkanalyse (SS 2005)
23
Zweifache Kantenzusammenhangskomponenten
1.30 Lemma
Zwei Knoten sind genau dann in einer zweifachen Kantenzusammenhangskomponente, wenn es einen ungerichteten Kreis gibt, der beide enthält. Jeder
Knoten liegt in genau einer zweifachen Kantenzusammenhangskomponente.
Algorithmus 4: Zweifache Kantenzusammenhangskomponenten
(Spezialisierung der ungerichteten Tiefensuche)
Daten : Stack SV (Knoten in offenen Komponenten)
Stack C (offene Komponenten, repräsentiert durch ersten
Knoten)
Ausgabe: Knotenarray component (zeigt auf Repräsentanten)
root(vertex s) begin
push s → SV
push s → C
end
traverse(vertex v, edge e, vertex w) begin
if e ist Baumkante then
push w → SV
push w → C
if e ist Rückwärtskante then
while w ≺ top(C) do pop(C)
end
backtrack(vertex w, edge e, vertex v) begin
if w = top(C) then
pop(C)
repeat
u ← pop(SV )
component[u] ← w
until u = w
end
1.31 Satz
Algorithmus 4 berechnet die zweifachen Kantenzusammenhangskomponenten eines Multigraphen in Linearzeit.
Beweis:
Analog zu den zweifachen Zusammenhangskomponenten.
Methoden der Netzwerkanalyse (SS 2005)
24
Mit der gleichen ungerichteten Tiefensuchreihenfolge wie oben ergeben sich
die folgenden Zwischenschritte.
1
1
2
2
3
3
4
4
3
2
1
4
3
2
1
C
SV
4
nach traverse(3, (4, 3), 4)
1
2
2
3
3
1
4
3
2
1
C
SV
nach traverse(4, (4, 1), 1)
C
SV
nach traverse(4, (2, 4), 2)
1
4
2
1
4
3
2
1
4
1
4
3
2
1
C
SV
nach traverse(3, (2, 3), 2)
nach backtrack(2, (2, 1), 1)
sind C und SV unverändert
Methoden der Netzwerkanalyse (SS 2005)
25
1
5
1
5
2
6
2
6
3
7
6
5
1
7
6
5
4
3
2
1
C
SV
7
4
nach traverse(6, (6, 7)1 , 7)
1
5
2
6
3
4
8
5
1
8
5
4
3
2
1
C
SV
nach traverse(5, (5, 8), 8)
6
5
1
C
SV
7
4
nach traverse(7, (6, 7)2 , 6)
8
7
3
7
6
5
4
3
2
1
1
5
2
6
3
4
8
5
1
8
5
4
3
2
1
C
SV
7
nach traverse(8, (8, 5), 5)
Methoden der Netzwerkanalyse (SS 2005)
1
5
2
6
8
9
5
1
9
8
5
4
3
2
1
C
SV
7
4
1
5
2
6
8
9
9
3
26
nach traverse(9, (9, 9), 9)
3
1
8
5
4
3
2
1
C
SV
7
4
nach traverse(8, (8, 1), 1)
Eine kompakte Darstellung der zweifachen Kantenzusammenhangskomponenten eines Multigraphen ist der Baum (sic!) der brückenfreien Komponenten, dessen Knoten die kontrahierte Menge der Knoten einer Komponente
und dessen Kanten die Brücken des Multigraphen (Kanten, deren Herausnahme ihn unzusammenhängend macht) sind.
G
A,B,C,D,E,F
H,I
Baum der brückenfreien Komponenten
Methoden der Netzwerkanalyse (SS 2005)
27
Starke Zusammenhangskomponenten
1.32 Lemma
Zwei Knoten sind genau dann in einer starken Zusammenhangskomponente,
wenn es eine geschlossene gerichtete Kantenfolge4 gibt, die beide enthält.
Jeder Knoten liegt in genau einer starken Zusammenhangskomponente.
1.33 Satz
Verwendet man Algorithmus 4 als Spezialisierung einer gerichteten Tiefensuche und erweitert die eingekastete Bedingung zu
e ist Rückwärtskante or e ist Querkante mit w ∈ SV ,
so berechnet der modifizierte Algorithmus die starken Zusammenhangskomponenten des eingegebenen Multigraphen in Linearzeit.
Beweis: Eine Querkante schließt genau dann einen Kreis, wenn die
Komponente, in der sich der Zielknoten w befindet, noch offen ist. Vorwärtskanten sind lediglich Abkürzungen für bereits vorhandene gerichtete Wege.
Alle anderen Argumente sind analog zum Fall der zweifachen Kantenzusammenhangskomponenten.
4
D.h. ein Kreis, in dem Knoten wiederholt vorkommen dürfen.
Methoden der Netzwerkanalyse (SS 2005)
28
Wie schon bei den beiden vorhergehenden Beispielen betrachten wir wieder
die Zwischenschritte des Algorithmus, diesmal aber natürlich bezüglich der
gerichteten Tiefensuche.
1
1
1
2
2
2
3
3
2
1
3
2
1
C
SV
3
nach traverse(2, (2, 3), 3)
3
2
1
3
2
1
C
SV
4
nach traverse(3, (3, 2), 2)
4
2
1
4
3
2
1
C
SV
nach traverse(3, (3, 4), 4)
1
1
1
5
2
2
2
6
3
3
3
4
2
1
3
2
1
C
SV
nach backtrack(4, (3, 4), 3)
1
3
2
1
C
SV
4
nach traverse(3, (3, 1), 1)
nach backtrack(1, nil, nil)
sind C und SV leer
4
6
5
6
5
C
SV
nach traverse(6, (6, 1), 1)
Methoden der Netzwerkanalyse (SS 2005)
29
1
5
1
5
2
6
2
6
3
3
7
4
7
5
7
6
5
C
SV
9
4
nach traverse(6, (6, 7), 7)
7
8
9
8
9
8
C
SV
nach traverse(8, (8, 9), 9)
1
5
1
5
2
6
2
6
3
4
8
3
7
9
4
8
7
9
8
8
8
8
C
SV
C
SV
nach backtrack(9, (8, 9), 8)
nach traverse(8, (8, 2), 2)
Eine kompakte Darstellung der starken Zusammenhangskomponenten eines
Multigraphen ist der gerichtete kreisfreie Multigraph (directed acyclic graph,
DAG), dessen Knoten die kontrahierten Komponenten und dessen Kanten
Methoden der Netzwerkanalyse (SS 2005)
30
die dabei übrigbleibenden Kanten sind (genau die Kanten aller gerichteten
Schnitte des Multigraphen).
G
A,B,C
D,E,F
H
I
DAG der starken Zusammenhangskomponenten
Kapitel 2
Zentralität
“One of the primary uses of graph theory in social network analysis is the
identification of the most important actors in a social network.”
(Wasserman/Faust, 1994)
[AKTIV: Wer ist zentral? Warum? ]
31
Methoden der Netzwerkanalyse (SS 2005)
32
Die relative Wichtigkeit der Knoten eines Multigraphen interessiert auch in
zahlreichen anderen Kontexten, wir wollen uns jedoch vordringlich mit den
Gemeinsamkeiten der dahinter stehenden Methoden beschäftigen. Da der
modellierte Gegenstand – und insbesondere seine nicht durch den Multigraphen erfassten Eigenschaften – für uns unbedeutend sind, wollen wir nur
strukturell verschiedene Multigraphen unterscheiden.
2.1 Def inition (Isomorphie)
Zwei Multigraphen G = (V, E) und G′ = (V ′ , E ′ ) heißen isomorph, G ∼
= G′ ,
′
falls es eine Bijektion α : V → V mit (v, w) ∈k E ⇐⇒ α(v, w) :=
(α(v), α(w)) ∈k E ′ gibt. In diesem Fall nennen wir α einen zugehörigen
(Multigraphen-)Isomorphismus und schreiben auch α(G) = G′ . Falls V = V ′
heißt α auch Automorphismus von G.
2.2 Def inition (Strukturindex)
Seien K eine unter Bildung von Zusammenhangskomponenten abgeschlossene
Klasse nicht-isomorpher Multigraphen und R∗≥0 die Menge aller Vektoren
über den nicht-negativen reellen Zahlen. Eine Funktion s : K → R∗≥0 heißt
(Knoten- bzw. Kanten-)Strukturindex auf K, falls
• für alle G = (V, E) ∈ K
s(G) ∈ RV≥0
bzw. s(G) ∈ RE
≥0
(d.h. s ist ein Knoten- bzw. Kantenindex),
• für alle G = (V, E) ∈ K und Automorphismen α von G
s(G)v = s(α(G))α(v)
bzw. s(G)e = s(α(G))α(e)
für alle v ∈ V bzw. e ∈ E
(d.h. s bewertet ausschließlich die Struktur des Graphen), und
• für alle G = (V, E) ∈ K und Zusammenhangskomponenten
C = (VC , EC ) ⊆ G
s(G)v · s(C)w = s(C)v · s(G)w
bzw. s(G)e · s(C)f = s(C)e · s(G)f
für alle v, w ∈ VC bzw. e, f ∈ EC (d.h. s ist konsistent).
Gibt es zu einem Multigraph G 6∈ K einen isomorphen Multigraphen α(G) ∈
K, so definieren wir s(G) = s(α(G)).
Methoden der Netzwerkanalyse (SS 2005)
33
Nicht jeder Strukturindex misst etwas, das unserem intuitiven Verständnis
von Zentralität“ entspricht. Wir formulieren daher (sehr schwach erschei”
nende) Mindestanforderungen, die außerdem noch zwischen grundsätzlich
verschiedenen Formen struktureller Zentralität unterscheiden.
2.3 Def inition (Zentralität)
Ein Strukturindex c auf einer unter Hinzufügen von Kanten abgeschlossenen
Klasse K von Multigraphen heißt (schwacher) (Knoten-)Zentralität(sindex),
falls eine der drei folgenden Bedingungen für alle G = (V, E) ∈ K und
v, w ∈ V gilt:
• → ◦ Für alle x ∈ V
c(G)v ≥ c(G)x =⇒ c(G + (v, w))v ≥ c(G + (v, w))x
(Zentralität basierend auf Einfluss, Zugang, usw.)
◦ → • Für alle x ∈ V
c(G)w ≥ c(G)x =⇒ c(G + (v, w))w ≥ c(G + (v, w))x
(Zentralität basierend auf Reputation, Erreichbarkeit, usw.)
• → • Für alle x ∈ V
c(G)v + c(G)w ≥ c(G)x
=⇒ c(G + (v, w))v + c(G + (v, w))w ≥ c(G + (v, w))x
(Zentralität basierend auf Kontrolle, Mediation, usw.)
Wir schreiben auch kurz c ∈ • → ◦(K), c ∈ ◦ → •(K), bzw. c ∈ • → •(K) und
sagen, c sei vom Typ • → ◦, ◦ → • bzw. • → •.
Methoden der Netzwerkanalyse (SS 2005)
34
Normierte Zentralitäten erlauben den Vergleich der relativen Wichtigkeit von
Knoten in Netzwerken unterschiedlicher Größe, aber auch bzgl. unterschiedlicher Indizes.
2.4 Def inition (Normalisierung)
Ein Knoten- bzw. Kanten-Strukturindex s auf K heißt normiert, falls
X
s(G)v = 1 bzw.
v∈V
X
s(G)e = 1
e∈E
für alle G = (V, E) ∈ K.
2.5 Bemerkung
Zu jeder Zentralität c auf K gibt es eine eindeutige normierte Zentralität ĉ
auf K mit

c(G)v


P
falls c(G)x > 0 für ein x ∈ V



c(G)x

x∈V
ĉ(G)v =





1
sonst .
n
Diese kann als Verteilung der Zentralität (der Wichtigkeit, des Einflusses,
usw.) angesehen werden.
2.6 Beispiel (Gradzentralität)
Man prüft leicht nach, dass der Eingangsgrad eine ◦ → •-Zentralität, der
Ausgangsgrad eine • → ◦-Zentralität, und der Knotengrad eine ◦ → •-, • → ◦und auch • → •-Zentralität ist.
Die Gradzentralitäten sind lokal in dem Sinne, dass sie ausschließlich die
Nachbarschaft eines Knotens berücksichtigen. Wir werden zwei verschiedene Arten von Verallgemeinerungen betrachten, welche die globale Struktur
des Multigraphen berücksichtigen. Bei der ersten gehen die Entfernungen zu
anderen Knoten ein, bei der zweiten die Bewertungen der Nachbarn.
Offene Frage: Folgt aus c ∈ ◦ → •(K)∩• → ◦(K)∩• → •(K), dass c monoton
im Knotengrad ist?
Methoden der Netzwerkanalyse (SS 2005)
2.1
35
Abstandszentralitäten
Als Variante der Gradzentralitäten kann die Größe der Nachbarschaften eines
Knotens zur Zentralitätsbestimmung herangezogen werden. Eine Möglichkeit, andere Knoten über die Nachbarschaft hinaus in die Bewertung einzubeziehen, besteht dann darin, die Zahl der Nachbarn von Nachbarn, die selbst
keine Nachbarn des betrachteten Knotens sind, hinzuzuzählen, aber z.B. geringer zu gewichten. Deren noch nicht berücksichtigte Nachbarn könnten mit
noch geringerem Gewicht hinzugezählt werden, usw.
2.7 Def inition (Abstand)
Sei G = (V, E) ein Multigraph. Gibt es für zwei Knoten s, t ∈ V einen Weg
von s nach t, so heißt die kürzeste Länge eines (s, t)-Weges Abstand (auch:
Distanz), dG (s, t), von s nach t. Gibt es keinen (s, t)-Weg, so vereinbaren wir
dG (s, t) = ∞.
Um Schwierigkeiten mit unendlichen Abständen zu vermeiden, betrachten
wir in diesem Abschnitt meist nur stark zusammenhängende Multigraphen.
Sei daher im folgenden S die Klasse der stark zusammenhängenden Multigraphen und G die Klasse aller Multigraphen.
2.8 Def inition (Exzentrizität, Durchmesser, Radius)
Für einen Multigraphen G = (V, E) definieren wir
die Exzentrizität eG (v) = max{dG (v, w), dG (w, v) : w ∈ V } ,
den Radius rad (G) = min{eG (v) : v ∈ V } und
den Durchmesser diam(G) = max{eG (v) : v ∈ V } .
Üblicherweise wird das Zentrum C(G) ⊆ V eines zusammenhängenden ungerichteten Graphen (d.h. eines ungerichteten Graphen mit endlichem Radius)
als die Menge der Knoten mit kleinster Exzentrizität definiert,
C(G) = {v ∈ V : eG (v) = rad (G)} .
Wir können diesen Zentrumsbegriff zu einem Zentralitätsindex für stark zusammenhängende Multigraphen erweitern, indem wir z.B. allen Knoten im
analog definierten Zentrum den Wert 1, und allen außerhalb den Wert 0
zuweisen.
Frage: Um welche Sorte Zentralität handelt es sich dann?
Methoden der Netzwerkanalyse (SS 2005)
36
Der folgende Index macht feinere Unterschiede, indem statt der Exzentrizität
(also des maximalen Abstands) der mittlere Abstand zu anderen Knoten
zugrunde gelegt wird.
2.9 Def inition (Closeness; Beauchamp 1965)
Die Closeness-Zentralität cC ist definiert durch
cC (G)v = P
1
dG (v, t)
t∈V
1
0
für alle G = (V, E) ∈ S, wobei
= 1 gelte.
Frage: Warum wird Closeness-Zentralität nur auf stark zusammenhängenden Multigraphen definiert?
7.09 %
7.09 %
9.64 %
10.95 %
10.47 %
11.47 %
10.04 %
10.95 %
8.92 %
6.69 %
6.69 %
normierte Closeness-Zentralität im Beispielgraphen
Methoden der Netzwerkanalyse (SS 2005)
37
2.10 Satz
cC ∈ • → ◦(S)
Beweis: Seien G = (V, E) ∈ S, c = cC (G), v, w ∈ V , G′ = G + (v, w)
und c′ = cC (G′ ). Wir müssen zeigen, dass
cv ≥ cx =⇒ c′v ≥ c′x
für
P alle x ∈ V . Für ein festes x ∈ V folgt aus cv ≥ cx zunächst
t∈V dG (x, t). Wir zeigen, dass
P
t∈V
dG (v, t) ≤
dG (v, t) − dG′ (v, t) ≥ dG (x, t) − dG′ (x, t) ≥ 0
P
P
für alle t ∈ V , woraus dann t∈V dG′ (v, t) ≤ t∈V dG′ (x, t) und somit die
Behauptung folgt. Die hintere Ungleichung ist klar, da wir eine Kante hinzufügen und also keinen Abstand vergrößern. Ist dG (x, t) − dG′ (x, t) > 0, so
muss jeder kürzeste (x, t)-Weg in G′ die neue Kante (v, w) benutzen. Es gilt
daher dG′ (x, t) = dG′ (x, v) + dG′ (v, t) und wir erhalten
dG (x, t) − dG′ (x, t) = dG (x, t) − [dG′ (x, v) + dG′ (v, t)]
≤ [dG (x, v) + dG (v, t)] − [dG′ (x, v) + dG′ (v, t)]
= dG (v, t) − dG′ (v, t) .
Die letzte Gleichung gilt, weil eine neue Kante (v, w) den Abstand von x
nach v nicht verkleinert.
2.11 Satz
cC 6∈ ◦ → •(S) ∪ • → •(S)
Beweis:
cC 6∈ ◦ → •(S) :
x=v
w
cC 6∈ • → •(S) :
x
v
cw =
c′w =
1
3
1
3
≥
<
1
3
1
2
= cv
= c′v
cv + cw =
c′v + c′w =
1
23
1
22
+
+
1
24
1
24
w
≥
<
1
12
1
11
= cx
= c′x
Methoden der Netzwerkanalyse (SS 2005)
38
Aus cC erhalten wir dennoch leicht eine ◦ → •-Zentralität, indem wir in
der Definition die Distanzen von durch Distanzen nach v ersetzen. Die Bedingungen an • → •-Zentralitäten sind motiviert durch den folgenden, sehr
populären Index auf der Klasse aller nicht-isomorphen Multigraphen G.
2.12 Def inition (Betweenness; Anthonisse 1971, Freeman 1977)
Die Betweenness-Zentralität cB ist definiert durch
cB (G)v =
X σG (s, t|v)
σG (s, t)
s,t∈V
für alle G = (V, E) ∈ G. Dabei bezeichne σG (s, t) die Anzahl der kürzesten
Wege von s nach t, σG (s, t|v) die Anzahl der kürzesten (s, t)-Wege, die v als
inneren Knoten enthalten (d.h. v liegt auf dem Weg, aber v 6= s, t), und es
gelte 00 = 0.
0%
0%
5.67 %
14.09 %
18.38 %
22.51 %
15.64 %
17.53 %
6.19 %
0%
0%
normierte Betweenness-Zentralität im Beispielgraphen
Methoden der Netzwerkanalyse (SS 2005)
39
2.13 Satz
cB ∈ • → •(G)
Beweis: (verbesserungsbedürftig!) Seien wieder G = (V, E) ∈ G,
v, w ∈ V und G′ = G + (v, w). Die Behauptung ist bewiesen, wenn wir zu
jedem Paar s, t ∈ V für alle x ∈ V zeigen können, dass
σG′ (s, t|v) + σG′ (s, t|w) − σG′ (s, t|x)
σG (s, t|v) + σG (s, t|w) − σG (s, t|x)
.
≥
′
σG (s, t)
σG (s, t)
Wir wählen s, t, x ∈ V beliebig und unterscheiden danach, ob die neue Kante
(v, w) den Abstand von s nach t verringert.
1. Fall: Bleibt der Abstand gleich, so ist jeder kürzeste (s, t)-Weg in G auch
ein solcher in G′ . Es gilt daher σG′ (s, t) = σG (s, t) + k, wobei (v, w) auf den
k ≥ 0 neuen kürzesten (s, t)-Wegen in G′ liegt.
Ist s = w oder t = v, dann ist k = 0, sodass beide Seiten der Ungleichung
identisch sind. Für s = v und t = w bestehen alle (alte und neue) kürzeste
(s, t)-Wege nur aus einer Kante. Weder v oder w noch x sind dann innerer
Knoten, sodass beide Seiten identisch Null sind.
Im Fall s = v und t 6= w ist σG (s, t|v) = σG′ (s, t|v) = 0, aber wieder
σG′ (s, t|w) = σG (s, t|w) + k und σG′ (s, t|x) ≤ σG (s, t|x) + k (wobei k =
σG (w, t)). Die Ungleichung folgt sofort, da immer σG (s, t|w) − σG (s, t|x) ≤
σG (s, t). Der Fall s 6= v und t = w geht analog.
Ist schließlich {s, t} ∩ {v, w} = ∅, so sind v und w innere Knoten aller k
neuen kürzesten (s, t)-Wege, d.h. wir haben σG′ (s, t|v) = σG (s, t|v) + k und
σG′ (s, t|w) = σG (s, t|w) + k. Da nicht jeder neue Weg auch x enthalten muss,
ist σG′ (s, t|x) ≤ σG (s, t|x) + k. Für σG (s, t|v) + σG (s, t|w) − σG (s, t|x) ≤
σG (s, t) oder σG (s, t|x) = 0 folgt damit die Ungleichung. Andernfalls ist 0 <
σG (s, t|x) < min{σG (s, t|v), σG (s, t|w)}, sodass x in G und G′ entweder auf
einem kürzesten (s, v)-Weg oder auf einem kürzesten (w, t)-Weg liegt, jeweils
jedoch nicht auf allen. Die Anzahl σG′ (s, t|x) − σG (s, t|x) der neuen kürzesten
(s, t)-Wege über x wächst damit auch nur anteilig und ist dann höchstens
(s,t|x)
bzw. k · σσGG(s,t|w)
. Die Ungleichung folgt durch Einsetzen.
k · σσGG(s,t|x)
(s,t|v)
2. Fall: Ist dG′ (s, t) < dG (s, t), dann benutzt jeder der k > 0 kürzesten (s, t)Wege in G′ die neue Kante (v, w), d.h. σG′ (s, t) = k, kein kürzester (s, t)-Weg
in G ist auch ein solcher in G′ sowie s 6= w und t 6= v.
Für {s, t} = {v, w} sind dann also s = v und t = w, woraus σG′ (s, t|x) = 0
folgt. Die linke Seite der Ungleichung ist damit entweder 0 oder 2, jedenfalls
aber nicht kleiner als die rechte.
Methoden der Netzwerkanalyse (SS 2005)
40
Für {s, t} ∩ {v, w} = ∅ sind auch σG′ (s, t|v) = σG′ (s, t|w) = k. Wir haben
σ (s,t|v)
also 1 = σG′ ′ (s,t) ≥ σσGG(s,t|v)
und entsprechend für w. Liegt nun x auf keinem
(s,t)
G
′
kürzesten (s, t)-Weg in G , ist also 0 = σG′ (s, t|x) ≤ σG (s, t|x), gilt damit
die Ungleichung. Ist andererseits σG′ (s, t|x) > 0, dann muss x wieder auf
einem kürzesten (s, v)- oder (w, t)-Weg liegen. Da sich deren Anzahl aber in
σ (s,t|v)−σG′ (s,t|x)
G (s,t|x)
G′ gegenüber G nicht verändert, gilt G′ σ ′ (s,t)
bzw.
≥ σG (s,t|v)−σ
σG (s,t)
σG′ (s,t|w)−σG′ (s,t|x)
σG′ (s,t)
G
≥
σG (s,t|w)−σG (s,t|x)
,
σG (s,t)
woraus die Ungleichung folgt.
Abschließend betrachten wir wieder nur den Fall s = v und t 6= w. Es
gilt σG (s, t|v) = σG′ (s, t|v) = 0 und σG′ (s, t|w) = k = σG′ (s, t). Da alle
kürzesten (s, t)-Wege in G′ mit der Kante (s, w) = (v, w) beginnen, folgt
σG′ (s, t|x) ≤ σG′ (s, t|w) = σG (w, t). Liegt x auf keinem kürzesten (w, t)-Weg,
ist σG′ (s, t|x) = 0 und die Ungleichung gilt. Andernfalls können wir wie geσ (s,t|w)−σ (s,t|x)
G (s,t|x)
≥ σG (s,t|w)−σ
schließen.
rade eben G′ σ ′ (s,t)G′
σG (s,t)
G
2.14 Bemerkung
Wir haben sogar gezeigt, dass [cB (G′ )v + cB (G′ )w ] − [cB (G)v + cB (G)w ] ≥
cB (G′ )x − cB (G)x , d.h. von einer neuen Kante (v, w) profitieren v und w
zusammen mehr als jeder andere Knoten.
2.15 Satz
cB 6∈ ◦ → •(S) ∪ • → ◦(S)
Beweis:
cB 6∈ ◦ → •(S) :
cB 6∈ • → ◦(S) :
w
v
v
cw = 4 ≥ 3 = c v
c′w = 4 < 6 = c′v
w
cv = 4 ≥ 3 = c w
c′v = 4 < 6 = c′w
Methoden der Netzwerkanalyse (SS 2005)
2.16 Beispiel (Der Aufstieg Moskaus, Pitts 1965/1978)
Netzwerk russischer Handelsrouten im 12./13. Jahrhundert:
Betweenness vs. Gesamtabstand der einzelnen Städte:
41
Methoden der Netzwerkanalyse (SS 2005)
42
Um Closeness- und Betweenness Zentralitäten zu berechnen, benötigen wir
außer den paarweisen Abständen zwischen Knoten auch die paarweisen Anzahlen der kürzesten Wege und die Anzahlen von kürzesten Wegen über Dritte. Ein naheliegender Ansatz ergibt sich unmittelbar aus der Repräsentation
von Multigraphen durch Adjazenzmatrizen.
2.17 Lemma
k
Sei
G = (V, E) ein Multigraph, A = A(G) seine Adjazenzmatrix und A =
(k)
as,t
(k)
s,t∈V
deren k-te Potenz. Für zwei Knoten s, t ∈ V ist as,t gerade die
Anzahl aller gerichteten Kantenfolgen von s nach t der Länge k.
(0)
Beweis: Durch Induktion über k: Für k = 0 ist as,t = 0 für s 6= t und
(0)
as,t = 1 andernfalls. Das ist gerade die Anzahl der gesuchten Kantenfolgen
der Länge 0.
Jede Kantenfolge von s nach t der Länge k > 0 endet mit einer Kante (v, t) für
ein v ∈ V . Davon gibt es jeweils av,t viele und nach Induktionsvoraussetzung
(k−1)
ist as,v die Anzahl der gerichteten Kantenfolgen von s nach v der Länge
k − 1. Für die Einträge von Ak = Ak−1 · A gilt aber
X
(k)
a(k−1)
· av,t
as,t =
s,v
v∈V
und damit die Behauptung.
Für zwei Knoten s, t ∈ V eines Multigraphen G = (V, E) mit endlichem
Abstand von s nach t und einen weiteren Knoten s, t 6= v ∈ V sind daher
n
o
(k)
dG (s, t) = min k ∈ N0 : as,t 6= 0
≤ n−1
(d (s,t))
σG (s, t) = as,tG
(
σG (s, v) · σG (v, t) falls dG (s, t) = dG (s, v) + dG (v, t)
σG (s, t|v) =
0
sonst .
Mit der naheliegenden O(n3 ) Implementation der Matrixmultiplikation erhalten wir daraus einen O(n4 ) Algorithmus für die Berechnung der Closenessund Betweenness-Zentralität.
Methoden der Netzwerkanalyse (SS 2005)
43
Wir werden die Laufzeit zunächst auf O(n3 ) und dann auf O(nm) verbessern.
Da für viele soziale und große Netzwerke m ∈ O(n) gilt, entspricht das noch
einmal einer Größenordnung.
Der folgende Algorithmus ist die Erweiterung eines Standard-Algorithmus’
zur Bestimmung der paarweisen Abstände um die Anzahlen der kürzesten
Wege.
Algorithmus 5: Längen und Anzahlen kürzester Wege
(Warshall 1962; Floyd 1962; Batagelj 1993)
Eingabe : Multigraph G = (V, E)
Ausgabe: Matrix D = (ds,t )s,t∈V (paarweise Abstände)
Matrix Σ = (σs,t )s,t∈V (Anzahlen kürzester Wege)


0 v = w
initialisiere D mit dv,w = 1 v 6= w und (v, w) ∈ E


∞ sonst


1 v = w
initialisiere Σ mit σv,w = k v 6= w und (v, w) ∈k E


0 sonst
foreach v ∈ V do
foreach s ∈ V \ {v} do
foreach t ∈ V \ {v} do
if ds,t = ds,v + dv,t then
σs,t ← σs,t + σs,v · σv,t
if ds,v + dv,t < ds,t then
ds,t ← ds,v + dv,t
σs,t ← σs,v · σv,t
Methoden der Netzwerkanalyse (SS 2005)
44
2.18 Satz
Nach Beendigung des Algorithmus gilt ds,t = dG (s, t) und σs,t = σG (s, t) für
alle s, t ∈ V .
Beweis: Wir nehmen der Einfachheit halber an, dass die Knoten in
jeder Schleife in der festen Reihenfolge v1 , . . . , vn durchlaufen werden. Für
(k)
(k)
alle s, t ∈ V seien ds,t und σs,t die nach 0 ≤ k ≤ n Durchläufen der äußersten
Schleife berechneten Einträge.
(k)
(k)
Wir zeigen, dass die ds,t und σs,t gerade die Länge und Anzahl der kürzesten
(s, t)-Wege ist, in denen nur Knoten aus V (k) = {v1 , . . . , vk } als innere Knoten
vorkommen.
Die Aussage ist für k = 0 sicher richtig. Nehmen wir also an, sie gilt nach
k − 1 ≥ 0 Durchläufen der äußersten Schleife, wählen ein festes Paar s, t ∈
V und betrachten den Knoten vk . Wenn vk auf einem kürzesten (s, t)-Weg
liegt, dessen innere Knoten alle aus V (k) stammen, dann haben die Teilwege
von s nach vk und von vk nach t innere Knoten nur aus V (k−1) . Die Länge
(k−1)
(k−1)
eines solchen Weges ist nach unserer Invariante gerade ds,vk + dvk ,t . Die
(k−1)
(k−1)
σs,vk solcher (s, vk )- und σvk ,t solcher (vk , t)-Wege können wir beliebig
kombinieren.
Da die Laufzeit offensichtlich in Θ(n3 ) ist, und wir aus den berechneten
Informationen anschließend die Closeness- und Betweenness-Zentralitäten in
Θ(n2 ) bzw. in Θ(n3 ) Zeit bestimmen können, erhalten wir insgesamt zwei
Θ(n3 ) Algorithmen.
Methoden der Netzwerkanalyse (SS 2005)
45
Breitensuche
Zumindest für die Closeness-Zentralität wird die Laufzeit von der Berechnung der paarweisen Abstände dominiert. Statt mit Matrizen zu rechnen
werden wir den Multigraphen daher wie bei den verschiedenen Typen von
Zusammenhangskomponenten durchlaufen, um ausnutzen zu können, dass
die meisten relevanten Netzwerke wenige“ Kanten haben, d.h. m ∈ o(n2 ).
”
Anders als bei der Tiefensuche setzen wir die Suche allerdings nicht vom
zuletzt, sondern vom zuerst gefundenen Knoten aus fort; suchen also in die
Breite statt in die Tiefe. Die wesentliche Änderung in der Implementation besteht daher in der Verwendung einer Queue (FIFO: first-in, first-out) anstelle
des Stacks (LIFO: last-in, first-out).
Außerdem beschränken wir uns auf die Suche ausgehend von einem bestimmten Knoten. Da kein Backtracking stattfindet, wird der vom Argumentknoten
aus durchsuchte Teilgraph erst zum Schluss ausgewertet.
Algorithmus 6: (Gerichtete) Breitensuche (breadth-first search, BFS)
Eingabe : Multigraph G = (V, E), Wurzel s ∈ V
Daten : Queue Q (für Knoten in BFS-Front)
Knoten- und Kantenmarkierungen
markiere s
Q ← (s)
−→ root(s)
while Q nicht leer do
entferne v ← Q
foreach nicht markierte e = (v, w) ∈ E do
markiere e
if w nicht markiert then
markiere w
füge an Q ← w
−→ traverse(v, e, w)
−→ done(s)
Methoden der Netzwerkanalyse (SS 2005)
46
Analog zur Tiefensuche definieren wir eine BFS-Numerierung der Knoten,
die jedoch eher der DFS-Numerierung der Kanten gleicht, da sie Knoten
mit gleich numerierten Vorgängern nicht unterscheidet. Der Eingabeknoten
s erhält die Breitensuchnummer BFS (s) = 0, und wir nennen s Wurzel der
Breitensuche. Wird ein Knoten w ∈ V beim Durchlaufen einer Kante (v, w)
markiert, erhält er die Nummer BFS (w) = BF S(v) + 1. Beachte, dass v bei
Durchlaufen von (v, w) bereits zuvor markiert wurde und daher numeriert
ist. Die Breitensuchnummer aller nicht markierten Knoten sei ∞.
Die Kanten werden während der Breitensuche wie folgt klassifiziert, wobei
die Bedeutung der Nicht-Baumkanten gegenüber der Tiefensuche leicht modifiziert ist. Zum Zeitpunkt, da die Kante (v, w) markiert wird, wird sie zu
einer
• Baumkante (
), falls w nicht markiert,
• Rückwärtskante (
• Querkante (
), falls w markiert und BFS (w) < BFS (v),
), falls w markiert und BFS (w) = BFS (v) und
• Vorwärtskante (
), falls w markiert und BFS (w) > BFS (v).
B
A
E
G
F
H
D
C
I
Multigraph
12
2
11
1
4
4
9
5
1
0
3
2
6
7
8
10
5
2
3
(gerichtete) Breitensuche
Indizes entsprechen Breitensuchnummer der Knoten bzw.
Durchlaufreihenfolge der Kanten (graue wurden nicht durchlaufen)
Methoden der Netzwerkanalyse (SS 2005)
47
Wieder erhalten wir eine ungerichtete Version des Durchlaufs, indem wir die
eingekastete Kantenauswahlbedingung durch
e = (v, w) ∈ E bzw. e = (w, v) ∈ E
ersetzen.
15
3
12
1
6
3
8
4
2
0
5
2
4
7
9
10
14
1
1
5
4
3
11
13
ungerichtete Breitensuche
Indizes entsprechen Breitensuchnummer der Knoten bzw.
Durchlaufreihenfolge Kanten
Man sieht leicht, dass eine Breitensuche mit O(m) Laufzeit implementiert
werden kann.
Methoden der Netzwerkanalyse (SS 2005)
48
2.19 Lemma
Sei G = (V, E) ein Multigraph und s ∈ V . Nach Breitensuche mit Wurzel s
gilt dG (s, v) = BFS (v) für alle v ∈ V .
Beweis: Wird ein Knoten w an die Queue angehängt, dann gibt es
einen Weg von der Wurzel s nach w, und umgekehrt werden alle Knoten, für
die es einen solchen Weg gibt, während der Breitensuche einmal angehängt.
Insbesondere erhalten genau diese Knoten eine endliche BFS-Nummer.
Wir zeigen zunächst folgende Invariante: Sei Q = (v1 , . . . , vk ) der Zustand
der Queue zu irgendeinem Zeitpunkt der Breitensuche, dann gilt BFS (vi ) ≤
BFS (vi+1 ) für alle 1 ≤ i < k und BFS (vk ) ≤ BFS (v1 ) + 1.
Die Invariante gilt natürlich zu Beginn, wenn Q = (s). Die Queue ändert
sich entweder durch Anfügen oder Entfernen eines Knotens. Wird ein Knoten w angefügt, so wurde zuvor ein Knoten v entfernt und wir können die
Invariante annehmen. Das heißt aber, für vk (falls es überhaupt existiert),
gilt BFS (vk ) ≤ BFS (v) + 1 = BFS (w) und die Invariante bleibt erhalten.
Der andere Fall (Entfernen eines Knotens) ist noch einfacher.
Sei Vk = {v ∈ V : dG (s, v) = k} für alle 0 ≤ k < n. Wir zeigen nun mit
Hilfe der Invariante, dass v ∈ Vk , falls die Breitensuche v die BFS-Nummer k
zuweist. Zusammen mit der Beobachtung, dass alle erreichbaren Knoten eine
BFS-Nummer erhalten, beweist das die Behauptung. Für V0 = {s} ist nichts
zu zeigen. Für einen Knoten w ∈ Vk , 0 < k < n, gilt für jeden unmittelbaren
Vorgänger v auf einem kürzesten (s, w)-Weg, dass v ∈ Vk−1 . Zum Zeitpunkt
da der erste solche Knoten aus Q entfernt wird, ist w wegen der obigen
Invariante noch nicht in Q, hat also keine zu kleine BFS-Nummer erhalten.
Die Behauptung folgt, da mit Induktion über k die Nachfolger aller Knoten
aus Vk−1 numeriert werden, bevor ein Knoten aus Vk aus der Queue entfernt
wird.
Methoden der Netzwerkanalyse (SS 2005)
49
Algorithmus 7: Closeness-Zentralität von s ∈ V
(Spezialisierung der Breitensuche mit Wurzel s)
Ausgabe: Zentralität cs
root(vertex s) begin
cs ← 0
end
traverse(vertex v, edge e, vertex w) begin
if e ist Baumkante then cs ← cs + BFS (w)
end
done(vertex s) begin
if cs 6= 0 then cs ←
end
1
cs
2.20 Satz
Die Closeness-Zentralitäten der Knoten eines stark zusammenhängenden Multigraphen können in O(nm) Zeit berechnet werden.
Beweis:
Breitensuche von jedem Knoten aus.
Wir zeigen als nächstes, dass auch Betweenness-Zentralität durch Breitensuche von jedem Knoten aus berechnet werden kann. Dazu müssen wir zunächst
zeigen, wie nicht nur die Länge, sondern auch die Anzahl der kürzesten Wege
von der Wurzel aus bestimmt werden kann. Sei dazu
PG− (s, v) = {(u, v) ∈ E : dG (s, v) = dG (s, u) + 1}
die Multimenge aller eingehenden Kanten von v auf kürzesten (s, v)-Wegen
(jeweils mit gleicher Vielfachheit wie in E).
2.21 Lemma
σG (s, v) =





P
σG (s, u) falls s 6= v
1
−
(s,v)
(u,v)∈PG



1
sonst.
Beweis: Falls s 6= v gibt es auf jedem kürzesten (s, v)-Weg einen eindeutigen Vorgänger u. Jeder kürzeste (s, u)-Weg kann dann durch jede Kante
(u, v) zu einem kürzesten (s, v)-Weg verlängert werden.
1
Beachte zur Schreibweise: Für jede Kante aus PG− (s, v) werden entsprechend ihrer
Vielfachheit viele Summanden addiert.
Methoden der Netzwerkanalyse (SS 2005)
50
Da wir bei der Breitensuche immer nur einen Bezugspunkt (die Wurzel)
haben, schreiben wir die Definition der Betweenness-Zentralität um. Dazu
definieren wir die Abhängigkeit des Paares s, t ∈ V bzw. des Knotens s ∈ V
vom Knoten v ∈ V als
σG (s, t|v)
σG (s, t)
X
δG (s|v) =
δG (s, t|v) .
δG (s, t|v) =
t∈V
Die Betweenness-Zentralität des Knotens v ∈ V ist dann die Summe der
einseitigen Abhängigkeiten aller anderen Knoten von v,
X
cB (G)v =
δG (s|v),
s∈V
und wir haben folgende Rekursionsgleichung.
2.22 Lemma
Für s 6= v ∈ V
X
δG (s|v) =
(v,w)∈P − (s,w)
G
für ein w ∈ V
Beweis:
ten zu
σG (s, v)
· (1 + δG (s|w)) .
σG (s, w)
Wir erweitern den Begriff der Abhängigkeit um benötigte KanδG (s, t|v, e) =
σG (s, t|v, e)
σG (s, t)
wobei σG (s, t|v, e) die Anzahl der kürzesten (s, t)-Wege sei, die sowohl den
inneren Knoten v als auch die Kante e enthalten. Wir haben dann
X
δG (s|v) =
δG (s, t|v)
t∈V
=
X
t∈V
=
X
δG (s, t|v, (v, w))
(v,w)∈P − (s,w)
G
für ein w ∈ V
X
(v,w)∈P − (s,w)
G
für ein w ∈ V
X
t∈V
δG (s, t|v, (v, w)) .
Methoden der Netzwerkanalyse (SS 2005)
51
Zu v ∈ V sei w ∈ V ein Knoten mit (v, w) ∈ PG− (s, w). Von den σG (s, w)
kürzesten (s, w)-Wegen enthalten σG (s, v) viele kürzeste (s, v)-Wege, die dann
(s,v)
·σG (s, t|w) kürzeste Wege von s nach
die Kante (v, w) benutzen, sodass σσGG(s,w)
t 6= w sowohl v als auch (v, w) benutzen.
Die Abhängigkeit des Paares s, t von v und (v, w) ist daher
( σ (s,v)
G
falls t = w
σG (s,w)
δG (s, t|v, (v, w)) = σG (s,v) σG (s,t|w)
· σG (s,t) falls t 6= w
σG (s,w)
w3
s
δG (s|w3 )
δG (s|w2 )
w2
v
w1
δG (s|w1 )
Durch Einsetzen erhalten wir
X
δG (s|v) =
δG (s, t|v)
t∈V
=
X
(v,w)∈P − (s,w)
G
für ein w ∈ V
=
X
(v,w)∈P − (s,w)
G
für ein w ∈ V
=
X
(v,w)∈P − (s,w)
G
für ein w ∈ V
X
δG (s, t|v, (v, w))
t∈V

 σG (s, v) +
σG (s, w)
X
t∈V \{w}

σG (s, v) σG (s, t|w) 
·
σG (s, w) σG (s, t)
σG (s, v)
· (1 + δG (s|w)) .
σG (s, w)
Methoden der Netzwerkanalyse (SS 2005)
52
Die folgende Spezialisierung der Breitensuche berechnet die Abhängigkeiten
der Wurzel von allen anderen Knoten, indem nach Ende der Breitensuche
für alle Knoten in umgekehrter Reihenfolge die Abhängigkeiten mittels der
Rekursionsgleichung bestimmt werden. Dazu reicht es, für einen Knoten w ∈
V anstelle der Kanten aus PG− (w) nur deren Anfangsknoten (mit gleicher
Vielfachheit) zu speichern.
Algorithmus 8: Abhängigkeiten eines Knotens s ∈ V von allen anderen
(Spezialisierung der Breitensuche mit Wurzel s)
Daten : Knotenarray σs (Anzahl der kürzesten Wege von s)
Knotenarray Ps (Liste der Vorgänger auf kürzesten Wegen)
Stack S (Knoten in Reihenfolge ihres Abstands von s)
Ausgabe: Knotenarray δs (Abhängigkeiten, initialisiert mit 0)
root(vertex s) begin
σs (s) = 1
end
traverse(vertex v, edge e, vertex w) begin
if e ist Baumkante then
füge an Ps (w) ← v
σs (w) ← σs (v)
push w → S
if e ist Vorwärtskante then
füge an Ps (w) ← v
σs (w) ← σs (w) + σs (v)
end
done(vertex s) begin
while S nicht leer do
w ← pop(S)
foreach v ∈ Ps (w) do
(v)
· (1 + δs (w))
δs (v) ← δs (v) + σσss(w)
end
Methoden der Netzwerkanalyse (SS 2005)
53
2.23 Satz
Die Betweenness-Zentralitäten der Knoten eines Multigraphen können in
O(nm) Zeit berechnet werden.
Beweis: Summiere für alle Knoten deren Abhängigkeiten von jeweils
allen anderen.
2.24 Bemerkung
Die beiden breitensuchbasierten Algorithmen lassen sich so implementieren,
dass der Speicherplatzbedarf linear in der Größe des Multigraphen ist, und
sind auch gut parallelisierbar.
2.25 Beispiel (Needle-Exchange Network, Valente und Foreman 2000)
Studie in Baltimore: Analyse eines Multigraphen, dessen Knoten Drogenabhängige repräsentieren, die an einem Spritzenumtauschprogramm teilnehmen. Darin können gebrauchte Spritzen gegen saubere eingetauscht werden.
Die Spritzen sind markiert, und bringt ein Abhängiger eine Spritze zurück,
die ein anderer entgegengenommen hat, induziert dies eine Kante zwischen
den beiden, welche die Übergabe repräsentiert.
4259 Knoten, 61693 Kanten (sehr dünn: 0,3% aller möglichen)
Auf einem Standard-PC (Stand 2000, ca. 300 MHz) hätte BetweennessZentralität mit kubischer Laufzeit ca. 2 Tage benötigt (die dabei verwendeten Matrizen passten wegen des quadratischen Platzbedarfs aber gar nicht
erst in den Speicher). Mit linearem Speicherbedarf und O(nm) Algorithmus
dauerte die Berechnung weniger als 10 Minuten.
Methoden der Netzwerkanalyse (SS 2005)
54
Eine Laufzeit von O(nm) kann für sehr große Netzwerke, selbst wenn sie
dünn sind, immer noch zu lang sein. Wir betrachten daher abschließend
zwei Spezialfälle, nämlich eine Methode zur näherungsweisen Berechnung
von Closeness-Zentralität in Netzwerken mit kleinem Durchmesser und Linearzeitalgorithmen für beide Zentralitäten in dem Fall, dass die Eingabe ein
ungerichteter Baum ist.
Näherungsweise Berechnung von Closeness-Zentralität
Ein wesentlicher Unterschied in den beiden Verfahren zur Berechnung von
Zentralitäten besteht darin, dass nach einer einzelnen Breitensuche bei Closeness-Zentralität der Zentralitätswert der Wurzel bekannt ist, wohingegen bei
der Betwenness-Zentralität nur der Beitrag der Wurzel zu allen anderen Zentralitätswerten ermittelt wird.
Ein weiterer Unterschied besteht darin, dass eine für manche Arten von Netzwerken typische Eigenschaft, nämlich ein beschränkter Durchmesser ( klei”
ne Welt“), bei Closeness-Zentralität für eine Beschränkung der auftretenden
Größen sorgt, wohingegen bei Betweenness der tatsächliche Abstand zweier
Knoten weitgehend irrelevant ist.
Wir nutzen diese Tatsache aus, um Closeness-Zentralität mit weniger Aufwand angenähert zu berechnen. Damit sich der gemachte Fehler unabhängig
von der Größe des Netzwerks abschätzen lässt, betrachten wir statt des Kehrwerts des Gesamtabstands den (gleichwertigen) Kehrwert des mittleren Abstands zu allen anderen Knoten, d.h. wir betrachten für einen Knoten v ∈ V
die standardisierte Closeness-Zentralität
n−1
c̄C (G)v = P
,
dG (v, t)
t∈V
deren Werte alle im Intervall [0, 1] liegen.
Sei im folgenden G = (V, E) ∈ S ein stark zusammenhängender Multigraph
mit kleinem Durchmesser, d.h. diam(G) ≤ D für eine Konstante D. Weil die
auftretenden paarweisen Abstände dadurch auf ein konstant großes Intervall
beschränkt sind, gilt bei zufälliger Auswahl von k Knoten t1 , . . . , tk ∈ V für
Methoden der Netzwerkanalyse (SS 2005)
55
genügend großes k
P
dG (v, t)
t∈V
≈
n
und damit
n−1
c̄C (G)v ≈
n·
k
P
dG (v,ti )
i=1
k
k
P
dG (v, ti )
i=1
=
k
(n − 1) · k
.
k
P
dG (v, ti )
n·
i=1
Wählen wir also Knoten t1 , . . . , tk ∈ V zufällig und unabhängig voneinander, dann können zunächst die Abstände 0 ≤ dG (v, ti ) ≤ D für alle v ∈ V
durch k Breitensuchen entgegen der Kantenrichtungen in G bestimmt und
aufsummiert werden. Der so erhaltene Wert kann dann einfach in die Näherungsformel eingesetzt werden.
Daraus ergibt sich der folgende Algorithmus, in dem wir noch offen lassen,
wieviele Referenzknoten gewählt werden sollen.
Algorithmus 9: Closeness-Zentralität in sehr großen Graphen
Eingabe : stark zusammenhängender Multigraph G = (V, E)
Wiederholungszahl k
Ausgabe: standardisierte Closeness c
(näherungsweise; initialisiert mit 0)
repeat k mal this
wähle zufälliges t ∈ V
umgekehrt gerichtete Breitensuche mit Wurzel t
foreach v ∈ V do c(v) ← c(v) + BFS (v)
foreach v ∈ V do c(v) ←
(n−1)·k
n·c(v)
Methoden der Netzwerkanalyse (SS 2005)
56
In der Analyse des Algorithmus verwenden wir für die Fehlerabschätzung die
folgende Aussage über die Abweichung des Mittelwertes einer Stichprobe vom
erwarteten Mittelwert. Der Beweis kann mit elementaren Mitteln erfolgen,
ist hier aber nicht von Interesse.
2.26 Lemma (Hoeffding 1963)
Sind X1 , . . . , Xk unabhängige Zufallsvariablen mit 0 ≤ Xi ≤ M für alle
i = 1, . . . , k, dann gilt
2
X1 + . . . + Xk
X
+
.
.
.
+
X
1
k
≥ ξ ≤ e−2k( Mξ ) .
P −E
k
k
2.27 Satz (Eppstein und Wang 2001)
Sei D eine Konstante und G = (V, E) ein stark zusammenhängender Multigraph mit diam(G) ≤ D. Dann können in Zeit O( ε12 · m log n) Werte (cv )v∈V
so berechnet werden, dass für alle v ∈ V
1
1 −
cv c̄C (G)v ≤ εD
mit großer Wahrscheinlichkeit.
Beweis: Wir benutzen den obigen Algorithmus und wenden das Lemma
auf die Kehrwerte der berechneten Zentralitäten an. Dazu setzen wir
n
·D
M =
n−1
n
· dG (v, ti )
(0 ≤ Xi ≤ M )
Xi =
n−1
ξ = εD
und zeigen zunächst, dass der Erwartungswert der gemittelten Summe gerade
der Kehrwert der tatsächlichen Zentralität ist:
X
t1 ∈V
X 1
···
·
k
n
t ∈V
k
k
P
i=1
n
n−1
· dG (v, ti )
k
X
1
n
·
k · nk−1 · dG (v, t)
·
k
n (n − 1) · k t∈V
P
t∈V dG (v, t)
=
n−1
1
=
.
c̄C (G)v
=
Methoden der Netzwerkanalyse (SS 2005)
Wählen wir außerdem
2 log n
k=
ε2
57
,
dann ist für ein festes v ∈ V die Wahrscheinlichkeit einer Abweichung um
mindestens εD höchstens
P
!
„
«2
n · k d (v, t )
n
εD
−2⌈ 2 log
1
⌉
n ·D
2
G
i
ε
i=1
n−1
P −
≤ e
≥ εD
(n − 1) · k
c̄C (G)v ≤ e−2 log n
=
1
.
n2
Die Wahrscheinlichkeit, dass ein solcher Fehler an irgendeinem Knoten auftritt, ist damit höchstens n1 .
Frage: Ist das gut?
Der Satz macht eine Aussage über die Kehrwerte der Zentralitäten. Bei
Durchmesser höchstens D liegt der Kehrwert der standardisierten ClosenessZentralität zwischen 1 und D.
std. Closeness
1/x
-x+2
1
1
D
Kehrwert
Für Knoten mit großer Zentralität wirkt sich eine Abweichung vom Kehrwert also stärker aus, als für solche mit kleiner Zentralität, der Fehler in der
Zentralität ist aber kleiner als der im Kehrwert.
Beachte auch, dass wir im Anschluss (mit noch einmal der gleichen Laufzeit)
n
für die k = 2 log
Knoten mit größtem Schätzwert die Zentralität exakt
ε2
bestimmen könnten.
Frage: Funktioniert das auch mit Betweenness?
Methoden der Netzwerkanalyse (SS 2005)
58
Zentralitäten auf ungerichteten Bäumen
Ein ungerichteter Baum ist ein zusammenhängender schlichter ungerichteter
Graph ohne einfache Kreise. Da die bisher betrachteten Zentralitäten auf
kürzesten Wegen basieren, legt die folgende Eigenschaft nahe, dass solche
Zentralitäten auf Bäumen leichter zu berechnen sind.
2.28 Lemma
Zwischen je zwei Knoten eines ungerichteten Baumes gibt es genau einen
einfachen Weg.
Beweis: Da der Graph zusammenhängend ist, gibt es mindestens einen
Weg. Gäbe es zwischen irgendzwei Knoten zwei verschiedene einfache Wege,
so enthielte deren Vereinigung einen einfachen Kreis.
Um die Zentralitäten aller Knoten eines ungerichteten Baumes zu berechnen, durchlaufen wir zu einem ungerichteten Baum T einen zugehörigen
Wurzelbaum Ts , d.h. einen gerichteten Graphen, den wir dadurch erhalten,
dass wir einen Knoten s als Wurzel auszeichnen und alle Kanten von der
Wurzel weg orientieren. Der Teilgraph aller von einem Knoten v in Ts aus
erreichbaren Knoten heißt Wurzelteilbaum Ts (v).
s
v
Wurzel
v
Zentrum
T
Ts
Ts (v)
Durch das obige Lemma wissen wir, dass alle Wege zwischen einem Knoten
aus einem Wurzelteilbaum und einem Knoten im Rest des Graphen die Teilbaumwurzel v enthalten müssen (es gibt ja nur genau einen). Wir sammeln
daher die für die Zentralitäten benötigten Informationen (Abstandssumme,
Knotenzahlen) inner- und außerhalb der Wurzelteilbäume und kombinieren
sie dann.
Methoden der Netzwerkanalyse (SS 2005)
59
Der gesamte Wurzelbaum wird dazu zweimal durchlaufen, wobei wir beim
ersten Mal Informationen von unten nach oben“ (bottom-up) und beim zwei”
ten Mal von oben nach unten“ (top-down) weiterreichen. Das Weiterreichen
”
geschieht jeweils in Abhängigkeit von der zu berechnenden Zentralität.
Algorithmus 10: Zentralitätsschema für ungerichtete Bäume
Eingabe : ungerichteter Baum T = (V, E)
Ausgabe: Knotenarray n+ (Knotenzahl im Wurzelteilbaum)
bottom up(vertex v) begin
n+
v ← 1
foreach w ∈ NT+s (v) do
bottom up(w)
+
+
n+
v ← nv + nw
−→ uplabel(v, w)
end
top down(vertex v) begin
−→ downlabel(v)
foreach w ∈ NT+s (v) do
top down(w)
end
begin
wähle ein s ∈ V
bottom up(s)
top down(s)
end
2.29 Lemma
Nach Ausführung des Algorithmus ist n+
v die Zahl der Knoten im Wurzelteilbaum Ts (v).
Beweis: Wir beweisen die Behauptung durch Induktion über die Tiefe
der Rekursion im ersten Durchlauf (im zweiten ändern sich die Werte nicht
mehr). Hat ein Knoten v ∈ V keine Nachfolger, erhält er korrekterweise
den Wert n+
v = 1. Andernfalls sind die Werte der Nachfolger nach Induktionsvoraussetzung korrekt berechnet. Da die Wurzelteilbäume der Nachfolger
Methoden der Netzwerkanalyse (SS 2005)
disjunkt sind, ist
60
X
n+
v = 1+
n+
w
w∈NT+s (v)
die gewünschte Anzahl.
n+
s = 15
4
9
1
3
8
2
7
1
6
2
1
1
2
1
Berechnung der n+
v
2.30 Lemma
Sei T = (V, E) ein ungerichteter Baum und Ts = (Vs , Es ) der zugehörige
Wurzelbaum mit Wurzel s ∈ V . Ist Ts (v) = (Vs (v), Es (v)) der Wurzelteilbaum von v ∈ V , dann gilt
X
X
X X
dT (s, t) =
dTs (s, t) =
(1 + dTs (v, t)) .
t∈V
t∈V
v∈NT+s (s) t∈Vs (v)
Beweis: Die erste Gleichheit gilt, weil die gerichteten Wege von der
Wurzel weg genau den einzigen Wegen im ungerichteten Baum entsprechen.
Die zweite gilt, weil der Abstand von der Wurzel zu einem Knoten gerade um
eins größer ist, als der Abstand von deren Nachfolger auf dem eindeutigen
Weg.
Methoden der Netzwerkanalyse (SS 2005)
61
Algorithmus 11: Closeness-Zentralität in ungerichteten Bäumen
(Spezialisierung des Zentralitätsschemas für Bäume)
Daten : Knotenarray d (Abstandssumme, initialisiert mit 0)
Ausgabe: Knotenarray c (Closeness-Zentralität)
uplabel(vertex v, vertex w) begin
dv ← dv + dw + n+
w
end
downlabel(vertex v) begin
if NT−s (v) = {u} then dv ← du + n − 2 · n+
v
cv ← d1v
end
1
48
48
6
1
55
28
0
1
45
1
61
3
20
1
64
1
13
1
75
1
45
0
7
1
88
1
48
1
0
0
1
0
Ergebnis von uplabel
1
59
1
72
1
44
1
61
←
1
59
1
72
Ergebnis von downlabel
2.31 Satz
Die Closeness-Zentralitäten der Knoten eines ungerichteten Baumes können
in O(n) Zeit berechnet werden.
Beweis: Wir zeigen, dass der obige Algorithmus korrekt ist. Mit Induktion über die Rekursionstiefe und dem Lemma folgt, dass im ersten Durchlauf
für jeden Knoten die Abstände zu allen Knoten seines Wurzelteilbaums summiert werden.
Für die Wurzel sind damit alle Abstände korrekt aufsummiert. Für alle
anderen Knoten v sind die Abstände zu den übrigen gerade um eins kleiner als vom Vorgänger im Wurzelbaum, wenn der Zielknoten im eigenen
Wurzelteilbaum liegt, und sonst um eins größer. Die Differenz beträgt also
+
+
−n+
v + (n − nv ) = n − 2 · nv . Die Behauptung folgt mit Induktion über den
Abstand von der Wurzel.
Methoden der Netzwerkanalyse (SS 2005)
62
2.32 Lemma
Sei T = (V, E) ein ungerichteter Baum und Ts = (Vs , Es ) der zugehörige
Wurzelbaum mit Wurzel s ∈ V . Ist Ts (v) = (Vs (v), Es (v)) der Wurzelteilbaum von v ∈ V , dann gilt
X
+
+
n+
cB (T )v = (n − n+
)
·
(n
−
1)
+
w · (n − nw − 1) .
v
v
w∈NT+s (v)
Beweis: Wir zählen die Wege mit v als innerem Knoten. Ein solcher
Weg beginnt entweder außerhalb des Wurzelteilbaums von v, oder innerhalb
des Wurzelteilbaums eines Nachfolgers w von v. Im ersten Fall gibt es n − n+
v
mögliche Anfangsknoten, zu denen jeder der n+
−
1
Knoten
im
Wurzelteilv
baum von v (ohne v selbst) als Endknoten in Frage kommt. Im zweiten Fall
+
gibt es n+
w mögliche Anfangsknoten, zu denen jeder der n − nw − 1 Knoten
außerhalb des Wurzelteilbaums von w und ungleich v als Endknoten in Frage
kommt.
Algorithmus 12: Betweenness-Zentralität in ungerichteten Bäumen
(Spezialisierung des Zentralitätsschemas für Bäume)
Ausgabe: Knotenarray c (Betweenness-Zentralität, initialisiert mit 0)
uplabel(vertex v, vertex w) begin
+
c v ← c v + n+
w · (n − nw − 1)
end
downlabel(vertex v) begin
+
cv ← cv + (n − n+
v ) · (nv − 1)
end
Methoden der Netzwerkanalyse (SS 2005)
63
98
98
48
66
24
49
48
98
13
48
26
96
0
61
0
33
0
13
0
0
106 ←
13
26
0
0
Ergebnis von uplabel
96
0
0
26
0
Ergebnis von downlabel
2.33 Satz
Die Betweenness-Zentralitäten der Knoten eines ungerichteten Baumes können
in O(n) Zeit berechnet werden.
Beweis: Wir zeigen, dass der obige Algorithmus korrekt ist. Mit Induktion über die Rekursionstiefe und dem Lemma folgt, dass im ersten Durchlauf
für jeden Knoten die Abhängigkeiten der Paare mit Anfangsknoten im Wurzelteilbaum aufsummiert werden. Da es nur eine Kante zum Vorgänger gibt,
müssen im zweiten Durchlauf nur noch die Paare mit Anfangsknoten außerhalb des Wurzelteilbaums hinzugezählt werden.
2.34 Bemerkung
Für große Multigraphen mit vielen zweifachen Zusammenhangskomponenten können die Baumalgorithmen mit den Spezialisierungen der Breitensuche kombiniert auf den Block-Schnittknoten-Baum angewandt werden. Der
Teufel steckt wie üblich im Detail.
2.35 Bemerkung
Es gibt einige weitere Beispiele für Zentralitäten, die über kürzeste Wege
definiert werden. Alle diese Indizes können durch Spezialisierung der Breitensuche bzw. des Baumschemas mit den jeweiligen Laufzeiten berechnet
werden.
2.36 Bemerkung
Zentralitäten, die auf kürzesten Wegen basieren, können auf natürliche Weise
auf Multigraphen mit positiven Kantengewichten (deren Summe die Länge
Methoden der Netzwerkanalyse (SS 2005)
64
eines Weges angibt) verallgemeinert werden. Die verallgemeinerten Indizes
können ähnlich berechnet werden, wenn man die Breitensuche durch eine
ähnlich schematisierte Version von Dijkstras Algorithmus ersetzt. Bei effizienter Implementation führt das zu einer Laufzeit von O(nm + n2 log n). Auf
Bäumen ist die Anpassung noch einfacher und sogar die Linearzeit bleibt
erhalten.
Methoden der Netzwerkanalyse (SS 2005)
2.2
65
Rückkopplungszentralitäten
Wir haben Knotengrade als lokales Zentralitätsmaß kennengelernt und nichtlokale Zentralitätsmaße basierend auf Abständen und kürzesten Wegen behandelt. In diesem Abschnitt betrachten wir Zentralitätsmaße, die alle Wege
(genauer: Kantenfolgen) berücksichtigen.
Als Verallgemeinerung des Ausgangsgrades haben wir bei der ClosenessZentralität eines Knotens alle anderen Knoten berücksichtigt, aber einen
Verlust an Einfluss bei wachsendem Abstand angenommen. Durch die Kehrwertbildung wurden diejenigen Knoten besonders zentral, deren Einfluss auf
andere am wenigsten abgeschwächt wurde.
Eine andere Möglichkeit derselben grundlegenden Idee besteht darin, den
ausgeübten Einfluss mit jeder verwendeten Kante um z.B. einen konstanten
Faktor 0 < α < 1 abzuschwächen, und dann den Einfluss eines Knotens
auf einen anderen über alle Kantenfolgen zu diesem anderen zu summieren. Mit dem Lemma über Adjazenzmatrizen A = A(G) und die Anzahlen
von Kantenfolgen sind die Zentralitäten dann gerade die Zeilensummen der
Einflussmatrix
∞
X
A∞ =
(α · A)k .
k=1
Allerdings konvergiert diese Reihe nur für hinreichend kleines α. Wir geben
eine solche Abschwächung an.
2.37 Lemma
Die Einflussmatrix ist wohldefiniert, falls α =
1
min {∆− (G), ∆+ (G)}
+1
.
Beweis: Wir zeigen durch Induktion über k, dass die Folgen aller Einträge der Summanden (α · A)k jeweils von der Folge
(
k k )
∆−
∆+
min
,
∆− + 1
∆+ + 1
(k)
majorisiert wird. Dazu reicht es aus, für alle Einträge as,t von Ak zu zeigen,
P∞ k
(k)
dass as,t ≤ min{∆− (G)k , ∆+ (G)k }. Aus der Konvergenz von
k=1 q für
q ∈ (0, 1) folgt dann die Behauptung.
Methoden der Netzwerkanalyse (SS 2005)
66
P
Die Einträge von A sind höchstens kleiner als ∆− = maxv∈V u∈N − (v) au,v
P
und ∆+ = maxv∈V w∈N + (v) av,w . Für beliebige s, t ∈ V betrachte daher den
(k)
Eintrag as,t von Ak mit k > 1. Wegen Ak = Ak−1 · A gilt
(k)
as,t
=
X
a(k−1)
· av,t =
s,v
v∈V
−
X
a(k−1)
s,v
(v,t)∈E
≤ ∆ · max
−
v∈N (t)
a(k−1)
s,v
und wegen Ak = A · Ak−1 analog
X
X (k−1)
(k)
(k−1)
as,t =
as,v · av,t =
av,t
v∈V
(s,v)∈E
≤ ∆+ · max
−
v∈N (t)
(k−1)
av,t
Nach Induktionsvoraussetzung ist aber
n
o
− k−1
+ k−1
a(k−1)
≤
min
∆
,
∆
u,w
für alle u, w ∈ V .
2.38 Def inition (Einfluss; Katz 1953)
Die Einfluss-Zentralität cI ist definiert durch
cI (G) =
∞
X
(α · A)k
k=1
!
·1
für alle G ∈ G mit Adjazenzmatrix A = A(G) und Abschwächung α =
1
α(G) = min{∆− (G),∆
+ (G)}+1 .
2.39 Bemerkung
In der Originalarbeit von Katz (1953) werden nicht Kantenfolgen zu, sondern
von anderen Knoten bewertet. Der Zentralitätsindex heißt dort entsprechend
auch nicht Einfluss, sondern Status.
Vermutung: cI ∈ • → ◦(G) ∪ • → •(G)
Methoden der Netzwerkanalyse (SS 2005)
4.90 %
67
4.90 %
9.51 %
14.53 %
13.34 %
13.06 %
12.46 %
10.09 %
9.16 %
4.02 %
4.02 %
normierte Einfluss-Zentralität im Beispielgraphen
Die unendliche Reihe ist für die tatsächliche Berechnung unpraktisch. Aufgrund der folgenden Gleichgewichtsbeziehungen können wir die EinflussZentralitäten allerdings auch durch Lösen eines linearen Gleichungssystems
bestimmen. Man beachte die auffällige formale Ähnlichkeit mit der Rekursionsformel für Abhängigkeiten (s. Betweenness-Zentralität).
2.40 Lemma X
cI (G)v =
α · (1 + cI (G)w )
(v,w)∈E
Methoden der Netzwerkanalyse (SS 2005)
Beweis:
68
Zunächst gilt
A∞ =
∞
X
(αA)k = (αA) ·
k=1
∞
X
(αA)k
k=0
= (αA) ·
I+
∞
X
(αA)k
k=1
!
= (αA) · (I + A∞ )
und daher
cI (G) = A∞ · 1 = (αA) · (I + A∞ ) · 1
= (αA) · (1 + cI (G)) .
Nebenbei können wir damit auch formal ausdrücken, inwiefern Einfluss eine
Verallgemeinerung der Ausgangsgrad-Zentralität c+
D (G) ist.
2.41 Folgerung
cI (G) = α · c+
D (G) + A · cI (G)
Beweis: Wie oben gezeigt ist cI (G) = αA · 1 + αA · cI (G), und es gilt
c+
D (G) = A · 1.
Die Lösung großer, dünn besetzter Gleichungssysteme (und wir können wie
üblich davon ausgehen, dass die Adjazenzmatrix dünn ist), wird oft iterativ angenähert. Bei der sogenannten Jacobi-Iteration wird mit einer initialen
Näherung gestartet und jede Gleichung einzeln unter Verwendung der Näherungen aus dem letzten Schritt gelöst. Hier können wir ganz ähnlich vorgehen
durch
c(0)
v = 0
=α
c(i+1)
v
X
(1 + c(i)
w ) .
(v,w)∈E
Die folgende Aussage zeigt, dass sich die resultierende Folge zur Annäherung
an die Zentralitätswerte eignet und die Summation wie nach Anwendung des
Distributivgesetzes auf die unendliche Summe erfolgt. Jede Iteration benötigt
nur O(n + m) Schritte.
Methoden der Netzwerkanalyse (SS 2005)
69
2.42 Lemma
Es ist c(i+1) ≥ c(i) für alle i ∈ N0 und c(i) −→ cI (G)
i→∞
Beweis:
Wir zeigen
c(i) =
i
X
(αA)k
k=1
!
·1
für alle i ∈ N0 per Induktion (d.h. in jeder
wird ein Reihenglied
P0 Iteration
(0)
k
hinzugefügt). Für i = 0 ist c = 0 =
· 1, und für i = 1 folgt
k=1 (αA)
P1
k
(1)
· 1. Für i > 0 gilt
c = αA · 1 =
k=1 (αA)
c(i+1) = αA · 1 + αA · c(i)
nach Definition und unter Verwendung der Induktionsvoraussetzung
!
i
X
(αA)k · 1
c(i+1) = αA · 1 + αA ·
k=1
= αA · 1 +
i+1
X
(αA)
k=2
=
i+1
X
k=1
k
(αA)k
!
!
·1
·1
Das Abbruchkriterium im folgenden Algorithmus ist lediglich ein Beispiel.
Algorithmus 13: Einfluss-Zentralitäten (näherungsweise)
Eingabe : Multigraph G = (V, E), Toleranz ε
Daten : Knotenarray c′ (letzte Näherung)
Ausgabe: Knotenarray c (Einfluss bis auf ε, initialisiert mit 0)
1
α←
−
min{∆ (G), ∆+ (G)} + 1
repeat
c′ ← c
foreach v ∈ V do
cv ← 0
foreach (v, w) ∈ E do cv ← cv + α · (1 + c′w )
until max |cv − c′v | < ε
v∈V
Methoden der Netzwerkanalyse (SS 2005)
70
2.43 Beispiel (und einige Fragen)
Der Algorithmus angewandt auf den Beispielgraphen. Auf der x-Achse sind
die Knoten geordnet nach Einfluss-Zentralität aufgeführt. Jede Linie entspricht der Näherung nach einer Iteration. Von 1000 Iterationen sind die
ersten zwanzig sowie die letzte gezeigt.
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
2
4
6
8
10
Die Konvergenz ist in diesem Beispiel gut. Ist das immer so? Wann ist es
(nicht) so?
Die Einfluss-Zentralitäten sind in diesem Beispiel sogar eine Verfeinerung der
Ausgangsgrade (ein Knoten mit höherem Ausgangsgrad hat auch höheren
Einfluss). Ist das immer so? Wann ist das (nicht) so?
Es hat auch während der ersten Iterationen keine Rangvertauschungen gegeben. Warum? Ist das immer so? Wann (nicht)?
Methoden der Netzwerkanalyse (SS 2005)
71
Wir haben gesehen, dass drei Faktoren den Einfluss eines Knotens bestimmen: die Zahl seiner Nachbarn, deren Einfluss, und eine vorgegebene Abschwächung des Einflusses entlang jeder Kante. Verzichten wir auf den Knotengrad, zählen nur noch die wechselseitigen Abhängigkeiten der Bewertungen. Die Zentralität eines Knotens ist dann proportional zu der seiner Nachfolger, und für einen entsprechenden Index c heißt das
X
cv = α ·
cw bzw. c = αA · c .
(v,w)∈E
Ein geeigneter Proportionalitätsfaktor lässt sich hierfür allerdings nicht so
leicht angeben wie bei der Einfluss-Zentralität – es muss ihn nicht einmal
immer geben.
2.44 Def inition (Eigenwert, Eigenvektor)
Gilt für eine quadratische Matrix A und einen Vektor x
A · x = λx,
dann heißt x Eigenvektor von A. Ist x 6= 0, so heißen λ Eigenwert und (λ, x)
Eigenpaar von A.
Da wir für λ =
1
α
aus der Zentralitätsgleichung
A · c = λc
erhalten, bieten sich positive reelle Eigenwerte λ der Adjazenzmatrix für die
Wahl der Abschwächung an. Es muss dann allerdings auch einen zugehörigen
nicht-negativen Eigenvektor geben. Wir werden zeigen, dass für stark zusammenhängende Multigraphen immer ein entsprechendes Eigenpaar exisitiert.
Im folgenden sei daher A die Adjazenzmatrix eines stark zusammenhängenden Multigraphen G = (V, E). Ungleichungen, Beträge, usw. von Vektoren
und Matrizen sind immer komponentenweise zu verstehen.
2.45 Def inition
Ein Vektor x ∈ RV≥0 \ {0} ist eine ρ-pseudoharmonische Bewertung von G,
falls
A · x ≥ ρx .
Methoden der Netzwerkanalyse (SS 2005)
72
2.46 Lemma
Ist G ein stark zusammenhängender Multigraph, dann existiert ein größtes
ρ ∈ R>0 , für das es eine ρ-pseudoharmonische Bewertung von G gibt.
Beweis:
Sei
F (x) =
(Ax)v
v∈V : xv 6=0
xv
min
definiert auf der Menge der nicht-negativen Knotenbewertungen RV≥0 \ {0}.
Jeder nicht-negative Vektor x ist F (x)-pseudoharmonisch. Da F invariant
unter Multiplikation mit einem Skalar ist, wäre die Behauptung also bewiesen, wenn wir einen Vektor y in der Menge
X
P = {x ∈ RV : x ≥ 0,
xv = 1} .
v∈V
angeben könnten, für den F (y) maximal ist. Weil P kompakt ist, würde
dessen Existenz folgen, wenn F auf P stetig wäre. Dies ist aber an den
Rändern nicht der Fall.
Statt P betrachten wir daher zunächst die Menge
P ′ = (I + A)n−1 · P .
Die Matrix A′ = (I + A) ist die Adjazenzmatrix des Multigraphen G′ , den
man aus G erhält, indem man an jedem Knoten eine Schleife hinzufügt.
Da im stark zusammenhängenden Multigraphen G keine zwei Knoten einen
Abstand größer n − 1 haben können, ist die Zahl der Kantenfolgen der Länge
n − 1 von irgendeinem Knoten zu irgendeinem anderen in G′ echt größer als
Null. Folglich sind A′ und damit auch alle Vektoren in P ′ positiv. Außerdem
ist auch P ′ kompakt. Weil aber F stetig auf ganz P ′ ist, nimmt F einen
maximalen Wert ρ für einen Vektor z ∈ P ′ an. Durch Setzen von
zv
yv = P
zw
w∈V
erhalten wir auch ein y ∈ P mit F (y) = F (z) = ρ. Da aber außerdem
F ((I + A)n−1 x) ≥ F (x),
gibt es kein x ∈ P mit F (x) > ρ.
Methoden der Netzwerkanalyse (SS 2005)
73
2.47 Lemma
Sei x eine ρ-pseudoharmonische Bewertung eines stark zusammenhängenden
Multigraphen G mit maximalem ρ ∈ R. Dann ist (ρ, x) ein Eigenpaar von
A(G).
Beweis:
Sei
σ(x) = {v : (Ax)v > ρxv }
die Menge der nicht im ρ-Gleichgewicht befindlichen Knoten, dann ist x
genau dann ein Eigenvektor von A, wenn σ(x) = ∅. Nehmen wir also an,
σ(x) wäre nicht leer.
Der Träger einer Knotenbewertung x ist die Menge der Knoten mit Bewertung ungleich Null. Sei h ∈ RV≥0 \ {0} ein nicht-negativer Vektor mit Träger
σ(x). Für den Vektor y = x + εh gilt
(Ay)v − ρyv = (Ax)v − ρxv + ε(Ah)v − ερhv .
Für v ∈ σ(x) ist (Ax)v > ρxv , und für hinreichend kleines ε damit auch die
rechte Seite der obigen Gleichung. Folglich (Ay)v > ρyv .
Für v 6∈ σ(x) sind (Ax)v = ρxv und hv = 0. Folglich (Ay)v − ρyv =
ε(Ah)v . Für ε > 0 ist die rechte Seite nicht-negativ, und weil G stark zusammenhängend ist, existiert mindestens ein v 6∈ σ(x) so, dass (Ah)v > 0.
Zusammengenommen haben wir σ(x) ⊂ σ(y). Gilt |σ(y)| = n, dann ist y auch
ρ′ -pseudoharmonisch für ein ρ′ > ρ, was ein Widerspruch ist. Andernfalls ist
y aber immerhin ρ-pseudoharmonisch und |σ(y)| > |σ(x)|, sodass wir das
Argument mit y anstelle von x wiederholen können. Nach einer endlichen
Anzahl von Wiederholungen ergibt sich der Widerspruch zur Maximalität
von ρ.
Methoden der Netzwerkanalyse (SS 2005)
74
Der Spektralradius ρ(G) eines Multigraphen ist der größte Betrag eines Eigenwertes seiner Adjazenzmatrix. Dieser muss selbst nicht Eigenwert sein,
und der zugehörige Eigenwert muss auch nicht reell sein.
2.48 Lemma
Ist G ein stark zusammenhängender Multigraph, dann gibt es eine ρ(G)pseudoharmonische Bewertung von G.
Beweis: Sei ρ der maximale Wert, sodass G eine ρ-pseudoharmonische
Bewertung hat. Für jede n×n-Matrix B mit |B| ≤ A = A(G) und Eigenpaar
(θ, x) gilt
|θ||x| = |θx| = |Bx| ≤ |B||x| ≤ A|x| ,
d.h. |x| ist ein |θ|-pseudoharmonischer Vektor von G und daher |θ| ≤ ρ. Da
insbesondere A selbst die Voraussetzungen erfüllt, ist ρ = ρ(G).
2.49 Lemma
Die ρ(G)-pseudoharmonische Bewertung eines stark zusammenhängenden
Multigraphen G ist eindeutig bis auf Skalarmultiplikation und hat nur positive Einträge.
Beweis: Wir zeigen zunächst, dass jede ρ(G)-pseudoharmonische Bewertung nur positive Einträge hat. Angenommen, xv = 0 für ein v ∈ V
(pseudoharmonische Bewertungen sind nicht-negativ). Da (ρ(G), x) Eigenpaar von A ist, gilt auch (Ax)v = ρ(G)xv = 0. Andererseits gilt
X
(Ax)v =
av,w · xw ,
w∈N + (v)
woraus wegen A ≥ 0
av,w 6= 0 =⇒ xw = 0
folgt. Da G aber stark zusammenhängend ist, liefert ein einfaches Induktionsargument, dass x = 0. Dann ist x aber keine pseudoharmonische Bewertung.
Nehmen wir also noch an, es gäbe zwei linear unabhängige ρ(G)-pseudoharmonische Bewertungen x und y. Für jede Linearkombination gilt dann
A(ax + by) = aAx + bAy ≥ aρ(G)x + bρ(G)y = ρ(G)(ax + by)
und wir können a, b ∈ R so wählen, dass ax + by nicht-negativ und an einer
Stelle Null ist. Dies ist ein Widerspruch zur bereits bewiesenen Teilaussage.
Methoden der Netzwerkanalyse (SS 2005)
75
Die hergeleiteten Eigenschaften sind im zentralen Satz des Abschnitts zusammengefasst, der uns die Definition einer Zentralität erlaubt, in der die
Bewertungen nur von den Bewertungen der jeweiligen Nachbarn abhängen.
2.50 Satz (Perron 1907 und Frobenius 1912)
Der Spektralradius ρ(G) der Adjazenzmatrix eines stark zusammenhängenden Multigraphen G ist ein Eigenwert. Der zugehörige Eigenvektor ist eindeutig bis auf Skalarmultiplikation und alle seine Einträge haben das gleiche
Vorzeichen.
2.51 Def inition (Eigenvektor-Zentralität; Bonacich 1972)
Die Eigenvektor-Zentralität cE ist definiert für alle G = (V, E) ∈ S als die
eindeutige Lösung von
1
· A(G) · cE (G)
cE (G) =
ρ(G)
P
mit cE (G)v > 0, v ∈ V , und
v∈V cE (G)v = 1 (d.h. die EigenvektorZentralität wird grundsätzlich normiert).
5.84 %
5.84 %
12.9 %
11.89 %
16.19 %
13.35 %
13.06 %
9.49 %
6%
2.72 %
2.72 %
normierte Eigenvektor-Zentralität im Beispielgraphen
Vermutung: cE ∈ • → ◦(S) (ohne Beweis)
Methoden der Netzwerkanalyse (SS 2005)
76
Die exakte Berechnung von Eigenvektoren ist schwierig. Von den zahlreichen
numerischen Methoden zu ihrer Annäherung betrachten wir nur die einfachste: die sogenannte Potenziteration.
Wie bei der iterativen Bestimmung der Einfluss-Zentralitäten wird die punktweise Gleichgewichtsgleichung genutzt, um eine Folge von Näherungen zu
erzeugen. Ausgehend von einem beliebigen Startvektor c(0) , etwa c(0) = 1,
besteht die durch
c(i+1) = Ac(i)
definierte Folge von Schätzwerten aus den Vektoren Ai c(0) , die – abgesehen
von einem problematischen Sonderfall – eine Näherung für die EigenvektorZentralität liefern.
2.52 Lemma
Für einen stark zusammenhängenden, nicht bipartiten Multigraphen G gilt
für geeignetes c(0)
c(i)
cE (G)
−→
.
kc(i) k i→∞ kcE (G)k
Beweis: Seien λ1 , . . . , λn die Eigenwerte von A(G). Da G stark zusammenhängend und nicht bipartit ist, können wir ρ(G) = λ1 > |λ2 | ≥ . . . ≥ |λn |
annehmen (dabei wird benutzt, dass −ρ(G) genau dann Eigenwert von G ist,
wenn G bipartit ist; s. Übung). Ferner seien x1 , . . . , xn zugehörige Eigenvektoren, insbesondere also x1 proportional zum gesuchten. Lässt sich der
Startvektor mit geeigneten Koeffizienten b1 , . . . , bn als
c(0) = b1 x1 + . . . + bn xn
schreiben, dann folgt daraus mit Induktion über i
i (0)
Ac
=
n
X
bj λij xj
j=1
und, falls b1 6= 0,
Ai c(0) = b1 λi1
i !
n
X
bj λ j
x1 +
xj .
b
λ
1
1
j=2
Wegen λ1 > |λj | für alle j = 2, . . . , n folgt die Behauptung.
Methoden der Netzwerkanalyse (SS 2005)
77
2.53 Beispiel
Betrachte den zusammenhängenden bipartiten Graphen C4 . Die Eigenwerte sind (λ1 , λ2 , λ3 , λ4 ) = (2, 0, 0, −2) (s. Übung) mit Eigenvektoren x1 =
(1, 1, 1, 1)T , x2 = (1, 0, −1, 0)T , x3 = (0, 1, 0, −1)T und x4 = (−1, 1, −1, 1)T .
Bei Startvektor c(0) = 2x1 + x4 (also a1 6= 0) ergibt sich jedoch die Folge
(
(2i , 3 · 2i , 2i , 3 · 2i )T falls i gerade
c(i) =
(3 · 2i , 2i , 3 · 2i , 2i )T falls i ungerade,
die sich keinem Eigenvektor nähert.
Da die Folgenglieder stark wachsen, normieren wir in jeder Iteration. Die
Konvergenzaussage wird dadurch nicht beeinflusst.
Algorithmus 14: Eigenvektor-Zentralitäten (näherungsweise)
Eingabe : Multigraph G = (V, E) ∈ S, nicht bipartit
Abbruchkriterium ε
Daten : Knotenarray c′ (letzte Näherung)
Ausgabe: Knotenarray c (Eigenvektor-Zentralität)
foreach v ∈ V do cv ←
1
n
repeat
c′ ← c
foreach v ∈ V do
cv ← 0
foreach w ∈ NG+ (v) do cv ← cv + av,w · c′w
c
ρ ← kck; c ←
ρ
until ρ während der letzten Iterationen nur um ε verändert
2.54 Bemerkung
Die Laufzeit des Verfahrens ist wieder O(n + m) pro Iteration. Allerdings
|λ2 |
hängt die Konvergenzgeschwindigkeit der Potenziteration vom Verhältnis |λ
1|
ab und kann daher sehr schlecht sein. Das Abbruchkriterium kann deutlich
geschickter gewählt werden. Für mittelgroße Graphen ist der obige Algorithmus jedoch durchaus praktikabel.
Methoden der Netzwerkanalyse (SS 2005)
78
Hubs & Authorities
2.55 Beispiel (Bibliographische Netzwerke, WWW)
Bei der Analyse wissenschaftlicher Publikationen interessiert man sich für einflussreiche Publikationen, bedeutende Autoren, wichtige Zeitschriften, usw.
Die Datenbasis besteht normalerweise aus mindestens einem von zwei Netzwerktypen:
Knoten
Kanten
Zitiernetzwerk
Publikationen
v zitiert w
Autorenschaft Autoren & Publikationen v ist Autor von w
Bei wissenschaftlichen Veröffentlichungen ist der zweite Typ wesentlich einfacher erhältlich, da sich diese Netzwerke leicht aus bibliographischen Datenbanken automatisch erzeugen lassen. Zitate sind aus Aufsätzen und Büchern
sehr aufwändig zu extrahieren, sodass entsprechende Datensätze (z.B. Science
Citation Index) sehr teuer sind.
Eine andere Form der Publikation von Wissen sind WWW-Seiten. Hier ist
das Aufwandsverhältnis genau umgekehrt, da sich Zitate (Links) aus HTMLSeiten sehr leicht extrahieren lassen, Autoren jedoch selten zuverlässig feststellbar sind.
Methoden der Netzwerkanalyse (SS 2005)
79
Wir betrachten zwei Operatoren, mit denen aus gerichteten Multigraphen
(wie etwa Zitier- und Autorenschaftsnetzwerken) symmetrische (ungerichtete) Multigraphen für Teilaspekte einer Analyse gewonnen werden.
2.56 Def inition (Bibliographische Operatoren; Kessler 1963 und Small 1973)
Ist G ein Multigraph, dann heißt der symmetrische Multigraph B(G) mit Adjazenzmatrix B(G) = A(B(G)) = A(G)A(G)T (bibliographische) Kopplung
von G. Der symmetrische Multigraph C(G) mit Adjazenzmatrix C(G) =
A(C(G)) = A(G)T A(G) heißt Kozitation von G.
2
3
3
2
2
2
2
3
2
2
Kopplung B(G)
←
Ausgangsgraph G
→
Kozitation C(G)
2.57 Bemerkung
Enthält G mindestens eine Kante, so sind weder B(G) noch C(G) bipartit
(s. Übung).
2.58 Beispiel (Erdős-Graph)
Angewandt auf ein Autorenschaftsnetzwerk ergibt die bibliographische Kopplung den Kollaborationsgraph. Der wohl berühmteste Kollaborationsgraph
ist der Erdős-Graph. Dabei handelt es sich um den von allen wissenschaftlichen Publikationen induzierten Kollaborationsgraph zusammen mit einer
Knotenbewertung (der Erdős-Zahl), die den Abstand vom Paul Erdős entsprechenden Knoten angibt. Erdős selbst hat die Erdős-Zahl 0, seine Koautoren die Erdős-Zahl 1, deren Koautoren, die nicht Erdős oder Koautor Erdős’
sind, die Erdős-Zahl 2, usw.
Siehe auch http://www.oakland.edu/~grossman/erdoshp.html.
Methoden der Netzwerkanalyse (SS 2005)
80
Im Rahmen des CLEVER-Projekts zur Verbesserung von WWW-Suchmaschinen wurde bei IBM das Verfahren HITS entwickelt, das wesentlich auf
dem folgenden Zentralitätsindex beruht.
2.59 Def inition (Hubs & Authorities; Kleinberg 1999)
Für G ∈ G ist die Hub-Zentralität cH definiert durch
cH (G) = cE (B(G))
und die Authority-Zentralität cA durch
cA (G) = cE (C(G)) .
2.60 Bemerkung
Da die symmetrischen Multigraphen B(G) und C(G) nicht notwendig zusammenhängend sind, gehen wir in der obigen Definition von einer Verallgemeinerung der Eigenvektor-Zentralität auf Vereinigungen stark zusammenhängender Multigraphen aus. Die Zentralitäten in jeder Zusammenhangskomponente summieren sich dabei zur relativen Größe der Komponente auf.
5.2 %
5.66 %
5.2 %
5.66 %
10.58 %
11.52 %
14.88 %
13.46 %
15.68 %
14.41 %
15.39 %
13.93 %
12.65 %
9.9 %
10.95 %
11.63 %
6.26 %
2.63 %
6.92 %
2.63 %
2.42 %
2.42 %
normierte Hub-Zentralität
normierte Authority-Zentralität
im Beispielgraphen
im Beispielgraphen
(falsch normiert)
(falsch normiert)
Vermutung: cH ∈ • → ◦(G) und cA ∈ ◦ → •(G)
ACHTUNG:
G ist bipartit
Methoden der Netzwerkanalyse (SS 2005)
81
Der naheliegende Ansatz zur Berechnung von Hubs & Authorities, zunächst
B(G) und C(G) zu berechnen und auf die Ergebnisse dann jeweils Potenziteration anzuwenden, ist im allgemeinen ungeeignet, da die Eigenschaft geringer Dichte verloren gehen kann.
2.61 Lemma
n(G) = n(B(G)) = n(C(G)), aber
m(B(G)) =
X
2
d−
G (v)
v∈V
m(C(G)) =
X
2
d+
G (v)
v∈V
Beweis: Nach Definition haben die Adjazenzmatrizen der beiden abgeleiteten Multigraphen die gleichen Dimensionen, sodass die Anzahl der
Knoten unverändert ist.
Für die Kardinalität der Kantenmenge von B(G) mit Adjazenzmatrix B =
(bu,w )u,w∈V ist
X
X
m(B(G)) =
bu,w =
(AAT )u,w
u,w∈V
u,w∈V
X X
=
au,v · aw,v =
u,w∈V v∈V
=
XX
au,v
v∈V u∈V
=
X
2
d−
G (v)
XX X
au,v · aw,v
v∈V u∈V w∈V
X
w∈V
aw,v =
XX
au,v · d−
G (v)
v∈V u∈V
v∈V
und analog für m(C(G)).
Methoden der Netzwerkanalyse (SS 2005)
82
Der folgende Zusammenhang erlaubt es uns, die Potenziterationen für beide
Zentralitätsindizes ineinander zu schachteln.
2.62 Lemma
cH (G) = A(G) · cA (G) und cA (G) = A(G)T · cH (G).
Beweis: Wir können annehmen, dass B(G) und C(G) zusammenhängend
sind, denn andernfalls übertragen sich alle Argumente entsprechend auf die
Zusammenhangskomponenten.
Im Beweis zur Konvergenz der Potenziteration wurde gezeigt, dass bei stark
zusammenhängenden, nicht-bipartiten Multigraphen für einen geeigneten Startvektor x die Folge Ai x gegen einen Eigenvektor des betragsgrößten Eigenwertes von A = A(G) konvergiert.
Daher konvergiert die Folge (AAT )i x für die meisten x gegen ein Vielfaches
von cH (G), und die Folge (AT A)i y für die meisten y gegen ein Vielfaches von
cA (G). Wegen (AAT )i x = A(AT A)i−1 (AT x) folgt der erste Teil der Behauptung mit Wahl von y = AT x. Der zweite folgt analog.
Aus dem obigen Beweis können wir unmittelbar die Korrektheit des folgenden
Näherungsalgorithmus folgern.
Algorithmus 15: Hub- & Authority-Zentralitäten (näherungsweise)
Eingabe : Multigraph G = (V, E), Abbruchkriterium ε
Ausgabe: Knotenarray a (Authority-Zentralität)
Knotenarray h (Hub-Zentralität)
foreach v ∈ V do av ←
1
n
repeat
foreach v ∈ V do
hv ← 0
foreach (v, w) ∈ E do hv ← hv + aw
h
ρh ← khk; h ←
ρh
foreach v ∈ V do
av ← 0
foreach (u, v) ∈ E do av ← av + hu
a
ρa ← kak; a ←
ρa
until ρa , ρh während der letzten Iterationen nur um ε verändert
Trotz der möglicherweise höheren Dichte von B(G) und C(G) ist die pro
Iteration benötigte Zeit damit wieder nur O(n(G) + m(G)).
Methoden der Netzwerkanalyse (SS 2005)
83
PageRank
Die Suchmaschine Google verwendet für die Relevanzbewertung unter anderem einen Zentralitätsindex namens PageRank. Dieser kann als Variante
sowohl der Einfluss- als auch der Eigenvektor-Zentralität angesehen werden.
2.63 Def inition
Zu einem Multigraph G = (V, E) sei die Ausgangsgradmatrix D+ (G) =
(dv,w )v,w∈V definiert durch
(
d+
G (v) falls v = w
+
dv,w =
0
sonst .
Die (ausgangsgrad-)normalisierte Adjazenzmatrix definieren wir als
M + (G) = (D+ (G))−1 A(G)
wobei für (D+ (G))−1 = (d−1
v,w )v,w∈V gelte
(
−1
d+
falls v = w und d+
G (v)
G (v) > 0
d−1
=
v,w
0
sonst .
2.64 Bemerkung
In normalisierten Adjazenzmatrizen ist die Zeilensumme für Knoten mit mindestens einer ausgehenden Kante gleich Eins. Sie können als Adjazenzmatrix
eines (kanten-)gewichteten Multigraphen M+ (G) interpretiert werden. Entsprechende Definitionen und Aussagen für den Eingangsgrad und den Knotengrad sind natürlich ebenfalls möglich, werden aber hier nicht benötigt.
Bei der Eigenvektor-Zentralität werden die Werte an den Nachfolgerknoten
aufsummiert. Nimmt man stattdessen den Mittelwert, so ergibt sich
X av,w
· cw bzw. c = αM + (G)c .
cv = α
+
d
(v)
G
+
w∈NG (v)
Die Bewertung c heißt dann harmonisch. Die Zentralität eines Knotens ist
damit also proportional zur mittleren Zentralität der von ihm direkt beeinflussten Knoten. In WWW-Zitiernetzwerken ist diese Sichtweise sicher wenig
plausibel, da Links keine Beeinflussung der Seiten darstellen, auf die verwiesen wird.
Methoden der Netzwerkanalyse (SS 2005)
84
Wir hatten bereits festgestellt, dass aus einer • → ◦ Zentralität eine ◦ → •
Zentralität wird, wenn wir sie im Graphen mit umgedrehten Kanten berechnen. Da PageRank die Relevanz von WWW-Seiten bewerten soll, bietet sich
die so umgekehrte Sichtweise an: Die Relevanz einer Seite überträgt sich zu
gleichen Teilen auf die durch ausgehende Hyperlinks referenzierten Seiten.
Eine entsprechende Bewertung müsste dann
X au,v
cv =
· cu bzw. c = M + (G)T c .
+
d
(u)
G
−
u∈NG (v)
erfüllen. Ein Proportionalitätsfaktor ist hier nicht nötig:
2.65 Lemma
Ist G ein stark zusammenhängender, nicht bipartiter Multigraph, so gilt
ρ(M+ (G)T ) = 1.
Beweis: Aus den Überlegungen zur Potenziteration wissen wir, dass die
Folge (M + (G)T )i x für geeignete x und i → ∞ gegen einen zum Spektralradius gehörigen Eigenvektor mit ausschließlich positiven Einträgen konvergiert.
Außerdem gilt
X
1
au,v
·
x
=
· xu
u
+
+
d
(u)
d
(u)
−
v∈V u∈N (v)
(u,v)∈E
X X au,v
X
X au,v
=
·
x
=
x
u
u
d+ (u)
d+ (u)
u∈V v∈N + (u)
u∈V
v∈N + (u)
X
=
xu ,
X
X X
(M + (G)T x)v =
v∈V
u∈V
d.h. die Summe der Einträge eines Vektors ist invariant unter Multiplikation mit der normalisierten Adjazenzmatrix. Dies gilt insbesondere für den
positiven Eigenvektor zum Spektralradius, sodass letzterer gleich Eins sein
muss.
Methoden der Netzwerkanalyse (SS 2005)
85
2.66 Bemerkung (Irrfahrten auf Graphen und das WWW)
Die Potenziteration für (M + (G))T kann als Irrfahrt auf G interpretiert werden:
• Die Knoten von G beschreiben mögliche Aufenthaltsorte.
• Die ausgehenden Kanten eines Knotens entsprechen den erlaubten Übergängen an Aufenthaltsorte zum nächsten Zeitpunkt.
• Der Wechsel des Aufenthaltsortes geschieht zufällig, d.h. jeder mögliche
Übergang findet mit gleicher Wahrscheinlichkeit statt.
Bei Vorgabe einer Anfangsverteilung x(0) , etwa der Gleichverteilung n1 · 1,
beschreibt der Vektor (M + (G)T )i x(0) die Aufenthaltswahrscheinlichkeiten an
den Knoten nach genau i Übergängen.
Die Matrix (M + (G))T heißt in dieser Interpretation auch Übergangsmatrix.
Drücken wir die Aufenhaltswahrscheinlichkeiten zu Zeitpunkt i durch Zufallsvariablen X (i) aus, dann heißt X (0) , X (1) , . . . auch (homogene) Markoff-Kette,
und die Konvergenzbedingungen stark zusammenhängend und bipartit entsprechen den Bedingungen irreduzibel und aperiodisch für die Existenz einer stationären Verteilung (einer Verteilung, die sich durch Anwendung der
Übergangsmatrix nicht ändert).
Statt als rückgekoppelte Zentralität kann ein Eigenvektor zum größten Eigenwert 1 von (M + (G))T daher auch als die stationäre Verteilung einer Irrfahrt
auf dem Graphen gedeutet werden. In WWW-Graphen lässt sich diese interpretieren als die Aufenthaltswahrscheinlichkeit eines zufällig umherirrenden
Benutzers auf der jeweiligen Seite.
Methoden der Netzwerkanalyse (SS 2005)
86
Will man die Aufenthaltswahrscheinlichkeiten zur Relevanzbewertung der
Datenbasis einer Suchmaschine verwenden, ist die Einschränkung auf stark
zusammenhängende, nicht bipartite Multigraphen unrealistisch. Die folgende
Idee beseitigt das Problem: Statt in jedem Schritt einem Link zu einer Seite zu
folgen, kann der herumirrende Benutzer mit einer Wahrscheinlichkeit ω auch
zu irgendeiner Seite springen. Dadurch wird der Multigraph der möglichen
Übergänge vollständig, insbesondere also stark zusammenhängend und nicht
bipartit.
Bei gleich wahrscheinlichen Sprungzielen erhalten wir die von Google verwendete Zentralität.
2.67 Def inition (PageRank; Brin und Page 1998)
Für G ∈ G und ein 0 < ω < 1 ist der PageRank cP definiert als die eindeutige
Lösung von
ω
cP (G) = (1 − ω) · M + (G)T cP (G) + · 1 .
n
Vermutung: cP ∈ ◦ → •(G)
5.24 %
S?
5.24 %
7.94 %
10.87 %
15.83 %
7.82 %
13.61 %
10.79 %
11.31 %
5.68 %
5.68 %
PageRank im Beispielgraphen (ω = 41 )
Offene Frage: Welche Auswirkungen hat ω auf die Reihung der Knoten?
Methoden der Netzwerkanalyse (SS 2005)
Algorithmus 16: PageRank (näherungsweise)
Eingabe : Multigraph G = (V, E), Sprungw’keit 0 < ω < 1
Abbruchkriterium ε
Daten : Knotenarray c′ (letzte Näherung)
Ausgabe: Knotenarray c (PageRank)
foreach v ∈ V do cv ←
1
n
repeat
c′ ← c
foreach v ∈ V do
ω
cv ←
n
au,v
foreach u ∈ N − (v) do cv ← cv + (1 − ω) +
· c′
d (u) u
until kc − c′ k < ε
87
Methoden der Netzwerkanalyse (SS 2005)
2.3
88
Kantenzentralitäten
Wir wollen noch kurz anreißen, wie Kantenzentraliäten definiert werden könnten. Die dazugehörige Theorie ist noch weniger weit entwickelt als die für
Knotenzentralitäten. Geeignete notwendige Bedingungen an Kantenstrukturindizes sind nicht bekannt.
Zumindest bei der Betweenness-Zentralität lässt sich die Grundidee unmittelbar auf Kanten übertragen.
2.68 Def inition (Kanten-Betweenness; Anthonisse 1971)
Die Erweiterung der Betweenness-Zentralität cB auf Kanten ist definiert
durch
X σG (s, t|e)
cB (G)e =
σG (s, t)
s,t∈V
für alle G = (V, E) ∈ G (mit den Bezeichnungen aus der Knoten-BetweennessZentralität).
2.69 Lemma
δG (s|(v, w)) =
(
σG (s,v)
σG (s,w)
0
· (1 + δG (s|w)) falls (v, w) ∈ PG− (s, w)
sonst.
Beweis: Falls (v, w) 6∈ PG− (s, w), also auf keinem kürzesten (s, w)-Weg
liegt, dann liegt (v, w) auch auf keinem kürzesten (s, t)-Weg für irgend ein
t ∈ V , sodass δG (s|(v, w)) = 0.
Im Beweis zur Abhängigkeit von Knoten hatten wir bereits gesehen, dass
( σ (s,v)
G
falls t = w
σG (s,w)
δG (s, t|v, (v, w)) = σG (s,v) σG (s,t|w)
· σG (s,t) falls t 6= w
σG (s,w)
Da aber δG (s, t|v, (v, w)) = δG (s, t|(v, w)) folgt die Behauptung durch Summation über alle t ∈ V .
Methoden der Netzwerkanalyse (SS 2005)
89
Zur Berechnung brauchen wir also lediglich den Betweenness-Algorithmus um
Abhängigkeiten von Kanten zu erweitern. Für Multigraphen mit Mehrfachkanten ist wieder zu beachten, dass die Vorgängerzählung angepasst werden
muss.
Algorithmus 17: Abhängigkeiten eines Knotens s ∈ V
(Spezialisierung der Breitensuche mit Wurzel s)
Daten : Knotenarray σs (Anzahl der kürzesten Wege von s)
Knotenarray Ps (Liste der Vorgänger auf kürzesten Wegen)
Stack S (Knoten in Reihenfolge ihres Abstands von s)
Ausgabe: Knoten- und Kantenarray δs
(Abhängigkeiten, initialisiert mit 0)
root(vertex s) begin
σs (s) = 1
end
traverse(vertex v, edge e, vertex w) begin
if e ist Baumkante then
füge an Ps (w) ← v
σs (w) ← σs (v)
push w → S
if e ist Vorwärtskante then
füge an Ps (w) ← v
σs (w) ← σs (w) + σs (v)
end
done(vertex s) begin
while S nicht leer do
w ← pop(S)
foreach v ∈ Ps (w) do
(v)
δs (v) ← δs (v) + σσss(w)
· (1 + δs (w))
δs ((v, w)) ←
end
σs (v)
σs (w)
· (1 + δs (w))
Methoden der Netzwerkanalyse (SS 2005)
90
2.70 Beispiel (Clustern mit Kanten-Betweenness)
Haben Kanten eine hohe Betweenness-Zentralität, dann sind sie wesentliche Verbindungen zwischen verschiedenen Teilgraphen. Insbesondere haben
Brücken eine hohe Betweenness, die umso größer ist, je ähnlicher die Größe
der Teilgraphen ist, zu denen die beiden Endknoten gehören.
Eine Idee, durch wiederholtes Entfernen von Kanten den Graphen schrittweise in Cluster zu zerlegen, besteht daher darin, die jeweils am höchsten
bewerteten Kanten auszuwählen. Der nachfolgende Algorithmus beschreibt
das Vorgehen im Detail.
Algorithmus 18: Betweenness-Clustern (Girvan und Newman 2001)
Eingabe : Multigraph G = (V, E)
Ausgabe: Teilgraph C ⊆ G
(Zusammenhangskomponenten definieren die Cluster)
C←G
repeat
B ← {e ∈ E(C) : cB (C)e maximal}
entferne die Kanten in B aus C
until bel. Abbruchbedingung (z.B. Anzahl Cluster, Clustergrößen)
Die Laufzeit ist im schlechtesten Fall O(nm2 ), denn in jeder Iteration muss
die Kanten-Betweenness neu berechnet werden. Sie ist in der Regel aber
niedriger, wenn z.B. die Kanten-Betweenness in gut aufgeteilten Graphen
nur noch in kleinen Komponenten bestimmt werden muss.
Das folgende Netzwerk beschreibt die Freundschaftsbeziehungen in einem
Karate-Verein. Das anschließende Dendrogramm gibt die Aufteilung der Cluster an (aus: Girvan und Newman 2001).
25
12
26
5
17
7
11
28
6
32
24
1
20
29
27
22
9
30
15
13
4
33
14
16
31
21
2
3
34
18
8
10
23
19
3 29 25 28 33 34 30 24 31 9 23 21 19 16 15 26 32 27 10
4 14 2
1
8 22 20 18 13 12 7 17 6
5 11
Offene Frage: Kann Information aus der Kanten-Betweenness-Berechnung
für die nächste Iteration wiederverwendet werden (Berechnung auf dynamischen Graphen, bei denen nur Kanten entfernt werden), um die Gesamtlaufzeit zu verringern?
Methoden der Netzwerkanalyse (SS 2005)
91
Analog können wir Closeness- und andere Zentralitäten auf Kanten übertragen. Die Definitionen von Wegen und Abständen seien dazu in naheliegender
Weise auf Kanten verallgemeinert.
2.71 Def inition (Kanten-Closeness-, -Einfluss-, und -Eigenvektor-Zentralität)
Die Erweiterungen der Closeness-, Einfluss- und Eigenvektor-Zentralität auf
Kanten sind definiert durch durch
cC (G)e =
1
P
dG (e, e′ )
X
α · (1 + cI (G)(v,w) )
e′ ∈E
cI (G)(u,v) =
(v,w)∈E
cE (G)(u,v) =
1 X
·
cE (G)(v,w)
λ
(v,w)∈E
für alle G = (V, E) ∈ S (für cI (G) sogar G ∈ G) und geeignete α, λ.
Wir zeigen die Wohldefiniertheit allgemeiner.
2.72 Def inition (Kantengraph)
Zu einem Multigraphen G = (V, E) ist der zugehörige Kanten(multi)graph
E(G) = (E, F ) definiert durch
((u, v), (v, w)) ∈k F ⇐⇒ (u, v) ∈r E, (v, w) ∈s E und k = r · s
2.73 Lemma
Seien G = (V, E) ein gerichteter Multigraph und E(G) = (E, F ) der zugehörige Kantengraph. Dann gilt:
(i) G gewöhnlich =⇒ E(G) gewöhnlich
(ii) G schleifenfrei ⇐⇒ E(G) schleifenfrei
(iii) E(G) stark zusammenhängend ⇐⇒ G besteht einer starken Zusammenhangskomponente und einer beliebigen Anzahl isolierter Knoten
(iv) G stark zusammenhängend und nicht bipartit =⇒ E(G) stark zusammenhängend und nicht bipartit
Methoden der Netzwerkanalyse (SS 2005)
Beweis:
92
Die beiden ersten Eigenschaften sind offensichtlich.
Für die dritte sei G stark zusammenhängend. Es gibt dann zwischen je
zwei Knoten einen gerichteten Weg. Insbesondere gibt es für je zwei Kanten (u, v), (w, x) einen gerichteten Weg von v nach w und einen von x nach
u. Diese entsprechen in E(G) gerichteten Wegen von (u, v) nach (w, x) und
von (w, x) nach (u, v), sodass auch E(G) stark zusammenhängend ist. Bei
Hinzufügen von isolierten Knoten zu G bleibt E(G) unverändert.
Ist umgekehrt E(G) stark zusammenhängend, so finden wir für jeden nicht
isolierten Knoten in G eine inzidente Kante. Zu zwei Knoten in G betrachte
daher zwei inzidente Kanten, etwa (u, v) und (w, x). Mit der gleichen Überlegung wie oben folgt aus dem starken Zusammenhang von E(G) die Existenz
zweier gerichteter Wege in G, von denen der eine mit (u, v) beginnt und mit
(w, x) endet, und der andere umgekehrt.
Schließlich sei G stark zusammenhängend und nicht bipartit. Angenommen,
E(G) wäre bipartit, also insbesondere schleifenfrei, und E = E1 ∪ E2 eine
entsprechende Partition der Kanten von G. Ist v ∈ V ein beliebiger Knoten,
dann gibt es, weil G stark zusammenhängend ist, mindestens eine eingehende
und eine ausgehende inzidente Kante. Gibt es eine eingehende Kante (u, v) ∈
E1 , dann sind alle ausgehenden Kanten (v, w) ∈ E2 und damit auch alle
eingehenden Kanten (u′ , v) ∈ E1 . Entsprechend für ein (u, v) ∈ E2 . Die
Knoten von G können folglich danach aufgeteilt werden, ob ihre eingehenden
oder ausgehenden Kanten in E1 sind. Dann wäre G aber bipartit, denn keine
zwei aus einer der beiden Mengen können adjazent sein.
Ein Knotenzentralitätsindex angewandt auf den Kantengraph liefert eine Bewertung der Kanten im Ausgangsgraphen, die als Kanten-Zentralität gedeutet werden könnte. Wegen der Eigenschaften (iii) und (iv) im obigen Lemma
ist die Erweiterung der nur auf eingeschränkten Klassen definierten Maße
unproblematisch.
Methoden der Netzwerkanalyse (SS 2005)
93
2.74 Def inition (Zentralitäten)
Sei c eine Knotenzentralität und G ein Multigraph so, dass c(E(G)) definiert
ist. Dann heißt der Strukturindex c̄ mit
c̄(G)v = c(G)v
und
c̄(G)e = c(E(G))e
die zugehörige (allgemeine) Zentralität.
2.75 Satz
cC = c̄C , cI = c̄I , cE = c̄E .
Beweis: Die Definitionen der Kanten-Zentralitäten entsprechen genau
denen für Knoten-Zentralitäten angewandt auf den Kantengraphen.
Für Closeness, Einfluss und Eigenvektor-Zentralität können die Algorithmen
für die entsprechenden Knoten-Zentralitäten mit wenigen Modifikationen benutzt werden, um die Kanten-Zentralitäten ohne Konstruktion des Kantengraphen zu bestimmen.
Bei Betweenness führt die Definition über den Kantengraphen allerdings zu
Inkonsistenzen.
2.76 Satz
cB und c̄B sind verschieden.
Beweis: Es gibt sogar Unterschiede auf zusammenhängenden ungerichteten Graphen:
e3
e3
e4
e4
e1
e2
Graph G
e1
e2
Kantengraph E(G)
Es gilt cB (e1 ) = 6 > cB (e2 ) = cB (e3 ) = 4 > 2 = cB (e4 ), aber c̄B (e1 ) =
c̄B (e4 ) = 0 < 1 = c̄B (e2 ) = c̄B (e3 ).
Methoden der Netzwerkanalyse (SS 2005)
94
Man könnte das Problem darin vermuten, dass nur innere Knoten in die
Knoten-Betweenness auf dem Kantengraph eingehen, weil die jeweils erste
und letzte Kante aller kürzesten Wege im Ausgangsgraphen dadurch nicht
berücksichtigt werden. Aus dem vorstehenden Beweis können wir aber ableiten, dass auch eine entsprechende Modifikation der Knoten-Betweenness
keine Abhilfe schaffen kann.
2.77 Folgerung
Für jede Knoten-Zentralität c ist c̄ verschieden von cB .
Beweis: In dem Beispiel im obigen Beweis sind die Knoten e1 und e4 von
E(G) strukturell äquivalent, sodass für jeden Knotenstrukturindex c gelten
muss c(e1 ) = c(e4 ) und c(e2 ) = c(e3 ). Es gilt aber auch cB (e1 ) 6= cB (e4 ). Kapitel 3
Gruppen und Rollen
In diesem Kapitel liegt unser Augenmerk nicht auf der (strukturellen) Wichtigkeit einzelner Knoten oder Kanten, sondern auf der Zugehörigkeit von
Knoten zu (strukturellen) Teilmengen. Diese können entweder durch relativ
enge Beziehungen untereinander, d.h. größere Dichte der Kanten innerhalb
des induzierten Teilgraphen als nach außen, oder durch Ähnlichkeit der Nachbarschaften, d.h. gleichartige Beziehungen zu gleichartigen anderen, gebildet
werden. Im ersten Fall sprechen wir von Gruppen, im zweiten von Rollen.
3.1
Dichte Teilgraphen
Ein Graph ist dicht, wenn viele der möglichen Kanten auch tatsächlich vorhanden sind.
3.1 Def inition (Dichte)
Die Dichte D(G) eines Multigraphen G = (V, E) ist definiert durch
D(G) =
|{(u, w) ∈ V × V : (u, w) ∈ E, u 6= w}|
.
n(n − 1)
Ein Multigraph hat damit die maximal mögliche Dichte 1, wenn jeder Knoten
mit jedem anderen verbunden ist. Der schlichte ungerichtete Graph Kn =
(V, E) mit Knotenmenge {1, . . . , n} und Kantenmenge E = {{v, w} : v 6=
w ∈ V } heißt auch der vollständige Graph auf n Knoten.
95
Methoden der Netzwerkanalyse (SS 2005)
96
Kommt der vollständige Graph als Teilgraph eines anderen vor, können die
beteiligten Knoten als eng zusammenhaltende Gruppe angesehen werden.
3.2 Def inition (Clique; Luce and Perry 1949)
In einem schlichten ungerichteten Graph G = (V, E) heißt eine Knotenteilmenge C ⊆ V Clique (der Größe |C| bzw. |C|-Clique), falls der von C
knoteninduzierte Teilgraph G[C] vollständig ist. Eine Clique heißt maximal,
wenn sie inklusionsmaximal ist. Das größte k ∈ {0, . . . , n}, für das G eine
k-Clique enthält, heißt Cliquenzahl ω(G) = k von G.
3.3 Satz
Die Bestimmung von ω(G) ist N P-schwer.
Beweis: Wir zeigen, dass das Entscheidungsproblem CLIQUE (Gegeben
ein Graph G = (V, E) und ein k ∈ N, gibt es in G eine Clique der Größe
mindestens k?) N P-vollständig ist.
CLIQUE ist klarerweise in N P. Für die Vollständigkeit geben wir eine polynomiale Reduktion des N P-vollständigen Problems 3SAT auf CLIQUE an.
Sei als 3SAT-Instanz eine Formel φ = C1 ∧ . . . ∧ Cr in konjunktiver Normalform mit jeweils drei Literalen pro Klausel gegeben. Die Klauseln seien
Ci = yi,1 ∨ yi,2 ∨ yi,3 mit yi,j ∈ {x1 , . . . , xn , x1 , . . . , xn } für alle i = 1, . . . , r.
Wir konstruieren daraus einen ungerichteten Graphen G(φ) = (V, E) mit
V = {yi,j : 1 ≤ i ≤ r, j = 1, 2, 3}
E = {{yi1 ,j1 , yi2 ,j2 } ; 1 ≤ i1 < i2 ≤ r, yi1 ,j1 6= yi2 ,j2 }
und zeigen, dass φ genau dann erfüllbar ist, wenn es in G(φ) eine Clique der
Größe r gibt.
Ist φ erfüllbar, dann lässt sich in jeder Klausel ein erfülltes Literal wählen.
Da alle erfüllt sind, gilt für keine zwei, dass das eine Negation des anderen
ist. Da sie außerdem noch aus verschiedenen Klauseln stammen, sind die
zugehörigen Knoten in G(φ) vollständig verbunden.
Enthält umgekehrt G(φ) eine Clique mit r Knoten, dann ist in jeder Klausel mindestens ein zugehöriges Literal vertreten. Die zugehörigen Variablen
können alle so belegt werden, dass das Literal erfüllt ist, denn weil je zwei
Knoten der Clique adjazent sind, widersprechen sich die Literale nicht. Methoden der Netzwerkanalyse (SS 2005)
97
3.4 Bemerkung
Die Situation ist algorithmisch sogar noch unerfreulicher, weil es im Fall P =
6
N P auch keinen polynomialen Algorithmus gibt, mit dem die Cliquenzahl
bis auf einen konstanten Faktor approximiert werden kann.
Das heißt aber natürlich nicht, dass sich die Cliquen eines Graphen nicht
bestimmen ließen. Wir werden als nächstes sogar alle maximalen Cliquen
aufzählen.
Ein Aufzählungsalgorithmus gibt alle Objekte einer Menge in irgendeiner
Reihenfolge aus. Er arbeitet mit Verzögerung O(f (n)), falls die Laufzeit vor
Ausgabe des ersten Elements, zwischen je zwei Elementen und nach dem
letzten Element jeweils in O(f (n)) ist.
3.5 Satz
Algorithmus 19 zählt alle maximalen Cliquen eines ungerichten Graphen mit
Verzögerung O(nm) und O(n + m) Platz auf.
Beweis: Der Algorithmus ist korrekt, denn er durchläuft einen binären
Baum, dessen Knoten der Tiefe i gerade die maximalen Cliquen im von den
Knoten {1, . . . , i} induzierten Graphen G[{1, . . . , i}] repräsentieren, und gibt
jeweils die maximalen Cliquen in G = G[1, . . . , n] aus. Das sieht man wie
folgt.
Aus einer maximalen Clique C in G[1, . . . , i − 1] erhält man auf folgende
Weisen eine maximale Clique in G[1, . . . , i]:
1. Fall: (C ⊆ N (i))
Wenn alle Knoten in C zu i adjazent sind, dann ist C ∪ {i} die einzige
maximale Clique in G[1, . . . , i], die C enthält.
2. Fall: (C 6⊆ N (i))
Dann ist zumindest C auch maximale Clique in G[1, . . . , i]. Die größte
i enthaltende Clique, die in G[1, . . . , i] aus C entsteht, ist K = (C ∩
N (i)) ∪ {i}. Allerdings ist K nicht notwendig eine maximale Clique,
und K könnte auf die gleiche Weise auch aus anderen maximalen Cliquen C ′ von G[1, . . . , i − 1] entstehen. Im Algorithmus wird K daher
nur dann als Nachfolger von C angesehen, wenn C die lexikographisch
erste maximale Clique von G[1, . . . , i − 1] ist, die durch Schnitt mit der
Nachbarschaft von i zu einer maximalen Clique in G[1, . . . , i] führt.
Methoden der Netzwerkanalyse (SS 2005)
Algorithmus 19: Aufzählung aller maximalen Cliquen
(Tsukiyama, Ide, Ariyoshi und Shirakawa, 1977)
Eingabe : ungerichteter Graph G = (V = {1, . . . , n}, E)
Ausgabe: alle in G enthaltenen maximalen Cliquen
maximal(vertex set K, vertex i) begin
// -- Ist K maximale Clique in G[1...i] ?
for j = 1, . . . , i do
if j 6∈ K and K ⊆ N (j) then return false
return true
end
parent(vertex set K, vertex i) begin
// -- lexikographisch erste maximale Clique
// -- in G[1...i-1], die K-i enthält
P ← K \ {i}
for j = 1, . . . , i − 1 do
if P ⊆ N (j) then P ← P ∪ {j}
return P
end
insert(vertex i) begin
if i = n + 1 then
gib maximale Clique C aus
else
if C ⊆ N (i) then
// -- einziger Nachfolger
C ← C ∪ {i}; insert(i + 1); C ← C \ {i}
else
// -- linker Nachfolger
insert(i + 1)
// -- rechter Nachfolger
K ← (C ∩ N (i)) ∪ {i}
if maximal (K, i) and C = parent(K, i) then
C ← K; insert(i + 1); C ← parent(C, i)
end
begin
C←∅
insert(1)
end
98
Methoden der Netzwerkanalyse (SS 2005)
99
Für die Laufzeit beachte, dass der Test auf Maximalität in maximal , die Bestimmung des Elternknotens in parent und die Tests und Schnitte mit der
Nachbarschaft von i in O(n+m) Zeit möglich sind. Da die Menge C an einem
inneren Knoten des impliziten Baumes nie leer ist und jeder innere Knoten
mindestens einen Nachfolger hat, ist die Länge der durchlaufenen Wege von
der Wurzel zum ersten Blatt, zwischen zwei Blättern und nach dem letzten
Blatt jeweils durch 2n − 1 beschränkt. Da auf den Zusammenhangskomponenten von G getrennt gerechnet werden kann, ergibt sich insgesamt eine
Verzögerung von O(nm) für den Aufzählungsalgorithmus.
Der Speicherplatzbedarf ist linear, weil nicht einmal die Menge C zwischengespeichert, sondern nach Beendigung eines rekursiven Aufrufs wiederhergestellt wird.
3.6 Bemerkung
Algorithmus 19 gibt die Cliquen in einer unkontrollierten Reihenfolge aus.
Es gibt einen anderen Aufzählungsalgorithmus, der die Cliquen bei ebenfalls
O(n3 ) Verzögerung in lexikographischer Reihenfolge aufzählt. Dieser braucht
im schlechtesten Fall allerdings exponentiell viel Speicherplatz.
Kerne
Es sind zahlreiche Abschwächung der Forderung nach vollständiger Verbundenheit definiert worden. Eine wegen ihrer algorithmisch leichten Bestimmung interessante verlangt lediglich eine feste Mindestzahl von Nachbarn.
3.7 Def inition (Kern)
Der k-Kern eines schlichten ungerichteten Graphen G = (V, E) ist der inklusionsmaximale Teilgraph Core k (G) ⊆ G mit δ(Core k (G)) ≥ k, d.h. in
dem jeder Knoten mindestens Grad k hat. Der Kern, Core(G), von G ist der
nichtleere k-Kern mit maximalem k.
3.8 Lemma
Für alle k, l ∈ N0 ist Core k (G) eindeutig und
k ≥ l =⇒ Core k (G) ⊆ Core l (G) .
Beweis: Gäbe es mehr als einen k-Kern, so wäre deren Vereinigung
wieder ein k-Kern, da kein Knotengrad kleiner wird. Aus der Inklusionsmaximialität folgt damit die Eindeutigkeit.
Methoden der Netzwerkanalyse (SS 2005)
100
Für k ≥ l erfüllen alle Knoten des k-Kerns die Gradbedingung an den l-Kern
und sind damit höchstens weniger.
3.9 Def inition (Kernzahl)
Die Kernzahl core(v) eines Knotens v ∈ V ist das größte k, für das der
Knoten im k-Kern enthalten ist.
3.10 Lemma
core(v) ≤ |{w ∈ N (v) : core(w) ≥ core(v)}|
Beweis: Kein Knoten w ∈ N (v) mit core(w) < core(v) liegt im core(v)Kern. Es muss daher mindestens core(v) viele Nachbarn von v mit Kernzahl
nicht kleiner als core(v) geben.
Ein Graph G ist identisch mit seinem δ(G)-Kern, und die Kernzahl eines
Knotens mit minimalem Grad ist eben dieser Grad. Um den (δ(G) + 1)-Kern
zu bestimmen, können daher zunächst alle Knoten mit minimalem Grad
entfernt werden. Ein Knoten, der dann auch nur noch Grad höchstens δ(G)
hat, kann ebenfalls nicht im (δ(G) + 1)-Kern liegen und entfernt werden.
Dieser Prozess kann fortgesetzt werden, bis alle Knoten enfernt sind oder
mindestens Grad δ(G) + 1 haben. Analog werden die Knoten mit höherer
Kernzahl bestimmt.
Methoden der Netzwerkanalyse (SS 2005)
Algorithmus 20: Kernzahlen (Batagelj und Zaveršnik 1999)
Eingabe : schlichter ungerichteter Graph G = (V, E)
Daten : Array vert (Knoten geordnet nach Grad)
Knotenarray pos (Position in Array)
Array bucket (∆(G) + 1 Behälter, initialisiert mit 0)
Ausgabe: Knotenarray c (Kernzahlen)
foreach v ∈ V do
c[v] ← dG (v)
inkrementiere bucket[dG (v)]
first ← 0
for d = 0, . . . , ∆(G) do
size ← bucket[d]
bucket[d] ← first
first ← first + size
foreach v ∈ V do
pos[v] ← bucket[dG (v)]
vert[pos[v]] ← v
inkrementiere bucket[dG (v)]
for d = ∆(G), . . . , 1 do bucket[d] ← bucket[d − 1]
bucket[0] ← 0
for i = 0, . . . , n − 1 do
v ← vert[i]
foreach w ∈ NG (v) do
if c[w] > c[v] then
u ← vert[bucket[c[w]]]
if u 6= w then
pos[u] ← pos[w]
pos[w] ← bucket[c[w]]
vert[pos[u]] ← u
vert[pos[w]] ← w
inkrementiere bucket[c[w]]
dekrementiere c[w]
101
Methoden der Netzwerkanalyse (SS 2005)
102
3.11 Beispiel
15
14
13
20
4
1
6
5
16
19
17
18
2
7
8
3
9
11
10
0
12
c:
0
0
1
3
2
3
3
5
4
4
5
3
6
5
7
3
8
6
9
3
10
2
11
4
12
1
13
4
14
1
15
1
16
3
17
2
18
2
19
2
20
1
bucket: (nach 1. Schleife)
0 1 2 3 4 5 6
1 4 4 6 3 2 1
bucket: (nach 2. und wieder nach 4. Schleife)
0 1 2 3 4
5
6
0 1 5 9 15 18 20
0
1
1
5
bucket: (nach 3. Schleife)
2 3
4
5
6
9 15 18 20 21
vert: (nach 4. Schleife, Doppelstriche markieren Behältergrenzen)
0
1
2
3
4
5
6
7
8
9 10 11 12 13
0 12 14 15 20 10 17 18 19 1 2
5
7
9
14
16
15
4
16
11
17
13
Im zweiten Teil werden nun alle Knoten in der Reihenfolge ihrer Kernzahlen
abgearbeitet. In den Tabellen sind vert(i) und c(vert(i)) jeweils nach dem
i-ten Durchlauf aufgeführt. Die Behältergrenzen (bucket) sind durch horizontale Trennlininen gekennzeichnet.
18
3
19
6
20
8
Methoden der Netzwerkanalyse (SS 2005)
i
→0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vert
0
12
14
15
20
10
17
18
19
1
2
5
7
9
16
4
11
13
3
6
8
c
0
1
1
1
1
2
2
2
2
3
3
3
3
3
3
4
4
4
5
5
6
i
0
→1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vert
0
12
14
15
20
10
17
18
19
1
2
5
7
9
16
11
13
4
3
6
8
c
0
1
1
1
1
2
2
2
2
3
3
3
3
3
3
3
4
4
5
5
6
i
0
1
2
3
→4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vert
0
12
14
15
20
10
17
18
19
13
16
5
7
9
2
11
1
4
3
6
8
c
0
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
4
5
5
6
i
0
1
2
3
4
→5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vert
0
12
14
15
20
10
17
18
19
13
16
11
7
9
2
5
1
4
3
6
8
c
0
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
4
5
5
5
i
0
1
→2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
103
vert
0
12
14
15
20
10
17
18
19
1
2
5
7
9
16
11
13
4
3
6
8
···
c
0
1
1
1
1
2
2
2
2
3
3
3
3
3
3
3
3
4
5
5
6
i
0
1
2
→3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vert
0
12
14
15
20
10
17
18
19
13
2
5
7
9
16
11
1
4
3
6
8
c
0
1
1
1
1
2
2
2
2
2
3
3
3
3
3
3
3
4
5
5
6
i
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
→ 20
vert
0
12
14
15
20
10
17
18
19
13
16
11
5
9
2
7
1
4
6
8
3
c
0
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
Methoden der Netzwerkanalyse (SS 2005)
104
15
14
13
20
4
1
6
5
16
19
17
18
2
7
8
3
11
9
10
0
12
3.12 Bemerkung
k-Kerne sind nicht notwendig zusammenhängend.
3.13 Satz
Der Algorithmus bestimmt die Kernzahlen in Zeit O(n + m).
Beweis: Im ersten Teil werden die Knoten mittels Bucket-Sort entsprechend ihrer Knotengrade sortiert. Das geschieht wie folgt:
1. Nach Durchlauf der ersten Schleife enthält das Ausgabearray c als obere
Schranke für die Kernzahl den Knotengrad, und das Array bucket(0, . . . ,
∆(G)) für jeden möglichen Knotengrad die Anzahl der Knoten dieses
Grades.
2. Das Array vert(0, . . . , n − 1) soll später die sortierte Knotenfolge enthalten. In der zweiten Schleife werden dazu die jeweils ersten Positionen
von Knoten eines jeden Grades durch Präfixsummenbildung bestimmt.
Methoden der Netzwerkanalyse (SS 2005)
105
3. In der dritten Schleife wird jeder Knoten an den Beginn des noch freien
Abschnitts vor der ersten Position von Knoten höheren Grades gesetzt.
Die Knoten sind damit sortiert, aber die ersten Positionen sind nun die
des jeweils nächsten Behälters.
4. Diese Verschiebung wird in der vierten Schleife rückgängig gemacht.
Für alle v ∈ V gilt dann also c(v) = dG (v), v = vert(pos(v)) und mit der
Vereinbarung bucket(∆(G) + 1) = n auch
bucket(dG (v)) ≤ pos(v) < bucket(dG (v) + 1) .
Sei v0 , . . . , vn−1 die Reihenfolge, in der die Knoten im zweiten Teil betrachtet werden (da nur hinter dem Laufindex umsortiert wird, wird kein Knoten
zweimal betrachtet). Ferner seien nach Ausführung des i-ten Schleifendurchlaufs bi+1 = bucket(c(vi ) + 1), wobei wir wieder bucket(∆(G) + 1) = n setzen,
und Hi der von den Knoten mit pos(v) > i induzierte Graph. Dann gelten
die folgenden Invarianten.
1. Für alle v ∈ V gilt v = vert(pos(v)) und bucket(c(v)) ≤ pos(v) <
bucket(c(v) + 1).
2. Für alle w ∈ V mit pos(w) ≥ bi+1 gilt c(w) = dHi (w).
3. Für alle v ∈ V mit pos(v) < bi+1 gilt c(v) = core(v).
Für die erste Invariante ergeben sich nur dann Änderungen, wenn zwei Knoten u und w vertauscht werden. Während der erste Teil der Aussage explizit
wiederhergestellt wird, bleibt der zweite erhalten, weil w mit der reduzierten
Abschätzung der Kernzahl durch den Tausch mit dem ersten Element des
Behälters und Verschiebung von dessen Anfang um eins nach hinten in den
vorhergehenden Behälter wechselt.
Die zweite Invariante gilt, weil alle Knoten w ab bi+1 nach der ersten Invariante c(w) > c(vi ) haben und daher bei Entfernen von vi ihr Grad richtig
angepasst wird. Die dritte Invariante folgt aus den ersten beiden und am
Ende der Schleife folgt aus ihr die Korrektheit des Algorithmus’.
Die ersten vier Schleifen werden höchstens n mal durchlaufen und jeder
Durchlauf benötigt konstant viel Zeit. In der letzten Schleife werden für jeden
Knoten alle inzidenten Kanten betrachtet. Da alle anderen Operationen konstant viel Zeit benötigen, folgt mit dem Handschlaglemma, dass die Laufzeit
in O(n + m) ist.
Methoden der Netzwerkanalyse (SS 2005)
3.2
106
Rollen
Anstelle von Zusammengehörigkeit werden wir nun Ähnlichkeit als Partitionskriterium verwenden.
3.14 Def inition (Strukturelle Äquivalenz)
Eine Äquivalenzrelation ∼ ⊂ V ×V auf der Knotenmenge eines Multigraphen
G = (V, E) heißt strukturelle Äquivalenz, falls für alle v ∼ w gilt
(x, v) ∈k E
und (v, x) ∈k E
=⇒
=⇒
(x, w) ∈k E
(w, x) ∈k E .
Im Allgemeinen ist diese Definition viel zu streng, um nützlich zu sein. Von
den zahlreichen Abschwächungen des strukturellen Äquivalenzbegriffs betrachten wir hier nur den am weitesten verbreiteten.
3.15 Def inition (Reguläre Äquivalenz)
Eine Äquivalenzrelation ≈ ⊂ V ×V auf der Knotenmenge eines Multigraphen
G = (V, E) heißt (reguläre) Äquivalenz, falls für alle v ≈ w gilt
x ∈ N − (v)
und x ∈ N + (v)
=⇒
=⇒
es ex. ein y ∈ N − (w) mit x ≈ y
es ex. ein y ∈ N + (w) mit x ≈ y .
Eine reguläre Äquivalenz definiert eine Partition der Knotenmenge in Teilmengen aus äquivalenten Knoten. Diese Teilmengen können wir als Rollen
auffassen. Wir zeigen zunächst, dass die Menge der möglichen Rollenzuweisungen eine wohlgeordnete Struktur hat.
Erinnerung: Eine binäre Relation ⊆ P × P heißt partielle Ordnung, falls
sie reflexiv, antisymmetrisch und transitiv ist. Das Paar (P, ) ist dann eine
partiell geordnete Menge. Zu X ⊆ P ist y ∈ P eine obere (untere) Schranke,
falls x y (y x) für alle x ∈ X. Eine obere (untere) Schranke y ∈ P von
X ⊆ P heißt Supremum (Infimum), falls für alle oberen (unteren) Schranken
z ∈ P von X gilt y z (z y). Falls ein Supremum oder Infimum existiert,
so ist es eindeutig. Eine partiell geordnete Menge (P, ) ist ein Verband, falls
Infimum und Supremum für alle X ⊆ P existieren.
Für den Nachweis, dass eine partiell geordnete Menge ein Verband ist, reicht
es aus, für alle Teilmengen die Existenz des Supremums zu zeigen.
Methoden der Netzwerkanalyse (SS 2005)
107
3.16 Lemma
Eine partiell geordnete Menge (P, ) ist ein Verband, falls für jedes X ⊆ P
das Supremum existiert.
Beweis: Zu einer beliebigen Teilmenge X ⊆ P erhält man das Infimum
als Supremum von {y ∈ P : für alle x ∈ X gilt y x}.
3.17 Satz
Die regulären Äquivalenzen eines Multigraphen bilden einen Verband.
Beweis: Sei R die Menge der regulären Äquivalenzen eines Multigraphen G = (V, E). Wir definieren auf R eine partielle Ordnung durch
≈1 ≈2 ⇐⇒ ≈1 ⊆ ≈2 . Damit bedeutet ≈1 ≈2 , dass ≈1 feiner als ≈2 und
≈2 gröber als ≈1 ist. Wir zeigen, dass (R, ) ein Verband ist.
Wegen des vorstehenden Lemmas und weil mit der Knotenmenge auch die
Menge der regulären Äquivalenzen endlich ist, reicht es zu zeigen, dass für
je zwei reguläre Äquivalenzen ≈1 , ≈2 ∈ R das Supremum existiert. Sei ≈ die
transitive Hülle der Vereinigung von ≈1 und ≈2 . Da es sicher keine kleinere
Menge gibt, die als Supremum in Frage kommt, bleibt zu zeigen, dass ≈
regulär ist.
Seien dazu u ≈ w und x ∈ N − (u) für beliebige u, v, x ∈ V . Wir müssen ein
z ∈ N − (w) mit x ≈ z finden. Nach Konstruktion von ≈ (Vereinigung und
transitive Hülle) existiert eine Folge von Knoten u = v1 , . . . , vk = w ∈ V
so, dass für alle i = 1, . . . , k − 1 gilt vi ≈j vi+1 für jeweils mindestens ein
j ∈ {1, 2}. Weil ≈1 und ≈2 regulär sind, gibt es dann aber auch eine Folge
x = z1 , . . . , zk mit zi ∈ N − (vi ) und zi ≈j zi+1 für alle i = 1, . . . , k und
jeweils mindestens ein j ∈ {1, 2}. Das gesuchte z ist zk . Analog findet man
zu x ∈ N + (u) ein z ∈ N + (w) mit x ≈ z.
Da (R, ) ein Verband ist, existiert zu jeder Partition der Knoten eine gröbste reguläre Äquivalenz, die diese verfeinert.
3.18 Def inition
Das reguläre Innere einer Partition ist das Supremum aller regulären Äquivalenzen, welche die Partition verfeinern.
Ein naheliegender Ansatz zur Berechnung des regulären Inneren besteht darin, in der gegebenen Partition alle Paare von Knoten derselben Teilmenge daraufhin zu testen, ob sie regulär äquivalent sind, und gegebenfalls die
Methoden der Netzwerkanalyse (SS 2005)
108
Menge zu teilen. Das Verfahren wird auch CATREGE genannt und häufig
in Programmen für die Analyse von sozialen Netzwerken verwendet.
Algorithmus 21: Reguläres Inneres (Borgatti und Everett 1993)
Eingabe : Multigraph G = (V = {1, . . . , n}, E)
Partition P : V → {1, . . . , n} von V
Ausgabe: reguläres Inneres von P
repeat
for v ∈ V do Q[v] ← v
stable ← true
for v = 2, . . . , n do
for u = 1 . . . , v − 1 do
if P [u] = P [v] then
if {P [x] : x ∈ N − (u)} = {P [x] : x ∈ N − (v)}
and {P [x] : x ∈ N + (u)} = {P [x] : x ∈ N + (v)} then
Q[v] ← Q[u]
else
stable ← false
P ←Q
until stable
3.19 Satz
Algorithmus 21 berechnet das reguläre Innere der Eingabepartition in O(n3 )
Zeit und O(n + m) Platz.
Beweis: Im Algorithmus werden alle Paare von Knoten daraufhin überprüft, ob sie bisher als äquivalent eingestuft waren und bezüglich der aktuellen Partition die Bedingung für reguläre Äquivalenz erfüllen.
Falls ja, werden die Partitionsmengen in P jeweils durch den Knoten mit
dem kleinsten Index repräsentiert. Andernfalls gelten die beiden Knoten in
der nächsten Runde nicht mehr als äquivalent. Da die Partition auf diese
Weise immer nur verfeinert wird, geraten Knoten nur dann in verschiedene Äquivalenzklassen, wenn sie in keiner Verfeinerung der Eingabepartition
regulär äquivalent sind.
Für die Laufzeit beachte, dass die Anzahl der Äquivalenzklassen höchstens
n−1 mal größer werden kann. In jedem Durchlauf der äußeren Schleife werden
Methoden der Netzwerkanalyse (SS 2005)
109
alle n2 Knotenpaare betrachtet. Der Vergleich der Nachbarschaften erfordert
den Durchlauf durch alle Adjazenzlisten und kann in amortisiert O(m) realisiert werden, sodass wir insgesamt eine Laufzeit von O(n3 ) erhalten.
3.20 Bemerkung
Mit einem effizienteren Verfahren von Tarjan und Paige (1987), das vor allem im Bereich Programmanalyse bekannt ist, kann das reguläre Innere in
Laufzeit O(m log n) berechnet werden.
Kapitel 4
Modelle und Statistiken
In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.)
empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere interessieren dabei die inhärenten Bildungsgesetze, welche
die beobachteten Ausprägungen dieser Parameter hervorrufen.
Wir behandeln in diesem Abschnitt einige Modelle und Algorithmen zur
Beschreibung und effizienten Erzeugung von Multigraphen, und untersuchen
Zusammenhänge zwischen Modellen und Parametern.
4.1 Def inition (Graphenmodelle)
Ein (Graphen-)Modell (K, P ) besteht aus einer Klasse K von Graphen zusammen mit einem Wahrscheinlichkeitsmaß P auf dieser Klasse.
Im folgenden sei X eine Zufallsvariable für Graphen in K. Ist G = (V, E) ∈ K
ein fester Graph, so wird seine Wahrscheinlichkeit mit P (X = G) oder kurz
P (G) bezeichnet. Entsprechend bezeichnen wir die Wahrscheinlichkeit, dass
ein zufälliger Graph des Modells eine bestimmte Eigenschaft aufweist, z.B.
mit P (∆(G) = 7) oder P (e ∈ E). Der Erwartungswert einer Eigenschaft
wird mit hm(G)i, hdG (v)i usw. bezeichnet.
Wir betrachten zunächst ein Modell für schlichte ungerichtete Graphen. Sei
dazu G(n) die Klasse der ungerichteten Graphen mit Knotenmenge Vn =
{0, . . . , n − 1}.
110
Methoden der Netzwerkanalyse (SS 2005)
111
4.2 Def inition (Zufallsgraphen; Gilbert 1959)
Für jedes n ∈ N0 und 0 ≤ p ≤ 1 heißt das Modell G(n, p) = (G(n), P ) mit P
induziert durch
P ({v, w} ∈ E) = p unabhängig für alle v 6= w ∈ Vn
Zufallsgraph (mit n Knoten und Kantenwahrscheinlichkeit p). Wir vereinbaren q = 1 − p.
4.3 Lemma
n(n−1)
P (G) = pm q 2 −m
Beweis:
Da alle Kantenwahrscheinlichkeiten unabhängig sind, gilt
Y
Y
Y
P (X = G) =
P ({v, w} ∈ E) =
p·
q.
v6=w∈V
{v,w}∈E
{v,w}6∈E
Erzeugen eines Graphen in einem Modell (K, P ) bedeutet, algorithmisch
einen Graphen so zu konstruieren, dass man ein bestimmtes G ∈ K mit
Wahrscheinlichkeit P (G) erhält, d.h. wenn man bei k Aufrufen mit gleicher
Eingabe k(G) mal den Graphen G erhalten hat, dann gilt
k(G)
−→ P (G) .
k k→∞
Wir gehen davon aus, dass uns ein Zufallszahlengenerator R[0, 1] zur Verfügung
steht, der unabhängig und gleichverteilt Zahlen im Intervall [0, 1] erzeugt.
Der naheliegende Algorithmus zur Erzeugung von Zufallsgraphen führt für jedes Knotenpaar ein Zufallsexperiment aus und verbindet die beiden Knoten
genau dann, wenn R[0, 1] ≤ p. Die Laufzeit dieses Konstruktionsalgorithmus’ ist allerdings in Θ(n2 ), unabhängig von p. Ist p klein, so ist der Graph
höchstwahrscheinlich dünn und die Laufzeit wesentlich länger als der Graph
groß.
Um zu einem effizienteren Algorithmus zu gelangen, betrachte die Knotenpaare (v, w) ∈ V × V mit v < w. Wenn wir diese in irgendeiner Reihenfolge
aufzählen, wie lange dauert es dann im naheliegende Algorithmus, bis wieder
eine Kante eingefügt wird? Zu einem beliebigen Zeitpunkt kommt die nächste
Kante mit Wahrscheinlichkeit
qk p
nach genau k Fehlversuchen.
Methoden der Netzwerkanalyse (SS 2005)
112
Um mit dem Zufallsgenerator eine Fehlversuchszahl k mit Wahrscheinlichkeit
q k p zu erzeugen, ordnen wir jedem k ein Teilintervall von [0, 1] der Länge q k p
zu. Man beachte, dass
∞
X
k
q p
=
k=0
p·
∞
X
qk
=
p·
k=0
1
1−q
=
1
ist. Sind die Intervalle der Größe nach geordnet, so endet das Intervall von k
bei
k
k
X
X
1 − q k+1
= 1 − q k+1 .
qip = p ·
qi = p ·
1
−
q
i=0
i=0
Zu einer Zufallszahl R ← R[0, 1] brauchen wir also nur das kleinste k zu
bestimmen, dessen zugehöriges Intervall hinter R endet:
R
0
p
qp
q2p
...
1
R < 1 − q k+1
q k+1 < 1 − R
e(k+1) log q < elog(1−R)
log(1 − R)
k >
−1
log q
j
k
log(1−R)
Wir lassen daher
potentielle Kanten aus. Wegen der Gleichverteilog q
lung des Zufallszahlengenerators kann log R anstelle von log(1−R) verwendet
werden.
Methoden der Netzwerkanalyse (SS 2005)
113
Algorithmus 22: Erzeugen von Zufallsgraphen
Eingabe : Knotenzahl n ∈ N0 , Kantenwahrscheinlichkeit 0 < p < 1
Ausgabe: Graph G = ({0, . . . , n − 1}, E)
E←∅
1
r ← log(1−p)
v ← 1; w ← −1
while v < n do
w ← w + 1 + ⌊r · log R[0, 1]⌋
while w ≥ v and v < n do w ← w − v; v ← v + 1
if v < n then E ← E ∪ {{v, w}}
4.4 Satz
Der Algorithmus erzeugt einen Zufallsgraphen G = (V, E) in Zeit O(n + m)
und benötigt dafür genau m + 1 Zufallszahlen.
Beweis: Für die Korrektheit brauchen wir nur noch zu zeigen, dass
alle möglichen Paare (v, w) ∈ V × V mit v < w berücksichtigt werden. Eine
lexikographische Aufzählung der Paare entspricht aber einem zeilenweisen
Durchlauf durch die untere Dreiecksmatrix der Adjazenzmatrix. Die folgende
Skizze zeigt, warum die Indexberechnungen korrekt sind.
Bild
ersetzen
(transponieren)
n−(v+1)
z
1
}|
{
v
w
n
1
v
n
Zur Laufzeit beachte, dass in jedem (bis auf den letzten) Durchlauf der äußeren Schleife eine Kante erzeugt und in jedem Durchlauf der inneren Schleife
die Nachbarschaft eines Knotens abgeschlossen wird.
Methoden der Netzwerkanalyse (SS 2005)
114
Welche Eigenschaften haben die erzeugten Graphen? Die erwartete Anzahl
von Kanten ist
X
n(n − 1)
hmi =
(P ({v, w} ∈ E) · 1 + P ({v, w} 6∈ E) · 0) = p ·
,
2
v6=w∈V
sodass für festes 0 < p < 1 gilt hmi ∈ Θ(n2 ).
Da wir vor allem an der Modellierung dünner Graphen interessiert sind, sollte
p also geeignet in Abhängigkeit von n gewählt werden.
Wählt man die Kantenwahrscheinlichkeit p abhängig von der Knotenzahl n,
dann treten Phasenübergänge auf, unterhalb derer bestimmte Eigenschaften
fast immer gegeben sind, aber oberhalb nicht (oder umgekehrt).
4.5 Def inition (Eigenschaften fast aller/keines Graphen)
Eine Eigenschaft A ⊆ K haben fast alle Graphen eines Modells (K, P ), wenn
lim P (G ∈ A) = 1
n→∞
bzw. hat sie fast kein Graph des Modells, wenn
lim P (G ∈ A) = 0 .
n→∞
4.6 Def inition (Schwellenfunktion)
Eine Funktion t(n) heißt Schwelle(nfunktion) einer Eigenschaft A von Zufallsgraphen, wenn für alle Wahlen von p = p(n)

0 falls p(n) −→ 0
t(n) n→∞
lim P (G ∈ A) =
p(n)
n→∞
1 falls t(n) −→ ∞
n→∞
4.7 Bemerkung
Mit t(n) ist auch jede andere Funktion in Θ(t(n)) Schwellenfunktion.
Aus hmi = p · n(n−1)
können wir bereits folgern, dass unterhalb der Schwelle
2
1
, d.h. für p(n) ∈ o( n12 ), fast kein Zufallsgraph eine Kante enthält. Analog
n2
sind fast alle Zufallsgraphen oberhalb von 1 − n12 vollständig.
4.8 Bemerkung
Für zahlreiche interessante Eigenschaften gibt es solche Schwellen. So ist
1
√
Schwelle für ∆(G) > 1, n1 Schwelle für das Enthalten eines Kreises (d.h.
n n
unterhalb sind fast alle Zufallsgraphen Wälder) und logn n Schwelle dafür, dass
fast alle Graphen zusammenhängend sind.
Methoden der Netzwerkanalyse (SS 2005)
115
Exkurs: Die Probabilisitische Methode
Das ursprüngliche Anwendungsgebiet von Zufallsgraphen sind Existenzaussagen für Graphen mit bestimmten Eigenschaften.
4.9 Def inition (Ramsey-Zahlen)
Für r, s ∈ N mit r, s ≥ 2 hat ein Graph G ∈ G(n) die Eigenschaft (r, s), wenn
er einen knoteninduzierten Teilgraphen Gr ∈ G(r) enthält, der vollständig
verbunden ist (eine Clique Kr der Größe r), oder einen knoteninduzierten
Teilgraph Gs ∈ G(s), der nur aus isolierten Knoten besteht (eine unabhängige
Menge der Größe s). Das kleinste n ∈ N, für das jeder Graph in G(n) die
Eigenschaft (r, s) hat, ist die Ramsey-Zahl R(r, s).
4.10 Bemerkung
Falls jeder Graph in G(n) die Eigenschaft (r, s) hat, dann auch jeder Graph
in G(n′ ) mit n′ > n. Ein Graph hat die Eigenschaft (r, s) genau dann, wenn
sein Komplementgraph die Eigenschaft (s, r) hat.
Es gilt R(r, 2) = r, denn entweder ist G ∈ G(r) eine Clique, oder es gibt
zwei nicht-adjazente (unabhängige) Knoten (für n < r haben die Cliquen Kn
nicht die Eigenschaft (r, 2)). Aus Symmetriegründen folgt R(2, s) = s. Wir
leiten zunächst eine obere Schranke für die Ramsey-Zahlen her.
4.11 Lemma
Für r, s > 2 ist R(r, s) ≤ R(r − 1, s) + R(r, s − 1).
Beweis: Seien nr = R(r − 1, s) und ns = R(r, s − 1) und G = (V, E) ∈
G(n) für n = nr + ns . Wir zeigen, dass G die Eigenschaft (r, s) hat. Für
einen beliebigen Knoten v ∈ V sei N ∗ (v) = V \ (N (v) ∪ {v}) die Menge der
von v unabhängigen Knoten. Wegen |N (v)| + |N ∗ (v)| = n − 1 ist entweder
|N (v)| ≥ nr oder |N ∗ (v)| ≥ ns . Ist |N (v)| ≥ nr , dann gibt es in N (v) eine
Clique der Größe r − 1, die zusammen mit v eine Clique der Größe r ergibt,
oder eine unabhängige Menge Ns der Größe s. Der Fall |N ∗ (v)| ≥ ns ist
analog, sodass G in jedem Fall die Eigenschaft (r, s) hat.
4.12 Folgerung
r+s−2
R(r, s) ≤
r−1
Beweis:
Durch Induktion
über r, s ≥ 2. Zunächst sind R(r, 2) = r =
s
r
und R(2, s) = s = 1 . Mit dem Lemma und der Induktionsvoraussetr−1
Methoden der Netzwerkanalyse (SS 2005)
116
zung folgt
R(r, s) ≤ R(r − 1, s) + R(r, s − 1)
r+s−2
r+s−3
r+s−3
=
+
≤
r−1
r−1
r−2
aus der Rekursionsformel für Binomialzahlen.
≤ 22r−3 für alle
+ 2r−3
= 2r−3
Insbesondere ist also R(r, r) ≤ 2r−2
r−2
r−1
r−1
r ≥ 2. Eine (interessantere) untere Schranke wird mit der Probabilisitischen
Methode bewiesen.
4.13 Satz
r
R(r, r) ≥ 2 2
Beweis: Wir haben bereits R(2, 2) = 2 und (s. oben) R(3, 3) ≤ 6. Der
ungerichtete Kreis C5 hat nicht die Eigenschaft (3, 3), sodass R(3, 3) = 6.
r
Für r ≥ 4 sei n < 2 2 . Wir zeigen, dass es in G(n) einen Graphen geben
muss, der nicht die Eigenschaft (r, r) hat. Im Modell G(n, 21 ) hat jeder Graph
G ∈ G(n) Wahrscheinlichkeit
P (G) =
1
.
n
2( 2 )
Insbesondere induziert eine beliebige Teilmenge A ⊆ Vn mit |A| = r eine
r
r
Clique mit Wahrscheinlichkeit 2−(2) . Wegen n < 2 2 ist daher die Wahrscheinlichkeit, irgend eine Clique der Größe r zu finden,
X
r
n!
n −(r2)
−(r2)
=
2
=
2
· 2−(2)
r
r!(n − r)!
A⊆Vn : |A|=r
r
nr
n(n − 1) · · · (n − r + 1) −(r2)
≤ r−1 · 2−(2)
·2
r(r − 1) · · · 1
2
2
r
r
r
< 2 2 −(r−1)−(2) = 2− 2 +1
1
.
≤
2
Aus Symmetriegründen ist auch die Wahrscheinlichkeit, dass der Zufallsgraph eine unabhängige Menge der Größe r enthält, kleiner als 12 . Da beide
Wahrscheinlichkeiten zusammen echt kleiner als 1 sind, muss es also einen
Graphen mit n Knoten geben, der weder eine Clique noch eine unabhängige
Menge der Größe r enthält.
=
Methoden der Netzwerkanalyse (SS 2005)
117
Zurück zur Netzwerkanalyse: Eine der am leichtesten zu bestimmenden Kenngrößen empirischer Netzwerke ist die Verteilung der Knotengrade. In Zufallsgraphen ist hdG (v)i = p · (n − 1), doch wie sieht die Verteilung aus?
4.14 Lemma
Für Zufallsgraphen gilt
P (dG (v) = k) =
n−1
· pk q n−1−k
k
und unter der Voraussetzung (n − 1) · p(n) −→ λ > 0
n→∞
lim P (dG (v) = k) = e
n→∞
−λ
λk
·
.
k!
für alle 0 ≤ k ≤ n − 1.
möglichen Nach Beweis: Aus der Beobachtung, dass jede der n−1
k
barmengen Wahrscheinlichkeit pk q n−1−k hat, ergibt sich der erste Teil der
Behauptung.
Für den zweiten Teil betrachte
(n − 1)!
n−1
· pk (1 − p)n−1−k
· pk q n−1−k =
k!(n − 1 − k)!
k
(n − 1)!
pk
=
·
· (1 − p)n−1
(n − 1 − k)!(1 − p)k k!
(n − 1)!
=
·
(n − 1 − k)!(1 − p)k (n − 1)k
n−1
(n − 1)k pk
λ
(n − 1)p
· 1−
·
k!
(n − 1)
λ
Für n → ∞ geht der erste Faktor nach Voraussetzung gegen 1, der zweite
k
gegen λk! und der dritte gegen e−λ .
Methoden der Netzwerkanalyse (SS 2005)
118
In großen Zufallsgraphen sind die Knotengrade bei festem Erwartungswert
(und daher insbesondere sehr kleinem p) also in etwa Poisson-verteilt. In
vielen interessanten empirischen Netzwerken ist aber beobachtet worden, dass
die Knotengrade einem Potenzgesetz folgen, d.h.
P (dG (v) = k) verhält sich wie
1
kγ
für ein γ > 0 und zufällig gewähltes v ∈ V . Anschaulich bedeutet das,
dass die Anzahl der Knoten höheren Grades rapide kleiner wird. Für diese
Netzwerke scheint also ein anderes Modell nötig zu sein, in dem einige Knoten
als Nachbarn bevorzugt werden.
Idee für ein Modell mit Bevorzugung (Barabási und Albert 1999):
“. . . ausgehend von einer kleinen Anzahl (m0 ) von Knoten, fügen
wir in jedem Schritt einen neuen Knoten mit m(≤ m0 ) Kanten
ein, die den neuen Knoten mit m der bereits im System vorhandenen Knoten verbinden. Um in das Modell Bevorzugung zu integrieren, nehmen wir an, dass die Wahrscheinlichkeit Π, mit der
der neue Knoten mit einem Knoten i verbunden wird, vom Grad
ki dieses Knotens abhängt, sodass Π(ki ) = Pkikj . Nach t Schritten
j
führt das Modell zu einem zufälligen Netzwerk mit t+m0 Knoten
und mt Kanten.”
Probleme mit dieser Definition:
• Da der Graph nach t Schritten mt Kanten hat, müssen die m0 initialen
Knoten isoliert gewesen sein. Dann ist aber Π nicht wohldefiniert.
• Bei gleichzeitiger Wahl der m Nachbarn eines neuen Knotens reicht für
die Auswahl einer Nachbarschaft die Angabe der Randverteilungen für
die einzelnen Knoten nicht aus.
Beispiel: Betrachte den Fall m = 2 und füge zu C4 (dem einfachen
Kreis mit 4 Knoten) einen weiteren Knoten v hinzu. Wir legen die
Wahrscheinlichkeiten für die sechs mögliche Nachbarschaften von v
willkürlich fest. Die Wahrscheinlichkeit eines Paares, in dem die beiden Nachbarn von v selbst benachbart sind, sei p für ein beliebiges
0 ≤ p ≤ 41 . Entsprechend ist die Wahrscheinlichkeit der beiden nicht
benachbarten Paare 1−4p
. Für jeden Knoten des C4 ist die Auswahl2
1
wahrscheinlichkeit dann 4 wie gewünscht, unabhängig von p.
Methoden der Netzwerkanalyse (SS 2005)
119
Wegen dieser Schwierigkeiten verwenden wir das folgende präzisere Modell.
Da es über gerichteten Multigraphen definiert ist, sei im folgenden G(n) die
Klasse der gerichteten Multigraphen mit Knotenmenge Vn = {1, . . . , n}.
4.15 Def inition (Bevorzugung; Bollobás und Riordan 2001)
Für n ∈ N0 ist das Multigraphenmodell mit Bevorzugung, G1n = (G(n), P ),
wie folgt induktiv definiert. Für G = (V, E) ∈ G(n + 1) sei G′ = G[Vn ] der
von den Knoten {1, . . . , n} induzierte Teilgraph von G. Dann ist

′

falls d+
0
G (n + 1) 6= 1 oder m(G) − m(G ) 6= 1
G′ (v)
P (G) = P (G′ ) · d2n+1
falls (n + 1, v) ∈ E, v ≤ n


1
′
P (G ) · 2n+1 falls (n + 1, v) ∈ E, v = n + 1 .
Zu b ∈ N erhalten wir das Modell Gbn aus G1nb durch Kontraktion von jeweils
b aufeinanderfolgenden Knoten, d.h. ein Knoten 1 ≤ i ≤ n eines Graphen im
Modell Gbn entspricht den Knoten ib, . . . , ib + b − 1 eines Graphen im Modell
G1nb .
4.16 Bemerkung
Wir können einen Multigraphen im Modell G1n also als Ergebnis eines Prozesses ansehen, in dem zu jedem Zeitpunkt ein Knoten hinzukommt. Dieser
erhält genau eine ausgehende Kante, deren Zielknoten mit Wahrscheinlichkeit
proportional zu seinem Knotengrad (der Summe aus Ein- und Ausgangsgrad)
gewählt wird, wobei für den neuen Knoten nur der Ausgangsgrad (das bereits feststehende Ende der Kante) gezählt wird. Bereits hochgradige Knoten
werden also weiter bevorzugt.
Für den Erzeugungsalgorithmus gehen wir diesmal von Zufallszahlengeneratoren R{0, . . . , r} aus, die gleichverteilt und unabhängig ganze Zahlen aus
{0, . . . , r} erzeugen. Die Idee des Algorithmus besteht darin, die gewünschte
Auswahlwahrscheinlichkeit eines Knotens durch eine entsprechende Anzahl
von Kopien zu bewirken.
Methoden der Netzwerkanalyse (SS 2005)
120
Algorithmus 23: Erzeugen von Multigraphen mit Bevorzugung
Eingabe : Knotenzahl n ∈ N0 , Ausgangsgrad b ∈ N0
Daten : Array N [0 . . . 2nb − 1] von Knoten
(entspricht Liste der Kanten)
Ausgabe: Multigraph G = ({0, . . . , n − 1}, E)
E←∅
m←0
foreach v = 0, . . . , n − 1 do
foreach j = 0, . . . , b − 1 do
N [2m] ← v
w ← N [R{0, . . . , 2m}]
N [2m + 1] ← w
E ← E ∪ {{v, w}}
inkrementiere m
4.17 Satz
Der Algorithmus erzeugt einen Multigraphen mit Bevorzugung G = (V, E)
in O(n + m) Zeit und Platz und benötigt dafür genau m Zufallszahlen.
4.18 Satz (Bollobás, Riordan, Spencer und Tusnády 2001)
Für a, b ∈ N sei
δ(a, b) =
2b(b + 1)
(a + b)(a + b + 1)(a + b + 2)
dann gilt für Multigraphen mit Bevorzugung Gbn
|{v ∈ Vn : d−
G (v) = a}|
P (1 − ε) · δ(a, b) ≤
≤ (1 + ε) · δ(a, b) −→ 1
n→∞
n
1
für alle ε > 0 und 0 ≤ a ≤ n 15 .
Insbesondere verhält sich die Eingangsgradverteilung also ungefähr wie a13 .
Da der Ausgangsgrad b konstant ist, folgt der Knotengrad im zum symmetrisierten Multigraphen gehörigen ungerichteten Multigraphen ebenfalls einem
Potenzgesetz. Dies war für die oben zitierte Modellidee aus Experimenten
gefolgert worden.
4.19 Bemerkung
Mit einer ähnlichen Idee lassen sich Multigraphen mit fest vorgegebenen
Gradfolgen erzeugen (zufälliges Matching).
Methoden der Netzwerkanalyse (SS 2005)
121
Zum Abschluss betrachten wir noch ein Modell für ungerichtete Multigraphen, das durch die folgenden Standardvermutungen über Personenbekanntschaften motiviert ist:
• Jede Person hat eine beschränkte Anzahl von Bekannten
(kleiner durchschnittlicher Knotengrad ohne Ausreißer)
• Viele Bekannte kennen sich untereinander
(lokal dichte Teilgraphen)
• Man ist mit den meisten anderen Personen über eine kurze Kette von
Bekannten verbunden
(kleiner durschnittlicher Abstand, Die Welt ist ein Dorf !“)
”
Im folgenden sei G(n) die Menge der ungerichteten Multigraphen mit Knotenmenge Vn = {0, . . . , n − 1}.
Während die erste Standardvermutung mit dem mittleren Knotengrad bereits formalisiert ist, können für die anderen beiden aus aus den bereits definierten Größen Dichte und Distanz passende neue abgeleitet werden.
4.20 Def inition (Cluster-Koeffizient)
Sei G = (V, E) ein Multigraph und G[V ′ ] ⊆ G der von einer Teilmenge
V ′ ⊆ V induzierte Teilgraph. Die Dichte
C(v) = D(G[N (v) \ {v}])
der (echten) Nachbarschaft eines Knotens v ∈ V heißt Cluster-Koeffizient
C(v) von v. Die Cluster-Koeffizient C(G) von G ist der mittlere ClusterKoeffizient seiner Knoten,
C(G) =
1 X
·
C(v) .
n v∈V
4.21 Def inition (Charakteristische Weglänge)
Die charakteristische Weglänge eines Multigraphen G = (V, E) ist der mittlere Abstand seiner Knoten,
L(G) =
X
1
·
dG (s, t) .
n(n − 1) s6=t∈V
Methoden der Netzwerkanalyse (SS 2005)
122
Graphen mit zwei der drei Eigenschaften lassen sich leicht konstruieren.
4.22 Def inition (Torus)
Seien d, k ∈ N, Vk = {0, . . . , k − 1} und Vkd = Vk × · · · × Vk . Der Graph
|
{z
}
d mal
G = (Vkd , E) mit
{(v1 , . . . , vd ), (w1 , . . . , wd )} ∈ E ⇐⇒ 1 ≤
d
X
min{vi −wi , wi −vi
mod k} ≤ r
i=1
heißt (k, d, r)-Torus. Wir identifizieren ihn mit dem durch die Bijektion
(v1 , . . . , vd )
↔
d
X
vi · k i−1
i=1
bestimmten isomorphen Graphen in G(k d ).
4.23 Beispiel
(7, 1, 2)-Torus
Nachbarn eines Knotens in
(k, 2, 2)-Torus mit k ≥ 5
Methoden der Netzwerkanalyse (SS 2005)
123
Wir analysieren nur eindimensionale Tori. Für höhere Dimensionen ergeben
sich analoge Resultate.
4.24 Lemma
In einem (n, 1, r)-Torus G = (V, E) mit r ≤
n−1
2
gilt
(i) d(G) = 2r
(ii) C(G) =
(iii) L(G) ≥
3(r−1)
4(r− 12 )
n−1 4r
Beweis: Zwei Knoten v 6= w ∈ Vn sind genau dann adjazent, wenn
w ≡ i mod n für ein i ∈ {v − r, . . . , v − 1, v, . . . , v + r}. Jeder Knoten hat
damit genau 2r Nachbarn.
Die 2r Nachbarn eines Knotens v bilden 2r(2r−1)
Paare. Betrachte den Knoten
2
n mit Nachbarschaft N (n) = {n − r, . . . , n − 1, 1, . . . , r}. Die Knoten in
{n − r, . . . , n − 1} und {1, . . . , r} sind jeweils paarweise adjazent, und jeder
Knoten i ∈ {1, . . . , r} hat r − i weitere Nachbarn in {n − r, . . . , n − 1}.
Insgesamt ergibt sich daher
P
Pr−1
+ ri=1 (r − i)
2 · r(r−1)
r(r − 1) + i=1
i
2
=
C(n) =
2r(2r−1)
2
r(r − 1) + r
2
=
r(r − 1) + (r−1)r
2
r(r − 1) + r(r − 1) ·
=
3(r − 1)
4(r − 12 )
r
r−1
=
1 + 21
=
r
1 + r−1
3
2
2r−1
r−1
und aus Symmetriegründen C(G) = C(n).
Schließlich beobachten
wir leicht, dass der Knoten n jeweils 2r Knoten mit
Abstand 1, 2, . . . , n−1
(und höchstens 2r Knoten mit um 1 größerem Ab2r
stand). Die Summe der Abstände zu den n − 1 anderen Knoten ist daher
mindestens
n−1
n−1 n−1 ⌊X
2r ⌋
+1
2r
2r
i = 2r ·
2r ·
2
i=1
Dies gilt analog für alle Knoten, sodass
2
r
n−1
n−1
n−1
r
L(G) ≥
≥
.
+
n−1
2r
n−1
2r
4r
Methoden der Netzwerkanalyse (SS 2005)
124
Für festes r ≪ n hat ein (n, 1, r)-Torus also konstanten Knotengrad und
einen konstant hohen Cluster-Koeffizienten. Allerdings ist die charakteristische Weglänge linear in n. Die Idee des nun folgenden Graphenmodells ist,
durch Umleitung einiger Kanten die erwarteten Abstände zu verkürzen, um
so auch der dritten Eigenschaft zu entsprechen.
4.25 Def inition (Kleine Welt; Strogatz und Watts 1998)
Zu k, d, r ∈ N und 0 ≤ p ≤ 1 heißt das Graphenmodell S(k, d, r, p) =
(G(k d ), P ) kleine Welt der Dimension d, falls P die Wahrscheinlichkeit angibt,
dass der Graph aus einem (k, d, r)-Torus entstanden ist, indem jede Kante
unabhängig mit Wahrscheinlichkeit p genau einen neuen Endknoten erhalten
hat.
Wir beschränken uns weiterhin auf Dimension 1. Der Erzeugungsalgorithmus
durchläuft die Kanten eines (n, 1, r)-Torus, fügt sie aber nur mit Wahrscheinlichkeit 1 − p in den Graphen ein. Mit Wahrscheinlichkeit p wird eine neue
Kante von einem der beiden Endknoten zu einem zufälligen anderen eingefügt. Dabei können Mehrfachkanten entstehen.
Algorithmus 24: Erzeugen kleiner Welten der Dimension 1
Eingabe : Knotenzahl n ∈ N
Nachbarschaftsparameter r ∈ N, r ≤ n−1
2
Änderungswahrscheinlichkeit 0 < p < 1
Ausgabe: Graph G = ({0, . . . , n − 1}, E)
E←∅
foreach v = 0, . . . , n − 1 do
foreach w = v + 1, . . . , v + r do
w ← w mod n
R ← R[0, 1]
if p2 ≤ R ≤ 1 − p2 then
E ← E ∪ {{v, w}}
else
if R < p2 then
E ← E ∪ {{v, v + ⌈ 2R(n−1)
⌉ mod n}}
p
else
E ← E ∪ {{w, w + ⌈ 2(1−R)(n−1)
⌉ mod n}}
p
Methoden der Netzwerkanalyse (SS 2005)
125
4.26 Satz
Der Algorithmus erzeugt eine kleine Welt G = (V, E) in O(n + m) Zeit und
Platz und benötigt dafür genau m Zufallszahlen.
Die folgende Grafik aus dem Artikel von Strogatz und Watts (1998) zeigt
den Cluster-Koeffizienten und die charakteristische Weglänge in Abhängigkeit von der Änderungswahrscheinlichkeit (n = 1000 und r = 5).
1
Insbesondere ist für p ≈ 50
der Cluster-Koeffizient noch sehr hoch, die charakteristische Weglänge aber stark gefallen.
Diese Ergebnisse sind experimentell. Lassen sie sich analytisch bestätigen?
Wie ist das asymptotische Verhalten? Gibt es für ein p = p(n) einen optimalen Kompromiss?
Methoden der Netzwerkanalyse (SS 2005)
126
Triadenzählung
Abschließend wollen wir Cluster-Koeffizienten berechnen. Wir betrachten dabei allerdings den allgemeineren Fall aller möglichen Dreieckskonfigurationen
in schlichten gerichteten Graphen.
Je drei Knoten eines schlichten Graphen induzieren einen von 16 nichtisomorphen Teilgraphen (Triadentypen):
1: 003
2: 012
3: 102
4: 021D
5: 021U
6: 021C
7: 111D
8: 111U
9: 030T
10: 030C
11: 201
12: 120D
13: 120U
14: 120C
15: 210
16: 300
Die Menge T = V3 der Triaden eines schlichten Graphen G = (V, E) wird
entsprechend der größten Zusammenhangskomponenten in drei Klassen eingeteilt:
Methoden der Netzwerkanalyse (SS 2005)
127
• die Einertriaden T1 vom Typ 003,
• die Zweiertriaden T2 vom Typ 012 oder 102 sowie
• die Dreiertriaden T3 = T \ (T1 ∪ T2 ).
Wir bezeichnen die jeweiligen Anzahlen der Triaden mit t = |T | = n3 und
ti = |Ti | für i = 1, 2, 3. In dünnen Graphen sind die weitaus meisten Einertriaden, sodass wir darin lediglich t2 und t3 berechnen und die Anzahl der
Einertriaden aus t1 = t − t2 − t3 ermiteln.
4.27 Lemma
Sind G = (V, E) ein schlichter Graph und (u, v) ∈ E, dann gibt es in G
n − |(N (u) ∪ N (v)) \ {u, v}| − 2
Zweiertriaden, die u und v enthalten. Diese sind alle vom Typ 102, falls auch
(v, u) ∈ E, und vom Typ 012 sonst.
Beweis: Die Menge (N (u) ∪ N (v)) \ {u, v} beschreibt genau diejenigen
Knoten, die weder zu u noch zu v adjazent sind.
Im Folgenden sei G = (V, E) ein schlichter gerichteter Graph, dessen Knoten beliebig aber fest angeordnet sind (z.B. durch Nummerierung). Um alle Zweier- und Dreiertriaden nur einmal zu zählen, werden wir nur Tripel
(u, v, w) ∈ V 3 mit u < v < w betrachten. In dem durch ein solches Tripel induzierten Teilgraph gibt es nur sechs mögliche Kanten, sodass wir den
Triadentyp in einer Tabelle mit 26 = 64 Einträgen nachschlagen können.
Dazu wird jeder Triade ein eindeutiger Code zugewiesen, der den Index in
der Tabelle bestimmt. Ist A(G) = (av,w )v,w∈V die Adjazenzmatrix von G,
dann definieren wir für u < v < w ∈ V
code(u, v, w) = 2 · (2 · (2 · (2 · (2 · aw,v + av,w ) + aw,u ) + au,w ) + av,u ) + au,v .
Methoden der Netzwerkanalyse (SS 2005)
128
Z.B. erhält eine 111D-Triade dadurch den Code 35:
u
u ·
v 1
w 0
−→
v w
1 0
· 0
1 ·
↓
←−
35
w, v v, w w, u u, w v, u u, v
25
24
23
22
21 20
1
0
0
0
1
1
32
0
0
0
2
1
Die Funktion type : {1, . . . , 63} → {1, . . . , 16} liefere entsprechend der folgenden Tabelle den zu einem Code gehörigen Triadentyp.
code
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type
1
2
2
3
2
4
6
8
2
6
5
7
3
8
7
11
code
16
17
18
19
20
21
22
23
24
25
25
27
28
29
30
31
type
2
6
4
8
5
9
9
13
6
10
9
14
7
14
12
15
code
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
type
2
5
6
7
6
9
10
14
4
9
9
12
8
13
14
15
code
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
type
3
7
8
11
7
12
14
15
8
14
13
15
11
15
15
16
Methoden der Netzwerkanalyse (SS 2005)
129
Algorithmus 25: Triadenzählung (Batagelj und Mrvar 2000)
Eingabe : schlichter Graph G = ({1, . . . , n}, E)
Ausgabe: Triadenzählung t[1 . . . 16] (initialisiert mit 0)
foreach v ∈ V do
foreach u ∈ N (v) mit u < v do
S ← (N (u) ∪ N (v)) \ {u, v}
if (u, v), (v, u) ∈ E then i = 3 else i = 2
t[i] ← t[i] + n − |S| − 2
foreach w ∈ S do
if v < w or (u < w < v and u 6∈ N (w)) then
i ← type(code(u, v, w))
t[i] ← t[i] + 1
X
16
n
t[1] ←
−
t[i]
3
i=2
4.28 Satz
Algorithmus 4 zählt die Triaden eines schlichten Graphen in Zeit O(m · ∆).
Beweis:
Herunterladen