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