Constraints in orthogonal Graph Drawing

Slides:



Advertisements
Ähnliche Präsentationen
Visualisierung von UML-Diagrammen
Advertisements

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Christian Scheideler SS 2009
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Routing – Routing Protokolle
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Automatisches Zeichnen Ausgabe: — Besprechung:
Visualisierung Ziele der Visualisierung
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Marco Barz Seminar über Algorithmen SoSe2007
Andreas Kalender Institut für Informatik FU Berlin Seminar über Algorithmen Durchschnittsverzögerung.
Kombinatorische Topologie in der 3d Geomodellierung
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme 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.
Seminar parallele Programmierung SS 2003
WS 02/03 Netzwerkevon B. Frielinghaus Netzwerke Erzeugung und Änderung.
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]
Constraints in Graph Drawing 1
Erzeugung von Fahrgemeinschaftsplänen für Lehrer
Minimum Spanning Tree: MST
Präsentation zum Seminarprojekt Statistik mit R Name WS 2011/12.
§9 Der affine Raum – Teil 2: Geraden
§9 Der affine Raum – Teil 2: Geraden
Maschinelles Lernen und automatische Textklassifikation
Machine Learning Decision Trees (2).
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Chromatische Zahl.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
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 Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Christian Scheideler Institut für Informatik Universität Paderborn
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Constraint Delaunay Triangulations
Routenplanung querfeldein - Geometric Route Planning
Der A*-Algorithmus.
Konvexe Hüllen (Convex Hulls)
Gliederung der Vorlesung
Binärbäume.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
ResA am Arbeitsplatz Das Vorgehen ist angelehnt an „5 S“ und bietet Ihnen die Möglichkeit das Konzept der 5 Disziplinen ressourcenschonenden Arbeitens.
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.
Projekt Graphentheorie Eulerpfad
Computing orthogonal drawings with the minimum number of bends
 Präsentation transkript:

Constraints in orthogonal Graph Drawing Thomas Rothvoß Ziel: Orthogonalisieren eines Graphen mit den Nebenbedingungen Anzahl der Kantenknicke minimieren So wenig wie möglich vom Ausgangsgraphen abweichen

Inhalt des Vortrags Allgemeiner Ansatz zum Orthogonalisieren: Topology-Shape-Metrics-Ansatz Verschiedene Verfahren für den Shape-Schritt Tamassia: Graph mit max. Grad ≤ 4 Im Kandinsky-Modell: allgemeiner Graph Brandes, Eiglsperger, Kaufmann, Wagner: zusätzliche Nebenbedingung

Topology-Shape-Metrics-Ansatz Ein aus 3 Schritten bestehendes Verfahren, um einen Graphen zu orthogonalisieren: Topology: Lege die Topologie des Graphens fest  Planarisiere den Graphen Shape: Lege die Form (bzw. das Aussehen) des Graphens fest  Setze Winkel und Knicke Metric: Bestimme die Metrik des Graphen  Setze Kantenlängen und Knotengrößen

Schritt 1: Topology Verändert die Anordnung der Graphelemente zueinander Wird auch Einbettung genannt Beispiel:   Ergebnis: planare Repräsentation

Schritt 1: Topology  Problem: Was tun, wenn der Graph gar nicht planarisierbar ist? Lösung: Ersetze Kantenkreuzungen durch neue Knoten Ziel: Minimiere Anzahl einzufügender Knoten 

Schritt 2: Shape Lege Kantenknicke und Winkel zwischen den Kanten fest Auch Orthogonalisierung genannt Ziel: Minimiere Anzahl der Kantenknicke   Ergebnis: orthogonale Repräsentation

Schritt 3: Metric Bestimme die Länge der Kanten und die Größe der Knoten Wird auch Kompaktierung genannt Ziel (z.B.): Minimiere Fläche des Graphens   Ergebnis: orthogonale Gittereinbettung

Eigenschaften des Topology-Shape-Metrics-Ansatzes Vorteil: Jeder Schritt kann separat angepasst/verbessert werden Nachteil: Manchmal „verbaut“ ein Schritt eine bessere Lösung im nachfolgenden Schritt Hier: Verfahren für den 2. Schritt, also das Orthogonalisieren

Tamassia‘s Algorithmus Für einen eingebetteten Graphen wird ein Flussnetzwerk erstellt, in dem Kanten Kosten und Kapazitäten zugewiesen bekommen. Knoten erhalten Supply-Wert Supply > 0  Knoten muss Fluss in Stärke des Supply abgeben Supply < 0  Knoten muss Fluss in Stärke des Supply erhalten Eine Kosteneinheit über einer Kante entspricht einem Kantenknick Ein kostenminimaler Fluss liefert einen Graphen mit minimaler Anzahl von Kantenknicken

Erstellen des Netzwerkes Einen Node für jeden Knoten und jede Fläche Setze Supply Knotennode: Supply = 4 – Grad des Knotens Node einer inneren Fläche: Supply = 4 – Grad der Fläche Node der äußeren Fläche: Supply = –4 – Grad der Fläche Verbinde benachbarte Flächen mit Kante der Kapazität ∞ und Kosten 1 Verbinde Knoten mit angrenzenden Flächen mit Kante der Kapazität ∞ und Kosten 0

Beispiel für Tamassia‘s Algorithmus

Beispiel für Tamassia‘s Algorithmus Kosten 1 -9 Kosten 0 Alle Kanten haben Kapazität ∞ 2 1 Knotennode Flächennode 1 2 1 2 Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick einer der Kanten zwischen den beiden Flächen Ein Fluss von x von einem Knotennode zu einem Flächennode entspricht einem Winkel von (x+1)90° zwischen Knoten und Fläche

Beispiel für Tamassia‘s Algorithmus Kosten 1 2 -9 Kosten 0 2 1 Alle Kanten haben Kapazität ∞ 2 1 Knotennode 1 Flächennode 1 2 2 1 2 1 Jeder Fluss zwischen 2 Flächennodes entspricht einem Knick einer der Kanten zwischen den beiden Flächen Ein Fluss von x von einem Knotennode zu einem Flächennode entspricht einem Winkel von (x+1)90° zwischen Knoten und Fläche

Nachteil von Tamassia‘s Modell Problem: In Tamassia‘s Modell sind Knoten mit Grad > 4 nicht erlaubt. Grund: In orthogonalisiertem Graphen wären 0° Winkel nötig. Aber ein Fluss von x über einen Knotennode entspricht einem Winkel von (x+1)90°, also entspricht ein 0°-Winkel einem Fluss von -1  Negativer Fluss nicht erlaubt! Lösung: Erweitere Modell, so dass Knoten mit Grad > 4 erlaubt sind und erstelle im Netzwerk Kanten in Gegenrichtung, so dass Fluss auch zurückfliessen kann

Das Kandinsky-Modell Verboten: Erlaubt: oder Eigenschaft des Kandinsky-Modells: Einem 0° Winkel lässt sich stets ein eindeutiger 270° Knick zuordnen Verboten: Erlaubt: oder

Non-Empty-Face Eigenschaft der Kandinsky-Modelle Problem: 3 x 0°-Winkel, aber nur 2 Knicke Aber: Dieses Problem tritt nur bei dieser speziellen Art der leeren Fläche zwischen 3 Knoten auf.

Non-Empty-Face Eigenschaft der Kandinsky-Modelle Problem: 3 x 0°-Winkel, aber nur 2 Knicke Aber: Dieses Problem tritt nur bei dieser speziellen Art der leeren Fläche zwischen 3 Knoten auf.  LEERE FLÄCHEN VERBOTEN!!

Änderungen am Netzwerk Also eigentlich: Fluss der Stärke 1 von Flächennode f zu Knotennode v  Winkel zwischen e1 und e2 ist 0° f 1 v g h Problem: Wenn der Winkel zwischen e1 und e2 0° ist, dann müssen wir erzwingen, dass entweder von g nach f ein Fluss geht (also die Kante e1 einen Knick macht) oder von h nach f ein Fluss geht (also die Kante e2 einen Knick macht).

Lösung Da ein 0° Winkel sowieso einen Knick einer der beiden Kanten impliziert, lassen wir den Fluss über diejenige Kante laufen, die einen „Kandinsky- Knick“ erhält. Fluss von g nach v über Kante e1 e1 und e2 schließen 0-Winkel ein, e1 macht Knick Fluss von h nach v über Kante e2 e1 und e2 schließen 0-Winkel ein, e2 macht Knick f f 1 1 v v g h g h

Ausschnitt Kandinsky-Netzwerk v

Ausschnitt Kandinsky-Netzwerk f v g h Alle Kanten haben Kapazität 1 Kosten -C Kosten 0 Kosten 2C+1 Hilfsknoten

Kandinsky-Netzwerk – Effekt 1 Interpretation: f -1 1 g v v Ergebnis: g h v Fluss von g über e1 nach v mit Kosten von 2C+1-C-C = 1 e1 und e2 schließen 0°-Winkel ein, e1 macht Knick Effekt: Kein Fluss von f über e1 nach v findet statt, denn dieser wäre mit Kosten 2c+1 zu teuer

Kandinsky-Netzwerk – Effekt 2 Interpretation: f -2 1 1 g v h Kapazität überschritten v g h Angegebener Fluss in unserer Hilfskonstruktion entspricht von der Semantik her einem Fluss von -2 von v nach f. Aber Fluss von x entspricht Winkel von (x+1)90°, also hier -90°. Dieser illegale Winkel ist über die Kantenkapazität verboten.

Algorithmus von Brandes, Eiglsperger, Kaufmann, Wagner Gegeben: Eine „Skizze“ des Graphens Grund z.B.: Skizze ist vom Benutzer mit einem Editor erstellt Die Knoten haben vorgegebene relative Positionen zueinander Ziel: Orthogonalisiere den Graphen unter den Bedingungen Möglichst wenige Knicke Weiche möglichst wenig von der Skizze ab

Grobes Vorgehen Ausgangsskizze ..runde Winkel auf Vielfache von 90° ..dann optimiere Graphen

Datenstrukturen Gegeben sind: Eingebetteter, planarer Graph G=(V,E,F) Menge von Flächen: F Orthogonale Form: Q Q(f) liefert für die Fläche f eine Liste von Tupeln (ei,ai,bi) Q(f,i): i-tes Tupel von Q(f) a(Q,f,i): Winkel in Q(f,i) b(Q,f,i): Biegungseintrag in Q(f,i)

Terme der Zielfunktion Anzahl der Kantenknicke: Warum Faktor ½? Die Summenformel zählt jeden Knick doppelt.

Terme der Zielfunktion Abweichungen der Winkel zwischen orthogonalen Formen Q und S S: Q:

Terme der Zielfunktion Abweichung der Kantenknicke gibt dabei die Anzahl an Lösch- und Einfügeopera-tionen, um aus dem String b1 den String b2 zu machen

Zielfunktion Minimiere die Zielfunktion α,β,γ: geeignet zu wählende Gewichtungsfaktoren Änderung eines Winkels: Kosten α Neuer Knick: Kosten β+γ Knick entfernen: Kosten β-γ

Wahl der Gewichtungsfaktoren Ausgangsgraph: Ergebnis mit α und β klein, γ groß:  Gewicht auf Lesbarkeit Ergebnis mit β groß, α mittelgroß, γ klein:  Gewicht auf Stabilität

Modifikation an Knoten-Nodes g h

Modifikation an Knoten-Nodes Flussstärke 1 Supply 1 g h Kosten 0, Kapazität 3

Modifikation an Knoten-Nodes 1 g h Kosten 0, Kapazität 3 Kosten -C Kosten 0 Kosten 2C+1

Modifikation an Knoten-Nodes 1 g h Kosten α, Kapazität ∞ Kosten 0, Kapazität 3 Knoten erhalten als Supply denjenigen Wert, der dem den Winkel erzeugenden Fluss in der Skizze entspricht.  Veränderung eines Winkels verursacht Kosten von α Kosten -C Kosten 0 Kosten 2C+1

Modifikation an regulären Knicken

Modifikation an regulären Knicken Kapazität 2 Kosten 0 Supply von 2 2 Kapazität 1 Kosten β-γ Supply je um 1 gesenkt f Fluss von 2 von Knoten zu g  Winkel besteht weiterhin 270°, Kosten 0 Fluss von 1 von Knoten nach f  Knick wird entfernt mit Kosten β-γ

Beispiel Skizze: Orthogonalisierter Graph: Beispiel ER-Diagramm aus dem verwendeten Paper

Nachteil des Verfahrens Probleme mit baumartigen, nur einfach zusammen- hängenden Graphen: Veränderung eines einzelnen Winkels kann das Aussehen des Graphens komplett verändern.

Nachteil des Verfahrens Probleme mit baumartigen, nur einfach zusammen- hängenden Graphen: Veränderung eines einzelnen Winkels kann das Aussehen des Graphens komplett verändern.

Lösung des Problems Füge einen Rahmen ein, der mit den „äußeren“ Knoten verbunden wird. Ein äußerer Knoten ist dabei ein Knoten, der auf der konvexen Hülle des Graphen liegt.

Zusammenfassung Allgemeiner Ansatz zum Orthogonalisieren: Topology = Planarisieren Shape = Winkel + Knicke festlegen Metrics = Kantenlängen festlegen Verschiedene Verfahren für den Shape-Schritt Tamassia: Graph mit max. Grad ≤ 4  Min-Cost-Flow Kandinsky-Modell:  Min-Cost-Flow mit negativen Kosten Brandes, Eiglsperger, Kaufmann, Wagner:  Min-Cost-Flow mit eingearbeiteten Strafkosten für Abweichen von Skizze

Quellen Sketch-Driven Orthogonal Graph Drawing, Ulrik Brandes, Markus Eiglsperger, Michael Kaufmann, Dorothea Wagner erschienen: Graph Drawing 2002 Paper unter: http://www.inf.uni-konstanz.de/~brandes/publications Automatisches Layout von UML-Klassendiagrammen, Diplomarbeit, Martin Siebenhaller, Uni Tübingen