compound graphen und hierarchisches layout
Download
Skip this Video
Download Presentation
Compound Graphen und hierarchisches Layout

Loading in 2 Seconds...

play fullscreen
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