1 / 36

Compound Graphen und hierarchisches Layout

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

kalkin
Download Presentation

Compound Graphen und hierarchisches Layout

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. Schichtzuweisung • Korrektur der Ränge oberer „border nodes“ PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. Produktion von Dummy-Knoten • Strategie 2:Kanten (w1,w2) verlaufen bevorzugt innerhalb von Compounds PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  22. 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

  23. 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

  24. Kreuzungsminimierung • Regel 2: Compounds dürfen nicht verflochten werden PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  25. Kreuzungsminimierung • Trotz Missachtung der Regeln ist die Barycenter-Methode ein guter Ausgangspunkt PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  26. 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

  27. 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

  28. Kreuzungsminimierung • „reduced nesting tree“ Ti • Enthält nur Blätter v mit Rang i PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  29. 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

  30. 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

  31. Kreuzungsminimierung PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  32. 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

  33. 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

  34. Positionierung von Knoten & Kanten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  35. Positionierung von Knoten & Kanten PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

  36. Fragen? PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund

More Related