Graphenzeichnen

Werbung
Vorlesung 8
VISUALISIERUNG GROßER
GRAPHEN
232
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Wiederholung Clusteranalyse
!   LP, MCL, spektral: Nur drei Beispiele, es gibt viele
Algorithmen und Varianten zu dem Themengebiet
!   Eng vernetzte Gruppen identifizieren
!   Verbindung zur Visualisierung von Graphen
!   Eingabe: G = (V, E)
!   Ausgabe: 2D- oder 3D- Koordinaten xi für jeden Knoten i 2 V
!   Ziel: Gute visuelle Repräsentation
!   Übersichtlichkeit
!   Wenige Überschneidungen
233
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Einsatzgebiete fürs Graphenzeichnen
!
!
!
!
  (Spezielle) Landkarten (U-Bahn-Pläne)
  Technische Zeichnungen (CAD, UML-Diagramme)
  Datenrelationen darstellen (soziale Netzwerke)
  Veranschaulichung von Algorithmen
!   Simulationsdaten (Strömungen)
!   ...
[http://www.tepass.de/files/u-bahn_berlin-netz_1.jpg]
[http://84.201.93.40/images/thumb/f/f5/UML-KVM.png/800px-UML-KVM.png]
234
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Typus der Eingabeklasse wichtig
!   Graphen mit geringem
Durchmesser lassen sich
meist schlecht zeichnen
!   Vergleiche IMDB-Graphen
und Simulationsgraphen!
Six degrees of Kevin Bacon
[Seok-Hee Hong]
!   Sehr große Graphen
müssen hierarchisch
aufgelöst sein
!   FacebookFreundschaftsgraph hätte
auf Ihrem Bildschirm ca.
30.000 Kanten pro Pixel!
235
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Der Algorithmus von Hall
!   Halls Erkenntnis:
Charakterisierung vieler Abfolge- und Platzierungsprobleme:
Minimierung der quadrierten Distanzen zwischen Lokationen
!   In unserem Szenario:
minx Σ{i, j} 2 E w(i, j) * ||xi – xj||2 u. d. NB Σl=1|V| xl2 = 1
!   Aufgabe: Notieren Sie die Zielfunktion in Matrixschreibweise!
236
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Wdh.: Spektrales Graphenzeichnen
!   Zielfunktion: minx xT L x
!   L ist gewichtete Laplace-Matrix
!   => Verwende die 2 EV mit den kleinsten positiven EW als
Koordinaten
! Matlab: spec_draw.m
!   Vorteil:
Bei guter Implementierung gute Laufzeit
!   Nachteil:
Bei sehr dünnen Graphen Qualität unter Durchschnitt
237
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Bsp.: Spektrales Zeichnen
Delaunay-Triangulation, EV eines Pfads
238
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Nützlichkeit der Eigenvektoren
Approximation mit niedrigem Rang
!   Erklärung für die Nützlichkeit der EV zu extremen EW
!   Seien die EW ®1 >= ®2 >= ... >= ®n von A absteigend sortiert
!   Spektrale Zerlegung: A = Σι=1ν ®i vi viT, vi EV zum EW ®i
!   Wie kann man diese Matrix A geeignet komprimieren?
!   Kompressionsverlust (Approximationsgüte) beschränkt
!   Gemessen in Operatornorm ||A-B|| oder Frobeniusnorm ||A-B||F
!   ||M|| := maxx ||Mx|| / ||x||, ||M||F := (Σι,ϕ M(i,j)2)1/2
!   Courant-Fischer-Theorem: Siehe Tafel
239
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Approximation mit niedrigem Rang
!   Folgerung aus Courant-Fischer-Theorem:
Beste Approximationsgüte für Rang k: A(k) = Σι=1κ ®i vi viT,
sortiert absteigend gemäß |®i|
Beweis: Selbstübung, Hinweis: Singulärwertzerlegung und die
Verbindung zwischen Eigenvektoren und Singulärvektoren
[http://upload.wikimedia.org/wikipedia/commons/e/e9/
Singular_value_decomposition.gif]
240
Graphenalgorithmen und lineare Algebra Hand in Hand
Laplace-Matrix:
EV zu kleinsten EW,
Pseudoinverse
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Multigrid und Multilevel
!   Wie bestimmt man die beiden EV schnell?
!   Kombination aus Multilevel und Multigrid!
! Multigrid:
!   Numerischer Löser, LGS und Eigenprobleme
!   Ähnliche Idee mit Hierarchie wie bei Multilevel-Verfahren
!   Aber: Operatoren sind andere als beim eben vorgestellten
Verfahren
!   Grundlegende Multigrid-Idee:
!   Hochfrequenter Fehler kann schnell geglättet werden
!   Niederfrequente Fehler werden durch Restriktion auf gröberen
Graphen wieder hochfrequent
241
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Multigrid und Multilevel
244
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Szenario
!   Zeichnen großer ungerichteter Graphen
!   Eingabe: G = (V, E)
!   Ausgabe: 2D- oder 3D- Koordinaten xi für jeden Knoten i 2 V
!   Ziel: Zeichnung gibt gute visuelle Repräsentation der
Konnektivität zwischen den Knoten
!   Übersichtlichkeit
!   Wenige Überschneidungen
!   Unsere Modellierung: Physikalisches System in
Konfiguration mit minimaler Energie
245
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Kräftegesteuerte Algorithmen
Force-directed Algorithms
!   In der Literatur nicht ganz eindeutig
verwandter Begriff
!   Grundsätze:
!   Berechnung von Kräften, die auf die
Knoten wirken
!   Bewegung der Knoten entlang der
Richtung dieser Kräfte
!   Wiederholung der beiden ersten
Operationen, bis das System in einen
Gleichgewichtszustand eintritt
(Äquilibrium)
!
!
246
[http://www.mindfusion.eu/pictures/
mvcdiagram_anneal_layout.png]
http://getspringy.com/demo.html
http://sydney.edu.au/engineering/it/~aquigley/avi/
spring.avi
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Das Feder-elektrische Modell
Spring-electrical Model
!   Problemmodellierung:
!   Knoten sind elektrisch geladen
!   Knoten werden durch Federn gegenseitig angezogen
!   Elektrische Kräfte stoßen die Knoten voneinander ab
! Anziehende Kraft zwischen Nachbarn i und j:
!   Proportional zur quadrierten Distanz zwischen i und j
! Fa(i, j) = - ||xi – xj||2 / K * (xi – xj) / ||xi – xj||
!   K ist ein Skalierungsparameter, abhängig von der Größe des
endgültigen Layouts
! Abstoßende Kraft zwischen allen Knotenpaaren:
!   Invers proportional zur Distanz zwischen i und j
!   Fr(i, j) = K2 / ||xi – xj|| * (xi – xj) / ||xi – xj||
247
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zahlenbeispiel
!   Knoten i: (5, 1)
!   Knoten j: (2, 5)
!   K = 10
! Fa(i, j) = - ||xi – xj||2 / K * (xi – xj) / ||xi – xj||
= - 25 / 10 * (3; -4) / 5
= (-1,5; 2)
!   Translation um -1,5 in x-Richtung und
+2 in y-Richtung (bzw. negiert)
!   Fr(i, j) = K2 / ||xi – xj|| * (xi – xj) / ||xi – xj||
= 100 / 5 * (3; -4) / 5
= (12; -16)
!   Translation um 12 in x-Richtung und
-16 in y-Richtung (bzw. negiert)
248
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Energie des Systems und Algorithmus
!   Energie: E(x) = Σ{i, j} 2 E ||xi – xj||3 / 3K – Σi ≠ ϕ K2 ln(||xi – xj||)
!   NB: Es gibt Varianten dieses Modells
!   Eingabe für Algorithmus beliebig:
!   Zufällige Platzierung der Knoten
!   Ein wie auch immer gewähltes initiales Layout
!   Wiederholung von Kraftberechnung und Verschiebung
!   Verschiebung skaliert um abnehmende Schrittlänge
249
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Algorithmus
! ForceDirectedAlgorithm(G, x, tol)
! converged = false;
! step = initial_step_length;
! while not converged {
!   x0 = x;
! for i 2 V {
!   f = 0; // berechne Kraftvektor f
! for each j 2 N(i) do f := f + Fa(i, j);
! for j ≠ i, j 2 V do f := f + Fr(i, j);
!   xi := xi + step * (f / ||f||); // normalization to be performed only once!
!  }
! step := update_step_length(step, x, x0);
! if (||x – x0|| < tol * K) converged = true; // K ist Teil des Modells
!  }
! return x;
250
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Beispiel
! http://getspringy.com/demo.html
! http://sydney.edu.au/engineering/it/~aquigley/avi/spring.avi
251
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Diskussion des Algorithmus
!   Funktioniert für kleine Graphen recht gut
!   Mögliche Verbesserung: Adaptive Aktualisierung der
Schrittgröße
!   Für große Graphen ergeben sich Probleme:
!   Problem von vielen lokalen Minima
!   => Multilevel-Ansatz
!   Quadratische Komplexität bei der Berechnung von Fr
!   Wie vermeiden?
!   => Geometrische Datenstruktur zur Approximation von Fr
!   Idee: Für weit entfernte Knoten reicht ein Näherungswert
!   Laufzeit dann auf O(n log n + m) gedrückt
252
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Schnelle Kraft-Approximation
!   FD-Algorithmus ist verschachtelte Schleife:
!   Außen über jeden Knoten
! Fa: Innen über Nachbarn
!   Fr: Innen über alle anderen Knoten
!   Quadratische Laufzeit für Fr
!   Aber: Berechnung der Abstoßungskraft ähnelt n-KörperProblem (Physik)
!   Weit entfernte Knoten in gleicher Region als einen Superknoten
verwenden
!   Realisiert mit Quadtree / Octree
253
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Quadtree-Datenstruktur
!   Rekursive Datenstruktur, 2D: Quadtree, 3D: Octree
!   Auf dieser Folie: Knoten = Knoten des Quadtrees, Punkt = zu
speicherndes Objekt
!   Prinzipielle Idee:
!   Wurzelknoten repräsentiert Ebene / Raum (bzw. Ausschnitt)
!   Fläche des Knotens wird in vier gleich große Rechtecke geteilt,
wenn gewünschte Auflösung noch nicht erreicht
!   Mögliches Kriterium: Zahl der Punkte im Knoten
[http://upload.wikimedia.org/wikipedia/
de/a/a7/Quadtree.png]
254
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Quadtree für die Approximation
!   Ist ein Graph-Knoten weit weg für die Kraftberechnung,
genügt ein innerer Baumknoten, es muss kein Blatt sein
!   Innerer Baumknoten repräsentiert Menge von Graphknoten
am Schwerpunkt der Menge: xS = (Σj 2 S xj / |S|)
!   Abstoßende Kraft von Knoten i zum Superknoten S:
fr(i, S) = K2 / ||xi – xS|| * (xi – xS) / ||xi – xS||
!   Aber was bedeutet „weit weg“?
!   Eine Möglichkeit (Barnes-Hut-Kriterium): Superknoten ist
weit weg von Knoten i, wenn die Breite dS des Quadrats
(Rechtecks), in dem S liegt, klein ist im Vergleich zur Distanz
von S und i:
dS / ||xi – xS|| · µ
255
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Verfahren anhand einer Abbildung
!   µ ¸ 0 ist Parameter, in der Praxis bewährt: µ = 1,2
!   Je kleiner µ, desto genauer die Näherung
!   Abbildung: [NS12, S. 531]
256
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Analyse der Quadtree-basierten Berechnung
!   Annahme: Punkte sind im Quadtree geeignet verteilt
!   Dann: Bau des Quadtrees benötigt O(n log n) Zeit
!   Bestimmen aller Superknoten zu einem Graph-Knoten i in
O(log n) Zeit
!   => Laufzeit der Bestimmung der abstoßenden Kraft reduziert
sich von O(n^2) auf O(n log n)
!   Weitere Verbesserung: Approximation zwischen Paaren von
Superknoten, nicht nur zwischen Blatt-Superknoten-Paar
257
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Einordnung
!   Problem 1 umgangen:
!   Keine quadratische Komplexität mehr pro Iteration
!   Für große Graphen wäre das zu hoher Aufwand
!   Problem 2 noch vorhanden:
!   Keine wirklich globale Sichtweise
!   Viele lokale Minima der Energiefunktion
!   Dann meist: Zu schnelle Konvergenz gegen schlechtes Minimum
oder zu langsame Konvergenz
!   Multilevel-Ansatz führt häufig zu besseren Minima in
schnellerer Zeit
258
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Multilevel-Ansatz
!   3 Phasen:
!   Rekursive Vergröberung
!   Initiale Lösung
!   Wechsel von Lösungsinterpolation und
lokaler Verbesserung der Interpolation
!   Rekursive Vergröberung:
!   Erzeugt Hierarchie von Graphen
!   Jede gröbere Hierarchieebene hat
weniger Knoten und Kanten
!   Trotz Vergröberung bleibt Struktur der
Eingabe (einigermaßen) erhalten
259
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Rekursive Vergröberung im Detail
!   Oft benutzt: Nicht erweiterbares Matching
!   Kanten des Matchings und deren Endpunkte werden
zu einem neuen Knoten verschmolzen
!   Vorgehen beim Verschmelzen der Kante e = {u, v}:
!   Bilde neuen Superknoten x mit w(x) = w(u) + w(v)
!   Kante e wird gelöscht
!   Kanten von Knoten y ≠ u, v, x werden auf x
„umgebogen“, dabei parallele Kanten verschmelzen und
ihre Gewichte addieren: w(y, x) = w(y, u) + w(y, v) (wobei
nicht existierende Kanten Gewicht 0 haben)
!   Übung: Darstellung der Vergröberung als
Matrixoperation
!   Alternative: Berechnung unabhängiger Knotenmenge U mit
geeignet gewichteten Kanten zwischen Knoten in U
260
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Initiales Layout auf gröbstem Graphen
!   Zielgraph ist wegen Vergröberung recht klein
!   Algorithmus kann beliebig, sollte gut sein
!   Zum Beispiel FD-Algorithmus von Folie 250
!   Für kleine Graphen gute Lösungen
!   Wegen kleiner Größe trifft man hoffentlich globales
Optimum
261
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Interpolation und Verbesserung
!   Interpolation: Jede verschmolzene Kante e = {u, v}
wird wieder expandiert:
!   Die beiden Knoten u und v erhalten die Position ihres
Superknotens x
!   Alte Adjazenzinformation wird wiederhergestellt
!   Lokale Verbesserung: Z. B. mit FD-Algo von Folie
239
!   Frage/Übung: Wie lässt sich das Multilevel-Konzept
auf die Partitionierung von Graphen anwenden? (Aus
diesem Kontext stammt die Abbildung auf den Folien 248 und 252.)
262
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Alles auf einen Blick
1) Rekursive
Vergröberung
3) Interpolation
und lokale
Verbesserung
2) Initiales Layout
263
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenfassung 1
!   Kräftegesteuerter Algorithmus zum Zeichnen von Graphen
!   Funktioniert gut für kleine Graphen
!   Große Graphen:
!   Laufzeit verbessert mit Quadtree bzw. Octree
!   Qualität verbessert mit Multilevel-Verfahren
! Quadtree ist geometrische Datenstruktur:
!   Gruppiert Punkte in derselben Region in einem inneren Knoten
!   Moderater Baumabstieg, Schwerpunkt => Distanz-Approximation
!   Multilevel-Verfahren:
!   3 Phasen: Vergröberung, initiale Lösung, Interpolation und
Verfeinerung
!   Bietet mit lokaler Verfeinerung globale und lokale Sicht
264
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Zusammenfassung 2
!   Spektrales Graphenzeichnen
!
!
!
!
!
 
 
 
 
 
Eigenvektoren entsprechen Modi von Schwingungen
Niederfrequente vs. hochfrequente EV
Benutzt 2 EV zu den kleinsten positiven EW
Vorherige Motivation: Frequenzbilder
Halls Formulierung: Platzierungsproblem ähnlich zu Clustering
!   Schnelle Implementierung mit Multigrid
!   Bezug zur Partitionierung?
265
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische
Informatik, Fakultät für Informatik
Herunterladen