Graphen zeichnen

Werbung
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
Herunterladen