43
Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren So wenig wie möglich vom Ausgangsgraphen abweichen

Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Embed Size (px)

Citation preview

Page 1: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Constraints in orthogonal Graph Drawing

Thomas Rothvoß

Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen

Anzahl der Kantenknicke minimieren So wenig wie möglich vom Ausgangsgraphen abweichen

Page 2: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Inhalt des Vortrags

Allgemeiner Ansatz zum Orthogonalisieren: Topology-Shape-Metrics-Ansatz

Verschiedene Verfahren für den Shape-Schritt Tamassia: Graph mit max. Grad ≤ 4 Im Kandinsky-Modell: allgemeiner Graph Brandes, Eiglsperger, Kaufmann, Wagner:

zusätzliche Nebenbedingung

Page 3: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Topology-Shape-Metrics-AnsatzEin aus 3 Schritten bestehendes Verfahren, um einen Graphen zu orthogonalisieren:

1. Topology: Lege die Topologie des Graphens fest Planarisiere den Graphen

2. Shape: Lege die Form (bzw. das Aussehen) des Graphens fest Setze Winkel und Knicke

3. Metric: Bestimme die Metrik des Graphen Setze Kantenlängen und Knotengrößen

Page 4: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Schritt 1: Topology

Ergebnis: planare Repräsentation

Verändert die Anordnung der Graphelemente zueinander Wird auch Einbettung genannt

Beispiel:

Page 5: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Schritt 1: TopologyProblem: Was tun, wenn der Graph gar nicht planarisierbar ist?

Lösung: Ersetze Kantenkreuzungen durch neue Knoten

Ziel: Minimiere Anzahl einzufügender Knoten

Page 6: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Schritt 2: Shape

Lege Kantenknicke und Winkel zwischen den Kanten fest

Auch Orthogonalisierung genannt

Ziel: Minimiere Anzahl der Kantenknicke

Ergebnis: orthogonale Repräsentation

Page 7: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Schritt 3: Metric Bestimme die Länge der Kanten und die Größe der

Knoten Wird auch Kompaktierung genannt

Ziel (z.B.): Minimiere Fläche des Graphens

Ergebnis: orthogonale Gittereinbettung

Page 8: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Eigenschaften des Topology-Shape-Metrics-Ansatzes

Vorteil:Jeder Schritt kann separat angepasst/verbessert werden

Nachteil: Manchmal „verbaut“ ein Schritt eine bessere Lösung im nachfolgenden Schritt

Hier: Verfahren für den 2. Schritt, also das Orthogonalisieren

Page 9: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Tamassia‘s Algorithmus Für einen eingebetteten Graphen wird ein Flussnetzwerk

erstellt, in dem Kanten Kosten und Kapazitäten zugewiesen bekommen.

Knoten erhalten Supply-WertSupply > 0 Knoten muss Fluss in Stärke des Supply abgebenSupply < 0 Knoten muss Fluss in Stärke des Supply erhalten

Eine Kosteneinheit über einer Kante entspricht einem Kantenknick

Ein kostenminimaler Fluss liefert einen Graphen mit minimaler Anzahl von Kantenknicken

Page 10: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Erstellen des Netzwerkes

Einen Node für jeden Knoten und jede Fläche

Setze Supply Knotennode: Supply = 4 – Grad des Knotens Node einer inneren Fläche: Supply = 4 – Grad der Fläche Node der äußeren Fläche: Supply = –4 – Grad der Fläche

Verbinde benachbarte Flächen mit Kante der Kapazität ∞ und Kosten 1

Verbinde Knoten mit angrenzenden Flächen mit Kante der Kapazität ∞ und Kosten 0

Page 11: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Beispiel für Tamassia‘s Algorithmus

Page 12: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Beispiel für Tamassia‘s Algorithmus

1

1 2

1

-9

Alle Kanten haben Kapazität ∞

Kosten 1

Kosten 0

Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick einer der Kanten zwischen den beiden FlächenEin Fluss von x von einem Knotennode zu einem Flächennode entspricht einem Winkel von (x+1)90° zwischen Knoten und Fläche

2

2

0

Knotennode

Flächennode

Page 13: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Beispiel für Tamassia‘s Algorithmus

1

1 2

1

-9

Alle Kanten haben Kapazität ∞

Kosten 1

Kosten 0

Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick einer der Kanten zwischen den beiden FlächenEin Fluss von x von einem Knotennode zu einem Flächennode entspricht einem Winkel von (x+1)90° zwischen Knoten und Fläche

2

2

0

Knotennode

Flächennode

2

2

2

1

1

1

Page 14: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Nachteil von Tamassia‘s Modell Problem: In Tamassia‘s Modell sind Knoten mit Grad > 4 nicht erlaubt. Grund: In orthogonalisiertem Graphen wären 0° Winkel nötig. Aber ein Fluss von x über einen Knotennode entspricht einem Winkel von

(x+1)90°, also entspricht ein 0°-Winkel einem Fluss von -1

Negativer Fluss nicht erlaubt!

Lösung: Erweitere Modell, so dass Knoten mit Grad > 4 erlaubt sind und erstelle im Netzwerk Kanten in Gegenrichtung, so dass Fluss auch zurückfliessen kann

Page 15: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Das Kandinsky-ModellEigenschaft des Kandinsky-Modells:

Einem 0° Winkel lässt sich stets ein eindeutiger 270° Knick

zuordnen

oder

Verboten: Erlaubt:

Page 16: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Non-Empty-Face Eigenschaftder Kandinsky-Modelle

Problem: 3 x 0°-Winkel, aber nur 2 Knicke

Aber: Dieses Problem tritt nur bei dieser speziellen Art derleeren Fläche zwischen 3 Knoten auf.

Page 17: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Non-Empty-Face Eigenschaftder Kandinsky-Modelle

Problem: 3 x 0°-Winkel, aber nur 2 Knicke

Aber: Dieses Problem tritt nur bei dieser speziellen Art derleeren Fläche zwischen 3 Knoten auf.

LEERE FLÄCHEN VERBOTEN!!

Page 18: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Änderungen am NetzwerkAlso eigentlich: Fluss der Stärke 1 von Flächennode f zu Knotennode v Winkel zwischen e1 und e2 ist 0°

v

f

hg

1

1e 2e

Problem: Wenn der Winkel zwischen e1 und e2 0° ist, dann müssen wir erzwingen, dass entweder von g nach f ein Fluss geht (also die Kante e1 einen Knick macht) oder von h nach f ein Fluss geht (also die Kante e2 einen Knick macht).

Page 19: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

LösungDa ein 0° Winkel sowieso einen Knick einer

der beiden Kanten impliziert, lassen wir den Fluss

über diejenige Kante laufen, die einen „Kandinsky-

Knick“ erhält.

v

f

hg

1

1e 2e

Fluss von g nach v über Kante e1

e1 und e2 schließen 0-Winkel ein, e1 macht Knick

v

f

hg

1

1e 2e

Fluss von h nach v über Kante e2

e1 und e2 schließen 0-Winkel ein, e2 macht Knick

Page 20: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Ausschnitt Kandinsky-Netzwerk

v

1e 2e

3e

Page 21: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Ausschnitt Kandinsky-Netzwerk

v

f

hg

1e 2e

3eAlle Kanten haben Kapazität 1

Kosten -CKosten 0Kosten 2C+1

Hilfsknoten

Page 22: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Kandinsky-Netzwerk – Effekt 1

v

f

hg

1e 2e

3e

C

2 1C

Fluss von g über e1 nach v mit Kosten von 2C+1-C-C = 1 e1 und e2 schließen 0°-Winkel ein, e1 macht Knick

Effekt: Kein Fluss von f über e1 nach v findet statt, denn dieser wäre mit Kosten 2c+1 zu teuer

v

1e2e

3e

Ergebnis:

C

0vg

f

1 -1

Interpretation:

Page 23: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Kandinsky-Netzwerk – Effekt 2

v

f

hg

1e 2e

3e

Angegebener Fluss in unserer Hilfskonstruktion entspricht von der Semantik her einem Fluss von -2 von v nach f.Aber Fluss von x entspricht Winkel von (x+1)90°, also hier -90°.Dieser illegale Winkel ist über die Kantenkapazität verboten.

Kapazitätüberschritten

vg

f

1 -2

Interpretation:

h1

Page 24: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Algorithmus von Brandes, Eiglsperger, Kaufmann, Wagner

Gegeben: Eine „Skizze“ des Graphens

Grund z.B.: Skizze ist vom Benutzer mit einem Editor erstellt Die Knoten haben vorgegebene relative Positionen

zueinander

Ziel: Orthogonalisiere den Graphen unter den Bedingungen Möglichst wenige Knicke Weiche möglichst wenig von der Skizze ab

Page 25: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Grobes Vorgehen

..runde Winkel auf Vielfache von 90°

Ausgangsskizze

..dann optimiere Graphen

Page 26: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

DatenstrukturenGegeben sind: Eingebetteter, planarer Graph G=(V,E,F) Menge von Flächen: F Orthogonale Form: Q

Q(f) liefert für die Fläche f eine Liste von Tupeln (ei,ai,bi) Q(f,i): i-tes Tupel von Q(f) a(Q,f,i): Winkel in Q(f,i) b(Q,f,i): Biegungseintrag in Q(f,i)

1f1 21

3 4 1

( , ,90), ( ,00,90),( )

( , ,90), ( , ,90), ( , ,360)

e eQ f

e e e

1e2e

3e

4e

1

1

( , ,5) 360

( , , 2) 00

a Q f

b Q f

Page 27: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Terme der Zielfunktion

Anzahl der Kantenknicke:

Anzahl der Knicke in Kante

( , , ) ( )

Anzahl Knicke in den Kanten umeine Fläche herum

1( )

2

e

f F e a b Q f

f

B Q b

1f

2fWarum Faktor ½?

Die Summenformel zählt jeden

Knick doppelt.

Page 28: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Terme der Zielfunktion

Abweichungen der Winkel zwischen orthogonalen

Formen Q und S

1

( , ) ( , , ) ( , , )Af F i f

Q S a S f i a Q f i

f

1e

2e 3e

S: Q:

f

1e

3e

( , ) 180A Q S

2e

90180

180 270

Page 29: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Terme der Zielfunktion

Abweichung der Kantenknicke

1

( , ) ( ( , , ), ( , , ))Bf F i f

Q S b S f i b Q f i

1 2( , )b b gibt dabei die Anzahl an Lösch- und Einfügeopera-tionen, um aus dem String b1 den String b2 zu machen

1 1b 2 10b

1 2( , ) 1b b

Page 30: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Zielfunktion

Minimiere die ZielfunktionErhöhung der Anzahlder KnickeÄnderung der Winkel Änderung der Kantenknicke

LesbarkeitStabilität

( | ) ( , ) ( , ) ( ( ) ( ))A BD Q S Q S Q S B Q B S

α,β,γ: geeignet zu wählende Gewichtungsfaktoren

Änderung eines Winkels: Kosten α

Neuer Knick: Kosten β+γ Knick entfernen: Kosten β-γ

Page 31: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Wahl der Gewichtungsfaktoren

Ausgangsgraph:

Ergebnis mit

α und β klein, γ groß:

Gewicht auf Lesbarkeit

Ergebnis mit

β groß, α mittelgroß, γ klein:

Gewicht auf Stabilität

Page 32: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an Knoten-Nodesf

hg

1e 2e

3e

Page 33: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an Knoten-Nodes

1

f

hg

1e 2e

3eKosten 0, Kapazität 3

0

1

0

Flussstärke

Supply

Page 34: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an Knoten-Nodes

1

f

hg

1e 2e

3eKosten 0, Kapazität 3

Kosten -CKosten 0Kosten 2C+1

Page 35: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an Knoten-Nodes

0

f

hg

1e 2e

3e

Knoten erhalten als Supply denjenigen Wert, der dem den Winkel erzeugenden Fluss in der Skizze entspricht. Veränderung eines Winkels verursacht Kosten von α

0

1

0

Kosten 0, Kapazität 3

Kosten -CKosten 0Kosten 2C+1

Kosten α, Kapazität ∞

Page 36: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an regulären Knicken

f

g

Page 37: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Modifikation an regulären Knicken

f

g

2

Supply von 2

Kapazität 1Kosten β-γ

Kapazität 2Kosten 0

Fluss von 2 von Knoten zu g Winkel besteht weiterhin 270°, Kosten 0Fluss von 1 von Knoten nach f Knick wird entfernt mit Kosten β-γ

Supply je um 1 gesenkt

Page 38: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Beispiel

Beispiel ER-Diagramm aus dem verwendeten Paper

Skizze: Orthogonalisierter Graph:

Page 39: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Nachteil des VerfahrensProbleme mit baumartigen, nur einfach zusammen-hängenden Graphen:Veränderung eines einzelnen Winkels kann das Aussehendes Graphens komplett verändern.

Page 40: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Nachteil des VerfahrensProbleme mit baumartigen, nur einfach zusammen-hängenden Graphen:Veränderung eines einzelnen Winkels kann das Aussehendes Graphens komplett verändern.

Page 41: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Lösung des ProblemsFüge einen Rahmen ein, der mit den „äußeren“ Knotenverbunden wird. Ein äußerer Knoten ist dabei ein Knoten,der auf der konvexen Hülle des Graphen liegt.

Page 42: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Zusammenfassung Allgemeiner Ansatz zum Orthogonalisieren:

Topology = Planarisieren

Shape = Winkel + Knicke festlegen

Metrics = Kantenlängen festlegen

Verschiedene Verfahren für den Shape-Schritt Tamassia: Graph mit max. Grad ≤ 4 Min-Cost-Flow Kandinsky-Modell: Min-Cost-Flow mit

negativen Kosten Brandes, Eiglsperger, Kaufmann, Wagner:

Min-Cost-Flow mit eingearbeiteten Strafkosten für Abweichen von Skizze

Page 43: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren

Quellen

Sketch-Driven Orthogonal Graph Drawing,Ulrik Brandes, Markus Eiglsperger, Michael Kaufmann, Dorothea Wagner

erschienen: Graph Drawing 2002

Paper unter:http://www.inf.uni-konstanz.de/~brandes/publications

Automatisches Layout vonUML-Klassendiagrammen, Diplomarbeit, Martin Siebenhaller, Uni Tübingen