Hierarchical Graph-Drawing

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Christian Scheideler SS 2009
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Single-Source Shortest Paths: SSSP
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Inhalt Saarbrücken,.
Minimum Spanning Tree: MST
Steigung m berechnen Man kann die Steigung auch berechnen,
Zerlegung von Graphen.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Automatisches Zeichnen Ausgabe: — Besprechung:
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Wasserfall-Ansätze zur Bildsegmentierung
Algorithmen und Komplexität
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Produktform der Inversen 1
Präsentation zu Milestone 1: Planaritätstest, Planarisierierung und Orthogonalisierung Gruppenmitglieder: cku, ocl, pdo, bra.
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]
Compound Graphen und hierarchisches Layout
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
Heute: Scherenzange zeichnen
Approximationsalgorithmen Facility Location K-Median Cheng, Wei 12. Juli.
Vortrag über Graphen Von Jörg Hendricks.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
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
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
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
Information und Kommunikation
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
Minimal spannende Bäume
Optimierungs- Algorithmen
Methoden zur Visualisierung semi-hierarchischer Graphen
Der A*-Algorithmus.
Gliederung der Vorlesung
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.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
 Präsentation transkript:

Hierarchical Graph-Drawing Eine Technik für das Zeichnen gerichteter Graphen Referent: Benjamin Stähr Autoren des Quelltextes: Gansner, Koutsofios, North, Vo 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Inhalt Einführung in das Thema „Zeichnen von gerichteten Graphen“ Ein Überblick über die Technik Optimale Schichtzuweisung Knotenreihenfolge in Schichten Knotenkoordinaten Kanten zeichnen Zusammenfassung und Ausblick 17.10.05 Hierarchical GD, Benjamin Stähr

Ästhetische Zeichenkriterien Hierarchische Struktur hervorheben Wenn möglich zeigen alle Kanten in die gleiche allgemeine Richtung  Erleichtert es gerichtete Pfade zu finden und hebt Quellen und Senken hervor Q S Q S 17.10.05 Hierarchical GD, Benjamin Stähr

Ästhetische Zeichenkriterien Vermeide optische Anomalien  z.B. Kantenüberschneidungen und scharfe Knicke in Kanten sind zu vermeiden 17.10.05 Hierarchical GD, Benjamin Stähr

Ästhetische Zeichenkriterien Zeichne möglichst kurze Kanten  Vereinfacht das Finden verwandter Knoten  Konform zur Vermeidung optischer Anomalien 17.10.05 Hierarchical GD, Benjamin Stähr

Ästhetische Zeichenkriterien Bevorzuge Symmetrie und Balance  spielt nur sekundäre Rolle  wird an einigen wenigen Stellen des vorgestellten Algorithmus verwendet 17.10.05 Hierarchical GD, Benjamin Stähr

Ästhetische Zeichenkriterien Es ist unmöglich alle diese Kriterien gleichzeitig zu optimieren Entwurf von schnellen Heuristiken, die in vielen Fällen gute Layouts produzieren 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Problemstellung Eingabe ist ein gerichteter Graph G = (V,E) Enthält evtl. Kreise und Mehrfachkanten o.B.d.A. ist G zusammenhängend Die Attribute des Graphen sind: xsize(v),ysize(v): Größe einer den Knoten v umgebenden Bounding Box v ysize(v) xsize(v) 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Problemstellung nodesep(G): Minimaler horizontaler Abstand zwischen zwei Knotenboxen ranksep(G): Minimaler vertikaler Abstand zwischen zwei Knotenboxen w(e): Kantengewicht der Kante e u v nodesep(G) 17.10.05 Hierarchical GD, Benjamin Stähr

Ein Überblick über den Algorithmus Jedem Knoten v wird ein Rechteck mit den Mittelpunktkoordinaten (x(v),y(v)) zugewiesen Jeder Kante e wird eine Reihe von B-Spline Kontrollpunkten (x0(e),y0(e)),...,(xn(e),yn(e)) zugewiesen Layout hauptsächlich nach den vier ästhetischen Zeichenkriterien 17.10.05 Hierarchical GD, Benjamin Stähr

Ein Überblick über den Algorithmus Die vier Phasen des Algorithmus sind: Rank: weist jedem Knoten eine Schicht im Graphen zu Ordering: setzt die Reihenfolge der Knoten innerhalb jeder Schicht Position: weist jedem Knoten seine absoluten Koordinaten zu Make Splines: Zeichnet die Kanten des Graphen 17.10.05 Hierarchical GD, Benjamin Stähr

3. Optimale Schichtzuweisung „Rank“ weist jedem Knoten eine ganzzahlige Schicht zu Hier muss evtl. min. Längenbeschränkung beachtet werden 17.10.05 Hierarchical GD, Benjamin Stähr

Den Graph azyklisch machen Für eindeutige Schichtzuweisung muss ein Graph azyklisch sein Azyklisch machen  Kreise brechen durch temporäre Umkehrung von Kanten DFS partitioniert den Graphen in Baumkanten und Nicht-Baumkanten Nicht-Baumkanten in Cross-, Forward- und Backkanten Durch umkehren von Backkanten Graph kreisfrei 17.10.05 Hierarchical GD, Benjamin Stähr

Den Graph azyklisch machen Sinnvoll wäre es ein kleines oder minimales Kantenset umzudrehen „Feedback Arc Set“ jedoch leider NP-vollst. Lösung: DFS-Heuristik, welche Kanten umdreht, die in vielen Kreisen enthalten sind 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Baumkante Backkante Crosskante Forwardkante 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Problem Definition Nach Ästhetischen Zeichenkriterien ist ein Ziel des Algos kurze Kanten zu zeichnen Gewünscht also optimale Schichtzuweisung z.B. mit min. Gesamtkantenlänge ILP: u.d.N.: Gewichtsfkt. 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Worstcase-Laufzeit nicht polynomiell, aber in der Praxis sehr schnell Definitionen: Feasible: Schichtzuweisung erfüllt die min. Längenbedingungen Slack: Differenz der aktuellen und minimalen Länge einer Kante Tight: Kante deren Slack = 0 ist 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Erzeugung einer Schichtzuweisung durch einen Spannbaum des Graphen: Wähle Startknoten, weise ihm eine Schicht zu Nachbarknoten erhält den Wert eines bewerteten Knoten +/- der min. Länge der sie verbindenden Kante, je nach Kantenrichtung Fortfahren bis alle Knoten eine Schichtzuweisung haben 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Ein Spannbaum ist feasible, wenn seine Schichtzuweisung feasible ist Alle Kanten im eben erzeugten Spannbaum sind tight Der Wert eines „Schnittes“ (bekannt aus EA) durch den Graphen ist s = 1 2 1 5 4 s = 6 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Für jede Spannbaumkante wird der Wert eines Schnittes ermittelt. Dabei wird die Kante eleminiert und der Spannbaum bricht dadurch in Quellen- und Senkenkomponente 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Normalerweise impliziert ein negativer Wert eines Schnittes, dass die gewichtete Kantenlänge - durch Verlängerung der Baumkante bis eine der anderen Kanten tight wird - reduziert werden kann Diese wird neue Baumkante Dadurch neuer feasible Spannbaum 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Netzwerk Simplex Baumkanten mit negativen Schnittwerten werden durch Nicht-Baumkanten ersetzt, bis die Baumkanten pos. Schnittwerte haben Theoretisch wird eine Anti-Zyklen-Technik benötigt, um endl. Laufzeit zu garantieren Der resultierende Spannbaum entspricht einer opt. Schichtzuweisung 17.10.05 Hierarchical GD, Benjamin Stähr

4. Knotenreihenfolge in Rängen Kanten zwischen Knoten, die mehr als einen Rang auseinander liegen werden ersetzt durch Kantenketten mit jeweils Länge 1,virtuelle Knoten werden hinzugefügt Reflexive Kanten werden ignoriert Multi-Kanten werden vereinigt Es werden Heuristiken benutzt, da bereits für zwei Schichten minimieren der Kantenüberschneidungen NP-vollst. Ist 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Lösungsschema Startsortierungen werden errechnet Iterationssequenz um Reihenfolgen zu verbessern Jede Iteration geht von der ersten bis zur letzten Schicht vor, oder umgekehrt Jeder Knoten erhält eine Gewichtung aufgrund der relativen Position der mit ihm verbundenen Knoten auf der vorhergehenden Schicht Danach werden die Schichten neu sortiert 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Lösungsschema Populäre Gewichtsfunktionen: Barycenter: Definiert das Gewicht eines Knoten v als den Durchschnitt der Ordnungszahlen der Knoten der letzten Schicht, die mit v verbunden sind. Median: Wie Barycenter, allerdings wird der Median der Ordnungszahlen verwendet. Liefert bessere Ergebnisse, Approximationsfaktor von 3 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Lösungsschema Hier benutzte Methode basiert auf Median Wenn zwei Mediane existieren wird interpolierter Wert verwendet, der die Seite mit dichter gepackten Knoten bevorzugt Zus. Heuristik für lokales Optimum (20% - 50% weniger Kreuzungen) a b b a c d c d 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr 5. Knotenkoordinaten Jeder Knoten erhält in diesem Schritt x- und y-Koordinaten LP: u.d.N.: dabei: : Interne Gewichtung um das Zeichnen langer, gerader Kanten zu bevorzugen 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Kantentypen Beide Knoten der Kante sind reale Knoten Ein Knoten ist realer, einer virtueller Knoten Beide Knoten sind virtuelle Knoten Seien e,f,g Kanten der drei Typen, dann gilt: 17.10.05 Hierarchical GD, Benjamin Stähr

Lösung mit Simplex Verfahren Resultierendes LP ist total unimodular und kann daher in einem Schritt per Simplex gelöst werden Transformation bläht den Graphen leider auf Größe |V| |E| + |E²| auf  Große Graphen können nicht mehr mit effizientem Platzbedarf gespeichert werden 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Heuristischer Ansatz Eigentlich Iterationen folgender Heuristiken Medianpos: Minedge: ähnlich, nur für reale Knoten Minnode: Lokale Optimierung obiger Methoden Minpath: Begradigt Ketten virtueller Knoten (Spaghetti-Effekt verhindern) 4. Packcut: Zeichnet Knoten möglichst kompakt 2 8 8 3 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Simplex verbessern Heuristik ist leider schwer zu implementieren und arbeitet oft suboptimal  doch wieder Simplex Idee: Simplex aus 3. wiederverwenden und x-Koordinaten als Schichten ansehen Dazu muss G in einen Hilfsgraph G‘ transformiert werden u u eu e e ev e(v,w) v w v w 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr Simplex verbessern Optimale Lösung für G‘ induziert optimale Lösung für G Es sind Verbesserungen möglich, die den Simplex um ca. 500 bis 1000% beschleunigen Damit schneller als heuristische Lösung 17.10.05 Hierarchical GD, Benjamin Stähr

Weiterführende Techniken Neuerer Algorithmus nach Buchheim, Jünger und Leipert (1999) Verhindert spätere Bildung eines Spaghetti-Effekts in den Kanten Möglich dadurch, dass jede Kante nur zwei Knicke hat und dazwischen vertikal verläuft Lösungsansätze heuristisch und mit Simplex möglich, den hier vorgestellten Ansätzen recht ähnlich 17.10.05 Hierarchical GD, Benjamin Stähr

Hierarchical GD, Benjamin Stähr 6. Kanten zeichnen Kanten zwischen Knoten werden am einfachsten durch jeweils alle virtuellen Knoten gezeichnet Nachteil: Übersichtlichkeit leidet etwas, Graph ist optisch nicht perfekt Lösung: Verwendung von Splines 17.10.05 Hierarchical GD, Benjamin Stähr

Berechnung von Splines BB5 p1 p2 17.10.05 Hierarchical GD, Benjamin Stähr

7. Zusammenfassung und Ausblick Der vorgestellte Algorithmus ist klar strukturiert und programmiertechnisch gut umsetzbar Sowohl Laufzeit als auch Zeichenergebnis sind zufriedenstellend Splines müssten nicht benutzt werden, wenn ein anderer Ansatz zur Berechnung der x,y-Koordinaten gewählt würde Evtl. wäre „Kommunikation“ zwischen den einzelnen Schritten wünschenswert um Ergebnis zu verbessern 17.10.05 Hierarchical GD, Benjamin Stähr