Methoden zur Visualisierung semi-hierarchischer Graphen

44
Methoden zur Visualisierung semi- hierarchischer Graphen Projektgruppe Intelligente Datenbanken Leyla Didem Yesilirmak 22.07.2003

description

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 - PowerPoint PPT Presentation

Transcript of Methoden zur Visualisierung semi-hierarchischer Graphen

Page 1: Methoden zur Visualisierung semi-hierarchischer Graphen

Methoden zur Visualisierung semi-hierarchischer Graphen

Projektgruppe Intelligente Datenbanken Leyla Didem Yesilirmak

22.07.2003

Page 2: Methoden zur Visualisierung semi-hierarchischer Graphen

2

Ü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

Page 3: Methoden zur Visualisierung semi-hierarchischer Graphen

3

1. Einführung

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).

s t w

q r

p

not

Regelmenge:

zugehöriger Abhängigkeitsgraph :

Wie kommt der Abhängigkeitsgraph zustande?

p hängt von q und r ab

Schicht 0

Schicht 1

Schicht 2

Basisrelation

abgeleitet Relation

Page 4: Methoden zur Visualisierung semi-hierarchischer Graphen

4

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 ?

Page 5: Methoden zur Visualisierung semi-hierarchischer Graphen

5

1. Einführung

1. formale Kriterien (müssen erfüllt sein)

- Darstellungsform des Graphen

- geometrische Darstellung von Kanten

- Lage der Knoten

Zwei Arten von Bedingungen

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.

Page 6: Methoden zur Visualisierung semi-hierarchischer Graphen

6

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:

1 2

3 4

1 2

3 4

1 2

3

4

Page 7: Methoden zur Visualisierung semi-hierarchischer Graphen

7

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

Page 8: Methoden zur Visualisierung semi-hierarchischer Graphen

8

2.1 Darstellung von Relationen als Knoten

- globale und lokale Relationen werden als Knoten des Graphen gezeichnet

- Der Name der entsprechenden Relation könnte z.B. im Knoten stehen

- Die Knoten des Abhängigkeitsgraphen werden eindeutig in Schichten eingeordnet.

- Zur Unterscheidung: z.B. verschiedene Farbtöne oder Formen verwendbar

Page 9: Methoden zur Visualisierung semi-hierarchischer Graphen

9

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

Page 10: Methoden zur Visualisierung semi-hierarchischer Graphen

10

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)

Page 11: Methoden zur Visualisierung semi-hierarchischer Graphen

11

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

Page 12: Methoden zur Visualisierung semi-hierarchischer Graphen

12

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

Page 13: Methoden zur Visualisierung semi-hierarchischer Graphen

13

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

Page 14: Methoden zur Visualisierung semi-hierarchischer Graphen

14

3.1 Reduzierung der Kantenüberschneidungen

3. Überschneidungen beliebiger Kanten mit einer Kreisbogen-Kante

i+1

i

i-1

Page 15: Methoden zur Visualisierung semi-hierarchischer Graphen

15

3.1 Reduzierung der Kantenüberschneidungen

4. Überschneidungen beliebiger Kanten mit Bezierkurven

i+1

i

i-1

Page 16: Methoden zur Visualisierung semi-hierarchischer Graphen

16

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.

Page 17: Methoden zur Visualisierung semi-hierarchischer Graphen

17

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

Page 18: Methoden zur Visualisierung semi-hierarchischer Graphen

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)

p

qw

v

p.x w.x q.x v.x

x

y

Page 19: Methoden zur Visualisierung semi-hierarchischer Graphen

19

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)

p.x v.x q.x w.x

x

y

p

q

w

v

Page 20: Methoden zur Visualisierung semi-hierarchischer Graphen

20

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.

Page 21: Methoden zur Visualisierung semi-hierarchischer Graphen

21

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.

s t w

q r

p

not

Breite der Schicht 0 = Breite des Graphen

Page 22: Methoden zur Visualisierung semi-hierarchischer Graphen

22

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

Page 23: Methoden zur Visualisierung semi-hierarchischer Graphen

23

3.3 Berechnung der y-Positionen von Knoten

Ein Beispiel

y

x

s t w

q r

p

not

Schicht 0

Schicht 1

Schicht 2

- 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

(0,0)

s.y

q.y

p.y

z.B.

i = 2

v

Page 24: Methoden zur Visualisierung semi-hierarchischer Graphen

24

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.

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 !

pq

Page 25: Methoden zur Visualisierung semi-hierarchischer Graphen

25

p q r s

3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven

Problem: unkontrollierte Darstellung

Schon bei so wenigen Kanten verliert man den Überblick.

Page 26: Methoden zur Visualisierung semi-hierarchischer Graphen

26

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.

3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven

Page 27: Methoden zur Visualisierung semi-hierarchischer Graphen

27

p q r s

Kontrollierte Darstellung

p q r s

Unkontrollierte Darstellung

3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven

Page 28: Methoden zur Visualisierung semi-hierarchischer Graphen

28

3.5 Reduzierung der Überschneidungen zwischen Kanten und Knoten

i+1

i

i-1

Lösungsmöglichkeiten

- Horizontale Verschiebung der „störenden“ Knoten

- Verschieben der „störenden“ Kanten

Problem

Page 29: Methoden zur Visualisierung semi-hierarchischer Graphen

29

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

Page 30: Methoden zur Visualisierung semi-hierarchischer Graphen

30

3.5 Reduzierung der Überschneidungen zwischen Kanten und Knoten

p

r

s

Kante e

Knoten dieser Schicht werden betrachtet

Anfangsknoten von e

Endknoten von e

Page 31: Methoden zur Visualisierung semi-hierarchischer Graphen

31

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.

Page 32: Methoden zur Visualisierung semi-hierarchischer Graphen

32

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 .

¬

¬

Page 33: Methoden zur Visualisierung semi-hierarchischer Graphen

33

4. Verfahren von Sugiyama

Kozo Sugiyma ist ein Professor an der School of Knowledge Science JAIST in Ishikawa, JapanSeit 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 ( 1982-1993)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 für interaktive Visualiserungsschnittstellen.

Page 34: Methoden zur Visualisierung semi-hierarchischer Graphen

34

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

Page 35: Methoden zur Visualisierung semi-hierarchischer Graphen

35

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

Page 36: Methoden zur Visualisierung semi-hierarchischer Graphen

36

4. Verfahren von Sugiyama

1

2 3 4

5 6 7

8 9

Page 37: Methoden zur Visualisierung semi-hierarchischer Graphen

37

Zuordnung von Knoten zu den SchichtenPhase 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

4. Verfahren von Sugiyama

Page 38: Methoden zur Visualisierung semi-hierarchischer Graphen

38

ÜberschneidungsreduzierungPhase 2

- Überschneidungen der Kanten werden reduziert, indem Knoten verschoben oder mit anderen Knoten vertauscht werden

- Würde man die Überschneidungsreduzierung top-down statt bottom-up anwenden, so könnte man in einigen Fällen eine bessere Lösung finden.

4. Verfahren von Sugiyama

1 2 3

4 5

1 3 2

4 5

1 2 3

5 4

Ausgangssituation Bottom-Up Top-Down

Page 39: Methoden zur Visualisierung semi-hierarchischer Graphen

39

ÜberschneidungsreduzierungPhase 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

fertigb) 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.

4. Verfahren von Sugiyama

Page 40: Methoden zur Visualisierung semi-hierarchischer Graphen

40

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

4. Verfahren von Sugiyama

Page 41: Methoden zur Visualisierung semi-hierarchischer Graphen

41

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

4. Verfahren von Sugiyama

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.

Page 42: Methoden zur Visualisierung semi-hierarchischer Graphen

42

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.

4. Verfahren von Sugiyama

Page 43: Methoden zur Visualisierung semi-hierarchischer Graphen

43

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.

Page 44: Methoden zur Visualisierung semi-hierarchischer Graphen

44

Danke für` s Zuhören !!