Compound Graphen und hierarchisches Layout Basierend auf Sander
Compound Graphen und hierarchisches Layout Basierend auf Sander, G. : Layout Of Compound Directed Graphs Technical Report A/03/96 Hendrik Stroh 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 1
Compound-Graphen § Zusammenfassung von Knoten § Semantische Gruppierung § Verallgemeinerter Cluster-Graph § Compounds können Start- und/oder Endpunkte von Kanten sein § Anwendungen § UML-Diagramme § Kontrollflussdiagramme § Schaltpläne 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 2
Compound-Graph C‘=(G, T) § Gerichteter Graph G = (B υ C, EG) § Kanten zwischen „base nodes“ B und Compounds C 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 3
Compound-Graph C‘=(G, T) § „nesting tree“ T = (B υ C, ET) § Blätter: „base nodes“ B § Innere Knoten: Compounds C § Kanten: Inklusionsrelation ET § v gehört zu u, gdw. ein Weg u + v existiert 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 4
Layout von Compound Graphen § Ziel: Compound-Graphen unter Einhaltung folgender Konventionen zeichnen § Kreuzungen jeglicher Art sollten möglichst vermieden werden § Kanten sollten möglichst wenige Knicke haben § Kanten sollten möglichst einheitlich gerichtet sein § Überlappungen jeglicher Art sind nicht erlaubt § Ein Compound u darf nur die Elemente, die zu u gehören, enthalten § Hier: Auf Schichten basierendes Layout-Verfahren 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 5
Lokale vs. Globale Schichtzuweisung § Lokale Schichtzuweisung § § 27. 10. 2005 Jedes Compound bekommt eigene Schichten Jedes Compound ist genau einer Schicht zugewiesen Wenige Knoten pro Schicht Algorithmus von Sugiyama/Misue (1991) PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 6
Lokale vs. Globale Schichtzuweisung § § § § 27. 10. 2005 Eine Schichtmenge für alle Knoten Compounds können über mehrere Schichten gehen Kompakter, da weniger Schichten mit mehr Knoten Algorithmus von Sander (1996) PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 7
Phasen des Verfahrens von Sander 1. Schichtzuweisung § Zuordnung der Knoten zu Schichten, y-Koordinaten 2. Produktion von Dummy-Knoten § Lange Kanten durch Folgen von Dummy-Knoten und kurzen Kanten ersetzen 3. Kreuzungsminimierung § Umordnung der Knoten innerhalb der Schichten, so dass möglichst wenige Kreuzungen bestehen 4. Positionierung von Knoten und Kanten § 27. 10. 2005 Berechnung absoluter Koordinaten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 8
Schichtzuweisung § Ränge R(v) für alle Knoten berechnen § Rang gibt die Schichtzugehörigkeit an § Knoten einer Schicht haben gleiche y-Koordinate 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 9
Schichtzuweisung § Compound u hat obere Grenze mit Rang Rmin(u) und untere Grenze mit Rang Rmax(u) § Ziel: „legal rank assignment“ § Rmin(a) < Rmax(a) § Rmin(a) < R(v) < Rmax(a) § Rmin(a) < Rmin(b) < Rmax(b) 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 10
Schichtzuweisung § „border nodes“ u(-) und u(+) für alle Compounds u § Rmin(u) = R(u(-)) und Rmax(u) = R(u(+)) 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 11
Schichtzuweisung § „nesting graph“ § § 27. 10. 2005 Zwei Kopien des „nesting tree“ T „border nodes“ u(-) in oberer Kopie, u(+) in unterer Kopie Kanten in unterer Kopie werden umgekehrt „nesting edges“ PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 12
Schichtzuweisung § Durchlauf in topologischer Reihenfolge mit Rangberechnung ergibt gültige Rangzuordnung § R(v) = max{R(w) | w є pred(v)} + 1 § Gilt auch, wenn Kanten hinzugefügt werden, die keine Kreise produzieren 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 13
Schichtzuweisung § „extended nesting graph“ § Alle Kanten e є EG, die keine Kreise produzieren, zum „nesting graph“ hinzufügen § Nun Top-Down-Durchlauf mit Rangberechnung § Die Quelle r(-) hat den Rang 1 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 14
Schichtzuweisung § Korrektur der Ränge oberer „border nodes“ 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 15
Produktion von Dummy-Knoten § Ziel: „proper hierarchy“ § Lange Kanten werden in Folgen von Kantensegmenten und Dummy-Knoten zerlegt § Ausgangspunkt: „extended nesting graph“ 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 16
Produktion von Dummy-Knoten § „nesting edges“ entfernen § Für alle Kanten ist ersichtlich, zwischen welchen Schichten sie verlaufen 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 17
Produktion von Dummy-Knoten § Kanten e є EG, die Kreise produziert hätten, zum Graphen hinzufügen § Auswahl geeigneter Begrenzungslinien als Endpunkte von Kanten § Kanten sollten möglichst einheitlich gerichtet sein § Kanten, die gegen die einheitliche Richtung verlaufen, werden temporär umgedreht 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 18
Produktion von Dummy-Knoten § Nun lange Kanten zerlegen § Spannweite jeder Kante (v, w) ist R(w) - R(v) = 1 § Dummy-Knoten zum „nesting tree“ T hinzufügen § „border nodes“ u(-) und u(+) sowie Kanten (u, u(-)) und (u, u(+)) zu T hinzufügen § Für Dummy-Knoten, die zu einer Kante (w 1, w 2) gehören, gibt es zwei Strategien § Kreuzungen zw. Kanten und Rechtecken vermeiden 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 19
Produktion von Dummy-Knoten § Strategie 1: Kanten (w 1, w 2) verlaufen bevorzugt außerhalb von Compounds 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 20
Produktion von Dummy-Knoten § Strategie 2: Kanten (w 1, w 2) verlaufen bevorzugt innerhalb von Compounds 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 21
Kreuzungsminimierung § Ausgangspunkt: „proper hierarchy“ § „base nodes“, „border nodes“, normale Dummies § Jeder Knoten v hat relative Position P(v) in seiner Schicht und gehört zu einem Compound u § Alle Kantensegmente zeigen abwärts mit Spannweite 1 § Umordnung der Knoten mit Barycenter-Werten § Arithmetisches Mittel der Position aller Vorgänger (Top Down) bzw. Nachfolger (Bottom Up) § Ergibt bessere P(v)-Werte weniger Kreuzungen § Aber: Spezielle Regeln für Compound-Graphen werden missachtet 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 22
Kreuzungsminimierung § Regel 1: Knoten eines Compound mit gleichem Rang müssen in ununterbrochener Folge innerhalb der Schicht angeordnet werden 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 23
Kreuzungsminimierung § Regel 2: Compounds dürfen nicht verflochten werden 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 24
Kreuzungsminimierung § Trotz Missachtung der Regeln ist die Barycenter. Methode ein guter Ausgangspunkt 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 25
Kreuzungsminimierung § In Folge werden die Knoten entsprechend der Regeln innerhalb der Schichten umgeordnet § Richtwert für die Position eines Compounds u ist die mittlere Position seiner Knoten § „complete average position“ P*(u) § Mittlere Position aller Blätter des Compounds u § „average position“ für Schicht i P*i(u) § Mittlere Position aller Blätter von u mit Rang i § Idee: Wenn P*i(u 1) < P*i(u 2), dann ist zu erwarten, dass viele zu u 1 gehörende Knoten links von zu u 2 gehörenden positioniert sind 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 26
Kreuzungsminimierung § Markierung des „nesting tree“ T § Für alle inneren Knoten u wird P*i(u) und die Anzahl Ni(u) von Blättern, die zu u gehören und Rang i haben, gespeichert § Für Blätter v gilt: P*i(v) = P(v) und Ni(v)=1 § Schichten werden unabhängig voneinander betrachtet § „reduced nesting tree“ Ti 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 27
Kreuzungsminimierung § „reduced nesting tree“ Ti § Enthält nur Blätter v mit Rang i 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 28
Kreuzungsminimierung § Durchlauf, so dass die Kinder jedes inneren Knotens nach P*i(u) sortiert werden 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 29
Kreuzungsminimierung § Ergebnis: Innerhalb der Schichten bestehen keine Verflechtungen mehr § Aber: In Bezug auf alle Schichten können Compounds immer noch verflochten sein § Deshalb: „subgraph ordering graph“ 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 30
Kreuzungsminimierung 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 31
Kreuzungsminimierung § Topologische Sortierung ergibt Ordnung λO, die angibt, welches Compound links von anderen ist § Bei Verflechtungen bestehen Kreise und der Graph kann nicht topologisch sortiert werden § Kreise am Knoten mit kleinstem P*(w) auflösen 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 32
Kreuzungsminimierung § Nun alle Schichten durchlaufen und Knoten innerhalb der Schichten entsprechend λO sortieren § Ergebnis: Compounds sind nicht mehr verflochten 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 33
Positionierung von Knoten & Kanten 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 34
Positionierung von Knoten & Kanten 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 35
Fragen? 27. 10. 2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 36
- Slides: 36