380 likes | 474 Views
Compound Graphen und hierarchisches Layout. Basierend auf Sander, G.: Layout Of Compound Directed Graphs Technical Report A/03/96 Hendrik Stroh. Compound-Graphen. Zusammenfassung von Knoten Semantische Gruppierung Verallgemeinerter Cluster-Graph
E N D
Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of Compound Directed Graphs Technical Report A/03/96 Hendrik Stroh PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Compound-Graph C‘=(G, T) • Gerichteter Graph G = (B υC, EG) • Kanten zwischen „base nodes“ B und Compounds C PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Lokale vs. Globale Schichtzuweisung • Lokale Schichtzuweisung • 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
Lokale vs. Globale Schichtzuweisung • Globale Schichtzuweisung • 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
Phasen des Verfahrens von Sander • Schichtzuweisung • Zuordnung der Knoten zu Schichten, y-Koordinaten • Produktion von Dummy-Knoten • Lange Kanten durch Folgen von Dummy-Knoten und kurzen Kanten ersetzen • Kreuzungsminimierung • Umordnung der Knoten innerhalb der Schichten, so dass möglichst wenige Kreuzungen bestehen • Positionierung von Knoten und Kanten • Berechnung absoluter Koordinaten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Schichtzuweisung • Ränge R(v) für alle Knoten berechnen • Rang gibt die Schichtzugehörigkeit an • Knoten einer Schicht haben gleiche y-Koordinate PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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) < Rmax(b) PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Schichtzuweisung • „border nodes“ u(-) und u(+) für alle Compounds u • Rmin(u) = R(u(-)) und Rmax(u) = R(u(+)) PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Schichtzuweisung • „nesting graph“ • 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
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Schichtzuweisung • Korrektur der Ränge oberer „border nodes“ PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Produktion von Dummy-Knoten • Ziel: „proper hierarchy“ • Lange Kanten werden in Folgen von Kantensegmenten und Dummy-Knoten zerlegt • Ausgangspunkt: „extended nesting graph“ PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Produktion von Dummy-Knoten • „nesting edges“ entfernen • Für alle Kanten ist ersichtlich, zwischen welchen Schichten sie verlaufen PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 gerichtetsein • Kanten, die gegen die einheitliche Richtung verlaufen, werden temporär umgedreht PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 (w1,w2) gehören, gibt es zwei Strategien • Kreuzungen zw. Kanten und Rechtecken vermeiden PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Produktion von Dummy-Knoten • Strategie 1:Kanten (w1,w2) verlaufen bevorzugt außerhalb von Compounds PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Produktion von Dummy-Knoten • Strategie 2:Kanten (w1,w2) verlaufen bevorzugt innerhalb von Compounds PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • Regel 1: Knoten eines Compound mit gleichem Rang müssen in ununterbrochener Folge innerhalb der Schicht angeordnet werden PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • Regel 2: Compounds dürfen nicht verflochten werden PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • Trotz Missachtung der Regeln ist die Barycenter-Methode ein guter Ausgangspunkt PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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(u1) < P*i(u2), dann ist zu erwarten, dass viele zu u1 gehörende Knoten links von zu u2 gehörenden positioniert sind PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • „reduced nesting tree“ Ti • Enthält nur Blätter v mit Rang i PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • Durchlauf, so dass die Kinder jedes inneren Knotens nach P*i(u) sortiert werden PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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“ PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
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 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Kreuzungsminimierung • Nun alle Schichten durchlaufen und Knoten innerhalb der Schichten entsprechend λO sortieren • Ergebnis: Compounds sind nicht mehr verflochten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Positionierung von Knoten & Kanten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Positionierung von Knoten & Kanten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund
Fragen? PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund