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: