Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 1 Ein Algorithmus für die Visualisierung gerichteter.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 1 Ein Algorithmus für die Visualisierung gerichteter."—  Präsentation transkript:

1 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 1 Ein Algorithmus für die Visualisierung gerichteter Graphen in der Ebene (2D) Seminar “Graph Drawing” SS 2004 bei Prof. Bischof (Lehrstuhl für Hochleistungsrechnen)

2 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 2 Gliederung ● Einleitung ● Motivation ● Prinzip ● Schritt 1: Zuordnung der Knoten zu Schichten ● Schritt 2: Sortierung der Knoten einer Schicht ● Schritt 3: Positionierung der Knoten (X/Y) ● Schritt 4: Bögen und Beschriftungen ● Schlussbemerkungen

3 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 3 Einleitung Vorgestellt wird von dot verwendeter Algorithmus zum Graphen zeichnen  zweidimensionale graphische Darstellung gerichteter Graphen in der Ebene

4 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 4 Motivation

5 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 5 Motivation Wofür ein Algorithmus zur Visualisierung gerichteter Graphen? ● besseres Verständnis alltäglich auftretender Datenstrukturen ● abstrakte Datenstrukturen schwer verständlich ● viele Datenstrukturen gut als Graphen darstellbar

6 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 6 Beispiele ● Funktionsaufrufgraphen ● Vererbungshierachien ● Benutzungsstrukturen in Programmen ● Verknüpfungsstrukturen von Hypertext ● signaturbeziehungen kryptographischer Schlüssel ● Stammbäume ●...

7 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 7 für Menschen „überschau-barer“ Graph muss strenge Kriterien erfüllen an ● Überschneidungen ● Kantenlänge ● „erkennbare“ Zusammenhänge Probleme Aber: überschneidungsfreie Graphen in Ebene nicht immer möglich! (erst ab 3D) Forderungen widersprechen sich teilweise. ? ? ?

8 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 8 Kriterien für „gute“ Graphen Algorithmus für Zeichnen gerichteter Graphen Forderungen: ● Hervorhebung vorhandener Flussrichtung der Bögen im Graphen ● Darstellung von Zusammenhängen, Vermeidung langer Kanten ● Hervorhebung / Zusammenfassung von Substrukturen ● gleichmäßiges und symmetrisches Layout

9 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 9 Prinzip

10 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 10 Herausforderungen „Optimales Layout“ zu schwierig: viele Teilprobleme wie globale Bogenlängenminimierung mit exponentieller Komplexität! Abhilfe: ● Konzentration / Spezialisierung auf bestimmte Graphenklassen ● Verwendung geeigneter Heuristiken, keine optimale aber gute Lösung, wenig Rechenaufwand

11 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 11 Ansatz Optimierung des Algorithmus für ● annähernd hierarchische ● gerichtete Graphen ● mit einer „Hauptflussrichtung“ der Bögen.  viele Graphen erfüllen Kriterien! (z.B. alle genannten Beispiele bis auf Signaturbeziehungen)

12 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 12

13 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 13 Eingabe - 1 ● alle Knoten mit Bezeichnungen („1“, „2“,...) ● Bögen zwischen Knoten („1“„2“, „3“„1“) ● Benutzer kann Mengen von Knoten vorgeben, die auf eine Schicht sollen („S“-Mengen) digraph "callgraph" { F83bc040 [label="htReceive\n 675 484"]; F83bea40 [label="copyRequestLine\n 188 723"]; F83bf0a8 [label="htRecvLine\n 484 486"]; F83bfe18 [label="htAddData\n 138 755"]; (...) F83bc040 -> F83bea40 [weight=2,label=" 188 723"]; F83bc040 -> F83bf0a8 [weight=2,label=" 484 486"]; F83bf0a8 -> F83bfe18 [weight=2,label=" 138 755"]; F83bf0a8 -> F83c2558 [weight=2,label=" 104 091"]; (...) } Knoten Bögen (keine „S x “-Mengen abgebildet)

14 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 14 Eingabe - 2 digraph "callgraph" { F83bc040 [label="htReceive\n 675 484"]; F83bea40 [label="copyRequestLine\n 188 723"]; F83bf0a8 [label="htRecvLine\n 484 486"]; F83bfe18 [label="htAddData\n 138 755"]; (...) F83bc040 -> F83bea40 [weight=2,label=" 188 723"]; F83bc040 -> F83bf0a8 [weight=2,label=" 484 486"]; F83bf0a8 -> F83bfe18 [weight=2,label=" 138 755"]; F83bf0a8 -> F83c2558 [weight=2,label=" 104 091"]; (...) }

15 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 15 - Schritt 1 - Zuordnung der Knoten zu Schichten

16 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 16 Schichtung der Knoten Zielkriterien erfüllen, z.B. Vermeidung langer Kanten – Wie? 1 87 6 5 4 3 2 1 8 7 65 432 ≙ Ausgangs-Annahme: annähernd hierarchischer Graph  Knoten auf verschiedenen Stufen (untergeordnet / übergeordnet)  gute Zuordnung optimiert Kantenlängen! 

17 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 17 Vorgehensweise - Schema 1 7 8 2 4 3 9 6 5 S1S1 S2S2 S3S3 S1S1 S2S2 S3S3 ) Schichtung der Knoten zur globalen Kantenlängenminimierung rechnerisch zu aufwändig! erste Vereinfachungen: ● alle Zyklen entfernen ● S x -Menge ⇒ Pseudoknoten S x ● parallele Bögen verschmelzen ● „Schleifchen“ an Knoten ignorieren

18 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 18 Vorgehensweise - NSA Zyklusentfernung durch Umdrehen von Bögen: Funktioniert bei angenommener hierarchischer Grundstruktur nicht viele Zyklen, nicht viel umzudrehen dazu Netzwerk-Simplex-Algorithmus: ● erstelle Gerüst des Graphen ● ersetze so lange die „schlechtesten“ Kanten durch die „besten Alternativen“, bis Gerüst gewisses Gütekriterium erfüllt Welches?

19 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 19 Netzwerk Simplex Algorithmus Gütekriterium für eine Kante: Stutzwert ● Bogen mit schlechtesten Stutzwert suchen ● durch Bogen mit möglichst großem Stutzwert ersetzen ● wiederholen, solange möglich 1 8 76 543 2 3 3 3 3 0 0 ! ) 1 8 7 65 432 2 2 2 2 0 1 1

20 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 20 - Schritt 2 - Sortierung der Knoten einer Schicht

21 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 21 Sortierung der Knoten ● nach Schichtung der Knoten Bogenlängen festgelegt ● kreuzende Kanten von Reihenfolge der Knoten in den Schichten bestimmt  Suche nach sinnvoller Sortierung 1 8 7 65 432 1 8 7 65 432 ≙ 

22 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 22 Sortierung Prinzip Suche einer optimalen Sortierung NP-vollständig Graphen vereinfachen zusätzliche Heuristiken verwenden Vorgehensweise: ● Graph vereinfachen (Schleifen ignorieren,...) ● Anfangssortierung bestimmen ● Sortierung schrittweise verbessern

23 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 23 Sortierung verbessern Knotenreihenfolge abhängig von der Position der Elternknoten in der vorherigen Schicht: ● Elternknoten-abhängige Gewichtung für jeden Knoten berechnen ● Knoten abhängig von der Gewichtung sortieren ● Knoten mit Nachbarn vertauschen, falls besser

24 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 24 Gewichtung der Knoten 1 Mögliche Gewichtungen für Knoten: ● Barycenter-Methode Durchschnittswert der Positionen der Eltern ● Median-Methode Median der Positionen der Eltern Median-Methode in Praxis besser auch theoretischer Vorteil: Median-Methode max. dreimal schlechter als Optimallösung, bei Barycenter unbekannt

25 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 25 Gewichtung der Knoten 2

26 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 26 - Schritt 3 - Positionierung der Knoten (X/Y)

27 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 27 X/Y-Positionierung ● in älteren Algorithmen in den vorhergehenden Schritt integriert ● Realisierung als eigener Schritt erlaubt mehr Flexibilität ● Problemstellung: gewichtetes x der Bögen minimieren ( ⇒ gerade Bögen) ● Platzbedarf quadratisch in Anzahl der Bögen

28 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 28 X/Y: Algorithmus Versuch 1 naheliegender Ansatz: ● Spezial-Heuristiken zur guten Knotenpositionierung suchen ● effizient, aber Ergebnis nicht zufriedenstellend: Erkennung zusammengehörender Bereiche / Subgraphen mangelhaft ● gegenseitige Beeinflussung der verwendeten Heuristiken ⇒ Feineinstellung schwierig

29 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 29 X/Y: Algorithmus Lösung Subgrapherkennung / -verschiebung ähnlich zu NSA- Vorgehensweise bei Schichtung! x-Koordinaten ⇒ Schichtung in x-Richtung bereits gelöstes Problem Realisierung über Hilfsgraphkonstruktion

30 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 30 - Schritt 4 - Bögen und Beschriftungen

31 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 31 Konstruktion der Bögen 1 ● Darstellung der Bögen als Splines ● möglichst gleichmäßige Spline-Führung ● bestmögliche Platzausnutzung

32 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 32 Konstruktion der Bögen 2

33 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 33 Konstruktion der Bögen 3

34 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 34 Bogenbeschriftungen Probleme mit Bogenbeschriftungen: ● werden oft mitten auf dem Bogen platziert (einfach) ● überdecken dabei oft wichtige Informationen (Murphy) ● liegen evtl. bei mehreren Bögen Zuordnung schwierig für Betrachter Lösungsansatz: Betrachte Beschriftungen als unsichtbare Knoten!

35 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 35 Schlussbemerkungen

36 Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 36 Schlussbemerkungen ● dot verfolgt interessante und einige 1993 ganz neue Ansätze zum Graphen zeichnen (NSA für Schichtung und x-Koordinaten, Bogenberechnung, etc...) ● wenig Rechenzeit und gute Ergebnisse! ● erfolgreiches Verfahren: erfüllt nicht DFSG aber ist Standardtool für Graphenzeichnen bei OpenSource Software z.B. verwendet durch kCachegrind, Doxygen,... ● Google: „GraphViz“ 73.000 Treffer


Herunterladen ppt "Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 1 Ein Algorithmus für die Visualisierung gerichteter."

Ähnliche Präsentationen


Google-Anzeigen