Überblick zu Kapitel 4 Kap. 4: Planare Zeichenverfahren 4.4 Orthogonale planare Verfahren (flussbasiert) 4.1 Einführung Planarität, Einbettungen, Überblick 4.2 Planaritätstest und Einbettungsberechnung Prof. Dr. Petra Mutzel 4.3 Geradlinige planare Zeichenverfahren Lehrstuhl für 4.4 Orthogonale planare Verfahren (flussbasiert) Algorithm Engineering LS11 Universität Dortmund 23./24. VO WS07/08 21./22. Januar 2008 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 4.4 Orthogonale planare Verfahren (flussbasiert) Literatur für diese VO • Originalartikel: Roberto Tamassia: On Embedding a Graph in the Grid with the Minimum Number of Bends. SIAM J. Computing, vol. 16 (3):421-444, 1987. 4.4.1 Einführung 4.4.2 Orthogonale Repräsentation und ihre Eigenschaften • M. Kaufmann, D. Wagner (Eds.): Drawing Graphs: Methods and Models, Lecture Notes in Computer Science, Tutorial, Vol. 2025, 2001, ISBN 3-540-42062-2. 4.4.3 Bestimmung einer knickminimalen orthogonalen Repräsentation • M. Jünger, P. Mutzel (Eds.): Kapitel 2: Technical Foundations aus: Graph Drawing Software, Mathematics and Visualization, Springer Verlag, 2004, ISBN 3-54000881-0. 4.4.4 Algorithmen zur Längenbestimmung (Kompaktierung) 4.4.5 Erweiterungen Ausarbeitung basierend auf Gunnar Klau, TU Wien 2003 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 4.4.1 Einführung shape metrics • • • • 4 ``Topology-Shape-Metrics´´ Motivation: Aesthetik-Kriterien topology 2 wenige Kreuzungen wenige Kantenknicke kurze Kantenlängen kleine Zeichenfläche Phase 1: Bestimme die Topologie G • (speziell: Hierarchien, Symmetrien) Ziel: ``Topology-Shape-Metrics´´ Verfahren Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 5 Kreuzungsminimierung Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 6 1 ``Topology-Shape-Metrics´´ ``Topology-Shape-Metrics´´ Phase 2: Bestimme die Form Phase 1: Bestimme die Topologie Orthogonalisierung 0 0 0 G 1 Planarisierung 1 0 1 0 0 0 Ziel: Kreuzungsminimierung Ziel: Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 7 Knickminimierung Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 8 Planare Zeichenalgorithmen ``Topology-Shape-Metrics´´ Netzwerk-Flußmethoden Tamassia 1987 • Knickminimierung für eine fixierte planare Einbettung • Knotengrad kleiner gleich vier • orthogonaler Zeichenalgorithmus: (1) berechne das Netzwerk (2) min-cost flow (3) orthogonale Repräsentation (4) Längenberechnung (5) Kompaktierung Phase 3: Bestimme die Kantenlängen Kompaktierung WERKE Werke_ID Werke_PLZ N SOLLBESTAND e ARTIKEL Artikel_ID Artikel_Menge SORTIMENTE s VERTRIEB PRODUKTION t Ziel: LAUFZEIT Laufzeit_ID Kurze Kanten, kleine Zeichenfläche Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 9 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Einführung 10 Knickminimierung ABER: General-Voraussetzung: Gegeben ist ein 4-planarer Graph G=(V,E), d.h. G planar und ∀v ∈V: δ(v)≤4 Gegeben ist ein 4-planarer Graph G=(V,E) mit seiner planaren Einbettung Gesucht: Gitterzeichnung mit minimaler Knickanzahl, die die planare Einbettung beibehält Ziel: orthogonale planare Zeichnungen mit kleinstmöglicher Knickanzahl • Das obige Optimierungsproblem kann in polynomieller Zeit gelöst werden durch Transformation des Problems in ein minimales Kostenflussproblem in einem Netzwerk [Tamassia 1987] • Das Entscheidungsproblem, ob es eine orthogonale Zeichnung für G ohne Knicke gibt, ist NP-vollständig [Formann et al. 1990] Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 11 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 12 2 4.4.2 Orthogonale Repräsentation 4.4.2 Orthogonale Repräsentation Eine orthogonale Repräsentation H • erweitert die planare Einbettung P • beschreibt zusätzlich zur Topologie die Form einer planaren orthogonalen Zeichnung • ist „dimensionslos“ (es werden keine Angaben über die Längen der Kantensegmente gemacht) Def.: Sei H definiert als eine Menge von zirkulären, im Uhrzeigersinn sortierten Listen H(f) für jede Region f. Ein Element r∈H(f) hat die Form (er, sr, ar), wobei • er eine f begrenzende Kante, • sr ein Binärstring und • ar ∈ {90, 180, 270, 360} eine ganze Zahl ist. Def.: Sei H definiert als eine Menge von zirkulären, im Uhrzeigersinn sortierten Listen H(f) für jede Region f. Ein Element r∈H(f) hat die Form (er, sr, ar), wobei • er eine f begrenzende Kante, • sr ein Binärstring und • ar ∈ {90, 180, 270, 360} eine ganze Zahl ist. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 • Dabei beschreibt der Binärstring sr die Form der Kante er: – Das k-te Bit in sr beschreibt den k-ten Knick auf er (im Uhrzeigersinn). Dabei steht 0 für einen 90°-Knick und 1 für einen 270°-Knick • Sei q das auf r folgende Element in H(f). Dann bezeichnet ar den Winkel zwischen er und eq in f. 13 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Beispiel 14 Eigenschaften Beobachtung: Die Anzahl der Knicke von H ist e1 e5 f1 e3 e6 e2 f2 wobei |sr| die Länge von sr bezeichnet. f0 e4 H(f1): ((e1, ε, 90), (e6, ε, 180), (e5, 00, 90)) H(f2): ((e6, ε, 90), (e3, 0, 360), (e3, 1, 90), (e2, 0010, 90), (e4, ε, 90)) H(fo): ((e4, ε, 270), (e2, 1011, 90), (e1, ε, 270), (e5, 11, 90)) Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 15 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Charakterisierung 4.4.3 Bestimmung einer knickminimalen orthogonalen Repräsentation Beweis: geometrische Überlegungen (o. Bw.) Theorem: Eine Menge von geordneten Listen H ist genau dann die orthogonale Repräsentation einer planaren orthogonalen Zeichnung, wenn folgende Eigenschaften erfüllt sind: – (P1): H ohne die s- und r-Felder ist planare Einbettung eines 4-planaren Graphen. – (P2): Seien r,q∈H, r ≠ q mit er=eq. Dann erhält man sq aus sr durch Umdrehen der Reihenfolge und Flippen der Bits. – (P3): Def. für jedes r: Dann gilt: • • • (bedeutet: jede Region ist ein rektilineares Polygon) – (P4): Für jeden Knoten v in H gilt: Summe der a-Felder, die zu Kanten gehören, deren Endknoten v ist, beträgt 360°, also 16 Gegeben: planarer Graph G=(V,E) mit planarer Einbettung h{P(f) | f ∈ F}, f0}i (flächenbasiert) Gesucht: orthogonale Repräsentation {H(f): f∈F} mit der minimalen Anzahl von Knicken. Idee: Transformation nach Tamassia 1987: Wir konstruieren ein Netzwerk NP = (U, A, b, l, u, c) mit Knotenmenge U, Kantenmenge A, Knotenüberschüsse b, untere Schranken l, obere Schranken u und Kantenkosten c. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 18 3 Beispiel Transformation: Knotenmenge +4 +4 v2 • Knotenmenge U = UV ∪ UF – mit UV = {iv | v∈V}. Knoten iv∈UV haben Überschuss b(iv)= +4 – und UF = {if | f ∈F}. Knoten if ∈UF haben Bedarf v3 -8 +4 v1 f2 -2 f1 +4 v 6 Beobachtung: Das gesamte Potenzial beträgt demnach -14 +4 f0 v5 v4 +4 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Interpretation 20 Transformation: Kantenmenge • Kantenmenge A = AV ∪ AF (A ist Multimenge) – AV enthält einen Bogen (iv, if) wenn v∈V einen Winkel in f∈F bildet. Genauer, wir definieren E(v, f) := {e ∈ P(f) | e = (u,v)} und AV = {(iv, if) | e ∈ E(v,f)}, – Schranken: l(iv, if) = 1 und u(iv, if) = 4 – Kosten: c(iv, if) = 0 – AV ist Multimenge, da manche Knoten auf Brücken mehrere Winkel in einer Region bestimmen (s. Bsp). • Ein Fluss im Netzwerk entspricht den Winkeln der späteren Zeichnung. Winkel sind eine “Ware”, die an den Knoten produziert und in den Regionen konsumiert wird. • Flusseinheit entspricht 90°-Grad-Winkel • Flusserhaltung an iv ∈ UV garantiert, dass die Winkelsumme um v 360° beträgt. • Flusserhaltung um if ∈ UF garantiert, dass f als rektilineares Polygon gezeichnet wird. • Interpretation: Die Knoten verteilen ihre Winkel an die Regionen. Jeder Winkel muss mindestens 90°, darf aber höchstens 360° betragen. Da dabei keine Knicke entstehen, sind die Kosten Null. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 21 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Beispiel Transformation: Kantenmenge ff +4 • Kantenmenge A = AV ∪ AF – AF enthält für jede Kante e∈E zwei Bögen (if,ig) und (ig,if), wobei f und g die Regionen sind, die von e getrennt werden. – Schranken: l(if, ig) = 0 und u(if, ig) = ∞ – Kosten: c(if, ig) = 1 • Interpretation: Da i.A. nicht alle Flusseinheiten direkt von den Knoten zu den Regionen abfließen können – das würde einer Zeichnung ohne Knicke entsprechen – müssen wir Knicke ins Flussmodell aufnehmen. Kann der Bedarf nicht direkt gedeckt werden, können benachbarte Regionen Fluss austauschen. Jede solche Flusseinheit entspricht einem Knick. – Kosten eines Flusses: Anzahl der Knicke 22 +4 v2 v3 vk f2 -2 v1 f1 +4 +4 -14 -8 v6 f0 +4 v5 +4 v4 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 24 4 Beweis ff Transformation. Korrektheit Beweis: Wir konstruieren x folgendermaßen: • Für die Menge von gerichteten Kanten {(iv,if)∈AV} assoziieren wir jede mit einem Element r∈R(v,f), wobei R(v,f)={r∈H(f)| er=(u,v)}. Dann setzen wir x(iv,if)=ar/90 (r ist das zu (iv,if) gehörige Element). • Für den Fluss zwischen benachbarten Regionen f und g betrachten wir die Menge der gemeinsamen Elemente R(f,g)={r ∈H(f)| er∈P(g)} und assoziieren je eine gerichtete Kante (if,ig) mit einem r∈R(f,g). Wir setzen x(if,ig)=|sr|0 (r ist das zu (if,ig) gehörige Element). Theorem: Für jede orthogonale Repräsentation H mit unterliegender planarer Einbettung P existiert ein ganzzahliger Fluss x in NP, dessen Kosten gleich der Anzahl der Knicke b(H) ist. Beweis: Wir konstruieren x folgendermaßen: • Für die Menge von gerichteten Kanten {(iv,if)∈AV} assoziieren wir jede mit einem Element r∈R(v,f), wobei R(v,f)={r∈H(f)| er=(u,v)}. Dann setzen wir x(iv,if)=ar/90 (r ist das zu (iv,if) gehörige Element). • Für den Fluss zwischen benachbarten Regionen f und g betrachten wir die Menge der gemeinsamen Elemente R(f,g)={r ∈H(f)| er∈P(g)} und assoziieren je eine gerichtete Kante (if,ig) mit einem r∈R(f,g). Wir setzen x(if,ig)=|sr|0 (r ist das zu (if,ig) gehörige Element). • z.z: 1) Vektor x ist ein Fluss. Dazu: – (a) Kapazitätsgrenzen – (b) Flusserhaltung erfüllt • 2) Die Kosten von x sind gleich der Anzahl der Knicke. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Beweis fff 26 Beweis ffff • Bilanz an Innenknoten if∈UF: • zu 1(a): Der Fluss x einer Kante a∈AV wird durch einen Winkel α∈{90,180,270,360} bestimmt. Nach Konstruktion folgt xa∈{1,2,3,4}. Der Fluss einer Kante a∈AF wird durch die Länge des Bitstrings bestimmt. → xa∈{0,1,…} Kapazitätsgrenzen sind somit erfüllt. |H(f)|=|P(f)| • zu 1(b): zu zeigen ist, dass für jeden Knoten i∈U die Differenz von abfließendem Fluss und einfließendem Fluss gleich dem Potenzial von i ist. • Bilanz an iv∈UV: (P3) • Bilanz an Außenknoten if∈UF: genauso, am Ende -4 statt +4 • zu 2) Knickanzahl: Def (P4) Transformation: Korrektheit Beweis Beweis: • zu (P1): (wir starten mit P) ✔ • zu (P2): Nach Konstruktion erfüllt (sr und sq gegengleich für r≠q, er=eq) • zu (P4): Theorem: Für jeden ganzzahligen Fluss x in NP existiert eine orthogonale Repräsentation H mit unterliegender Einbettung P. Die Kosten von x sind b(H). Beweis: Wir konstruieren H durch folgende Berechnung der aund s-Felder unter Benutzung der Flusswerte in A. Wieder assoziieren wir Elemente aus R(v,f) mit den Kanten (iv,if) aus AV und setzen ar=x(iv,if)·90 für alle r∈R(v,f). • Ähnlich für die s-Felder: Wir ordnen jedem Element r∈R(f,g) eine gerichtete Kante (if,ig) aus AF zu. Dann bestimmen wir das Element q∈H(g) mit q≠r und eq=er. • Wir setzen sr=0x(if,ig)1x(ig,if) und sq=0x(ig,if)1x(if,ig) • Zu zeigen: (P1)-(P4) sind erfüllt. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 biv • zu (P3): Flusserhaltung Knickanzahl: 29 5 Transformation: Korrektheit Transformation: Eigenschaften Theorem: Die minimale Knickanzahl einer orthogonalen Repräsentation H mit unterliegender planarer Einbettung P ist gleich den Kosten eines kostenminimalen Flusses x in NP. Ferner kann H aus x berechnet werden. Theorem: Es existiert ein minimaler Kostenfluss in NP = (U, A, b, l, u, c) mit ganzzahligen Werten. Beweis: Netzwerktheorie: da nur ganzzahlige Kapazitäten ✔ Beweis: Folgt aus den 3 letzten Theoremen. ✔ Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 31 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 4.4.5 Längenberechnung 4.4.4 Algorithmus zur Knickminimierung • 1. Konstruiere Netzwerk NP 2. Berechne kostenminimalen Fluss in NP 3. Konstruiere orthogonale Repräsentation aus dem Fluss 4. Bestimme Kantenlängen mittels Kompaktierung (s. 4.4.5) • • Laufzeit: Die Laufzeit der Schritte 1-3 wird durch Schritt 2 dominiert. Diese ist i.A. für Netzwerk mit n Knoten O(n2 log n). Für dieses spezielle Netzwerk haben Garg und Tamassia eine bessere Laufzeit von O(n7/4 log n) gezeigt. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 33 Konstruiere normalisierte orthogonale Repräsentation H´, in der jede Fläche Rechteckform hat, durch Hinzufügen künstlicher Kanten und Knoten. Gegeben: orthogonale Repräsentation H (Form einer orthogonalen Zeichnung) Gesucht: eine dazugehörige Metrik, d.h. für alle Kanten ihre Längen, so dass die Zeichnung kompatibel mit H ist. • Idee: Konstruiere normalisierte orthogonale Repräsentation • Laufzeit: Dies geht in linearer Zeit. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Längenberechnung • 32 34 Kompaktierung • Bemerkung: Dies liefert relativ große Zeichnungen wegen der Normalisierung. Deswegen wird in Praxis eine Kompaktierungsphase nachgeschaltet. • Gegeben: Form eine orthogonalen Zeichnung • Gesucht: Zeichnung mit kleinster Gesamtkantenlänge (bei gleicher Form) • • Bestimme Längen der Kanten in H´→ orthogonale Zeichnung für H´ Entferne künstliche Kanten und Knoten → orthogonale Zeichnung für H. • In Praxis: Hintereinanderschaltung 1-dimensionaler Kompaktierung (zuerst x-, dann in y-Richtung), z.B. mittels longest-path oder flussbasiert. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 36 6 Kompaktierung Kompaktierung Klau, Mutzel ´99 später auch: Di Battista, Tamassia et al. ´99 • Gegeben: Form eine orthogonalen Zeichnung • Gesucht: Zeichnung mit kleinster Gesamtkantenlänge (bei gleicher Form) Drei `ähnliche´ Beispiele: Eindimensional k Layout graph Shape graph k Kanten Gx G y Gx G y Idee: Benutze Shape Graphen statt Layout Graph Problem: Dies führt i.A. zu unzulässigen Lösungen Zweidimensional Klau, Mutzel ´99 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Charakterisiere Menge der Erweiterungen, die zu zulässigen Zeichnungen führt Paar von Segmenten ist separiert g.d.w. mindestens 1 von 4 Pfaden existiert. vollständig eindeutige vollständige Erweiterung 37 viele vollständige Erweiterungen Charakterisierung von eindeutig vollständigen Erweiterungen Experimentelle Resultate 2d optimal improvement in % 70 60 Longest path 50 Maximum Average Minimum 40 s 30 flow compaction 20 10 0 10 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 39 Experimentelle Resultate zu 2D-Kompaktierung 35 60 85 110 135 160 185 210 235 261 307 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 40 Nachkompaktierung mit Fluss ist wichtig! • Laufzeit t für Benchmark Graphen: • 95,5%: t<1s • 3,4%: 1 s < t < 5 s • 1,1%: 5 s < t • Biconnected Graphen: • up to 5000 vertices • Quasi-Bäume: • up to 100 vertices Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 41 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 42 7 Erweiterung auf hohe Knotengrade 4.4.6 Erweiterungen große Knoten Tamassia, Di Battista, Batini 1988 • Es gibt verschiedene Ansätze für Erweiterungen des Modells auf Graphen mit höheren Knotengraden • Allerdings ist hier noch hoher Forschungsbedarf, denn alle Ansätze besitzen Nachteile Ersetze Knoten mit hohem Grad durch vordefinierte „Käfige“ Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 43 Erweiterung auf hohe Knotengrade kurze diagonale Linien Nachteile: muss vorher bestimmen, wo die Kanten ihre Knoten erlassen Erweiterung auf hohe Knotengrade Grobes und feines Gitter Klau, Mutzel 1998 KandinskyModell Nachteile: kleine Winkel, große Bounding Boxen Nachteil: bis heute kein polynomieller Algorithmus bekannt Diplomarbeit ☺ Lasse es zu, dass Knoten groß werden und ersetze die Bounding Boxen durch kleine Knoten und diagonale Kanten Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Beispiel: Zustandsdiagramm Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 Fößmeier, Kaufmann 1996 46 Automatisches Layout 47 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 48 8