Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 Institutund für Theoretische KIT –Henning Universität desMeyerhenke, Landes Baden-Württemberg nationales Forschungszentrum in der Helmholtz-Gemeinschaft Algorithmische Methoden zur Netzwerkanalyse Informatik www.kit.edu Vorlesung 1 Programm des Tages: Gradzentralität und -verteilung Kernzahl und k -Kern-Zerlegung 2 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Grundlegende Netzwerkeigenschaften Knotenzentralität: “Wie viele Leute kenne ich?” Kernzahl: “Wie gut bin ich vernetzt?” Clusterkoeffizient: “Der Freund meines Freundes ist mein Freund” Zusammenhangskomponenten: “Wer kann wen erreichen?” Distanzen und Durchmesser: “Wie viele Hops brauche ich dafür?” 3 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Inhalt Knotenzentralitätsmaße Wiederholung von Grundlagen Gradzentralität Knotengradfolgen und -verteilungen k -Kerne im Graphen Grundlagen Struktur der Kernzerlegung Berechnung der Kernzerlegung 4 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Wiederholung von Grundlagen Grundlagen: Multimenge, Kardinalität Definition (Multimenge, Kardinalität) Eine Menge E zusammen mit einer Vielfachheit #E : E → N0 ihrer Elemente heißt Multimenge. Ihre Kardinalität ist | E | = ∑ #E ( e ) . e ∈E Kurzschreibweise: Beispiel: {1, 1, 2, 5, 3, 1, 2, 5} 5 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse #e für #E (e ) e ∈k E falls e ∈ E und # = k Knotenzentralitätsmaße Wiederholung von Grundlagen Grundlagen: Graph, Multigraph Definition (Graph, Multigraph) Ein mglw. gerichteter Graph [Multigraph] ist ein Paar G = (V , E ) aus einer endlichen Menge V von Knoten und einer Menge [Multimenge] E ⊆ V × V von Kanten. Kanten der Form {(v , v )|v ∈ V } heißen Schleifen. Kanten e ∈ E in einem Multigraphen mit #e > 1 heißen Multikanten. Definition (Schlichtheit) Ein Graph ist schlicht (simple), wenn er weder Schleifen noch Multikanten hat. 6 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Wiederholung von Grundlagen Beispiel 7 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Wiederholung von Grundlagen Inhalt Knotenzentralitätsmaße Wiederholung von Grundlagen Gradzentralität Knotengradfolgen und -verteilungen k -Kerne im Graphen Grundlagen Struktur der Kernzerlegung Berechnung der Kernzerlegung 8 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Gradzentralität Knoten-Zentralitätsmaß Definition Ein Knotenzentralitätsmaß für ein Netzwerk G = (V , E ) ist eine Funktion c : V → R, die jedem Knoten v ∈ V einen reellen Wert zuweist. Allgemeiner kann man auch auf einen Attributwert auf einer geeigneten Skala abbilden, die eine Rangordnung ermöglicht. Abhängigkeit von der Position Der zugewiesene Wert hängt von der Position des Knotens v in G ab, die sich aus einer Teilmenge der Kanten E 0 ⊆ E ergibt. 9 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Gradzentralität Knotengrad – “Wie viele Leute kenne ich?” Definition (Knotengrad) Sei ~ G = (V , ~E ) ein gerichteter Multigraph und sei v ∈ V . Dann heißen deg~− (v ) = deg− (v ) = ∑(u ,v )∈~E #(u , v ) G deg~+ (v ) = deg+ (v ) = ∑(v ,w )∈~E #(v , w ) G − + deg~G (v ) = deg(v ) = deg (v ) + deg (v ) von v . Eingangsgrad Ausgangsgrad Knotengrad (oder Grad) Falls G ein ungerichteter Multigraph ist, dann definieren wir den (ungerichteten) Grad von v als degG (v ) = deg(v ) = ∑ #{v , w } + 2 · #{v , v } {v ,w }∈E ,v 6=w Beispiel: Siehe Tafel! 10 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Gradzentralität Grundlegende Resultate Lemma Jeder schlichte ungerichtete Graph mit mindestens zwei Knoten enthält zwei Knoten gleichen Grades. Lemma (handshake lemma) In (gerichteten wie ungerichteten) Multigraphen mit m Kanten gilt: ∑ deg(v ) = 2m v ∈V 11 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Gradzentralität Grad-Zentralität Definition Die Grad-Zentralität weist jedem Knoten v ∈ V die Zahl seiner inzidenten Nachbarn zu: DC : V → N, v 7→ deg(v ). Beispiel: Siehe Tafel! 12 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Gradzentralität Inhalt Knotenzentralitätsmaße Wiederholung von Grundlagen Gradzentralität Knotengradfolgen und -verteilungen k -Kerne im Graphen Grundlagen Struktur der Kernzerlegung Berechnung der Kernzerlegung 13 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Gradfolgen Definition (Gradfolge) Gegeben sei ein gerichteter oder ungerichteter Multigraph G = (V , E ) mit Knotenmenge V = {v1 , . . . , vn }. Die Folge D (G ) = (deg− (v1 ), deg+ (v1 ), . . . , deg− (vn ), deg+ (vn )) des gerichteten bzw. D (G ) = (deg(v1 ), . . . , deg(vn )) des ungerichteten Multigraphen G heißt dessen Gradfolge. Beispiel: Siehe Tafel! 14 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Gradverteilung Definition Die Gradverteilung eines Graphen G = (V , E ) ist eine Funktion dd :{0, . . . , n − 1} → {0, . . . , n}, d 7→ |{v ∈ V : deg(v ) = d }| (1) (2) Sie misst demnach die absolute (alternativ: relative) Häufigkeit jedes möglichen Gradwertes. Selbstübung: Formulierung für Multigraphen 15 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Beispiele für Gradverteilungen: Konstant Beispiel (siehe Tafel): 2D-Torus Gradfolge ist konstant (alle Grade gleich) Gitternetze: Häufig geringe Abweichungen, Knotengrade konstant in der Eingabegröße (aber nicht alle gleich!) 16 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Beispiele für Gradverteilungen: Power-law Gradverteilung im afrikanischen WWW Zahl der URLs mit Eingangsgrad i ist proportional zu i α für eine Konstante α < 0 Solche Verteilungen nennt man Power-law-Verteilungen (Beispiel für heavy-tail distribution) Netzwerke mit einer solchen Gradverteilung bezeichnet man als skaleninvariant Achsen sind vertauscht! [http://www2002.org/CDROM/poster/164/] 17 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Fazit und Ausblick Fazit Gradverteilung wichtige strukturelle Eigenschaft eines Netzwerks Gitternetze haben meist “einfache” Gradverteilungen Komplexe Netzwerke sind meist skaleninvariant (Power-law-Gradverteilung) Ausblick Mehr zu Gradfolgen, insbesondere zur Generierung von Graphen mit bestimmten Gradfolgen, im Abschnitt Netzwerkmodelle und Generatoren 18 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße Knotengradfolgen und -verteilungen Inhalt Knotenzentralitätsmaße Wiederholung von Grundlagen Gradzentralität Knotengradfolgen und -verteilungen k -Kerne im Graphen Grundlagen Struktur der Kernzerlegung Berechnung der Kernzerlegung 19 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen k -Kerne im Graphen Motivation Grad eines Knotens alleine unzureichend als Maß der Verbundenheit zum Graphen Ein robusteres Maß ist die k -Kern-Struktur Interpretierbar als geschachtelte Zerlegung, die Teile des Graphens anhand ihrer Dichte zerlegt Ermöglicht: Identifikation zentraler Teile eines Netzwerks Herausfiltern unwichtiger Teile Literaturhinweise M. Baur, M. Gaertler, R. Görke, M. Krug, D. Wagner: Augmenting k-Core Generation with Preferential Attachment. Networks and Heterogeneous Media, 3(2):277-294, June 2008. V. Batagelj and M. Zaversnik: Fast algorithms for determining (generalized) core groups in social networks. Advances in Data Analysis and Classification, 5(2):129–145. 20 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen k -Kerne im Graphen Definitionen (1) Definition Eine geschachtelte Zerlegung eines schlichten ungerichteten Graphen G = (V , E ) ist eine endliche Folge (V0 , . . . , Vk ) von Teilmengen der Knoten mit folgenden Eigenschaften: V0 = V Vi +1 ⊂ Vi für 0 ≤ i < k Vk 6 = ∅ Definition Der i-Kern von G ist der eindeutige Teilgraph, den man erhält, indem man nacheinander alle Knoten mit Grad < i entfernt. 21 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Beispiel [Baur et al., 2008] 22 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen k -Kerne im Graphen Definitionen (2) Definition Der i-Kern ist die Menge aller Knoten mit mindestens i Nachbarn, die auch zum i-Kern gehören. Definition Der Kern, Core(G ), von G ist der nichtleere k -Kern mit maximalem k . Definition Ein Knoten v hat die Kernzahl (coreness) i, wenn v zum i-Kern gehört, aber nicht zum (i + 1)-Kern. Definition Die i-Schale von G besteht aus allen Knoten mit Kernzahl i. 23 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Beispiel [Baur et al., 2008] 24 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Kernzahl als Zentralitätsmaß Definition Das Zentralitätsmaß CoreCentrality (CoreC) ordnet jedem Knoten seine Kernzahl zu. Bedeutung: Wichtigkeit des Knotens aufgrund seiner Vernetzung, Berücksichtigung der Wichtigkeit von Knoten der “Umgebung” 25 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Agenda Sequentielle Berechnung der Kern-Zerlegung Parallele Berechnung der Kern-Zerlegung Übung: Schranken zur Größe des i-Kerns 26 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Untere Schranken Lemma Sei G = (V , E ) ein Graph, (V0 , . . . , Vk ) seine Kern-Zerlegung und Gi := (Vi , Ei ) := G [Vi ] sein i-Kern. Dann lässt sich die Größe jedes i-Kerns beschränken durch: i + 1 ≤ | Vi | 27 and Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse (i + 1)i ≤ | Ei | . 2 (3) Knotenzentralitätsmaße k -Kerne im Graphen Obere und untere Schranken Lemma Sei ni := |Vi \Vi +1 | die Zahl der Knoten in der i-Schale. Sei mi := |Ei \Ei +1 | die Anzahl der Kanten, die zu einem Knoten mit Kernzahl i und zu einem Knoten mit Kernzahl j ≥ i inzident sind. Per Definition: Vk +1 := ∅, Ek +1 := ∅. Dann lässt sich die Größe der i-Schale beschränken durch: , if ni > i d i ·2ni e (n2i ) + ni (i − ni + 1) , if ni ≤ i 0≤ ) ≤ ni ≤ | V | ( i · ni mi ≤ i · ni − (4) , if i < k i (i +1) 2 , if i = k (5) Beweis: Siehe Tafel! 28 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Algorithmus Algorithm 1 Berechnung der Kernzerlegung eines Graphen 1: function C ORE D ECOMPOSITION(G = (V , E )) 2: Output: Kernzahl k des Kerns von G und Feld core mit Kernzahl jedes Knotens 3: Speichere die Knotengrade für alle Knoten in degree 4: i←0 5: while V 6= ∅ do 6: i ← i +1 7: for each v ∈ V mit degree [v ] < i do 8: core [v ] ← i − 1 9: for each u ∈ N (v ) do 10: degree [u ] ← degree [u ] − 1 11: end for 12: Entferne v aus G 13: end for 14: end while 15: return (i − 1, core ) 16: end function 29 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Beispiel [Baur et al., 2008] 30 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Korrektheit Theorem Der Algorithmus C ORE D ECOMPOSITION berechnet bei Eingabe eines Graphen G = (V , E ) die Kernzahl von G und seine k-Kern-Zerlegung mit core [v ] = Kernzahl von v . Beweis: Übung! Zur Erinnerung: Der i-Kern von G ist der eindeutige Teilgraph, den man erhält, indem man nacheinander alle Knoten mit Grad < i entfernt. Der i-Kern ist die Menge aller Knoten mit mindestens i Nachbarn, die auch zum i-Kern gehören. 31 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Laufzeit Theorem Sei G = (V , E ) mit |E | = m zusammenhängend und ungewichtet. Der Algorithmus C ORE D ECOMPOSITION kann in Laufzeit O(m ) implementiert werden. Beweis: Siehe Tafel und Skript! 32 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen Fazit k -Kerne Die k -Kernstruktur gibt ein Maß an, das robuster ist als der Knotengrad zur Bestimmung der Verbindung eines Knotens zum Rest des Graphen Lemmas beleuchten Größe der i-Schalen Algorithmische Definition führt zu Algorithmus, der die Struktur berechnet Aus weiteren theoretischen Ergebnissen lässt sich ein Generator entwickeln, der Graphen mit ähnlicher k -Kern-Struktur erzeugt Bei Interesse bzgl. Generator: siehe [Baur et al., 2008] 33 Henning Meyerhenke, Institut für Theoretische Informatik Algorithmische Methoden zur Netzwerkanalyse Knotenzentralitätsmaße k -Kerne im Graphen