V - TCS RWTH

Werbung
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 max1ji{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 vV‘.
• 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 vV‘.
• 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)  vV
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], vV, 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)  vV
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,wV‘ }.
Weiter sei |E‘|=i, |V‘|=n‘, a=| { (v,w)E | vV‘, wV \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, 1ik und vi=vj für
{i,j }={0,k} bzw. vivj 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
Herunterladen