Compound graphen und hierarchisches layout
Download
1 / 36

Compound Graphen und hierarchisches Layout - PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Compound Graphen und hierarchisches Layout' - kalkin


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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

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


Compound graphen
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
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 t1
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
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 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 schichtzuweisung1
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
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
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


Schichtzuweisung1
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


Schichtzuweisung2
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


Schichtzuweisung3
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


Schichtzuweisung4
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


Schichtzuweisung5
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


Schichtzuweisung6
Schichtzuweisung

  • Korrektur der Ränge oberer „border nodes“

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


Produktion von dummy knoten
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 knoten1
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 knoten2
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 knoten3
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 knoten4
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 knoten5
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
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


Kreuzungsminimierung1
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


Kreuzungsminimierung2
Kreuzungsminimierung

  • Regel 2: Compounds dürfen nicht verflochten werden

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


Kreuzungsminimierung3
Kreuzungsminimierung

  • Trotz Missachtung der Regeln ist die Barycenter-Methode ein guter Ausgangspunkt

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


Kreuzungsminimierung4
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


Kreuzungsminimierung5
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


Kreuzungsminimierung6
Kreuzungsminimierung

  • „reduced nesting tree“ Ti

    • Enthält nur Blätter v mit Rang i

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


Kreuzungsminimierung7
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


Kreuzungsminimierung8
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


Kreuzungsminimierung9
Kreuzungsminimierung

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


Kreuzungsminimierung10
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


Kreuzungsminimierung11
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
Positionierung von Knoten & Kanten

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


Positionierung von knoten kanten1
Positionierung von Knoten & Kanten

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


Fragen

Fragen?

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


ad