Eigenschaft des Kandinsky

Werbung
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-Ansatz
Ein 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
 Verändert die Anordnung der Graphelemente zueinander
 Wird auch Einbettung genannt
Beispiel:

 Ergebnis: planare Repräsentation
Schritt 1: Topology
Problem: 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-Wert
Supply > 0  Knoten muss Fluss in Stärke des Supply
abgeben
Supply < 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
Kosten 1
-9
2
Kosten 0
Alle Kanten haben
Kapazität ∞
1
Knotennode
0
Flächennode
1
2
1
2
Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick
einer der Kanten zwischen den beiden Flächen
Ein Fluss von x von einem Knotennode zu einem Flächennode entspricht
einem Winkel von (x+1)90° zwischen Knoten und Fläche
Beispiel für Tamassia‘s Algorithmus
Kosten 1
2
-9
2
2
1
Kosten 0
Alle Kanten haben
Kapazität ∞
1
Knotennode
1
0
Flächennode
1
2
2
1
2
1
Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick
einer der Kanten zwischen den beiden Flächen
Ein Fluss von x von einem Knotennode zu einem Flächennode entspricht
einem Winkel von (x+1)90° zwischen Knoten und Fläche
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-Modell
Eigenschaft des Kandinsky-Modells:
Einem 0° Winkel lässt sich stets ein eindeutiger 270° Knick
zuordnen
Verboten:
Erlaubt:
oder
Non-Empty-Face Eigenschaft
der Kandinsky-Modelle
Problem: 3 x 0°-Winkel, aber nur 2 Knicke
Aber: Dieses Problem tritt nur bei dieser speziellen Art der
leeren Fläche zwischen 3 Knoten auf.
Non-Empty-Face Eigenschaft
der Kandinsky-Modelle
Problem: 3 x 0°-Winkel, aber nur 2 Knicke
Aber: Dieses Problem tritt nur bei dieser speziellen Art der
leeren Fläche zwischen 3 Knoten auf.
 LEERE FLÄCHEN VERBOTEN!!
Änderungen am Netzwerk
Also eigentlich:
Fluss der Stärke 1 von Flächennode f zu Knotennode v
 Winkel zwischen e1 und e2 ist 0°
e1
e2
f
1
v
g
h
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ösung
Da ein 0° Winkel sowieso einen Knick einer
der beiden Kanten impliziert, lassen wir den Fluss
über diejenige Kante laufen, die einen „KandinskyKnick“ erhält.
Fluss von g nach v über Kante e1
 e1 und e2 schließen 0-Winkel ein,
e1 macht Knick
e1
f
Fluss von h nach v über Kante e2
 e1 und e2 schließen 0-Winkel ein,
e2 macht Knick
e1
e2
f
1
1
v
g
e2
v
h
g
h
Ausschnitt Kandinsky-Netzwerk
e2
e1
v
e3
Ausschnitt Kandinsky-Netzwerk
f
e2
e1
v
g
h
Alle Kanten haben Kapazität 1
Kosten -C
Kosten 0
Kosten 2C+1
e3
Hilfsknoten
Kandinsky-Netzwerk – Effekt 1
f
Interpretation:
e2
e1
f
C
C
1
g
0
-1
v
v
2C  1
Ergebnis:
g
h
e3
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
e2
e1
v
e3
Effekt: Kein Fluss von f über e1 nach v findet statt, denn dieser wäre mit
Kosten 2c+1 zu teuer
Kandinsky-Netzwerk – Effekt 2
f
e2
e1
Interpretation:
f
1
Kapazität
überschritten
g
v
g
-2
v
h
e3
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.
1
h
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
Ausgangsskizze
..runde Winkel auf Vielfache von 90°
..dann optimiere Graphen
Datenstrukturen
Gegeben 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)
 (e1 ,  ,90),(e2 ,00,90),

Q( f1 )  

(
e
,

,90),(
e
,

,90),(
e
,

,360)
4
1
 3

a(Q, f1 ,5)  360
b(Q, f1 , 2)  00
f1
e3
e2
e1
e4
Terme der Zielfunktion
Anzahl der Kantenknicke:
1
B(Q)   
2 f F ( e,a ,b )Q ( f )
Anzahl der Knicke in Kante e
b
Anzahl Knicke in den Kanten um
eine Fläche f herum
Warum Faktor ½?
Die Summenformel zählt jeden
Knick doppelt.
f2
f1
Terme der Zielfunktion
Abweichungen der Winkel zwischen orthogonalen
Formen Q und S
 A (Q, S )  

a(S , f , i)  a(Q, f , i)
f F 1i  f
S:
Q:
f
f
e3
e2
180
90
e1
180
e3
e2
270
  A (Q, S )  180
e1
Terme der Zielfunktion
Abweichung der Kantenknicke
 B (Q, S )  
 (b(S , f , i), b(Q, f , i))
f F 1i  f
(b1 , b2 )
gibt dabei die Anzahl an Lösch- und Einfügeoperationen, um aus dem String b1 den String b2 zu machen
b2  10
b1  1
 (b1 , b2 )  1
Zielfunktion
Minimiere die Zielfunktion
Änderung der Winkel
Erhöhung der Anzahl
der Knicke
Änderung der Kantenknicke
D(Q | S )     A (Q, S )   
 B (Q, S )
   ( B(Q)  B( S ))
Lesbarkeit
Stabilität
α,β,γ: geeignet zu wählende Gewichtungsfaktoren
Änderung eines Winkels:
Neuer Knick:
Knick entfernen:
Kosten α
Kosten β+γ
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-Nodes
f
e1
e2
g
h
e3
Modifikation an Knoten-Nodes
f
Flussstärke
1
e1
Supply
e2
1
0
0
g
h
e3
Kosten 0,
Kapazität 3
Modifikation an Knoten-Nodes
f
e1
e2
1
g
h
e3
Kosten 0,
Kapazität 3
Kosten -C
Kosten 0
Kosten 2C+1
Modifikation an Knoten-Nodes
f
1
e1
e2
0
0
0
g
h
e3
Knoten
erhalten als Supply denjenigen Wert,
der dem den Winkel erzeugenden Fluss in
der Skizze entspricht.
 Veränderung eines Winkels verursacht
Kosten von α
Kosten α,
Kapazität ∞
Kosten 0,
Kapazität 3
Kosten -C
Kosten 0
Kosten 2C+1
Modifikation an regulären Knicken
g
f
Modifikation an regulären Knicken
g
Supply von 2
Kapazität 2
Kosten 0
2
Kapazität 1
Kosten β-γ
f
Supply je um 1
gesenkt
Fluss von 2 von Knoten zu g  Winkel besteht weiterhin 270°, Kosten 0
Fluss von 1 von Knoten nach f  Knick wird entfernt mit Kosten β-γ
Beispiel
Skizze:
Orthogonalisierter Graph:
Beispiel ER-Diagramm aus dem verwendeten Paper
Nachteil des Verfahrens
Probleme mit baumartigen, nur einfach zusammenhängenden Graphen:
Veränderung eines einzelnen Winkels kann das Aussehen
des Graphens komplett verändern.
Nachteil des Verfahrens
Probleme mit baumartigen, nur einfach zusammenhängenden Graphen:
Veränderung eines einzelnen Winkels kann das Aussehen
des Graphens komplett verändern.
Lösung des Problems
Füge einen Rahmen ein, der mit den „äußeren“ Knoten
verbunden 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 von
UML-Klassendiagrammen,
Diplomarbeit, Martin Siebenhaller, Uni Tübingen
Herunterladen