Seminarthema:

Werbung
Methoden zur Visualisierung
semi-hierarchischer Graphen
Projektgruppe Intelligente Datenbanken
Leyla Didem Yesilirmak
22.07.2003
Überblick
1. Einführung
2. Abhängigkeitsgraph
2.1. Darstellung von Relationen als Knoten
2.2. Darstellung von Abhängigkeiten als Kanten
3. Visualisieren des Abhängigkeitsgraphen
3.1 Reduzierung von Kantenüberschneidungen
3.2 Berechnung der x-Positionen von Knoten
3.3 Berechnung der y-Positionen von Knoten
3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
3.5 Reduzierung von Überschneidungen zwischen Kanten und
Knoten
3.6 Platzierung von Beschriftungen
4. Verfahren von Sugiyama
5. Zusammenfassung
2
1. Einführung
Wie kommt der Abhängigkeitsgraph zustande?
Regelmenge:
p hängt von q und r ab
p (X,Y) ← q (X,Y) , r (X,Y).
q (X,Y) ← s (X,Y,Z).
r (Y,X) ← t (X,Y), not w (Y).
p
zugehöriger Abhängigkeitsgraph :
abgeleitet Relation
Schicht 2
q
r
Schicht 1
not
Basisrelation
s
t
w
Schicht 0
3
1.Einführung
Motivation
Graphen mit weniger als zehn Knoten lassen sich relativ einfach
von Hand zeichnen. Falls jedoch größere Graphen mit hundert
oder mehr Knoten visualisiert werden sollen, so ist dies nur
automatisiert möglich.
Im allgemeinen kann man unendlich viele verschiedene Layouts
für einen gegebenen Graphen G finden.
Aber welche Darstellung ist optimal, in Bezug auf Übersichtlichkeit
und Verständnis des Graphen ?
4
1. Einführung
Zwei Arten von Bedingungen
1. formale Kriterien (müssen erfüllt sein)
- Darstellungsform des Graphen
- geometrische Darstellung von Kanten
- Lage der Knoten
2. ästhetische Kriterien (können nicht immer erfüllt werden )
- minimale Anzahl an Kantenüberschneidungen
- Überschneidungsfreiheit von Kanten und Knoten
- kleinste, gleichmäßige Kantenlängen, minimale Summe aller Kantenlängen
- maximale Knotenresolution
- große Winkelauflösung, usw.
5
1. Einführung
Nicht alle diese Kriterien können gleichzeitig erfüllt werden, da einige von
ihnen im Konflikt mit den anderen stehen.
Zum Beispiel:
3
4
3
4
4
3
1
2
1
2
1
2
6
2. Abhängigkeitsgraph








gerichteter Graph, in dem Abhängigkeiten
dargestellt werden
gerichtete Kanten → Abhängigkeiten
Knoten → Relationen
i. a. nicht azyklisch
semihierarchisch
Existenz von Kantenüberschneidungen
Existenz von Überschneidungen zwischen Kanten und Knoten
symmetrisch
7
2.1 Darstellung von Relationen als Knoten
- globale und lokale Relationen werden als Knoten des Graphen gezeichnet
- Zur Unterscheidung: z.B. verschiedene Farbtöne oder Formen
verwendbar
- Der Name der entsprechenden Relation könnte z.B. im Knoten stehen
- Die Knoten des Abhängigkeitsgraphen werden eindeutig in Schichten
eingeordnet.
8
2.2 Darstellung von Abhängigkeiten als Kanten
Mögliche graphische Darstellung von Abhängigkeiten, z.B. :
gerichtete Kanten, Bezierkurven, Kreisbogen
Unterscheidung von drei verschiedenen Abhängigkeiten
1.
Abhängigkeiten zwischen Knoten verschiedener Schichten
(mögliche Darstellung: gerade Linie)
i+1
i
i-1
9
2.2 Darstellung von Abhängigkeiten als Kanten
2. Abhängigkeiten zwischen Knoten derselben Schicht, jedoch nicht
eines Knotens von sich selbst (mögliche Darstellung: quadratische
Bezierkurve)
i+1
i
3. Abhängigkeit eines Knotens von sich selbst (mögliche Darstellung:
gerichteter Kreisbogen)
10
3. Visualisieren des Abhängigkeitsgraphen
Mögliche Probleme, die beim Visualisieren eines Abhängigkeitsgraphen
auftauchen können:
-
-
Kantenüberschneidungen, die den Graphen unübersichtlich machen
Welche x- und y-Positionen sollen welchen Knoten zugewiesen
werden?
Wie kann man Überschneidungen von Bezierkurven vermeiden?
Überschneidungen zwischen Kanten und Knoten
11
3.1 Reduzierung der Kantenüberschneidungen
Mögliche Typen von Kantenüberschneidungen :
1.
Überschneidungen zweier Kanten, die Abhängigkeiten zwischen
benachbarten Schichten darstellen.
i+1
i
i-1
12
3.1 Reduzierung der Kantenüberschneidungen
2. Überschneidung einer beliebigen Kante mit einer Kante, die eine
Abhängigkeit zwischen nicht-benachbarten Schichten darstellt.
i+1
i
i-1
13
3.1 Reduzierung der Kantenüberschneidungen
3. Überschneidungen beliebiger Kanten mit einer Kreisbogen-Kante
i+1
i
i-1
14
3.1 Reduzierung der Kantenüberschneidungen
4. Überschneidungen beliebiger Kanten mit Bezierkurven
i+1
i
i-1
15
3.1 Reduzierung der Kantenüberschneidungen
Eines der Kriterien, die ein Graph zur Übersichtlichkeit und
Verständlichkeit erfüllen sollte, ist Planarität.
Leider ist dies nicht immer möglich.
Das Problem, zu einem gegebenen Graphen G ein Layout mit minimaler
Anzahl von Kantenüberschneidungen zu finden, ist NP-hart.
Bis heute ist kein Algorithmus bekannt, dass zu diesem Problem eine
Lösung in polynomieller Laufzeit berechnet.
Man versucht daher, die Kantenüberschneidungen so gut es geht zu
reduzieren.
16
3.1 Reduzierung der Kantenüberschneidungen
Mögliche Lösungsansätze
Man kann Knoten innerhalb einer Schicht so lange verschieben, bis eine
reduzierte Anzahl von Überschneidungen erreicht wird.
Dabei ist es wichtig die Anzahl der Überschneidungen vor und nach der
Verschiebung anzusehen, um dann entscheiden zu können, ob eine
Verbesserung eingetreten ist.
Folgende Formel hilft bei der Überschneidungsuche
17
3.1 Reduzierung der Kantenüberschneidungen
-
Kantenüberschneidung liegt genau dann vor, wenn
(p.x < v.x and q.x > w.x) or (p.x > v.x and q.x < w.x)
y
w
q
p
v
x
p.x
w.x
q.x v.x
18
3.1 Reduzierung der Kantenüberschneidungen
Kantenüberschneidung liegt genau dann vor, wenn
(p.x < v.x and q.x > w.x) or (p.x > v.x and q.x < w.x)
y
q
p
w
v
x
p.x
v.x
q.x w.x
19
3.2 Berechnung der x-Positionen von Knoten
Problem:
Jedem Knoten müssen x- und y-Koordinaten zugewiesen werden, damit
man sie (graphische Objekte) auf dem Bildschirm darstellen kann.
Aber wie könnte man dies tun ?
Wir wollen einen Graphen symmetrisch bzgl. einer durch die Mitte
verlaufenden imaginären Gerade zeichnen.
Idee:
Man bestimmt die Breite aller Schichten, um die Breite des Graphen
bestimmen zu können.
Man legt fest, durch welche x-Koordinate die imaginäre Gerade geht, um
dann die x-Koordinaten der Knoten von ihr abhängig zu wählen.
20
3.2 Berechnung der x-Positionen von Knoten
Um die Breite einer Schicht k zu berechnen, braucht man
die Breiten der umgebenden Rechtecke aller Knoten in
der Schicht k und eine konstante Größe, die den
horizontalen Abstand zwischen den zu zeichnenden
Knoten angibt.
p
q
r
not
s
t
w
Breite der Schicht 0 = Breite des Graphen
21
3.3 Berechnung der y-Positionen von Knoten
-
-
-
Berechnung der Höhen einzelner Schichten und des gesamten
Graphen
Die Höhe einer Schicht hängt dabei ab
- von der Höhe der z.B. umgebenden Rechtecke oder Kreise der
Knoten
- von der Anzahl jener Abhängigkeiten, die in Form von
Bezierkurven dargestellt werden
Dann:
y-Koordinaten der Schicht 0 = Höhe des gesamten Graphen
Für Schicht i wird die Höhe der Schicht i-1 und der Abstand zwischen
den beiden Schichten vom aktuellen y-Wert abgezogen
22
3.3 Berechnung der y-Positionen von Knoten
Ein Beispiel
- y-Koordinaten der Schicht 0 = Höhe des gesamten Graphen = s.y
- Für Schicht i wird die Höhe der Schicht i-1 und der Abstand zwischen den
beiden Schichten vom aktuellen y-Wert abgezogen
z.B.
x
(0,0)
i=2
p.y
v
p
q.y
q
Schicht 2
r
Schicht 1
not
s.y
s
y
t
w
Schicht 0
23
3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
Abhängigkeit zwischen zwei Relationen p und q, die zur selben
Schicht gehören, werden durch höchstens zwei gegeneinander
gerichtete Bezierkurven dargestellt.
p
q
Man braucht drei Stützpunkte für Bezierkurven
Als zwei der drei benötigten Stützpunkte werden die Koordinaten der
Knoten p und q verwendet.
Der dritte Stützpunkt wird folgendermaßen ermittelt: die x-Koordinate des
Mittelpunktes auf der imaginären geraden Linie, die p und q verbindet,
kann als x-Koordinate des dritten Stützpunktes verwendet werden:
c.x = (p.x + q.x) / 2
Achtung : Überschneidung !
24
3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
Problem: unkontrollierte Darstellung
Schon bei so wenigen Kanten verliert man den Überblick.
p
q
r
s
25
3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
Lösungsidee:
-
Für jeden Knoten einer Schicht werden zuerst alle ausgehenden
Bezierkanten von p ihrer Länge nach sortiert
-
Für jede Bezierkurve wird eine Größe Δy ermittelt. Δy gibt den vertikalen
Abstand des dritten Kontrollpunktes von den beiden Endknoten der Kante
an, die gleiche y-Positionen haben müssen.
- Wert von Δy positiv, falls die Kurve von links nach rechts verläuft;
sonst negativ
Ziel der Berechnung: Kleinere vertikale Abstände des dritten Stützpunktes von
den Endpunkten werden den Kanten mit kleinerer Länge zugeordnet.
Hier werden nur Kanten, die in dieselbe Richtung verlaufen, betrachtet.
26
3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
p
r
q
s
Unkontrollierte Darstellung
p
q
r
s
Kontrollierte Darstellung
27
3.5 Reduzierung der Überschneidungen zwischen Kanten
und Knoten
Problem
i+1
i
i-1
Lösungsmöglichkeiten
- Horizontale Verschiebung der „störenden“ Knoten
- Verschieben der „störenden“ Kanten
28
3.5 Reduzierung der Überschneidungen zwischen Kanten
und Knoten
Verschieben der „störenden“ Knoten
Idee
-
-
-
Für jede Kante e werden alle Knoten betrachtet, die zwischen
den Schichten liegen, zu denen der Anfangs- und Endknoten
von e gehören
wird ein Knoten gefunden, der die aktuelle Kante „stört“ , so
wird er solange samt der an ihm haftenden Kanten horizontal
verschoben, bis diese Kante und der Knoten sich nicht mehr
überschneiden
Die Knoten sollen möglichst gleichmäßig nach links und
rechts verschoben werden, dazu ermittelt man , wo sich der
Knoten bzgl. der durch die Mitte des Graphen verlaufenden
imaginären Geraden befindet
29
3.5 Reduzierung der Überschneidungen zwischen Kanten
und Knoten
Endknoten von e
s
Knoten dieser
Schicht werden
betrachtet
r
p
Anfangsknoten
von e
Kante e
30
3.6 Platzierung von Beschriftungen
Unter der Beschriftung der Kanten versteht man das Negationszeichen, das
an die Kanten platziert werden soll, die eine negative Abhängigkeit
zwischen zwei Relationen darstellt.
Problem:
Wie soll man z.B. das Negationszeichen „ ¬ ” (oder das Minus-Zeichen “-”) an
die entsprechende Kante platzieren ?
Idee:
Beschriftung kann unmittelbar in der Nähe der Kante angebracht werden
Aber:
Doch wenn es sehr viele dicht aneinander liegende Kanten gibt, würden sich
die Beschriftungen überlappen.
31
3.6 Platzierung von Beschriftungen
Bessere Idee:
Beschriftung kann direkt auf der entsprechenden Kante angebracht
werden.
Für die Beschriftung kann z.B. ein Rechteck verwendet werden, dessen
Diagonalschnittpunkt auf der Kante platziert wird.
Das Negationszeichen wird in der Mitte des Beschriftungsrechteckes
angebracht.
Negative Kanten können etwa durch einen anderen Farbton oder durch
Quickinfos gekennzeichnet werden .
¬
¬
32
4. Verfahren von Sugiyama
Kozo Sugiyma ist ein Professor an der School of Knowledge
Science JAIST in Ishikawa, Japan
Seit 2000 : Rektor dieser wissenschaftlichen Schule
Seit Anfang 80er Jahren beschäftigt er sich mit Problemen
des Graph Drawings
War für mehr als 23 Jahren – von 1974 bis 1997 - in der
wissenschaftlichen Abteilung Firma Fujitsu als Forscher tätig.
Seine wissenschaftlichen Interessen haben ihn für die
Forschungszwecken sogar nach Europa geführt – er hat zwei
Forschungsjahre in der Stadt Laxenburg in Österreich verbracht ( 19821993)
Von 1996 bis 1998: Direktor von Information Processing Society of Japan
Er ist ein Autor von 3 Büchern. Das dritte Buch "Graph drawing and
applications for software and knowledge engineers" ist im Verlag World
Scientific 2002 auf Englisch erschienen.
Seine Forschungsinteresse gilt bis heute den Graph Drawing Algorithmen
33
für interaktive Visualiserungsschnittstellen.
4. Verfahren von Sugiyama
-
-
1981
wurde für hierarchische Graphen entwickelt, ist aber auch auf
zyklische Graphen anwendbar
ist ein sehr verbreitetes Verfahren zur Visualisierung von Graphen
Was will man erreichen ?
- hierarchischer Graph
- gerade verlaufende Linien
- miteinander verbundene Knoten liegen dicht zusammen
- balancierter Graph
34
4. Verfahren von Sugiyama
Besteht aus 3 Phasen:
Phase 1: Zuordnung von Knoten zu den Schichten
Phase 2: Überschneidungsreduzierung
Phase 3: Berechnung der Positionen für alle Knoten
35
4. Verfahren von Sugiyama
8
9
5
6
2
7
3
4
1
36
4. Verfahren von Sugiyama
Zuordnung von Knoten zu den Schichten
Phase 1
Alle Knoten werden eindeutig einzelnen Schichten zugeordnet
- Alle Kanten, die nicht-benachbarte Schichten verbinden, werden so
lange auseinander gespalten, bis ihre Teilkanten je zwei Knoten aus
benachbarten Schichten verbinden
- Einfügen künstlicher Knoten, welche eindeutig den Schichten
zuzuordnen sind
- Für eine Kante e(v,w) werden (j - i - 1) „Scheinknoten“
kk  Schichtk+i , 1 ≤ k ≤ j - i – 1 eingefügt
- Aus Kante e(v,w) entstehen ( j - i ) neue Kanten:
e(v, k1 ), e(k1,k2) , … , e( kj-i-1 , w)
- Alle Kanten fließen in eine Richtung und verbinden benachbarte
Schichten
-
37
4. Verfahren von Sugiyama
Überschneidungsreduzierung
Phase 2
-
Überschneidungen der Kanten werden reduziert, indem Knoten
verschoben oder mit anderen Knoten vertauscht werden
Würde man die Überschneidungsreduzierung top-down statt bottomup anwenden, so könnte man in einigen Fällen eine bessere Lösung
finden.
4
1
5
2
5
3
Ausgangssituation
1
4
4
2
Bottom-Up
3
1
5
3
Top-Down
2
38
4. Verfahren von Sugiyama
Überschneidungsreduzierung
Phase 2
Es existieren im wesentlichen zwei Lösungsansätze:
a) Bei der ersten Lösung wird die Überschneidungsreduzierung
abwechselnd bottom-up und top-down mehrmals angewendet
- Auf die Überschneidungen im ganzen Graphen wird geachtet
- Wenn sich die Anzahl der Überschneidungen nicht verkleinert ist man
fertig
b) Bei der zweiten Lösungsvariante wird die
Überschneidungsreduzierung mit allen möglichen Permutationen der
Schicht 0 gestartet und dann wird die Lösung bottom-up berechnet.
-
39
4. Verfahren von Sugiyama
Berechnung der Positionen für alle Knoten
Phase 3
-
-
-
Koordinaten der Knoten werden berechnet
Dazu 2 Verfahren:
a) alle polylinienförmige Kanten werden derart gezeichnet, dass sie
aus möglichst langen vertikalen Teilstücken bestehen
b) eine polylinienförmige Kanten darf höchstens zwei Knicke haben,
welche durch eine vertikale Linie verbunden werden.
Scheinknoten erhalten eigene Koordinaten und können als
Knickpunkte der Kanten angesehen werden
Kanten zwischen nicht-benachbarten Schichten werden somit als
Polylinien dargestellt
40
4. Verfahren von Sugiyama
Bewertung des Algorithmus
- schneller als theoretische Ansätze
- effektiv
- einfach zu implementieren
- sehr verbreitet und auch genutzt
- gut für viele Graphen, solange nicht allzu viele Verbindungen im
Graphen existieren
- Ergebnisse sind nicht immer perfekt
Folgerung
Das Verfahren von Sugiyama ist schnell und effektiv für verschiedene
Graphen.
Durch Variationen am Algorithmus können auch spezifische Probleme
gelöst werden.
41
4. Verfahren von Sugiyama
Vorteile des Sugiyama-Verfahrens
-
-
-
Algorithmus zur Reduzierung der Überschneidungen zwischen
Kanten und Knoten wird nicht mehr benötigt
Durch Scheinknoten können solche Überschneidungen nicht mehr
auftreten
Von der Verschiebung eines Knotens wird stets nur das an diesem
Knoten haftende Teilstück der Kante betroffen. Die Position einer
Beschriftung muss hierbei nur dann erneut berechnet werden,
wenn diese vor der Verschiebung auf diesem Teilstück der Kante
angebracht wurde.
42
5. Zusammenfassung
Es wurde auf Schwierigkeiten aufmerksam gemacht, die beim
Zeichnen des Abhängigkeitsgraphen entstehen können.
Mögliche Lösungsansätze wurden vorgestellt.
Wir haben gesehen, wie das Verfahren von Sugiyama die
Schwierigkeiten, Graphen darzustellen, gelöst hat.
43
Danke für` s Zuhören !!
44
Herunterladen