Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit...
-
Upload
irmgard-stroh -
Category
Documents
-
view
109 -
download
0
Transcript of Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit...
![Page 1: Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/1.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/2.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/3.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/4.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/5.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/6.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/7.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/8.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/9.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/10.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/11.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/12.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/13.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/14.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/15.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/16.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/17.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/18.jpg)
Ä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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/19.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/20.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/21.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/22.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/23.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/24.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/25.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/26.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/27.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/28.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/29.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/30.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/31.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/32.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/33.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/34.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/35.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/36.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/37.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/38.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/39.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/40.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/41.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/42.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6649795902118bc1a0/html5/thumbnails/43.jpg)
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