constraints in graph drawing 1 jasmin smula kathy ryall, joe marks, stuart shieber: using...

Post on 05-Apr-2015

105 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Constraints in GD 1 2

Inhalt

• Constraints

• Nutzung von Constraints, um stabile Graphen zu erhalten

• Editor zum automatischen Zeichnen von Graphen

Constraints in GD 1 3

Constraints

• vom Benutzer formulierte oder vom Algorithmus automatisch generierte Nebenbedingungen

• Aufgaben:– Korrektheit garantieren– Aussagekraft erhöhen

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

Constraints in GD 1 5

Problemstellung

Constraints in GD 1 6

Problemstellung

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

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

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

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

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

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

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

Constraints in GD 1 14

Sugiyamas Algorithmus

Ausgangsgraph Ebeneneinteilung Kanten kürzen

Kreuzungen minimieren Feineinstellung

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

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

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

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

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

Constraints in GD 1 20

GLIDE-Interface

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

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

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

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

Constraints in GD 1 25

Constraints

Syntaktische:

• Node-node-overlap

• Node-edge-overlap

Constraints in GD 1 26

Constraints

Semantische:

• Alignment • Even Spacing

• Sequence • Cluster

Constraints in GD 1 27

Constraints

Semantische:

• T-Shape • Symmetry

• Zone • Hub-Shape

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

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.

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

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

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

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

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

Constraints in GD 1 35

…noch Fragen?

top related