1 Visualisierung von Graphen Teile-und-Herrsche-Algorithmen: Bäume und serienparallele Graphen 3. Vorlesung Sommersemester 2014 (basierend auf Folien von Martin Nöllenburg und Robert Görke, KIT) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Anwendbarkeit von Teile & Herrsche Gut bei induktiv oder rekursiv definierten Familien von Graphen Binärbaum mit Wurzel: 1. zeichne linken Teilbaum 2. zeichne rechten Teilbaum 3. füge zusammen + zeichne Wurzel Vokabular tiefe(v ): Abstand zur Wurzel Durchlaufreihenfolgen • preorder • inorder • postorder Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Übersicht Platzbedarf balancierte Zeichnungen von Binärbäumen O (nh) radiale Zeichnungen von Bäumen O (nh) kompakte Zeichnungen von Bäumen O (n log n) aufwärtsplanare Zeichnungen von serienparallelen Graphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I exponentiell · Universität Würzburg 4 Algorithmus von Reingold und Tilford (’81) Trivial: Teile: Falls T = {v }, zeichne v (z.B. als kleine Kreisscheibe). Wende Alg. rekursiv auf li. und re. Teilbaum an. Herrsche: Schiebe Teilzeichnungen bis auf Abstand 2 zusammen. Platziere Wurzel r um 1 über und mittig zw. Kinder. oder 3! Gitterzeichnung? 2 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5 Algorithmus von Reingold und Tilford (’81) Implementierung in 2 Phasen: postorder (bottom-up): Konturen und x-Offsets zum Vorgänger einsammeln x -Offset preorder (top-down): absolute Koordinaten ausrechnen Kontur : verkettete Liste von Knoten (bzw. deren Koordinaten) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-3 Algorithmus von Reingold und Tilford (’81) Phase 1: 1. Bearbeite T` (v ) und Tr (v ) 2. Laufe parallel re. Kontur v. T` (v ) und li. Kontur v. Tr (v ) ab 3. Bestimme dabei dv = horiz. Minimalabstand von v` und vr 4. x-Offset(v` ) = −ddv /2e, x-Offset(vr ) = ddv /2e v 5. Baue linke Kontur von Tv aus: v` vr v, T` Tr linker Kontur von T` (v ), evtl. überhängendem Teilstück von linker Kontur von Tr (v ) 6. Rechte Kontur analog Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-9 Algorithmus von Reingold und Tilford (’81) Phase 1: 1. Bearbeite T` (v ) und Tr (v ) 2. Laufe parallel re. Kontur v. T` (v ) und li. Kontur v. Tr (v ) ab 3. Bestimme dabei dv = horiz. Minimalabstand von v` und vr 4. x-Offset(v` ) = −ddv /2e, x-Offset(vr ) = ddv /2e v 5. Baue linke Kontur von Tv aus: v` vr v, T` Tr linker Kontur von T` (v ), evtl. überhängendem Teilstück von linker Kontur von Tr (v ) 6. Rechte Kontur analog Laufzeit? P v (1 + min{h` (v ), hr (v )}) = n + Philipp Kindermann, Alexander Wolff · P Lehrstuhl für Informatik I v min{. . . } ≤ n + n · Universität Würzburg 7 Algorithmus von Reingold und Tilford (’81) Phase 2: Setze y -Koordinate y (v ) = −tiefe(v ) für jeden Knoten v . Setze x (w ) := 0 für Wurzel w . Setze dann top-down für jedes Nichtblatt v : x (v` ) := x (v ) + x -Offset(x (v` )) und x (vr ) := x (v ) + x -Offset(x (vr )). Laufzeit? O (n) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Zusammenfassung geschichtete Zeichnung Satz. [Reingold & Tilford ’81] Wir können für einen Binärbaum mit n Knoten in O (n) Zeit eine Zeichnung Γ berechnen, so dass Γ ist geschichtet, d.h. y ≡ − tiefe, Γ ist planar, geradlinig und streng abwärts, Γ erhält die Einbettung (d.h. re. Kinder rechts) horiz. & vert. Abstände ≥ 1 Alg. lässt sich auf bel. 2 Flächenverbrauch O (n ) Bäume verallgemeinern! Eltern von 2 Kindern mittig per LP! Dito plus minimale Breite: Dito plus minimale Breite auf dem Gitter: NP-schwer! [Supowit & Reingold ’83] Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9 Beispiel für Breitenminimierung Lösung des Algorithmus: 3 Optimale Lösung: Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 10 2. Radiale Zeichnungen von Bäumen Platzbedarf balancierte Zeichnungen von Binärbäumen O (nh) radiale Zeichnungen von Bäumen O (nh) kompakte Zeichnungen von Bäumen O (n log n) aufwärtspl. Zeichnungen v. serienparallelen Graphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 11 Beispiel: Radiale Baumlayouts Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 12 Ein Algorithmus für Radiallayout? 9 10 11 · 7 8 · 1 6 9 10 1 9 1 1 8 1 7 1 · 1 10 5 1 1 3 1 11 9 1 1 7 5 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13 Beschränkung auf kleinere Sektoren αv τ ρi ρi +1 αmin v cos τ = ⇒ αmax Philipp Kindermann, Alexander Wolff · ρi ρi+1 i αmin = αv − arccos ρρi+1 i αmax = αv + arccos ρρi+1 Lehrstuhl für Informatik I · Universität Würzburg 14 Pseudocode für radiales Baumlayout RadialesBaumlayout(tree T , radii ρ1 < · · · < ρk ) preorder(vertex v , d, αmin , αmax ) begin postorder(T.root) rv ← ρd { Ausgabe } ρ0 = 0 αv ← (αmin + αmax )/2 preorder(T.root, 0, 0, 2π) if d > 0 then d return (rv , αv )v ∈V (T ) αmin ← max{αmin , αv −arccos ρρd+1 } {polar coordinates of vtc.} d αmax ← min{αmax , αv +arccos ρρd+1 } left ← αmin foreach child w of v do w right ← left + nvn−1 ·(αmax − αmin ) preorder (w , d + 1, left, right) left ← right postorder(vertex v ) nv ← 1 foreach child w of v do postorder (w ) nv ← nv + nw Größe des Teilbaums T (v ) Philipp Kindermann, Alexander Wolff · Laufzeit? O (n). Lehrstuhl für Informatik I Korrektheit? · X Universität Würzburg 15 Übersicht Platzbedarf balancierte Zeichnungen von Binärbäumen O (nh) radiale Zeichnungen von Bäumen O (nh) kompakte Zeichnungen von Bäumen O (n log n) aufwärtspl. Zeichnungen v. serienparallelen Graphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 16 hv-Zeichnungen Definition. Eine hv-Zeichnung eines Binärbaums ist eine geradlinige Zeichnung, so dass für jeden Knoten v gilt: jedes Kind von v liegt entweder genau rechts oder genau unter v , die kleinsten achsenparallelen Rechtecke, die die Teilbäume der Kinder von v umschließen, sind disjunkt. horizontale Kombination Philipp Kindermann, Alexander Wolff · vertikale Kombination Lehrstuhl für Informatik I · Universität Würzburg 17 Algorithmus RightHeavyHVTreeDraw Konstruiere rekursiv Zeichnungen des linken und rechten Teilbaums der Wurzel. Platziere den größeren Teilbaum per horizontaler Kombination rechts neben den kleineren. Größe eines Teilbaums := Anzahl der Knoten im Teilbaum mindestens ·2 mindestens ·2 mindestens ·2 Beob. Zeichnung hat Breite ≤ n, Philipp Kindermann, Alexander Wolff · Höhe ≤ log2 n. Lehrstuhl für Informatik I · Universität Würzburg 18 Übersicht Platzbedarf balancierte Zeichnungen von Binärbäumen O (nh) radiale Zeichnungen von Bäumen O (nh) kompakte Zeichnungen von Bäumen O (n log n) aufwärtspl. Zeichnungen v. serienparallelen Graphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 19 Serienparallele Graphen t einfacher serienparalleler Graph s Induktion: Verkette 2 serienparallele Graphen G1 , G2 . . . t1 t2 G2 G1 s2 s1 - . . . seriell . . . t 1 = s2 s1 G2 - . . . oder parallel. t1 = t2 t2 G1 G1 Philipp Kindermann, Alexander Wolff s1 = s2 · Lehrstuhl für Informatik I G2 · Universität Würzburg 20 Dekompositionsbaum für SP-Graphen P P S S Q S P Q Q S S Q S Q Q Verallgemeinerung: SPQR-Bäume Philipp Kindermann, Alexander Wolff · Q Q Lehrstuhl für Informatik I Q · Q Universität Würzburg 21 SP-Graphen in Anwendungen PERT-Diagramme Ablaufdiagramme Außerdem: (Program Evaluation and Review Technique) Linearzeitalgorithmen für sonst NP-vollständige Probleme (z.B. Maximum Independent Set) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 22 Flächenverbrauch Satz. [Bertolazzi et al. ’92] Es gibt eine Familie (Gn )n∈N von eingebetteten serienparallelen Graphen, so dass Gn 2n Knoten besitzt und jede aufwärtsplanare Zeichnung von Gn eine Fläche von Ω (4n ) benötigt. tn+1 Beweis: t0 tn+1 ∆2 tn tn Gn Gn s0 G0 sn−1 ∆1 sn sn+1 sn+1 Π Gn+1 sn a(Gn+1 ) ≥ a(Π ) + a(∆1 ) + a(∆2 ) ≥ 2 · a(Π ) ≥ 4 · a(Gn ) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg