MINIMALE SPANNBÄUME

Werbung
Vorlesung 3
MINIMALE SPANNBÄUME
72
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Aufgabe
!   Szenario: Sie arbeiten für eine
Firma, die ein Neubaugebiet ans
Netz (Wasser, Strom oder Kabel
oder...) anschließt
!   Ziel: Alle Haushalte ans Netz
bringen, dabei möglichst wenig
Leitung verlegen
!   Aufgabe: Wie modellieren und
lösen Sie das Problem?
(Der Anschlusspunkt ans Netz ist fix.)
73
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
(Minimaler) Spannbaum
!   Definition: Spannbaum eines zusammenhängenden,
ungerichteten Graphen G=(V, E):
Zusammenhängender Baum T=(V, E‘) mit E‘ Teilmenge von E
!   Sind die Kanten von G gewichtet, so ist das Gewicht von T
die Summe der Kantengewichte in T
!   Minimaler Spannbaum: Spannbaum mit niedrigstem Gewicht
!   Engl.: Minimum (weight) spanning tree, MST
74
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel
75
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Prims Algorithmus
! Graphenbasiert:
!
!
!
!
 
 
 
 
In jeder Iteration wird ein Knoten zum Baum hinzugefügt
Dabei wird der Knoten v gewählt, der am dichtesten am Baum liegt
Dazu wird die leichteste Kante bestimmt, die keinen Zyklus erzeugt
Nach n-1 Iterationen hat man den MST
!   Pseudocode: s. Tafel
!   Laufzeit:
!   Mit binärem Heap als PQ: O(|E| log |V|)
!   Mit Fibonacci-Heap als PQ: O(|E| + |V| log |V|)
76
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Algebraische Variante
! Adjazenzmatrix A speichert Kantengewichte
!   Vektor s zeigt Zugehörigkeit zur Menge S an
!   Vektor d speichert die Gewichte der Kanten, die S verlassen
!   d(v) = 0, falls v in S
!   Falls v nicht in S: d(v) gibt leichteste Kante an, die v mit S
verbindet
!   Pseudocode: s. Tafel
!   Komplexität: O(n2)
!   Bei dünn besetzten Graphen deutlich schlechter, bei sehr
dichten vergleichbar
77
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenfassung
! Prims Algorithmus ist ähnlich zu Dijkstras SSSP-Algorithmus
!   Algebraische Variante etwas kürzer in der Notation
!   Langsames argmin sorgt für höhere Laufzeit für dünn
besetzte Graphen
!   Übung: Zusätzlich den MST berechnen, nicht nur sein
Gewicht
78
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
CLUSTERANALYSE UND
ZENTRALITÄT
79
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Aufgabe
!   Szenario: Sie arbeiten bei einem
sozialen Online-Netzwerk. Aus der
Netzwerk-Struktur Ihrer Benutzer
sollen Sie wichtige Eigenschaften
extrahieren.
[http://www.fahrschule-vatterodt.de/
images/social_network.jpg]
!   Aufgabe 1: Entwickeln Sie Ideen, wie
Sie Communitys, d. h. dicht
zusammenhängende Teilgraphen
identifizieren können!
!   Wie formalisieren Sie das Problem?
!   Aufgabe 2: später
80
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Clusteranalyse in Graphen
!   Hier: Clusteranalyse = Clustering =
Community Detection
!   Bestimmung „natürlicher“ Gruppen im
Graphen
!   „Strukturierung des Chaos“
[http://espin086.files.wordpress.com/
2011/02/2-variable-clustering.png?w=640]
[http://www.colenbrander.com/images/
Afbeeldingen/Chaos-Structure2.jpg]
81
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Anwendungsgebiete
!
!
!
!
!
!
!
  Marketing, Werbung (besonders online)
  Strukturvorhersage
  Expertensysteme
  Maschinelles Lernen, Data Mining, Mustererkennung, ...
  Bildsegmentierung
  Bioinformatik
  ...
[http://spie.org/Images/Graphics/Newsroom/Imported/
0016/16_fig1.jpg]
82
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Algorithmenklassen
!   Zahlreiche Algorithmen(klassen)
!
!
!
!
!
!
83
  Spektral
  Random Walks
Greedy kombinatorisch
  Semidefinite Programmierung
  Peer Pressure
  ...
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Clusterung, Cluster
!   Definition: Sei G = (V, E) ein ungerichteter,
einfacher (= schlichter) Graph.
Eine Clusterung C = (C1, ..., Ck) ist eine
Partition der Knotenmenge
in nicht-leere disjunkte Teilmengen.
Eine solche Teilmenge Ci heißt Cluster.
!   Lemma: Jede Clusterung C kann eindeutig durch die
Äquivalenzrelation
u ~C v: , 9 Ci 2 C: u, v 2 Ci
beschrieben werden.
Die Cluster Ci entsprechen genau den Äquivalenzklassen.
84
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Peer Pressure Clustering
Die wesentliche Idee [KG, S. 61]
!   Idee: Clusternummer eines Knotens stimmt mit Mehrzahl
seiner Nachbarn überein (eine akzeptable Startlösung vorausgesetzt)
85
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Peer Pressure Clustering (PPC)
Die Umsetzung
!   Gegeben: Graph G = (V, E), N := |V|, M := |E|,
initiale Clusterung C
!   Gesucht: besseres Clusterung C‘
!   Iteratives Vorgehen:
!   Stimmabgabe: Jeder Knoten stimmt dafür, dass seine Nachbarn
zum eigenen Cluster gehören
!   Zuweisung: Für jeden Knoten: Nach der Berechnung aller
Stimmabgaben Zuordnung zum Cluster mit den meisten Stimmen
!   Pseudocode: s. Tafel
86
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel [KG, S. 61]
!   Diskussion (Übung):
Was halten Sie von diesem Algorithmus?
87
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Startlösung
!   Option 1: Eine Runde Lubys MIS, Zuordnung der restlichen
Knoten an nächstgelegenes MIS-Mitglied
!   Option 2: Multilevel-Verfahren
!   Rekursive Vergröberung des Graphen
!   Startlösung auf dem groben Graphen berechnen
!   Stufenweise Verbesserung während der Rückkehr aus der
Rekursion
!   Erfahrung zeigt:
Hat ein Graph eine gute Cluster-Struktur,
ist der Algorithmus robust gegenüber der Startlösung
!   Option 3: Starten mit Ein-Knoten-Clustern
88
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Problem unterschiedlicher Knotengrade
!   Viele Netzwerke der realen Welt haben stark unterschiedliche
Knotengrade
!   Beispiele:
!   ...
!   ...
!   Frage: Welche Auswirkung hat das auf den Algorithmus?
!   Antwort: Manche Knoten haben extrem starken Einfluss
(viele Stimmen)
!   Lösung: Normalisierung der Abstimmung
!   Pseudocode: s. Tafel
89
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Kleine Cluster und Rauschen
!   Was tun mit Knoten, die Grad 1 haben?
!   Eigener Cluster?
!   Zum Cluster des Nachbarn?
!   Rauschen?
!   Was passiert bei kleinen Clustern?
!   Wenn mehrere Kanten zu einem größeren Cluster existieren, wird
der kleine vermutlich „aufgesogen“.
!   Will man das verhindern? Kommt auf die Anwendung an!
!   Wiederum: Normalisierung der Abstimmung
!   Diesmal: Normalisierung mit Clustergröße
!   Einfluss (= Stimmen) wird mit einem Stärkeexponenten skaliert
!   Pseudocode: s. Tafel
90
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Konfliktlösung
!   Konflikt: Einfluss (= Stimmen) verschiedener Cluster gleich
hoch
!   Wähle den Cluster mit der kleinsten Nummer
91
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispielrechnung (1)
!   Initial: Jeder
Knoten ist
eigener
Cluster
!   Implizite
Annahme:
Jeder Knoten
hat eine
Schleife
!   Grund:
Einfluss auf
sich selbst
92
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispielrechnung (2)
93
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispielrechnung (3)
94
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Komplexität
!   Raumkomplexität:
!   Jede Kante kann höchstens einmal Einfluss nehmen.
!   Wenn Stimmen als Liste gespeichert werden:
Insgesamt höchstens M Listeneinträge
!   Zeitkomplexität:
Schleife zur Stimmabgabe: O(M)
Zuweisung: O(M)
Also: Pro Durchlauf O(M)
Anzahl Durchläufe: Typischerweise O(1), wenn der Graph
Clusterstruktur hat
!   In dem Fall: Gesamtlaufzeit auch O(M)
!
!
!
!
95
 
 
 
 
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Pseudocode (algebraisch)
!   Graph als gewichtete Adjazenzmatrix A
!   C sei die Clusterung mit cij = 1 gdw. Knoten j in Cluster i ist
!   T ist die Stimmauszählungs-Matrix (engl.: tally matrix)
!   Stimmabgabe: T = CA
! tij = k gdw. es k Stimmen für Knoten j im Cluster i gibt
!   Zuweisung:
96
m = T max.
C = m .== T
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Die übrigen Operationen
! Startclusterung: C = I
!   Normalisierung 1 (Entschärfung versch. Knotengrade):
w = A +.
A = 1/w .x A
!   Normalisierung 2 (kleine Cluster und Einzelknoten erhalten):
w = C +.
A = (1/w .^p) .x A
!   Konflikte:
Finde in jeder Spalte von T das erste Maximum
!   Übung: Zeit- und Raumkomplexität
97
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Markov Clustering
Ein alternativer Ansatz
!   Basiert auf Random Walks
!   Idee: Random Walks verbleiben wahrscheinlich lange in
dichten Gebieten
!   Pseudocode: s. Tafel
[http://espin086.files.wordpress.com/
2011/02/2-variable-clustering.png?w=640]
98
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Vergleich
!   Lösungsqualität:
!   MCL kann bei Tuning der Parameter Cluster verschiedener
Granularität (bewirkt unterschiedliche Größen) erkennen
!   PPC erkennt nur Cluster feiner Granularität (lt. [KG, S. 68])
!   Raumkomplexität:
!   MCL: Matrix füllt sich nach wenigen Operationen è O(N2)
!   PPC: O(M)
!   Laufzeit:
!   MCL: Matrix-Matrix-Multiplikation pro Iteration
!   PPC: O(M) pro Iteration
!   Konvergenz:
!   MCL: Konvergiert (aber eher langsam)
!   PPC: Muss nicht konvergieren, tut dies aber meist schnell
99
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenfassung
! Graphclustering:
Identifizierung von dicht zusammenhängenden Teilgraphen
mit wenigen externen Kanten
!   Zahlreiche Anwendungen in verschiedenen Gebieten
!   Peer-pressure-Clustering:
!   Geht von initialer „Cluster-Approximation“ aus
!   Idee: Die Mehrzahl meiner Nachbarn sind in demselben Cluster
!   Konvergenz nicht garantiert, aber bei gutartigen Graphen in
Experimenten gegeben
!   Bei schneller Konvergenz (O(1) Runden) insgesamt schnell (O(M))
!   Operationen leicht darstellbar in Matrix-Vektor-Notation
!   Qualität???
100
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Herunterladen