Proseminar Netzwerkanalyse: Dichte Teilgraphen Am LuFG Theoretische Informatik der RWTH Aachen, Prof. Dr. Rossmanith Daniel Neider & Lars Otten (24. Juni 2004) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Überblick • • • • • • • • Einleitung Zusammenhangskomponenten Cliquen n-Cliquen Soziometrische n-Cliquen / n-Clans k-Plexe / k-Cores Soziale Kreise k-zyklische Blöcke Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 2 Was ist Dichte? • Umgangssprachliches Verständnis von Clique: – „Viele direkt zusammenhängende Knoten“ • Intuitiver Ansatz: – Untereinander in hohem Maße verbundene Teilmenge der Knoten – Formalisiert durch Anzahl der im Teilgraph existierenden Kanten im Verhältnis zu maximal möglicher Anzahl von Kanten – Jedoch in der Praxis wegen schlechter Vergleichbarkeit unterschiedlich großer Graphen nur bedingt geeignet • Wozu Dichtebestimmung? – Soziologie: Untersuchung gruppendynamischer Prozesse – WWW-Graph: Thematisch verwandte Seite finden Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 3 Kriterien für Dichte • Als Grundlage der theoretischen Konzepte dienen vier Kriterien: 1. Gegenseitige, direkte Beziehungen 2. Nähe und Erreichbarkeit der Knoten 3. Häufigkeit der Kanten zwischen den Knoten 4. Höhere Kantendichte innerhalb des Teilgraphen im Vergleich zu seinem Umfeld • Verschiedene Modelle legen unterschiedlich starken Wert auf die einzelnen Punkte • Hier nur für ungerichtete, ungewichtete Graphen Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 4 Definitionen • Distanz zweier Knoten u, u‘ V bezüglich einer Knotenmenge U V: dU :V V Ν , wenn kein Pfad von u nach u ' in U existiert dU (u, u ' ) : min{ k N | v1 ,, vk 1 U : (vi , vi 1 ) E, 0 i k , v0 u, vk 1 u '} , sonst • Algorithmen zum Auffinden von Cliquen und Independent Sets benötigen den Begriff der Nachbarschaft bzw. Nicht-Nachbarschaft: – Die Nachbarschaft N(v) eines Knotens v V ist definiert als Graph G = (V‘,E‘) mit V‘ = { v V \ {v} | (v,v‘) E } und E‘ = {(v,v‘) E | v,v‘ V‘ } – Die Nicht-Nachbarschaft N(v) eines Knotens v V wird analog als Graph G = (V‘,E‘) mit V‘ = { v V \ {v} | (v,v‘) E } und E‘ wie oben definiert Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 5 Zusammenhangskomponenten • Eine Zusammenhangskomponente ist ein maximal zusammenhängender Teilgraph: – Zwischen je zwei beliebigen Knoten des Teilgraphs existiert ein Pfad – Jeder Knoten ist von jedem anderen aus zu erreichen. Zu Knoten außerhalb der Zusammenhangskomponente existiert keine Verbindung A B F E D C G • In gerichteten Graphen unterscheidet man starke und schwache Zusammenhangskomponenten: – starke Komponenten: Jeder Knoten ist durch einen gerichteten Pfad erreichbar – schwache Komponenten: Jeder Knoten ist durch einen Pfad egal welcher Richtung erreichbar Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 6 Finden von Zusammenhangskomponenten • Algorithmus zum Finden von Zusammenhangskomponenten: – Eingabe: Nicht leerer Graph G = (V,E) – Initialisierung: i = 0, S = V, Vj leere Knotenmengen, j = 1, 2, … 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: while S do Wähle einen beliebigen Knoten s S Vi := {s} S := S \ {s} while s‘ S: (s,s‘) E, s Vi do Vi := Vi {s‘} S := S \ {s‘} end while if S then i := i + 1 end if end while • Ausgabe: Zusammenhangskomponenten Vj für 1 j i Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 7 Komplexität / Motivation • Bei dem Algorithmus handelt es sich um eine erweiterte Form der Tiefen- bzw. Breitensuche in Graphen: – Laufzeit bei effizienter Implementierung linear sowohl in der Anzahl der Knoten als auch in der Anzahl der Kanten – Laufzeit liegt in O (|V| + |E|) • Das Interesse an einer solchen Analyse rührt z.B. von möglichen Ressourcen oder Informationsflüssen in den modellierten Netzwerken her • Das Ergebnis ist eine Zerlegung des Graphen in eine oder mehrere Zusammenhangskomponenten: – „Dichte“ Graphen werden meist durch einige wenige große Komponenten dominiert – Die Zusammenhangskomponenten bilden die Ausgangssituation für weitere Analysen Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 8 Cliquen • Eine Knotenmenge C V heißt Clique, wenn sie maximal ist mit der Eigenschaft (u,u‘) E u u‘ C • Analog dazu definiert man das später noch benötigte Independent Set als maximale Knotenmenge I V mit der Eigenschaft (u,u‘) E u u‘ I Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 9 NP-Vollständigkeit • Das Finden maximaler Cliquen in einem Graphen ist NP-vollständig – Clique NP gilt offensichtlich: Rate und verifiziere – Eine Polynomialzeitreduktion zeigt die NP-Vollständigkeit des maximalen Cliquen Problems (SAT NPC gilt nach Satz von Cook) SAT p 3-SAT p Independent Set p Clique Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 10 Greedy-Algorithmus zum Finden von Cliquen • Eine einfache Heuristik zum Finden von Cliquen C(G) bzw. Independent Sets I(G): – C((V,E)): wähle ein v V als einen Clique-Knoten; rufe rekursiv C(N(v)) auf; – I((V,E)): wähle ein v V als einen Independent Set-Knoten; rufe rekursiv I(N(v)) auf; • Ein leicht verbesserter Greedy-Algorithmus setzt diese Heuristik um (entsprechend für das Finden von Independent Sets): 1: 2: 3: 4: 5: 6: 7: procedure Greedy(G) if G = then return end if Wähle ein v V mit maximalem Grad return {v} Clique(N(v)) end procedure Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 11 Greedy-Algorithmus: Beispiel 1: 1) 2: 3: 4: 5: 6: 7: 2) procedure Greedy(G) if G = then return end if Wähle ein v V mit maximalem Grad return {v} Clique(N(v)) end procedure 3) 4) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 12 Beobachtung zum Greedy-Algorithmus • Problem des Greedy-Algorithmus: – Ein falscher Knoten wird gewählt; eine größere Clique in dem entsprechend nicht weiter betrachteten Teilgraph zu finden ist 1) • 2) In Anlehnung an die Ramsey-Theorie kann der Greedy-Algorithmus leicht zu der Ramdey-Prozedur erweitert werden – Bei jedem rekursiven Aufruf kann zwischen 2 Cliquen gewählt werden: 1. Die Clique aus der Nachbarschaft des gewählten Knotens v 2. Eine Clique mit Knoten aus der Nicht-Nachbarschaft des Knotens v – Die größere der beiden Cliquen wird zurückgegeben Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 13 Ramsey-Prozedur 1: 2: 3: 4: 5: 6: 7: 8: 9: procedure Ramsey(G) if G = then return end if Wähle einen Knoten v V (C1, I1) = Ramsey(N(v)) (C2, I2) = Ramsey(N(v)) return (larger_of(C1 {v}, C2), larger_of(I1, I2 {v})) end procedure • Die Ramsey-Prozedur liefert eine Clique C und ein Independent Set I mit |C| · |I| log2 n / 4 • Leider garantiert dies nicht das Auffinden großer Cliquen, denn es könnte auch ein großes Independent Set gefunden werden Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 14 Approximationsalgorithmus für maximale Cliquen • Eine weitere Idee ist, den Graphen während der Suche zu verändern: – Entfernen des von der Ramsey-Prozedur gefundenen Independent Set aus dem Graphen – Wiederholung der Prozedur im veränderten Graphen bis dieser leer ist – In jedem Durchgang kann höchstens ein Knoten aus einer Clique entfernt werden, denn eine Clique und ein Independent Set haben höchstens einen gemeinsamen Knoten 1: procedure Clique(G) 2: i = 1 3: (Ci, Ii) = Ramsey(G) • Dieser Algorithmus 4: while G do 5: G = G \ Ii garantiert eine Komplexität 6: i = i + 1 von O(|V| / log2 |V|) 7: (Ci, Ii) = Ramsey(G) 8: end while 9: return max1ji{Cj} 10: end procedure Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 15 Zusammenfassung Cliquen • Das Clique-Konzept ist ein stark (graphen) theoretisches Konzept • Das Finden maximaler Cliquen ist (wie gesehen) ein schweres Problem: – Es lässt sich nicht in O(|V|½ -) für ein 0 approximieren • In der Praxis spielen die hier vorgestellten Cliquen keine große Rolle: – In vielen Anwendungen werden keine Cliquen mit mehr als 3 oder 4 Knoten gefunden • Für die praktische Analyse von Netzwerken sind unter Umständen andere Konzepte vorzuziehen Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 16 n-Cliquen • Dieser Ansatz betrachtet die maximale Distanz zwischen zwei Knoten der Clique • Eine Knotenmenge Cn V heißt n-Clique, wenn sie maximal ist mit der Eigenschaft dV(u,u‘) n u u‘ Cn • Eine 1-Clique ist ein maximal vollständiger Teilgraph (eine Clique im graphentheoretischen Sinn), eine 2-Clique eine Knotenmenge, in der alle Knoten entweder direkt oder über einen Zwischenknoten miteinander verbunden sind • Eine n-Clique ist also ein engerer Verbund von Knoten als eine (n+1)-Clique: – Als Parameter kann ein Wert zwischen 1 und |V| – 1 gewählt werden – Meist wird der Parameter auf 2 oder 3 gesetzt Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 17 Beispiele n-Clique Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 18 Beobachtung n-Cliquen (1) • Bei der praktischen Analyse von Netzwerken sind bei der Verwendung von n-Cliquen zwei Punkte zu beachten: 1. Ein Wert von n > 3 ist soziologisch schwer zu interpretieren: – Ein solcher Wert kann zu langen Ketten von Verbindungen führen, welche z.B. für die „small world“-Eigenschaft wichtig sind, allerdings dem Konzept einer Clique widersprechen 2. Aufgrund der Definition müssen Verbindungen zwischen Cliquenmitgliedern nicht zwangsläufig wieder über Cliquenmitgliedern laufen: A – Die Knoten A, B, C, D, E bilden eine 2-Clique. Der Pfad zwischen den Knoten A und D läuft dabei über Knoten 1; Der Durchmesser beträgt 3 1 D B C E Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 19 Beobachtungen n-Cliquen (2) – Die vorige Problematik kann noch weiter verschärft werden 1 A B 2 3 C – Im Beispiel gibt es zwei 2-Cliquen: Einmal die Knoten A, B und C, dann die Knoten 1, 2 und 3. Allerdings sind beide 2-Cliquen intern völlig unverbunden Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 20 Soziometrische n-Cliquen / n-Clans • Um das Problem der inneren Unverbundenheit von Knoten aus n-Cliquen zu beheben, fordert man, dass der Durchmesser einer soziometrischen n-Clique nicht größer als n ist: – Das ist äquivalent zu der Forderung, dass die Pfade zwischen zwei Knoten der soziometrischen n-Clique selbst wieder über Knoten der Clique laufen • Eine Knotenmenge C‘n V heißt soziometrische n-Clique / n-Clan, wenn sie maximal ist mit der Eigenschaft dC‘n(u,u‘) n u u‘ Cn • Man findet soziometrische n-Cliquen, indem man zunächst nach n-Cliquen sucht und anschließend alle diejenigen mit einem internen Durchmesser größer n wieder verwirft Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 21 Beispiel soziometrische n-Clique • Folgendes Beispiel wurde schon bei n-Cliquen betrachtet: 1 A D B C E • Die Knoten A,B,C,D und E bilden eine 2-Clique: – Der interne Durchmesser ist 3, also ist dies keine soziometrische n-Clique • Die Knoten 1, A, B, C und D bilden eine 2-Clique mit internem Durchmesser 2, also auch eine soziometrische 2-Clique Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 22 Beobachtung soziometrische n-Clique • Probleme aller geraphentheoretisch formalen Cliquenkonzepte: – Es werden sehr viele, teilweise stark überlappende Cliquen identifiziert – Explizite Cliquendefinitionen leisten damit also keine disjunkte Aufteilung der Knoten • Dem Vorteil der expliziten Festlegung der internen Cliquenstruktur steht der Nachteil gegenüber, dass die Abgrenzung der Clique gegenüber dem des des Graphen vernachlässigt wurde • Weitere Konzepte greifen diese „Schwachpunkte“ der expliziten Definition von Cliquen auf Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 23 Wiederholung: Dichtekriterien 1. Gegenseitige, direkte Beziehungen Cliquen 2. Nähe und Erreichbarkeit der Knoten n-Cliquen, n-Clans 3. Häufigkeit der Kanten zwischen den Knoten 4. Höhere Kantendichte innerhalb des Teilgraphen im Vergleich zu seinem Umfeld Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 24 k-Plexe • Definition: – Ein Teilgraph GPk= (V‘,E‘), V‘V, E‘ E, |V|=r, ist genau dann ein k-Plex des Graphen G=(V,E), wenn V‘ maximal ist mit degE‘(v) ≥ r–k vV‘. • Anschaulich: – k gibt die maximale Anzahl Knoten an, die von einem beliebigen Knoten aus nicht direkt über eine Kante erreichbar ist. – Jeder Knoten hat mindestens Grad r–k. • Beobachtungen: – Jeder beliebige Graph mit n Knoten ist automatisch ein n-Plex. – Ein 1-Plex entspricht einer maximalen Clique bzw. 1-Clique. – Jeder Graph hat für gegebenes k genau einen k-Plex. Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 25 k-Plex: Beispiele Beobachtung: k-Plex kann aus mehreren stark zusammenhängenden Knotenmengen bestehen, die aber untereinander nur schwach oder gar nicht verbunden sind. Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 26 k-Plex: Eigenschaften • Im Vergleich zu soziometrischen n-Cliquen weist ein k-Plex eine größere Robustheit auf: – Entfernt man einen Knoten aus einem k-Plex, bleibt dieser immer noch ein k-Plex – bei einem n-Clan gilt dies meistens so nicht. Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 27 k-Cores • Entgegengesetzter Begriff zum k-Plex • Definition: – Ein Teilgraph GCk= (V‘,E‘), V‘V, E‘ E, ist genau dann ein k-Core des Graphen G=(V,E), wenn V‘ maximal ist mit degE‘ (v) ≥ k vV‘. • Anschaulich: – Jeder Knoten hat mindestens Grad k. • Beobachtungen: – Ein k-Plex mit n Knoten entspricht genau einem (n–k)-Core. – Ein k-Core mit n Knoten entspricht genau einem (n–k)-Plex. • Die beiden Begriffe sind stark verwandt – Daher im Folgenden Beschränkung auf k-Cores. Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 28 Core-Zerlegung • Seien GCk=(Vk,Ek) und GCl=(Vl,Kl) ein k- bzw. l-Core eine Graphen. – k < l Vl Vk, weil degEl(v) ≥ l > k v Vl • Die k-Cores eines Graphen sind für steigendes k also „ineinander enthalten“. • Bestimmung der Core-Zerlegung eines Graphen: – Jedem Knoten seinen Core-Grad zuordnen, das heißt das größte k, für das er im entsprechenden k-Core des Graphen enthalten ist. Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 29 Core-Zerlegung: Algorithmus • Grundidee: – Aus dem gegebenen Graphen rekursiv alle Knoten vom Grad kleiner k mitsamt der adjazenten Kanten löschen, um als verbleibenden Teilgraph gerade den k-Core zu erhalten. Input: Graph G=(V,E) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: Berechne degree[v] := deg(v) vV Ordne V aufsteigend anhand des Knotengrades for all v V (sortiert) do core[v] := degree[v] for all u Nachbarn(v) do if degree[u] > degree[v] then degree[u] := degree[u]-1 Sortiere V entsprechend neu end if end for end for Output: Liste core[v], vV, die für jeden Knoten v dessen Core-Grad enthält • Laufzeit: O(|E|) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 30 Core-Zerlegung: Beispiel A B C F D E 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: Berechne degree[v] := deg(v) vV Ordne V aufsteigend anhand des Knotengrades for all v V (sortiert) do core[v] := degree[v] for all u Nachbarn(v) do if degree[u] > degree[v] then degree[u] := degree[u]-1 Sortiere V entsprechend neu end if end for end for degree A B C D A B C D E F core Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten E F Folie 31 Implizite Konzepte: Motivation • Probleme expliziter Konzepte: – In der Praxis lassen sich nur relativ kleine dichte Teilgraphen finden. – Gefundene Gruppen überlappen sich gegenseitig. – Viertes Kriterium bei Anwendung expliziter Konzepte oft nicht gegeben. • Deshalb: – Außenabgrenzung betrachten – Anforderung an interne Struktur lockern • Ziel: – Größere, sich nicht überlappende, teilweise disjunkte Gruppen Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 32 Soziale Kreise • Soziale Kreise ergeben sich aus konstruktivem Verfahren: – Sei G=(V,E), |V |=n, |E |=m, G‘=(V‘,E‘) mit V‘V, E‘={ (v,w)E | v,wV‘ }. Weiter sei |E‘|=i, |V‘|=n‘, a=| { (v,w)E | vV‘, wV \V‘ } |. – Definiere folgende Dichtemaße: Gesamtdich te • m n(n 1) 2 Innendicht e i i n' (n'1) 2 Außendicht e a a n( n n' ) Konstruktion der sozialen Kreise des Graphen: 1. Suche (nicht-triviale) geometrischen n-Cliquen. 2. Lege die zusammen, die sich nur in einem Knoten unterscheiden. 3. Fasse sich stark überlappende Gebilde nochmals zusammen (Schwellenwert z.B. 2/3 der Knoten). • Prüfe entstehende Zusammenhangskomponenten: – Innendichte i signifikant über Gesamtdichte? – Außendichte a signifikant unter Gesamtdichte? Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 33 k-zyklische Blöcke • Motivation der k-zyklischen Blöcke: – Viele Zyklen mit geringer Länge in einem Teilgraphen sind Indikatoren für Dichte einer Gruppe von Knoten. • Definitionen: – k-Zyklus: Folge (v0,v1, …,vk-1,vk)Vk+1 mit (vi-1,vi)E, 1ik und vi=vj für {i,j }={0,k} bzw. vivj sonst. – k-Brücke: Kante, die keinem k-Zyklus angehört. • Konstruktion der k-zyklischen Blöcke: – Streiche alle k-Brücken aus dem Graphen. – Entstehende Zusammenhangskomponenten sind die k-zyklischen Blöcke. • Weitere Klassifikation einzelner Knoten möglich Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 34 Zusammenfassung • Explizite Konzepte: • Cliquen • (soziometrische) n-Cliquen • k-Plexe & k-Cores – Vor- / Nachteile: • Formal gut zu handhaben, theoretisch klar und „schön“ • In der Praxis meist nur begrenzt anwendbar • Implizite Kozepte: • Soziale Kreise • k-zyklische Blöcke – Vor- / Nachteile: • Relativ praxisnah, empirisch bestätigt (Soziologie) • Teilweise „schwammige“ Definition, formal schwer zu handhaben • Fazit: – Ideales Konzept existiert nicht Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten Folie 35