Automatisches Zeichnen von Graphen im Wintersemester 2015/16 - Prof. Dr. Michael Jünger - Universität zu Köln Institut für Informatik Inhaltsverzeichnis 0 Einführung (21.10.15, 26.10.15) 2 1 Zeichnen von Bäumen (28.10.15, 02.11.15) 2 2 Hierarchisches Zeichnen (04.11.15, 09.11.15, 16.11.15, 18.11.15, 23.11.15) 3 3 Kräftebasierte Verfahren (25.11.15) 5 4 Effiziente Verfahren zum Zeichnen großer Graphen (30.11.15, 02.12.15) 6 5 Planare Graphen (07.12.15, 09.12.15) 7 6 Kanonische Ordnungen und die Mondshein-Sequenz (14.12.15) 8 7 Große planare Subgraphen und Kreuzungsminimierung (16.12.15) 10 8 Orth. Zeichnen: Knickminimierung für planare Graphen (21.12.15) 11 9 Visualisierung von Datenstrukturen mit planaren Graphen (11.01.16) 12 10 Visualisierung von hierarchischen Daten und Graphen (13.01.16) 13 11 Rectangular and Mosaic Cartograms (18.01.16) 14 12 Algorithmen zur Realisierung von Polyedern (20.01.16) 16 13 Automatisiert U-Bahn-Linienpläne zeichnen (25.01.16) 17 14 Layer-Based Graph Drawing (27.01.16) 18 15 Testen von Planarität (01.02.16, 03.02.16) 19 Mitschrift der Vorlesung von Dario Antweiler. Keine Garantie auf Richtigkeit oder Vollständigkeit. Lob, Kritik, Kommentare an [email protected]. Lizensiert unter (CC BY-SA 4.0). Stand 3. Februar 2016. Abbildung auf der Titelseite ist aus dem Graphen-Editor yEd von yWorks 1 0 Einführung 21.10.15 • Organisatorisches • Webseite der Veranstaltung: http://www.informatik.uni-koeln.de/ls_juenger/teaching/ws-201516/ automatisches-zeichnen-von-graphen/ • iPad-Spiel CrossingX (http://www.crossingx.com/) 26.10.15 • Themenüberblick: – Orthogonale Zeichnungen – Planarisierungsverfahren ∗ Ersetze Kreuzungen durch künstliche Knoten – Kräftebasierte Verfahren – Cluster-Graph-Drawing – Symmetrien/Gemeinsamkeiten – Beispiele: UML, Storylines – GDEA Archive (http://gdea.informatik.uni-koeln.de/) – OGDF: Glyphon (http://amber-v7.cs.tu-dortmund.de/) 1 Zeichnen von Bäumen 28.10.15 • Definitionen • Zeichnen von Binärbäumen – Erster Versuch: Inordner-Traversierung – Kritik: sehr breit, Väter nicht zentriert – Ästhetik-Kriterien (A1) − (A5) – (A5) verhindert manchmal minimale Breite – Algorithmus von Wetherall/Shannon – Algorithmus von Reingold/Tilford ∗ ∗ ∗ ∗ ∗ Idee: Devide and Conquer mit postorder Berechnung der Konturen effizient durch zusätzliche Zeiger möglich Laufzeit O (n) RT erzielt nicht immer die minimale Breite Es gibt Binärbäume T, für die RT Zeichnungen mit Breite n+2 3 produziert, während die optimale Breite 2 ist – Minimierung der Breite als LP – Bestimmung der Mengen isomorpher Teilbäume 02.11.15 • Komplexität der Breitenminimierung – Formalisierung der Restriktionen als LP – Charakterisierung der Teilbäume durch in- und preorder Traversierung (→ Beispiel) – LP kann in polynomieller Zeit aufgestellt und gelöst werden – Breitenminimierungsproblem (BMP) ∗ Existiert eine Zeichnung mit Breite ≤ W ? ∗ Problem ist NP-vollständig (→ Konstruktion) – Erweiterung auf beliebigen Grad 2 2 Hierarchisches Zeichnen 04.11.15 • Sugiyama-Verfahren (1981) • Directed Acyclic Graph (DAG) • 3 verschiedene Phasen: – Schichtzuweisung – Kreuzungsminimierung – Horizontale Koordinatenzuweisung • Phase 1: Schichtzuweisung – Partition in h disjunkte Klassen V = V1 ∪ · · · ∪ Vh – Für Kanten (u, v) ∈ E mit u ∈ Vi und v ∈ Vj gilt i < j – h gibt die Höhe des Graphen an, maxi |Vi | die Breite • Anforderungen: 1. Kompaktheit 2. Einfache Schichtung 3. wenige künstliche Knoten (→ wichtig für spätere Phasen; wenige Knicke und kurze Kanten) • Längster-Pfad-Schichtung – Topologische Sortierung (→ Beispiel) – Multiprocessor Scheduling Problem (MSP) • Coffman-Graham-Schichtung – lexikografische Sortierung (→ Beispiel) – Satz: Für die CG-Schichtung gilt h ≤ 2 − 2 W · hmin und ist für W = 2 optimal • Minimierung der Anzahl künstlicher Knoen – Modellierung als ganzzahliges LP – Restriktionsmatrix ist vollständig unimodular, daher findet der Simplex-Algorithmus eine ganzzahlige Lösung • Phase 2: Kreuzungsminimierung – NP-vollständiges Problem in allgemeinen Graphen – z.B. minimale Anzahl Kreuzungen offen für den K13 – für bipartite Graphen ebenfalls NP-vollständig – Heuristik: Layer-by-Layer-Sweep 09.11.15 • Layer-by-Layer-Sweep – 2-Schichten-Kreuzungs-Minimierungsproblem mit einer fixierten Schicht (”E2SKM1F”) – einfacher Graph, Nordgrenze fixiert – NP-Vollständigkeits-Beweis durch Reduktion auf das ”Feedback Arc Set” (Chazelle/Edelsbrunner) 3 16.11.15 • Experimentelle Laufzeitanalyse der Algorithmen zum Kreuzungszählen • Heuristiken zur Kreuzungsminimierung – Greedy-Insert ∗ Wähle Knoten, der mit Vorgängern wenigste Kreuzungen erzeugt ∗ analog zu SelectionSort – Greedy-Switch ∗ Betrachte 2 benachbarte Knoten und vertausche, falls dies die Kreuzungen reduziert ∗ analog zu BubbleSort – Split ∗ Pivot-Element wählen, dann rekursiv für linke bzw. rechte Teilmenge ∗ analog zu QuickSort – Barycenter ∗ Berechne durchschnittliche Position der Nachbarn – Median ∗ Wähle Position des mittleren Nachbarn ∗ Algorithmus produziert eine 3-Approximation der optimalen Lösung (→ Beweis) 18.11.15 • Lineares Programm zur Kreuzungsminimierung – Charakteristischer Vektor χπ2 einer Permutation – Ausschließen von ”verbotenen” Kreisen – Lineares Ordnungsproblem (LOP) • LOP-Intermezzo – Anwendungsbeispiel: Input/Output-Analyse (Leontief, 1973) – Triangulation für Input/Output-Tabellen – Anwendungsbeispiel: Bundesliga-Tabelle – Lösungsverfahren ”Branch and Cut” ∗ Triviale Relaxierung ∗ Löse LP ohne Nebenbedingungen und füge verletzte NB hinzu ∗ Falls Lösung nicht ganzzahlig, setze Wert einer Variablen fest & löse rekursiv • Experimentelle Studien – Laufzeitanalyse für Beispiel-Instanzen – Barycenter-Heuristik in der Praxis empfehlenswert • Kreuzungsminimierung auf p Schichten – Quadratische Gleichungen statt linearer Ungleichungen möglich – Quadratische Zielfunktion kann linearisiert werden, ist aber evtl. nicht sinnvoll – Semidefinite Programmierung – Faustregel: Dünne Graphen → als LP lösen, dichte Graphen → als SDP lösen 4 23.11.15 • Phase 3: Horizontale Koordinatenzuweisung – Spaghetti-Effekt vermeiden – Parameter für die Wichtigkeit von Kanten ω (e) , Ω (e) – Lösung mittels IP/LP-Techniken – Grundidee einfacher Heuristiken ∗ Prioritäten & Wunschpositionen ∗ Segmentierung langer Kanten, innere Segmente senkrecht ∗ Kombination von 4 Zeichnungen in O (n) • Wie macht man einen Graphen azyklisch? – Azyklische Subdigraphen Problem (ASP) → NP-schwer – Approximation in Linearzeit mit |Ea | ≥ 1 2 |E| – Branch & Cut (+ Spezialversion für dünne Graphen) – Einfache Greedy-Heuristik – Verbesserte Greedy-Heuristik in Linearzeit – Satz: G zusammenhängend, ohne 2-Kreise, dann berechnet Heuristik Kantenmenge mit |Ea | ≥ 1 6 |V | 3 1 2 |E|+ Kräftebasierte Verfahren 25.11.15 • Grundidee – Knoten sind sich abstoßende Partikel, Kanten sind Federn – Gesucht ist ein Zustand minimaler Energie – intuitiv; leicht programmierbar für kleine bzw. dünne Graphen • Kräftemodell P P – F (v) = fuv + guv , wobei fuv Kraft durch die Feder und guv die elektrische Abstoßung der Teilchen modelliert – 0-Energie-Länge und Steife der Federn gegeben • Ästhetik-Kriterien – Tendenz zur Ideallänge – Knoten nicht zu nah zusammen – indirekt auch Symmetrie • Einfacher Algorithmus • Variante von Tutte (1960) – luv ≡ 0, kuv ≡ 1, keine elektrischen Kräfte – Problem: alle Knoten im Ursprung wäre Ideallösung – Lösung: 3 Knoten festnageln – Barycenter-Methode (jeder Knoten liegt im Schwerpunkt seiner Nachbarn) – Satz: 3-zsmh. planarer Graph, ein Land festnageln, dann liefert die Barycenter-Methode eine planare Einbettung – Problem: Schlechte Auflösung, großes Gitter nötig • Simulation graphentheoretischer Distanzen durch Kräfte • Magnetische Felder (Vorzugsrichtung) 5 • Allgemeine Energie-Funktionen (Simulated Annealing) • Nebenbedingungen – Positionsbedingungen – Feste Subgraphen – Geometrisches Clustering 4 Effiziente Verfahren zum Zeichnen großer Graphen 30.11.15 Gastvortrag von Dr. Martin Gronemann (Uni Köln) • Spring Embeddor – Lege Knoten zufällig in die Ebene – Berechne den Kraftvektor und verschiede den Knoten in dessen Richtung 2 – Problem: Laufzeit O C · |V | + |E| ; große Graphen breiten sich langsam aus → viele Iterationen nötig • Die Gitter-Methode (Fruchterman & Reingold, 1991) – Unterteile Zeichenfläche in Quadrate – Berechne abstoßende Kräfte nur für Knoten aus benachbarten Gebieten – Für konstante Anzahl Knoten pro Gebiet O (n); im Worst-Case O n2 – Problem: Vernachlässigung weitreichender Kräfte, obwohl entfernte Knoten ebenfalls wichtig sind • Approximation der abstoßenden Kräfte – Zusammenfassung der Knoten eines Gebietes im Schwerpunkt – Berechne Kraftvektor für ein Paar A, B – O (A + B) statt O (A · B) – Genauigkeit hängt von der Kompaktheit und dem Abstand der Mengen ab • Quadtree – Rekursive Partitionierung der Ebene in Quadrate, solange bis jede Zelle nur einen Knoten enthält – leere Teilbäume löschen bzw. gar nicht erst generieren – Innere Knoten mit einem Kind schrumpfen – Daraus entsteht der komprimierte Quadtree mit linearer Größe in n – Es gibt Algorithmen, die den komprimierten Quadtree in Zeit O (n log n) kostruieren – Bottom-up Berechnung der Schwerpunkte & Massen in Linearzeit • Well-seperated Pair Decomposition (Callahan & Kosaraju, 1995) – Zwei Mengen A, B sind well-seperated für ein s > 0, wenn zwei Kreise mit Radius r um A bzw. B existieren, die mindestens rs Abstand voneinander haben – Berechne well-seperated Quadtreezellen – auch in höheren Dimensionen möglich – Algorithmus von Har-Peled 2008 berechnet eine WSPD W der Größe O (n) in Zeit O (n) – Beweisidee: Wir vergleichen nur Quadrate, deren Mittelpunkte relativ nah sind; binärer Aufrufbaum 02.12.15 • Approximation der abstoßenden Kräfte – Berechne die Kraft E (A) durch die Summe der Kräfte auf die Eltern-Knoten (top-down) – Vorgehensweise: ∗ Konstruiere Quadtree O (n log n) 6 ∗ ∗ ∗ ∗ Schwerpunkte berechnen (bottom-up) O (n) WSPD berechnen O (n) Externe Kräfte eines jeden Baumknoten A bzgl. aller (A, B) ∈ W berechnen O (n) Kräfte durch Top-Down-Traversierung akkumulieren O (n) – Quadtree & WSPD benötigen beide O (n) Speicherplatz – Speicherung der WSPD nicht nötig, wenn die Kräfteberechnung direkt im Algorithmus statt findet – Insgesamt ergibt sich: O (n log n) Zeit, O (n) Speicherplatz – Konstruktion des Quadtree kann schnell erfolgen, Bottleneck woanders • Weiterführende Methoden & Anmerkungen – Physikalische Anwendungen – KD-Tree, Fair-Split-Tree statt Quadtree möglich – bis jetzt: Approximation der Kräfte als Monopol-Methode • Fast Multipole Methode – Potentialfeld mit Kraftvektoren – Komplexe Funktion mit p + 1 Koeffizienten – Local Expansion – Berechnung der Kräfte genauer, als komplexer • Multilevel Verfahren zum Zeichnen von Graphen – Idee: Berechne grobes Layout für groben Graphen – Daumenregel: Anzahl Knoten mindestens halbieren, aber möglichst viele Knoten behalten – Im Idealfall log |V | Multilevel – Wenn log |V 0 | im Vergleich zu log |V | zu klein ist, erhalten wir zu wenige Informationen über die Knoten in G – Stefan Hachul: Sonnen-Planeten-Monde-Verfahren ∗ Zerlege den Graphen in 3 Klassen von Knoten ∗ Berechnung der Klassen durch eine beschränkte Breitensuche ∗ Algorithmus: · Markiere alle v als frei · Solange ein v frei existiert, starte BFS (v) · Kontrahiere Intra-System-Kanten ∗ Laufzeit der Vergröberung O (|V | + |E|) • Tipps & Tricks – Benutzte Kräfte aus vorheriger Iteration – Sortiere bei der Wahl der Sonnen die Knoten nach Grad – Daumenregel für Spring Embeddor: Auf gröberen Graphen muss genauer gearbeitet werden 5 Planare Graphen • Rätsel 1 von Henry Ernest Dudeney (Energieversorgung, K3,3 ) • Rätsel 2 von August Ferdinand Möbius (Königreich, K5 ) • Ein Graph heißt planar, wenn er kreuzungsfrei in die Ebene eingebettet werden kann • Satz: K3,3 und K5 sind nicht planar. • Aufspannende Kreise eines Graphen entsprechen geschlossenen Kurven in der Ebene • Alle Kanten außerhalb des Kreises heißen Sehnen 7 07.12.15 • Zwei Sehnen stehen in Konflikt, wenn ihre Endknoten im Kreis alternieren • Stehen zwei Sehnen in Konflikt, muss eine im Inneren und eine im Äußeren gezeichnet werden • Der K3,3 besitzt 3 paarweise in Konflikt stehende Sehnen, also nicht planar; K5 analog • Eine Unterteilung eines Graphen entsteht durch eine Ersetzung von Kanten durch paarweise disjunkte Pfade • Unterteilungen von K3,3 und K5 sind nicht planar • Satz von Kuratowski: G ist planar ⇔ G enthält keine Unterteilung des K3,3 oder des K5 als Subgraphen • Jede kreuzungsfreie Zeichnung in eine planare Einbettung • Für jede planare Einbettung sind die Knoten-Uhrzeigerlisten definiert: – Für jeden Knoten werden die inzidenten Kanten im Uhrzeigersinn gelistet – Normieren: Die Liste beginnt mit dem kleinsten Knotenindex • Flächen-Uhrzeigerlisten analog • Die Menger aller Einbettungen mit gleichen Knoten-/Flächen-Uhrzeigerlisten ist eine kombinatorische Einbettung • Ein Graph ist genau dann in die Ebene planar einbettbar, wenn er auf die Kugeloberfläche planar einbettbar ist (stereografische Projektion) • Die 3−zusammenhängenden planaren Graphen haben genau zwei kombinatorische Einbettungen (Spiegelung) • Jeder planare Graph besitzt (bzgl. einer festen Einbettung) einen eindeutigen dualen planaren Graphen 09.12.15 • Demonstration der stereografischen Projektion • Euler-Formel • Satz: G einfach, planar ⇒ |E| ≤ 3 · |V | − 6; für G zusätzlich dreiecksfrei gilt sogar |E| ≤ 2 · |V | − 4 • Maximal planarer Graph • Triangulation • Satz: Für G einfach, planar ist äquivalent: – |E| = 3 · |V | − 6 – G ist Triangulation – G ist maximal planar • Platonische Körper • Vorbereitung kanonische Ordnungen 6 Kanonische Ordnungen und die Mondshein-Sequenz 14.12.15 Gastvortrag von Jun.-Prof. Dr. Jens M. Schmidt (TU Ilmenau) • Gradlinige Zeichnungen – Theorem: Jeder planare Graph hat eine gradlinige Zeichnung – braucht evtl. exponentiellen Platz; Beweis impliziert keinen effizienten Algorithmus – Theorem (de Fraysseix, Pach, Pollack, 1990): Ein (2n − 4) · (n − 2)-Gitter reicht für eine gradlinige Zeichnung aus – Schnyder, 1990: Ein (n − 2) · (n − 2)-Gitter reicht aus 8 – Wir triangulieren den Eingangsgraph und suchen eine Knotenreihenfolge • Kanonische Ordnungen – Totalordnung der Knoten – 1, . . . , i − 1 induzieren einen 2-zusammenhängenden Graphen für alle i = 3, . . . , n − 1 – Kante (1, 2) liegt auf der Außenfläche von Gi−1 – Nachbarn von i in Gi−1 sind konsekutiv auf der Außenfläche von Gi−1 – Kanonische Ordnungen existieren für jeden maximal planaren Graphen G • Shift-Algorithmus – Invarianten: Knoten 1 liegt auf (0, 0), Knoten 2 liegt auf (2i − 6, 0); x-Koordinaten der Außenfläche sind monoton steigend – Jede Kante außer (1, 2) hat Steigung ±1 • Ohrendekomposition – Charakterisierung der 2-zsmh. Graphen – Erweiterung auf 3-Zusammenhang und nicht-planare Graphen – Historie, 2 − 1-Sequenz nach Mondshein • Anwendungen – Test auf Planarität in Linearzeit – Unabhängige Spannbäume 9 7 Große planare Subgraphen und Kreuzungsminimierung 16.12.15 • Große Planare Subgraphen – Definition größter planarer Subgraph (MPS) – MPS-Problem ist äquivalent zum Finden einer kleinsten Kantenmenge, sodass der Restgraph planar ist. Beide Probleme sind NP-schwer – Maximaler planarer Subgraph; im Allgemeinen kleiner; kann in polynomieller Zeit berechnet werden – Greedy-Algorithmus mit Laufzeit O (|E| |V |) – Mit SPQR sogar in O (|E| log |V |) möglich – Liefert 13 -Approximation, 4 9 ebenfalls möglich – Lineares Optimierungsproblem unter Verwendung des Kuratowski-Theorems – Branch-&Cut-Algorithmus optimiert über das ”Planare Subgraph Polytop” • Kreuzungsminimierung – Definition Kreuzungszahl cr (G) – Geschichte ∗ 1944: Turan beschreibt ”brick factory problem” gegenüber Zarankiewicz; d.h. Kreuzungsminimierung des Km,n ; obere Schranke gefunden ∗ 1960: Zeichen-Regel von Hill & Guy mit oberer Schranke für Kn ∗ 1983: Beweis der NP-Vollständigkeit des Problems der Kreuzungsminimierung von Garey & Johnson ∗ Vermutung cr (Km,n ) = Z (m, n); bewiesen für kleine m, n, offen für z.B. K7,11 , K9,9 – Anwendungen: ∗ VLSI-Design ∗ Automatisches Zeichnen von Graphen – ILP-Ansatz ∗ ∗ ∗ ∗ ∗ ∗ Sei durch xef ∈ {0, 1} gegeben, ob Kanten e, f sich schneiden Realisierbarkeit einer Zeichnung bei gegebenen Variablen-Werten ist NP-vollständig Idee: kreuzungbeschränkte Zeichnungen, d.h. pro Kante nur eine Kreuzung Aber: ist nicht umbedingt optimal; kann mehr als cr (G) Kreuzungen enthalten Lösung: Ersetze jede Kante durch Pfad der Länge |E| Problem: Hohe Anzahl Kanten, schlechte Performance – ILP-Ansatz, 2. Versuch ∗ ∗ ∗ ∗ ∗ ∗ ∗ Unterteile Kante nur dann, falls mehr als eine Kreuzung nötig Realisierbarkeit in Linearzeit überprüfbar Kuratowski-Bedingungen CD,H Hewistischer Seperations-Algorithmus Test auf Planarität durch Anwendung des Boyer-Myrvold-Algoritmus Spaltengenerierung Test-Instanzen: Rome library of undirected graphs 10 8 Orth. Zeichnen: Knickminimierung für planare Graphen 21.12.15 Gastvortrag von Prof. Dr. Petra Mutzel (TU Dortmund) • Motivation – Topology-Shape-Metrics-Verfahren (Tamassia, 1984) – Das Entscheidungsproblem, ob ein Graph eine Zeichnung ohne Knicke besitzt ist NP-vollständig – Für eine feste kombinatorische Einbettung ist eine Minimierung der Knickanzahl effizient möglich • Netzwerk-Flüsse – Wir wollen das Knickminimierungsproblem durch einen minimalen Kostenfluss modellieren – Eine Orthogonale Repräsentation eines Graphen kann repräsentiert werden durch die Tupel (er , sr , ar ), d.h. Kante er , Binärcode der Knicke sr und Winkel zur nächsten Kante ar P P – Anzahl der Knicke in Einbettung H ist b (H) = 21 f r∈f |sr | – Die Eigenschaften (P 1) − (P 4) charakterisieren genau die Graphen, die eine orthogonale Einbettung besitzen • Bestimmung einer knickminimalen orthogonalen Repräsentation – Transformation nach Tamassia in Netzwerk N – Konstruiere N folgendermaßen: – Für jeden Knoten und jede Region gibt es einen Knoten – Verbinde jeden Knoten mit jeder Region, an der er liegt mit einer Kante a mit Kosten 0 und Kapazitäten la = 1, ua = 4 – Verbinde je zwei Knoten, welche Regionen repräsentieren, die eine Kante teilen durch eine Kante a mit Kosten 1 und Kapazitäten la = 0, ua = ∞ – Korrektheit der Transformation • Längenberechnung – Normalisierte orthogonale Repräsentation – Kompaktierung • Erweiterungen – Kandindsky-Modell 11 9 Visualisierung von Datenstrukturen mit planaren Graphen 11.01.16 Gastvortrag von Prof. Dr. Franz J. Brandenburg, Universität Passau • Einführung – Motivation, Nutzen, Ziele • Datenstrukturen – Grundlegende Operationen: insert, remove, search, isempty • binäre Suchbäume – Reingold-Tilford (rekursiv, botton-up, Linearzeit, Symmetrie, Subgraph-Isomorphie) – Aber: Breiteminimierung NP-vollständig • Lineare Datenstrukturen – Arrays, Listen • Stack (Keller) – LIFO-Prinzip – Charakterisierung durch Gleichung: pop (push (S)) = S – Anwendung: Tiefensuche, korrekte Klammerung, Traversieren von Bäumen, postfix-Notation – Visualisierung durch Stack-Graphen – lineare Graph Layouts – Definition Book Embeddings, book-thickness – 1-Stack – Theorem: book-thickness (G) = 1 ⇔ G hat ein 1-Stack-Layout ⇔ G ist aufsp. Subgraph eines außenplanaren Graphen – Theorem: Außenplanarität kann in O (n) getestet werden – 2-Stack – Theorem: book-thickness (G) = 2 ⇔ G hat ein 2-Stack-Layout ⇔ G ist aufsp. Subgraph eines planaren Graphen mit Hamiltonkreis – Goldner-Harary-Graph – Theorem: Ist G planar mit Hamiltonkreis? → NP-vollständig – k-Stack-Graphen – 3-Stack-Graphen ⇔ aligned bar 1-visibility Graphen • Queue (Warteschlange) – FIFO-Prinzip – Visualisierung durch Klammerung – Oberflächen versch. Genus – Planarität – Deque-Graphen, linear zylindrische, Fundamentalpolygon – Theorem: G Deque-Graph ⇔ G ist linear zylindrisch ⇔ G ist aufsp. Subgraph eines plan. Graphen mit Hamilton-Pfad – Queue-Graphen, Queue-Layouts – Arch Leveled planar Graph, Duale Graphen – k-Queue-Graphen, splittable Dequeue – Anwendungen: Koppeln von ICE-Zügen, Turingmaschinen – Hermits 12 10 Visualisierung von hierarchischen Daten und Graphen 13.01.16 Gastvortrag von Dr. Martin Gronemann • Treemaps – Beispiele: Dateisysteme, US-Haushaltsplan – gewichtete Bäume (gewurzelter Baum + ordentliche Gewichte) – Unterteile Rechteck nach Gewicht der Kinder – Rahmenalgorithmus – Seitenverhältnis zu optimieren ist NP-schwer • Squarified Treemaps – packe entlang der kürzesten Seite rekursiv – wenn Seitenverhältnis schlecher wird, packe auf den Rest – Es reicht, das erste und letzte Segment zu betrachten → Linearzeit • Konvexe Polygone – Eingabe: oBdA Binärbaum – Seitenverhältnis asp = diam(P )2 area(P ) – Suche Schnittebene, 3 Regeln für ”gute” Schnitte – Durchmesser kann in Linearzeit berechnet werden – Insgesamt Laufzeit O n2 – Anzahl Ecken hängt von der Tiefe ab (”Kreis schnitzen”) • Jigsaw Treemaps – Space Filling Curves, Hilbert-Kurve, Gosper-Kurve – Linearisierung → Lokalität, Seitenverhältnis konstant – Problem: Ganzzahligkeit, viele Eckpunkte – Exkurs: Ortho-Konvexe-Treemaps • Voronoi Treemaps – Partitionierung mittels Centroid Voronoi Tesselation – Punkte = ”Generatoren” – andere Distanz-Metriken möglich – Beispiel: US-Verbraucherpreisindex 07/08 NYT • Visualisierung als Landkarte • Cluster-Graphen – Graph + Baum – Edge-Router – Delauney-Triangulierung – Laufzeit O V 2 log V • Webseite: treevis.net • Exkurs: Eingebettete Systeme 13 11 Rectangular and Mosaic Cartograms 18.01.16 Gastvortrag von Bettina Speckmann (TU Eindhoven) • Einführung – Beispiele für Kartogramme: Chloropleth Karte – Kartogramm-Typen: ∗ ∗ ∗ ∗ ∗ Stetige Flächenkartogramme Unstetige Flächenkartogramme Dorling-Kartogramme Rectangular-Kartogramme Mosaik-Kartogramme – Anwendungsbeispiele: American Election 2012, British TV in 2010, Weltbevölkerung – Historie: eingeführt durch Raisz (1934) • Rectangular Cartograms – Harte Anforderungen: ∗ Korrekte Adjazenzen ∗ Korrekte Flächen – Weiche Anforderungen: ∗ ungefähre Position korrekt ∗ Seitenverhältnis begrenzen – Planare Graphen können korrekt durch benachbarte Rechtecke dargestellt werden; sogar mit korrekter Fläche – Problemstellung: ∗ gegeben: Ein planarer, triangulierter Graph G mit positiven Gewichten an jedem Knoten ∗ gesucht: Eine Partition eines Rechtecks, sodass die Partition dual zu G ist und die Flächen genau den Gewichten entsprechen – Theorem: Ein planarer Graph G hat ein rectangular dual mit 4 Rechtecken auf der Außenfläche genau dann, wenn jede innere Fläche ein Dreieck, die Außenfläche ein Viereck ist und es keine trennenden Dreiecke gibt – So einen Graph nennt man irreduzible Triangulierung – Ein rectangular dual ist i.A. nicht eindeutig; mit geg. relativen Position aber schon – Das Resultat heißt dann rectangular layout – Problem: In echt gibt es trennende Dreiecke und Knoten mit Grad 1 oder 2 – Konstruiere face graph mit Orientierungen der Kanten (WE, EW, NS, SN); geht in O (n) – So ein Graph ist realisierbar, wenn die Orientierungen im Uhrzeigersinn passen – Regular Edge Labeling (REL) ∗ REL einer irreduziblen Triangulierung ist eine Partition der inneren Kanten in rot und blau ∗ Füge Knoten N,S,W,E und für Wassermassen hinzu ∗ Die Menge der REL bilden einen distributiven Verband – Rectangular Layout mit korrekten Flächen existiert nicht immer, aber wenn dann eindeutig – Lösungsansätze: 1. 2. 3. 4. Alle Layouts ausprobieren (zwischen 3.04n und 4.68n ) probiere gute Layouts, z.b. sliceable, one-sided oder rectiliniear andere Formena ausprobieren kleine Fehler in Größe und Adjazenz tolerieren • RELs zählen – Untere Schranke 14 – Obere Schranke • Area-Universal Rectangular Layouts – Area-Universal Layouts – One-sided Layouts – Äquivalente Layouts – Order-equivalent Layouts • Rektilinieare Kartogramme – Gegeben eine Karte M und eine Gewichtsfunktion auf den Flächen 1. 2. 3. 4. 5. Konstruiere reactangular dual M1 von M Konstruiere BSP von M1 Korrigiere die Flächen Korrigiere die Adjazenzen Korrigiere die Flächen erneut – Beim Konstruieren des dualen Graphen trennende Dreiecke und Knoten mit Grad ≤ 2 durch Knotenverdoppelung entfernen • RELs für Rectangular Kartogramme optimieren – Qualitätskriterien: Relative Position, kartografischer Fehler 15 12 Algorithmen zur Realisierung von Polyedern 20.01.16 Gastvortrag von Prof. Dr. André Schulz (Fernuni Hagen) • Was sind Polyeder? – Konvexe Hülle bzw. Schnitt von Halbräumen; immer konvex • Struktur von Polyedern – Ecken, Kanten, Flächen – Charakterisierung durch face-lattive (Kombinatorische Struktur) • Graphen von Polyedern – Graph beschreibt komb. Struktur (Whitney ’33) – Satz von Steinitz (1916): Graphen von Polyedern sind genau die planaren 3-zsmh. Graphen • Realisierung von Polyedern – Geg.: Planarer 3-zsmh. Graph; ges.: geometrische Realisierung als Polyeder – Gewünschte Eigenschaften: kompakt, ganzzahlige Koordinaten • Motivation & Anwendungen – Polyeder haben zentrale Bedeutung in der lin. & komb. Optimeriung – kleines Gitter ergibt schöne Visualisierung – kompakte Realisierung erlaubt effiziente Weiterverarbeitung • Realisierung von Polyedern auf dem exponentiellen Gitter – Der Lifting-Ansatz ∗ ∗ ∗ ∗ Zeiche Graphen in die Ebene und weise dann Höhen zu Problem: Konvexität Def. Gleichgewichtsstress (Aufhebung aller Kräfte im Spring Embedder) Maxwell-Cremona-Korrespondenz: Gleichgewichtsstresse ⇔ räumliche Liftings, Vorzeichen von ωij ⇔ Krümmung entlang (i, j) in 3D ∗ Rechnen mit Vektoren ∗ Berechnung eines Liftings (inkrementell; unabh. von der Reihenfolge) ∗ Beweis der Konsistenz – Baryzentrische Einbettungen ∗ ∗ ∗ ∗ ∗ ∗ Algorithmus Gleichungssystem hat eindeutige Lösung ohne Kreuzungen (Tutte ’63) Substitution durch vollst. Graphen Laplace-Matrix Lokalisierung der äußeren Fläche Algorithmus zur Einbettung in O n1.163 mit Nested Dissections – Gittergröße durch Anz. Spannbäume abschätzen ∗ Zählen von Spannbäumen ∗ Ausgrad 1-Orientierungen ∗ Satz: G planar enthält max. O (5.285n ) Spannbäume • Zusammenfassung – Ergebnis: Polyeder können auf Gitter der Größe O (167n ) realisiert werden; Mindestgröße Ω n3/2 – weitere Resultate 16 13 Automatisiert U-Bahn-Linienpläne zeichnen 25.01.16 Gastvortrag von Prof. Dr. Alexander Wolff (Uni Würzburg) • Modellierung – Was ist eine Metro-Map? ∗ ∗ ∗ ∗ ∗ Schematische Darstellung vom ÖPNV Linien und Stationen visualisieren Ziel: Einfache Navigation verzerrt Geometrie für erhöhte Nutzbarkeit Definition Metro Map Problem – Harte Bedingungen: ∗ Einbettung erhalten ∗ Oktiliniearität ∗ Mindestabstände einhalten – Weiche Bedingungen: ∗ wenige Knicke ∗ kleine Gesamtkantenlänge ∗ relative Position erhalten – Geschichte ∗ Berlin 1931, London 1927, 1931 (Henry C. Beck), Tube Map • MIP Formulierung & Experimente – MIP Formulierung ∗ Theorem: Das Problem MetroMapLayout kann als Mixed Integer Program geschrieben werden ∗ Harte Bedingungen ⇔ lineare Restriktionen, Weiche Bedingungen ⇔ Zielfunktion ∗ Oktilinearität & Relative Position kann durch Sektoren + binäre Variablen erreicht werden 2 ∗ O |V | Restriktionen & Variablen – Experimente ∗ Beispiele: Wien, Sydney ∗ Planarität erzeugt extrem viele Restriktionen & Variablen; kann heuristisch reduziert werden – Labeling ∗ Idee: Labels pro Abschnitt als Parallelogram; Labels sind selbst eine ”Metro-Linie” ∗ Problem: Extrem viele Planaritäts-Bedingungen ∗ Lösung: Ohne Planarität lösen; dann Warmstart mit hinzugefügten Restriktionen, die verletzt wurden • Zusammenfassung – RectiliniearGraphDrawing Decision Problem – Theorem (Tamassia): Problem kann effizient durch MinCostFlow-Modellierung gelöst werden – Theorem: MetroMapLayout dagegen ist NP-schwer – Beweis per Reduktion auf 3-SAT – ToDo: Rechteckige Stationen, Multi-Kanten 17 14 Layer-Based Graph Drawing 27.01.16 Gastvortrag von Ulf Rüegg (Uni Kiel) • Graphical Modelling – Beispiele für Embedded Systems: Modelleisenbahnen, Motorsteuerung, Textual DSLs – Software: Kieler Ptolemy Browser, ETAS EHandbook • Automatisches Layout – Dataflow Diagram – Anforderungen: Orthogonale Kanten, Hierarchie, Labels, Kommentare, Ports, Hyperkanten, ... – Ansätze: Kräfte-basiert, Orthogonal, Layer-basiert – Layer-basiertes Layout Ablauf : 1. 2. 3. 4. 5. Cycle Removal: Greedy (Eades et al. ’93) Layer Assigment: Longest Path, Network Simplex Crossing Minimization: Layer-Sweep & Barycenter-Heuristik Node Placement: Network-Simplex & Sequences, Blocks Edge Routing: Splines, Polylines, Orthogonal • Probleme – Hierarchie ∗ Bottom-up Layout; Cluster erzeugen evtl. Kreuzungen – Port Contraints ∗ Free → FixedSide → FixedOrdner → FixedPos – Nord/Süd Ports – Labels ∗ Knoten-, Port- & Kantenlabel ∗ Bounding Box – Knotengröße – Seitenverhältnisse ∗ zu viel Whitespace – Orthogonale Hyperkanten ∗ Anzahl Kreuzungen schwierig zu zählen & zu Beginn abzuschätzen – Schleifen – Zusammenfassung zum KLay Layered mit ca. 40 Zwischenprozessen – Hohe Anforderungen: wartbar, verständlich, erweiterbar, anpassbar, konfigurierbar, schnell • Lösungsansätze – Port Restriktionen ∗ als geeignete Zwischenschritte zu unterschiedlichen Zeitpunkten – Horizontale Kompaktierung ∗ Große Knoten aufsplitten; Knoten-Kanten-Kreuzungen vermeiden ∗ Label-Position im Knoten wichtig ∗ Eindimensionale Kompaktierung ”von rechts mit dem Hammer” – Aspect Ratio-Aware Layering ∗ Verhältnis zwischen Dummy-Knoten und umgedrehten Kanten variieren ∗ Directed Layering vs. Generalized Layering • ELK: Eclipse Layout Kernel • ToDo: Zielfunktion sollte Dummy-Knoten, Rückwärtskanten, Höhe, Breite, Seitenverhältnis & Knotengröße berücksichtigen 18 15 Testen von Planarität 01.02.16 Gastvortrag von Prof. Dr. Markus Chimani (Uni Osnabrück) • Grundbegriffe – Theorem: Knotenpositionen sind für plan. Einbettung beliebig – Theorem: Gradlinige plan. Einbettung ist immer möglich – Kombinatorische vs. planare Einbettungen – Knoten-/Flächenuhrzeigerlisten • Planarität erkennen – Nicht-planare Graphen: K3,3 , K5 – Definition Subdivisions, Minoren – Theorem von Kuratowski: G nicht planar ⇔ G enthält K3,3 oder K5 als Subdivision – Theorem von Wagner: G nicht planar ⇔ G enthält K3,3 oder K5 als Minor – 2-zusammenhängende ZHK können einzeln betrachtet werden – Euler-Formel n − m + f = 2 ⇒ m ≤ 3n − 6 – Geschichte der Planaritätstests → wir betrachten jetzt den von Boyer-Myrvold • Idee des Algorithmus 1. Durchmustere G mit Tiefensuche (DFS) 2. Füge die Knoten in umgekehrter Reihenfolge hinzu (Vertex Addition) 3. Wenn wir in jedem Schritt alle Backedges hinzufügen können, ist der G planar – Verwalten der Bicomps (2-ZHK) in extra Baum – Alle Schnittknoten verdoppeln und Bicomps einzeln betrachten – Beobachtung: Bicomp mit Wurzel v enthält nie mehr als ein DFS-Kind von v – Kategorisiere in jedem Schritt Knoten nach Pertinenz bzw. Externalität – Einfügen der Backedges: Eventuell Bicomp flippen! – Unmögliches Einfügen ⇒ G ist nicht planar (Korrektheit später) – Einfügelemma – Reihenfolge der Backedges: Top-down & nicht-externe Bicomps zuerst betrachten – Beispiele 03.02.16 • Gültigkeit des Algorithmus – Terminiert der Algorithmus mit einer planaren Einbettung, so ist der Graph offenbar planar – Lemma: Wenn der Algorithmus keine Einbettung liefert, dann ist der Graph nicht planar – Betrachte die Stop-Konfigurationen, die eine Einbettung einer Backedge verhindern – Definition: versperrender xy-Weg – wenn ein solcher Weg existiert, dann enthält der Graph einen K3,3 oder K5 als Subdivision • Laufzeitanalyse – amortisierte Analyse – algorithmische Schritte: 1. 2. 3. 4. Erkennen von externen Knoten Erkennen von pertinenten Knoten Stop-Konfigurationen erkennen (→ Short Circuit Edges) Flippen von Bicomps – Wie geht das in Linearzeit? 19 • Erkennung externer Knoten – Berechne für jeden Knoten lowpoint (v) während der DFS → O (n) – konstruiere für Cutknoten seperatedDFSChildList ∗ Liste unverschmolzener Kinder ∗ sortiert nach lowpoints durch Bucketsort → O (n) ∗ Implementierung durch doppelt-ringverkettete Liste; daher ist Löschen in konstanter Zeit möglich → O (1) • Flippen von Bicomps – Problem: Spiegeln einer Bicomp benötigt O (n); evtl. aber zu oft nötig – Lösung: Wir speichern im Schnittknoten die ”Liesrichtung” in einem Bit • Pertinenz & Kanten einfügen – Beobachtung: Teilbäume sind beim Einfügen von Backedges voneinander unabhängig – Aufteilung in die Phasen Walk-Up und Walk-Down – Beobachtung: Ein planarer Graph hat linear viele Regionen; jede Kante ist an 1-2 beteiligt → Ablaufen der Innenseiten linear beschränkt • Walk-Up – Für jede Backedge (w, vi ) starte in w und laufe nach oben – speichere in jedem Knoten u: ∗ boolean: backedge; Startet hier eine Backedge? ∗ int: visited ; Wurde der Knoten bereits in der aktuellen Iteration besucht? (Wir sparen uns eine Re-Initialisierung von booleans, in dem wir die letzte Iteration abspeichern) ∗ List: pertinentRoots; Liste der an u hängenden pert. Bicomps (Füge externe Bicomps hinten an) – Problem: Wie laufe ich nach oben? – Lösung: Gleichzeitig links und rechts → höchstens 2 · dist viele Schritte → O (n) • Walk-Down – Für jeden Teilbaum von vi : Laufe an beiden Seiten der markierten Bicomps entlang – backedge (w)? Ja → Einbetten & Verschmelzen; Nein → weiter – Nach dem Walk-Down: Prüfe die Anzahl eingebetteter Kanten; bei Abweichung ist der Graph nicht planar – Problem: Wir können nicht an beiden Seiten entlang laufen → exponentiell viele Mögl. – Lösung: Short-Circuit-Edges zur Überbrückung von uninteressanten Knoten → O (n) viele Hilfskanten • Insgesamt: Laufzeit O (n) 20 Literaturverzeichnis • Giuseppe Di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis, Graph Drawing - Algorithms for the Visualization of Graphs, Prentice Hall, 1999, ISBN 0-13-301615-3. • Michael Kaufmann, Dorothea Wagner (Hrsg.), Drawing Graphs - Methods and Models, Lecture Notes in Computer Science 2025, Springer Verlag, 2001, ISBN 3-540-42062-2. • Michael Jünger, Petra Mutzel (Hrsg.), Graph Drawing Software, Springer Verlag, 2004, ISBN 3-540-008810. • Roberto Tamassia (Hrsg.), Handbook of Graph Drawing and Visualization, CRC Press, 2014, ISBN 1584-88412-6 21