Visualisierung I 9. Darstellung von Graphen

Visualisierung I 9. Darstellung von Graphen Vorlesung: Mi, 9:00 – 11:00, INF 368 – 532 Übung: Do, 14:00 – 16:00, INF 350 – OMZ R U011 JProf. Dr. Heike...
0 downloads 1 Views 538KB Size
Visualisierung I 9. Darstellung von Graphen Vorlesung: Mi, 9:00 – 11:00, INF 368 – 532 Übung: Do, 14:00 – 16:00, INF 350 – OMZ R U011 JProf. Dr. Heike Jänicke – http://www.iwr.uni-heidelberg.de/groups/CoVis/

Inhaltsverzeichnis

1. Einführung 2. Visuelle Wahrnehmung 3. Datentypen und Datenrepräsentation 4. Skalardaten 5. Statistische Graphiken 6. Interaktion und Datenexploration 7. Vektordaten 8. Tensordaten 9. Darstellung von Graphen

Visualisierung I – 9. Graphen

2

Inhaltsverzeichnis 9. Darstellung von Graphen 5. Zeichenalgorithmen für Bäume 1. Traversieren von Bäumen 2. Wetherell Shannon Algorithmus 3. Reingold Tilford Algorithmus 4. H-förmiges Layout 5. Radiales Layout 6. Kraftbasierte Ansätze für allgemeine Graphen 7. Manipulation von Darstellungen 1. Clustering 2. Hierarchisches Clustering 3. Relevanzbasierte Ansätze

Visualisierung I – 9. Graphen

3

Inhaltsverzeichnis 9. Darstellung von Graphen 5. Zeichenalgorithmen für Bäume 1. Traversieren von Bäumen 2. Wetherell Shannon Algorithmus 3. Reingold Tilford Algorithmus 4. H-förmiges Layout 5. Radiales Layout 6. Kraftbasierte Ansätze für allgemeine Graphen 7. Manipulation von Darstellungen 1. Clustering 2. Hierarchisches Clustering 3. Relevanzbasierte Ansätze

Visualisierung I – 9. Graphen

4

Traversieren von Bäumen



Traversieren eines Baumes bezeichnet das Durchlaufen seiner Knoten. Hierbei gibt es verschiedene Strategieen: –

pre-order oder Hauptreihenfolge (W–L–R): Es wird zuerst die Wurzel betrachtet, dann linke Teilbaum durchlaufen und abschließend der rechte.



in-order oder symmetrische Reihenfolge (L–W–R): Es wird zuerst der linke Teilbaum durchlaufen, anschließend wird die Wurzel betrachtet und zuletzt der rechte Teilbaum durchlaufen.



post-order oder Nebenreihenfolge (L–R–W): Es wird zuerst der linke, dann der rechte Teilbaum durchlaufen und abschließend die Wurzel betrachtet.



level-order oder Breitensuche: Beginnend bei der Wurzel, werden die Ebenen von links nach rechts durchlaufen. 1

2 3

5 4

7

4

6

2 7

Visualisierung I – 9. Graphen

1

3

6 3

5

7

1

6 2

4

5 5

Zeichnen von Bäumen







Der Algorithmus von Reingold und Tilford [E. M. Reingold and J. S. Tilford, „Tidier Drawing of Trees“, IEEE Trans. Software Eng., vol7, no2, pp. 223-228, 1981] erzeugt eine klassische Baumstruktur für Bäume mit ausgezeichneter Wurzel mit einem typischen Divide-and-Conquer Ansatz. Dabei soll die Zeichnung eines Unterbaums nicht von Knoten außerhalb dieses Unterbaums beeinflusst werden. Die vier wesentlichen Ästhetikkriterien sind: 1. Knoten einer Ebene des Baumes liegen auf einer Geraden und die Geraden, die eine Ebene beschreiben sind parallel. (Implizit ist gemeint, dass sich Kanten nicht schneiden.) 2. Ein „linker“ Kindknoten soll links des Elternknoten positioniert werden, ein „rechter“ recht davon. 3. Ein Elternknoten soll mittig zu seinen Kindern liegen. 4. Ein Baum und seine gespielte Versionen sollen Zeichnungen ergeben die diesen Zusammenhang widerspiegeln; Unterbäume sollen gleich gezeichnet werden, egal an welcher Position im Baum sie auftreten.

Visualisierung I – 9. Graphen

6

Zeichnen von Bäumen – Beispiel

Ursprünglicher Algorithmus, der die ersten drei Kriterien beachtet.

Visualisierung I – 9. Graphen

Baumzeichnung mit dem Reingold Tilford Algorithmus

7

Wetherell Shannon Algorithmus Der Algorithmus von Reingold und Tilford verbessert den Baumzeichenalgorithmus von Wetherell und Shannon (ersten drei Ästhetikkriterien), der wie folgt funktioniert: ●



Speichere in jedem Knoten seine Ebene im Baum, dies gibt die y-Koordinate des Knoten. Durchlaufe den Baum in Post-Order (L-R-W) und weise dabei jedem Knoten eine xKoordinate zu. Hierzu gibt es folgende Regeln: –

Ist der Knoten ein Blatt so weise ihm die nächste freie Position auf seiner Ebene zu (letzte Position mit Knoten + 2).



Ist der Knoten ein innerer Knoten unterscheide: ●







hat er nur ein linkes Kind, weise ihm die x-Koordinate seines Kindes + 1 zu. hat er nur ein rechtes Kind, weise ihm die x-Koordinate seines Kindes - 1 zu. hat er zwei Kinder, weise ihm das Mittel deren beider xKoordinaten zu.

Ist der Knoten ein innerer Knoten und hat nicht mindestens den Abstand 2 zum Vordermann in seiner Ebenen, so verschiebe den gesamten Unterbaum entsprechend.

Visualisierung I – 9. Graphen

8

Reingold Tilford Algorithmus







Der Reingold Tilford Algorithmus ist ein heuristischer Ansatz. Dabei werden die beiden Unterbäume eines Knotens zunächst unabhängig gezeichnet und anschließend so nah wie möglich aneinandergeschoben. Die Heuristik wird wieder in einem Post-order Durchlauf angewendet: –

Wenn man sich vorstellt, dass an jedem Knoten T die beiden Unterbäume bereits gezeichnet wurden und aus Papier entlang ihrer Kontur ausgeschnitten wurden.



Die Wurzeln der beiden Unterbäume werden nun überlagert. Man durchläuft die Ebenen, die von den beiden Unterbäumen überdeckt werden und schiebt sie so weit auseinander, dass sie einander nicht mehr überlagern.



Die beiden Unterbäume werden abschließend relativ zu ihrem Vater angordnet.

In einem abschließenden Pre-order Durchlauf werden die relativen Verschiebungen an die Kinder weitergegeben und die entgültigen Positionen berechnet.

Visualisierung I – 9. Graphen

9

H-förmiges Layout



Man kann Bäume auch H-förmig auslegen [P. Eades, „Drawing Free Trees“, Bulletin of the Inst. For the Combinatorics and Its Applications, pp. 10-36, 1992]. Auch dies ist ein Divide-and-Conquer Ansatz.

Visualisierung I – 9. Graphen

10

Radiales Layout



Eine weitere Divide-and-Conquer Variante legt einen Baum mit Wurzel radial aus. Die Wurzel kommt ins Zentrum. Alle Knoten einer Ebene liegen auf konzentrischen Kreisen. Ferner vermeidet der Algorithmus Überschneidungen durch Festlegen der Sektoren für die Teilbäume. Man kann die letzte Bedingung auch abschwächen, um im Mittel gute Ergebnisse zu erhalten [I.Herman, G. Melancon, M. M. De Ruiter, and M. Delest, „Latour-A Tree Visualization System“, Proc. Symp. Graph Drawing GD'99, pp. 392-399, 1999. A more detailed version in: Reports of the Centre for Math. And Computer Sciens, Report number INS-R9904, available at: http://www.cwi.nl/InfoVisu/papers/LatourOverview.pdf, 1999]

Visualisierung I – 9. Graphen

11

Eigenschaften der Algorithmen





Alle besprochenen Baumauslegealgorithmen sind vorhersagbar, d. h. bei gleichem Input liefern sie den gleichen Output und isomorphe Teilbäume werden gleich behandelt. Diese in der Visualisierung sehr sinnvolle Eigenschaft weisen kraftbasierte Ansätze in der Regel nicht mehr auf, da es meistens mehrere lokale Minima gibt.

Visualisierung I – 9. Graphen

12

Inhaltsverzeichnis 9. Darstellung von Graphen 5. Zeichenalgorithmen für Bäume 1. Traversieren von Bäumen 2. Wetherell Shannon Algorithmus 3. Reingold Tilford Algorithmus 4. H-förmiges Layout 5. Radiales Layout 6. Kraftbasierte Ansätze für allgemeine Graphen 7. Manipulation von Darstellungen 1. Clustering 2. Hierarchisches Clustering 3. Relevanzbasierte Ansätze

Visualisierung I – 9. Graphen

13

Kraftbasierte Ansätze



Kraftbasierte Methoden orientieren sich an einem physikalischen Modell mit Kräften bzw. potentieller Energie, die minimiert werden. Da sie intuitiv zu verstehen, relativ einfach zu implementieren sind und zugleich oft gute Ergebnisse liefern, sind sie sehr beliebt. Ein einfache Illustration findet sich im Bild.

http://vimeo.com/4356593 Visualisierung I – 9. Graphen

14

Feder-Kraft-Modell



Der einfachste Ansatz nutzt elektrische Kräfte und Federn, wobei jeder Knoten v als positiv geladenes Teilchen und jede Kante e = {u, v} als Feder mit vorgegebener Ruhelänge luv modelliert wird. Die Kraft auf einen Knoten v ist

F v = ∑ f uv  {u , v}



g uv

u , v ∈V ×V

wobei fuv die Kraft auf v durch die Feder zwischen u und v ist und guv eine elektrische Abstoßung von v durch u modelliert. ●

Genauer gilt 2 p − p k pu − pv 1 u v uv F v = ∑ k uv d  pu , pv −l uv   ∑ 2 d  p , p  {u , v } u , v ∈V ×V  d  p u , p v  d  p u , p v  u v

mit den Zeichnungspositionen pu, pv und dem euklidischen Abstand d (pu, pv) sowie den Federkonstanten kuv(1) und der ladungsbasierten Abstoßungsstärke kuv(2).

Visualisierung I – 9. Graphen

15

Berechnung des Kraftminimums



Zum Finden des Kraftminimums kann eine Vielzahl numerischer Verfahren verwendet werden. Ein häufig genutzter intuitiver Ansatz ist: 1) Plaziere die Knoten zufällig in der Ebene 2) Berechne die Kraft F(v) für alle Knoten v. 3) Bewege jeden Knoten v ein kleines Stück in Richtung F(v). 4) Wenn die Kräfte nicht annähernd Null sind und das Maximum an Iterationen nicht erreicht ist, gehe zu 2).



Alternative, schnellere Ansätze liefert beispielsweise die Numerik gewöhnlicher Differentialgleichungen.

Visualisierung I – 9. Graphen

16

Kraft-basierte Ansätze – Anwendungen

Visualisierung I – 9. Graphen

17

Einschränkungen für kraftbasierte Ansätze Die kraftbasierten Methoden lassen sich gut mit Einschränkungen wie ●

festgelegte Positionen einiger Knoten,



fixierte Teilgraphen



vorgegebener Rahmen für den Graphen



durch Energie ausdrückbare Beschränkungen (z.B. unterschiedliche Abstände zwischen Knoten)

verbinden.

Visualisierung I – 9. Graphen

18

Finden eines guten Minimums





Kraftbasierte Methoden benötigen oft viel Rechenaufwand. Daher sind effiziente Minimierungsmethoden nötig. Entweder wird der Zufall bemüht (Simulated Annealing, Behandlung steifer Differentialgleichungen, Kombinatorische Vorbehandelung) oder es werden geeignete Heuristiken verwendet. Weitere Details ergeben sich aus dem Buch von [Battista, Eades, Tamassia, Tollis. Graph Drawing. Prentice Hall, Upper Saddle River, NJ, USA, 1999] der dort zitierten Literatur und den Proceedings der Graph Drawing Conference Series.

Visualisierung I – 9. Graphen

19

Inhaltsverzeichnis 9. Darstellung von Graphen 5. Zeichenalgorithmen für Bäume 1. Traversieren von Bäumen 2. Wetherell Shannon Algorithmus 3. Reingold Tilford Algorithmus 4. H-förmiges Layout 5. Radiales Layout 6. Kraftbasierte Ansätze für allgemeine Graphen 7. Manipulation von Darstellungen 1. Clustering 2. Hierarchisches Clustering 3. Relevanzbasierte Ansätze

Visualisierung I – 9. Graphen

20

Clustering





Insbesondere wenn der Graph zu groß für die Darstellung ist, kann man ihn auch vereinfachen. Dies erfolgt in der Regel durch ein Clustering der Knoten. Man unterscheidet dabei zwei Grundprinzipien: –

Structural clustering, bei dem nur aufgrund der Struktur des Graphen zusammengefasst wird.



Content-based clustering, bei dem die Semantik, insbesondere der Knoten, mit berücksichtigt wird.

Fast alle Verfahren basieren auf structural clustering, da es einfacher umzusetzen ist und der Ansatz auf jeden Graphen unabhängig von der Anwendungsdomäne angewendet werden kann.

Visualization of a 160-vertex relaxed caveman graph [228] with m = 1415 edges computed by starting with random initial positions for each vertex and using a spring-force algorithm to iteratively move them to the final locations [203]. The graph was generated with a model that introduced a clear eight-cluster structure, but no information on the clustering was given to the spring-force algorithm. However, the natural grouping by balancing the “springs” of the edges matches the inherent cluster structure. [Schaeffer, Graph Clustering, Computer Science Review, 2007] Visualisierung I – 9. Graphen

21

Hierarchisches Clustering



● ●



Clustering kann auch verwendet verschiedene Abstraktionsebenen des Graphen zu erzeugen. Auf der feinsten Ebene sind alle Knoten und Kanten sichtbar. Auf höheren Ebenen werden jeweils mehrere Knoten oder Cluster zu einem Cluster der nächsten Ebene zusammengefasst. Zwischen Clustern wird eine Kante eingezeichnet, wenn eine Kante zwischen Elementen der Cluster existiert. Durch interaktives Anclicken lassen sich Knoten expandieren.

Visualisierung I – 9. Graphen

22







Oft besteht ein Graph aus verschieden wichtigen Einheiten. Somit kann die Darstellung des Graphen vereinfacht werden, indem z.B. weniger wichtige Strukturen unterdrückt werden. Hierzu muss den Knoten und Kanten ein Relevanzwert zugeordnet werden, der im Regelfall vom Nutzer bestimmt wird. Häufig werden vordefinierte Kriterien, wie die Anzahl der Nachbarknoten, oder assoziierte Skalarwerte die sich aus der jeweiligen Anwendung ergeben verwendet. Für die Repräsentation gibt es drei verschiedene Ansätze: –

Ghosting, also unwichtige Kanten und Knoten in den Hintergrund treten lassen.



Hiding, also unwichtige Elemente weglassen.



Grouping, also unwichtige Elemente zusammenfassen.

Visualisierung I – 9. Graphen

23

Referenzen Die Erklärungen folgen den Beschreibungen in: ●

A. C. Telea. Data Visualization: Principles and Practice, A K Peters, Ltd., 2008.



R. Diestel. Graphentheorie, Springer, 3. Auflage, 2006



G. Di Battista, P. Eades, T. Tamassia, I. G. Tollis. Graph Drawing: Algorithms for the Visualization of Graphs, Prentice Hall, 1999

Visualisierung I – 9. Graphen

24