35
Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms Karl-Friedrich Böhringer, Frances Newbery Paulisch: An interactive constraint-based system for drawing graphs

Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Embed Size (px)

Citation preview

Page 1: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints inGraph Drawing 1

Jasmin Smula

Kathy Ryall, Joe Marks, Stuart Shieber:Using constraints to achieve stability in automatic graph layout algorithms

Karl-Friedrich Böhringer, Frances Newbery Paulisch:An interactive constraint-based system for drawing graphs

Page 2: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 2

Inhalt

• Constraints

• Nutzung von Constraints, um stabile Graphen zu erhalten

• Editor zum automatischen Zeichnen von Graphen

Page 3: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 3

Constraints

• vom Benutzer formulierte oder vom Algorithmus automatisch generierte Nebenbedingungen

• Aufgaben:– Korrektheit garantieren– Aussagekraft erhöhen

Page 4: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 4

Problemstellung

Zwei Nachteile bei Berechnung automatischer Layouts von Graphen:

1. Ohne Eingreifen des Benutzers kann der Algorithmus nur syntaktisch korrekte Graphen erstellen

2. Nach einer Änderung des Graphen berechnet der Algorithmus ein komplett neues Layout, ohne das alte zu berücksichtigen

Benutzer verliert schnell die Orientierung

Page 5: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 5

Problemstellung

Page 6: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 6

Problemstellung

Page 7: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 7

Problemstellung

• Ansatz: Probleme durch Einsatz von Constraints lösen

• Methode, wie Benutzer-spezifizierte Constraints zu automatischen Graphen-Layout-Algorithmen hinzugefügt werden können

• Constraints, die durch das aktuelle Layout gegeben sind, bei der Berechnung des neuen Layouts berücksichtigen

Page 8: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 8

Stabilität: Definitionen

• stabiler Graph:

Graph, dessen Layout sich nicht stark ändert, wenn es neu berechnet wird

• strukturelle Stabilität:

Layout erfüllt die vom Benutzer angegebenen Constraints

• dynamische Stabilität:

Unterschied zwischen aufeinander folgenden Layouts des Graphen minimal

Page 9: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 9

Aufgabe

• Gewünscht:

kleine Strukturänderung kleine Layout-Änderungen (Orientierung bewahren)

• Voraussetzung: Algorithmus zur Berechnung automatischer Graphenlayouts vorhanden

• Mechanismus, um Algorithmus so zu ergänzen, dass er Constraints berücksichtigt

Page 10: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 10

Systemarchitektur

Anwendung

Graphenlayout-Algorithmus

3D-Constraint-Manager

Constraint Manager

Constraint Manager

Constraint Manager

Eindimensionale Constraints

Eindimensionale Constraints

Eindimensionale Constraints

x-Koordinate y-Koordinate z-Koordinate

Page 11: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 11

Systemarchitektur

1. Constraints für einzelne Dimensionen– Absolute oder relative Positionierung, Clusters– Formulierung von Constraints: Verwendung

ihrer Positionen im 2- oder 3-dimensionalen Koordinatensystem

2. Constraint-Manager für einzelne Dimensionen– Liste aller Constraints verwalten– Bewertung der Menge der Constraints und

diese widerspruchsfrei halten

Page 12: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 12

Systemarchitektur

3. 3D-Constraint-Manager– Schnittstellenmodul– kombiniert die Constraints verschiedener

Dimensionen– Übersetzung von drei- in eindimensionale

Constraints– Interface zum Graphenlayout-Algorithmus

4. Graphenlayout-Algorithmus

5. Anwendung

Page 13: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 13

Sugiyamas Algorithmus

1. Topologische Sortierung:

Knoten in Ebenen einteilen

2. Unterteilung von langen Kanten:

Kanten, die mehr als eine Ebene überbrücken, werden durch mehrere kurze Kanten ersetzt

3. Barizentrische Anordnung:

Kantenkreuzungen zwischen benachbarten Ebenen minimieren

4. Feineinstellung:

Bestimmen der absoluten Positionen v. Knoten

Page 14: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 14

Sugiyamas Algorithmus

Ausgangsgraph Ebeneneinteilung Kanten kürzen

Kreuzungen minimieren Feineinstellung

Page 15: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 15

Integrieren der Constraints für strukturelle Stabilität

• Phase 1:– für jede Kante: Startknoten über Zielknoten– für Kanten innerhalb einer Ebene: Start- und

Endknoten solcher Kanten direkte Nachbarn

• Phase 2:– zwei Knoten auf derselben vertikalen Linie:

alle Zwischenknoten dieselbe x-Koordinate

Page 16: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 16

Integrieren der Constraints für strukturelle Stabilität

• Phase 3:– aus barizentrischer Anordnung resultierende

Constraints

• Phase 4:– relative Ordnung festgelegt x-Koordinaten

der Knoten bestimmen– Knotenpositionen in vorigen Ebenen

berücksichtigen

Page 17: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 17

Integrieren der Constraints für dynamische Stabilität

• nach jedem automatischen Layout: Einfügen zusätzlicher Constraints

• Nutzeränderung Constraints in näherer Umgebung der Änderungen abschwächen

• Graph wird in veränderten Bereichen flexibel• nähere Umgebung: Knoten, die von der

Änderung direkt betroffen sind, und Knoten, die eine bestimmte maximale Distanz zu diesen Knoten haben

Page 18: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 18

Integrieren der Constraints für dynamische Stabilität

• Zusätzliche Constraints:– Ebene jedes Knotens = Ebene im aktuellen

Layout – Reihenfolge der Knoten innerhalb einer

Ebene = aktuelle Reihenfolge• Nach Nutzeränderung werden flexible Knoten

von diesen Constraints befreit• Benötigte Zeit = Zeit zur Berechnung eines

komplett neuen Layouts

Page 19: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 19

GLIDE

• „Graph Layout Interactive Diagram Editor“• Benutzer: ungefähres Layout der Knoten• Computer: setzt Anforderungen in eine Menge

von Constraints um• Constraints: Terme in einem physikalischen

Modell• Berechnung der Positionen der graphischen

Objekte durch physikalische Simulation

Page 20: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 20

GLIDE-Interface

Page 21: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 21

Funktionsweise von GLIDE

• Für jeden Constraint mehrere virtuelle Federn zwischen Knoten bzw. Kanten

• virtuelle Kräfte, die auf die Knoten wirken, beeinflussen deren Position im Graphen

• Energieminimierung durch physikalische Simulation

• Simulation wird animiert

Page 22: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 22

Hooksches Gesetz

• Federn folgen dem Hookschen Gesetz• Hooksches Gesetz:

Kraft einer Feder ist proportional zu ihrer Auslenkung:

F = D · s

F = auf die Feder wirkende Kraft

D = Federkonstante

s = Weg, um den die Feder gedehnt wird

Page 23: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 23

Eigenschaften von Federn

• Federkonstante:

korreliert die Auslenkung einer linearen Feder mit der daraus resultierenden Zug- oder Druckkraft

• Restlänge:

Länge, ab der sich die Feder nicht mehr zusammenzieht, wenn sie gedehnt wird, bzw. nicht mehr auseinanderdrückt, wenn sie gestaucht wird

Page 24: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 24

Constraints

• Syntaktische Constraints:– garantieren Wohlgeformtheit des Graphen– zusätzliche Kräfte werden von GLIDE

automatisch eingefügt

• Semantische Constraints (VOFs):– dienen der Überschaubarkeit und

Aussagekraft des Graphen

Page 25: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 25

Constraints

Syntaktische:

• Node-node-overlap

• Node-edge-overlap

Page 26: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 26

Constraints

Semantische:

• Alignment • Even Spacing

• Sequence • Cluster

Page 27: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 27

Constraints

Semantische:

• T-Shape • Symmetry

• Zone • Hub-Shape

Page 28: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 28

Realisierung syntaktischer Constraints

Node-node overlap:• Knoten sollen sich nicht überschneiden:

Zwischen jedem Knotenpaar Feder einfügen• Restlänge = minimale Distanz zwischen den

Knoten• Federkonstante = 0, wenn die Feder gedehnt

wird

Feder übt nur dann Kraft aus, wenn sich die beiden Knoten überlappen

Page 29: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 29

Realisierung semantischer Constraints

Alignment:• Knotenmenge soll auf einer Parallelen zur x-

oder y-Achse liegen• es wird eine Gerade berechnet, die parallel zur

gewählten Achse verläuft und durch den Schwerpunkt der Knoten führt

• dann wird eine Feder mit Restlänge 0 zwischen jedem Knoten und dieser Geraden angebracht.

Page 30: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 30

Realisierung semantischer Constraints

Sequence:• Knoten sollen in einer bestimmten Reihenfolge

entlang einer Achse angeordnet werden• Federn mit variabler Federkonstante (!) werden

zwischen benachbarten Knoten angebracht• Federkonstante gleich Null, wenn Knoten in

richtiger Reihenfolge, sonst positiv

Page 31: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 31

Sonstiges

• andere VOFs:– Anchor:

Um einen Knoten an einer Stelle festzuhalten– Frame (kein wirklicher Constraint):

Menge von Knoten wird umrahmt

• Phantomknoten

• geknickte Kanten

Page 32: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 32

Algorithmus zur Berechnung der Position und des Impulses aller Knoten

solange kinetische Energie über Kmin:

• Setze t = t + Δt

• für alle Knoten ni berechne Fi

• Dämpfungskonstante γ berechnen

• für alle ni:

– pi(t) aus pi(t - Δt), Fi und γ berechnen

– falls ni verankert: xi(t) = xi(t - Δt),

sonst xi(t) aus xi(t - Δt) und pi(t) berechnen

• wenn nötig, Bildschirm updaten

Page 33: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 33

Ergebnis

• Die physikalische Simulation ist intuitiv und vorhersehbar

• GLIDE ist nicht dafür gedacht, global optimale Lösungen zu finden

• Computer ist verantwortlich für lokale Optimierung, der Benutzer für globale Kontrolle

Page 34: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 34

Zusammenfassung

• vom Benutzer eingegebene Constraints wichtig für Aussagekraft von Graphen

• Mechanismus zum Einbetten von Constraints in einen Algorithmus zur Berechnung von Layouts

• zum Erreichen von Stabilität altes Layout bei Berechnung des neuen Layouts einbeziehen

• GLIDE, Editor zum automatischen Zeichnen von Graphen: virtuelle Federn für Realisierung von Constraints

Page 35: Constraints in Graph Drawing 1 Jasmin Smula Kathy Ryall, Joe Marks, Stuart Shieber: Using constraints to achieve stability in automatic graph layout algorithms

Constraints in GD 1 35

…noch Fragen?