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

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Kapitel 6: Klassifizierung von Sortiertechniken
3. Kapitel: Komplexität und Komplexitätsklassen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Wie lösen wir ILPs exakt?
Marco Barz Seminar über Algorithmen SoSe2007
Anwendung und Visual Basic
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
Layout Algorithmen.
Genetische Algorithmen
Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: Besprechung: Gruppe 2 - Übungsblatt.
PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Geoinformation II Vorlesung 4 SS 2001 Voronoi-Diagramme.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Dynamische Programmierung mit Anwendung auf Sequence Alignment Problem
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Das Traveling Salesman Problem (TSP)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Minimal spannende Bäume
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Optimierungs- Algorithmen
Methoden zur Visualisierung semi-hierarchischer Graphen
Der A*-Algorithmus.
Konvexe Hüllen (Convex Hulls)
Gliederung der Vorlesung
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Suchen und Sortieren.
Graph-Drawing-Algorithmen
Computing orthogonal drawings with the minimum number of bends
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

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)

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

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

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

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

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

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

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

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

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

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)

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

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 "]; F83bea40 [label="copyRequestLine\n "]; F83bf0a8 [label="htRecvLine\n "]; F83bfe18 [label="htAddData\n "]; (...) F83bc040 -> F83bea40 [weight=2,label=" "]; F83bc040 -> F83bf0a8 [weight=2,label=" "]; F83bf0a8 -> F83bfe18 [weight=2,label=" "]; F83bf0a8 -> F83c2558 [weight=2,label=" "]; (...) } Knoten Bögen (keine „S x “-Mengen abgebildet)

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

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

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? ≙ Ausgangs-Annahme: annähernd hierarchischer Graph  Knoten auf verschiedenen Stufen (untergeordnet / übergeordnet)  gute Zuordnung optimiert Kantenlängen! 

Seminar Graph Drawing - Ein Algorithmus für die Visualisierung gerichteter GraphenGunter Ohrner VGG 17 Vorgehensweise - Schema 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

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?

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

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

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 ≙ 

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

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

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

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

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

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

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

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

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

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

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

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

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!

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

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“ Treffer