Prof. Dr. Henning Meyerhenke | 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 272 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) [http://www.mindfusion.eu/pictures/ mvcdiagram_anneal_layout.png] http://getspringy.com/demo.html http://sydney.edu.au/engineering/it/~aquigley/avi/ spring.avi 273 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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|| 274 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) 275 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 276 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||); // Normalisierung nur einmal pro Knoten } step := update_step_length(step, x, x0); if (||x – x0|| < tol * K) converged = true; // K ist Teil des Modells } return x; 277 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | Fakultät für Informatik Beispiel http://getspringy.com/demo.html http://sydney.edu.au/engineering/it/~aquigley/avi/spring.avi 278 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 279 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 280 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] 281 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 |S| / ||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|| · µ 282 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] Links: Quadtree, rechts: Superknoten mit Verbindung zum Knoten oben in der Mitte bei µ = 1 283 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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(n2) auf O(n log n) Weitere Verbesserung: Approximation zwischen Paaren von Superknoten, nicht nur zwischen Blatt-Superknoten-Paar 284 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 285 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 286 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 287 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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 277 Für kleine Graphen gute Lösungen Wegen kleiner Größe trifft man hoffentlich globales Optimum für gröbsten Graphen 288 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 (ggf. leicht „verwackelt“) Alte Adjazenzinformation wird wiederhergestellt Lokale Verbesserung: Z. B. mit FD-Algo von Folie 277 Frage/Übung: Wie lässt sich das Multilevel-Konzept auf die Partitionierung/das Clustering von Graphen anwenden? (Aus diesem Kontext stammt die Abbildung zum Multilevel-Prinzip.) 289 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | Fakultät für Informatik Alles auf einen Blick 1) Rekursive Vergröberung 3) Interpolation und lokale Verbesserung 2) Initiales Layout 290 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 291 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Prof. Dr. Henning Meyerhenke | 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? 292 Graphenalgorithmen und lineare Algebra Hand in Hand KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik