Upload
irmgard-stroh
View
110
Download
0
Embed Size (px)
Citation preview
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
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
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
Schritt 1: Topology
Ergebnis: planare Repräsentation
Verändert die Anordnung der Graphelemente zueinander Wird auch Einbettung genannt
Beispiel:
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
Schritt 2: Shape
Lege Kantenknicke und Winkel zwischen den Kanten fest
Auch Orthogonalisierung genannt
Ziel: Minimiere Anzahl der Kantenknicke
Ergebnis: orthogonale Repräsentation
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
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
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
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
Beispiel für Tamassia‘s Algorithmus
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
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
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
Das Kandinsky-ModellEigenschaft des Kandinsky-Modells:
Einem 0° Winkel lässt sich stets ein eindeutiger 270° Knick
zuordnen
oder
Verboten: Erlaubt:
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.
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!!
Ä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).
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
Ausschnitt Kandinsky-Netzwerk
v
1e 2e
3e
Ausschnitt Kandinsky-Netzwerk
v
f
hg
1e 2e
3eAlle Kanten haben Kapazität 1
Kosten -CKosten 0Kosten 2C+1
Hilfsknoten
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:
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
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
Grobes Vorgehen
..runde Winkel auf Vielfache von 90°
Ausgangsskizze
..dann optimiere Graphen
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
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.
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
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
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 β-γ
Wahl der Gewichtungsfaktoren
Ausgangsgraph:
Ergebnis mit
α und β klein, γ groß:
Gewicht auf Lesbarkeit
Ergebnis mit
β groß, α mittelgroß, γ klein:
Gewicht auf Stabilität
Modifikation an Knoten-Nodesf
hg
1e 2e
3e
Modifikation an Knoten-Nodes
1
f
hg
1e 2e
3eKosten 0, Kapazität 3
0
1
0
Flussstärke
Supply
Modifikation an Knoten-Nodes
1
f
hg
1e 2e
3eKosten 0, Kapazität 3
Kosten -CKosten 0Kosten 2C+1
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 ∞
Modifikation an regulären Knicken
f
g
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
Beispiel
Beispiel ER-Diagramm aus dem verwendeten Paper
Skizze: Orthogonalisierter Graph:
Nachteil des VerfahrensProbleme mit baumartigen, nur einfach zusammen-hängenden Graphen:Veränderung eines einzelnen Winkels kann das Aussehendes Graphens komplett verändern.
Nachteil des VerfahrensProbleme mit baumartigen, nur einfach zusammen-hängenden Graphen:Veränderung eines einzelnen Winkels kann das Aussehendes Graphens komplett verändern.
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.
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
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