27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und...

36
27.10.2005 PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund 1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of Compound Directed Graphs Technical Report A/03/96 Hendrik Stroh

Transcript of 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und...

Page 1: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Compound Graphen und

hierarchisches Layout

Basierend auf

Sander, G.: Layout Of Compound Directed Graphs

Technical Report A/03/96

Hendrik Stroh

Page 2: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Compound 1

Compound 1.2

C. 1.2.1

Compound 1.1C. 1.1.2

C. 1.1.1

D

A

B

C

G

E

F

H

Page 3: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

E

G

F

H C. 1.2

C. 1.1

C. 1.2.1

D

C. 1.1.1

B A

C

C. 1.1.2 C. 1

Page 4: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

C. 1

C. 1.1 C. 1.2

C. 1.1.1 C. 1.1.2 C. 1.2.1

C

D G H

BA E F

Page 5: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 6: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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)

z

Page 7: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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)

Page 8: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Phasen des Verfahrens von Sander1. 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 Berechnung absoluter Koordinaten

Page 9: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

2

1

i

...

...

...

n

...

...

...

R(v)=i

Page 10: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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)Rmin(a)

Rmin(b)

R(v)

Rmax(b)Rmax(a)

ab

v

Page 11: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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(+))

ab

cd

ef

} 2k

b(+)

b(-)

2(2k+1)

2k+1

Page 12: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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“

a

b c d

e

f

g

...

...

...

c d e f gba ... ... ...

r(-)

r(+)

Page 13: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

a

b c d

e

f

g

...

...

...

c d e f gba ... ... ...

r(-)

r(+)

Page 14: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

a

b c d

e

f

g

...

...

...

a c d e f gb ... ... ...

r(-)

r(+)

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

Page 15: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Schichtzuweisung

Korrektur der Ränge oberer „border nodes“

Page 16: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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“

... ... ...

Page 17: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

... ... ...

Page 18: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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 gerichtet

sein

Kanten, die gegen die einheitliche Richtung verlaufen, werden temporär umgedreht

u1

u2

Page 19: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 20: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

...

Page 21: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 22: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 23: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 24: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Kreuzungsminimierung

Regel 2: Compounds dürfen nicht verflochten werden

Page 25: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Kreuzungsminimierung

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

1 2 3 3 5 5,5 6

12 Kreuzungen 2 Kreuzungen

Page 26: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 27: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 28: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

J K

HG I

E FDCBA

11 6

2 7 10

1 8 9 3 5 4

P*=6N=3

P*=4N=3

P*=5,4N=9

P*=6N=11

J K

H I

E FD

A F E K H CG D B I J

Page 29: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

J K

H I

E FDEFD

6 11

7 10

3 4 5 1 8 9

4 6

5,4

11

K K

H I

B CA

G E A B C ID F H K J

G2

Page 30: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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“

Page 31: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Kreuzungsminimierung

Subgraph ordering graphAusgangssituation

Nesting tree mit „ist links von“-Kanten

......

...

Page 32: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Subgraph ordering graph mit P*

1

2,28

1

4

4,75

5,6 7

7

Azykl. subgraph ordering graph mit λO

1

3

2

4

5

6 8

7

Page 33: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

27.10.2005 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

Page 34: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Positionierung von Knoten & Kanten

left border segments upper border nodes right border segments

lower border nodes

Page 35: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Positionierung von Knoten & Kanten

Page 36: 27.10.2005PG 478 - OGDF: An Open Graph Drawing Framework - Uni Dortmund1 Compound Graphen und hierarchisches Layout Basierend auf Sander, G.: Layout Of.

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

Fragen?