Methoden zur Visualisierung semi-hierarchischer Graphen

Post on 16-Jan-2016

37 views 0 download

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

Methoden zur Visualisierung semi-hierarchischer Graphen

Projektgruppe Intelligente Datenbanken Leyla Didem Yesilirmak

22.07.2003

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

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

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 ?

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.

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

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

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

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

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)

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

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

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

14

3.1 Reduzierung der Kantenüberschneidungen

3. Überschneidungen beliebiger Kanten mit einer Kreisbogen-Kante

i+1

i

i-1

15

3.1 Reduzierung der Kantenüberschneidungen

4. Überschneidungen beliebiger Kanten mit Bezierkurven

i+1

i

i-1

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.

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

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

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

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.

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

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

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

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

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.

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

27

p q r s

Kontrollierte Darstellung

p q r s

Unkontrollierte Darstellung

3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven

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

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

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

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.

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 .

¬

¬

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.

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

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

36

4. Verfahren von Sugiyama

1

2 3 4

5 6 7

8 9

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

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

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

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

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.

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

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.

44

Danke für` s Zuhören !!