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