440 likes | 621 Views
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
E N D
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
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 hängt von q und r ab p q r not s t w 1. Einführung Wie kommt der Abhängigkeitsgraph zustande? Regelmenge: Schicht 2 zugehöriger Abhängigkeitsgraph : Schicht 1 abgeleitet Relation Schicht 0 Basisrelation
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 ?
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. 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
3 4 3 4 4 3 1 2 1 2 1 2 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:
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
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.
i+1 i i-1 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 • Abhängigkeiten zwischen Knoten verschiedener Schichten (mögliche Darstellung: gerade Linie)
3. Abhängigkeit eines Knotens von sich selbst (mögliche Darstellung: gerichteter Kreisbogen) 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. 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
i+1 i i-1 3.1 Reduzierung der Kantenüberschneidungen Mögliche Typen von Kantenüberschneidungen : • Überschneidungen zweier Kanten, die Abhängigkeiten zwischen benachbarten Schichten darstellen.
i+1 i i-1 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 3.1 Reduzierung der Kantenüberschneidungen 3. Überschneidungen beliebiger Kanten mit einer Kreisbogen-Kante
3.1 Reduzierung der Kantenüberschneidungen 4. Überschneidungen beliebiger Kanten mit Bezierkurven i+1 i i-1
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.
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
y w q p v (p.x < v.x and q.x > w.x) or (p.x > v.x and q.x < w.x) x p.x w.x q.x v.x 3.1 Reduzierung der Kantenüberschneidungen • Kantenüberschneidung liegt genau dann vor, wenn
y q p w (p.x < v.x and q.x > w.x) or (p.x > v.x and q.x < w.x) v x p.x v.x q.x w.x 3.1 Reduzierung der Kantenüberschneidungen Kantenüberschneidung liegt genau dann vor, wenn
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.
p q r not s t w 3.2 Berechnung der x-Positionen von Knoten Um die Breite einer Schicht k zu berechnen, braucht man die Breiten der umgebenden Rechtecke allerKnoten in der Schicht k und eine konstante Größe, die den horizontalen Abstand zwischen den zu zeichnenden Knoten angibt. Breite der Schicht 0 = Breite des Graphen
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
Schicht 2 p Schicht 1 q r not Schicht 0 s t w 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. i = 2 x (0,0) p.y v q.y s.y y
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 ! 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. q p
r s p q 3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven Problem: unkontrollierte Darstellung Schon bei so wenigen Kanten verliert man den Überblick.
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.
r s p q Unkontrollierte Darstellung r s p q Kontrollierte Darstellung 3.4 Berechnung der Stützpunktkoordinaten für Bezierkurven
i+1 i i-1 Lösungsmöglichkeiten - Horizontale Verschiebung der „störenden“ Knoten - Verschieben der „störenden“ Kanten 3.5 Reduzierung der Überschneidungen zwischen Kanten und Knoten Problem
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
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
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.
¬ ¬ 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 .
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 ( 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.
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
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
4. Verfahren von Sugiyama 8 9 5 6 7 2 3 4 1
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
4 5 4 5 5 4 1 3 2 1 2 3 1 2 3 Ausgangssituation Bottom-Up Top-Down 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 bottom-up anwenden, so könnte man in einigen Fällen eine bessere Lösung finden.
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.
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
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.
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.
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.