350 likes | 524 Views
Proseminar Netzwerkanalyse: Dichte Teilgraphen. Am LuFG Theoretische Informatik der RWTH Aachen, Prof. Dr. Rossmanith Daniel Neider & Lars Otten (24. Juni 2004). Überblick. Einleitung Zusammenhangskomponenten Cliquen n -Cliquen Soziometrische n -Cliquen / n -Clans k -Plexe / k -Cores
E N D
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
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
Kriterien für Dichte • Als Grundlage der theoretischen Konzepte dienen vier Kriterien: • Gegenseitige, direkte Beziehungen • Nähe und Erreichbarkeit der Knoten • Häufigkeit der Kanten zwischen den Knoten • 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
Definitionen • Distanz zweier Knoten u, u‘ V bezüglich einer KnotenmengeU V: • 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 GraphG=(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
A B F E D C G 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 • 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
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, … • Ausgabe: Zusammenhangskomponenten Vj für 1 j i 1: while S do 2: Wähle einen beliebigen Knoten s S 3: Vi := {s} 4: S := S \ {s} 5: while s‘ S: (s,s‘) E, s Vido 6: Vi := Vi {s‘} 7: S := S \ {s‘} 8: end while 9: if S then 10: i := i + 1 11: end if 12: end while Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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
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ötigteIndependent Set als maximale Knotenmenge I V mit der Eigenschaft (u,u‘) E u u‘ I Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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
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:procedure Greedy(G) 2: if G = then 3: return 4: end if 5: Wähle ein v V mit maximalem Grad 6: return {v}Clique(N(v)) 7: end procedure Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
Greedy-Algorithmus: Beispiel 1: procedure Greedy(G) 2: if G = then 3: return 4: end if 5: Wähle ein v V mit maximalem Grad 6: return {v} Clique(N(v)) 7: end procedure 1) 2) 3) 4) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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 • 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: • Die Clique aus der Nachbarschaft des gewählten Knotens v • Eine Clique mit Knoten aus der Nicht-Nachbarschaft des Knotens v • Die größere der beiden Cliquen wird zurückgegeben 1) 2) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
1: procedure Ramsey(G) 2: if G = then 3: return 4: end if 5: Wähle einen Knoten v V 6: (C1, I1) = Ramsey(N(v)) 7: (C2, I2) = Ramsey(N(v)) 8: return (larger_of(C1 {v}, C2), larger_of(I1, I2 {v})) 9: end procedure Ramsey-Prozedur • Die Ramsey-Prozedur liefert eine Clique C und einIndependent 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
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) 4: while G do 5: G = G \ Ii 6: i = i + 1 7: (Ci, Ii) = Ramsey(G) 8: end while 9: return max1ji{Cj} 10: end procedure • Dieser Algorithmus garantiert eine Komplexität von O(|V| / log2 |V|) Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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 keinegroß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
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 uu‘ 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 Knotenals 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
Beispiele n-Clique Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
1 A D B C E Beobachtung n-Cliquen (1) • Bei der praktischen Analyse von Netzwerken sind bei der Verwendung von n-Cliquen zwei Punkte zu beachten: • 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 • Aufgrund der Definition müssen Verbindungen zwischen Cliquenmitgliedern nicht zwangsläufig wieder über Cliquenmitgliedern laufen: • Die Knoten A, B, C, D, E bilden eine 2-Clique.Der Pfad zwischen den Knoten A und Dläuft dabei über Knoten 1;Der Durchmesser beträgt 3 Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
1 A B 2 3 C Beobachtungen n-Cliquen (2) • Die vorige Problematik kann noch weiter verschärft werden • 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
Soziometrische n-Cliquen / n-Clans • Um das Problem der inneren Unverbundenheit von Knoten ausn-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 uu‘ Cn • Man findet soziometrische n-Cliquen, indem man zunächst nachn-Cliquen sucht und anschließend alle diejenigen mit einem internen Durchmesser größer n wieder verwirft Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
1 A D B C E Beispiel soziometrische n-Clique • Folgendes Beispiel wurde schon bei n-Cliquen betrachtet: • Die Knoten A,B,C,D und E bilden eine 2-Clique: • Der interne Durchmesser ist 3, also ist dies keine soziometrischen-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
Beobachtung soziometrische n-Clique • Probleme aller geraphentheoretisch formalen Cliquenkonzepte: • Es werden sehr viele, teilweise stark überlappende Cliquenidentifiziert • 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
Wiederholung: Dichtekriterien • Gegenseitige, direkte Beziehungen • Cliquen • Nähe und Erreichbarkeit der Knoten • n-Cliquen, n-Clans • Häufigkeit der Kanten zwischen den Knoten • Höhere Kantendichte innerhalb des Teilgraphen im Vergleich zu seinem Umfeld Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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
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
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
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
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 vVl • 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
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. • Laufzeit: O(|E|) Input: Graph G=(V,E) 1: Berechne degree[v] := deg(v) vV 2:Ordne V aufsteigend anhand des Knotengrades 3:for allvV (sortiert) do 4:core[v] := degree[v] 5:for alluNachbarn(v) do 6:ifdegree[u] > degree[v] then 7:degree[u] := degree[u]-1 8: Sortiere V entsprechend neu 9:end if 10: end for 11:end for Output: Liste core[v],vV, die für jeden Knoten v dessen Core-Grad enthält Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
degree A B C D A B C D E F E core F Core-Zerlegung: Beispiel 1: Berechne degree[v] := deg(v) vV 2: Ordne V aufsteigend anhand des Knotengrades 3: for allvV (sortiert) do 4: core[v] := degree[v] 5: for alluNachbarn(v) do 6: ifdegree[u] > degree[v] then 7: degree[u] := degree[u]-1 8: Sortiere V entsprechend neu 9: end if 10: end for 11: end for A B C F D E Proseminar Netzwerkanalyse: Dichte Teilgraphen, Daniel Neider & Lars Otten
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
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: • Konstruktion der sozialen Kreise des Graphen: • Suche (nicht-triviale) geometrischen n-Cliquen. • Lege die zusammen, die sich nur in einem Knoten unterscheiden. • 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
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
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