1 Visualisierung von Graphen Teile-und-Herrsche-Algorithmen: Bäume und serienparallele Graphen 4. Vorlesung Sommersemester 2015 (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ärtspl. Zeichnungen v. serienparallelen Graphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 4-7 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 4-9 Algorithmus von Reingold und Tilford (’81) Implementierung in 2 Phasen: 1. postorder (bottom-up): Konturen und x-Offsets zum Vorgänger einsammeln 2 2. preorder (top-down): absolute Koordinaten ausrechnen Kontur: verkettete Liste von Knoten (-Koordinaten) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5-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, v` vr 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 5-10 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, v` vr 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 6 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 , dann in preorder für v ∈ V : x (v` ) := x (v ) + x -Offset(v` ) und x (vr ) := x (v ) + x -Offset(vr ). Laufzeit? O (n) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 7 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 Lässt sich leicht auf bel. Bäume verallgemeinern! Γ ist geschichtet, d.h. y ≡ − tiefe, Γ ist planar, geradlinig und streng abwärts, Γ erhält die Einbettung (d.h. re. Kinder rechts), alle Knoten auf dem Gitter (horiz. & vert. Abstände ≥ 1), Beispiel? Flächenverbrauch O (n2 ), Elternknoten immer mittig über ihren Kindern. Dito plus minimale Breite (aber ohne Gitter): per LP! 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 8 Beispiel für Breitenminimierung Lösung des Algorithmus: Optimale Lösung: Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9 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 10 Beispiel: Radiale Baumlayouts Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11 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 12 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 13 Pseudocode für radiales Baumlayout RadialesBaumlayout(Baum T , Wurzel r ∈ T , Radien ρ1 < · · · < ρk ) preorder(vertex v , t, αmin , αmax ) begin postorder (r ) dv ← ρt { Ausgabe } preorder (r , 0, 0, 2π) αv ← (αmin + αmax )/2 return (dv , αv )v ∈V (T ) if t > 0 then t {Knotenpos./Polarkoord.} αmin ← max{αmin , αv −arccos ρρt+1 } ρt α ← min{α , α +arccos } max max v postorder(vertex v ) ρt+1 nv ← 1 foreach Kind w von v do postorder (w ) nv ← nv + nw Größe des Teilbaums T (v ) Philipp Kindermann, Alexander Wolff · left ← αmin foreach Kind w von v do w ·(αmax − αmin ) right ← left + nvn−1 preorder (w , t + 1, left, right) left ← right Laufzeit? O (n). Lehrstuhl für Informatik I Korrektheit? · X Universität Würzburg 14 Ü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 15 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 16 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 Anz. mindestens ·2 Anz. mindestens ·2 Anz. mindestens ·2 Beob. Zeichnung hat Breite ≤ n, Philipp Kindermann, Alexander Wolff · Höhe ≤ log2 n. Lehrstuhl für Informatik I · Universität Würzburg 17 Ü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 18 Serienparallele Graphen t einfacher serienparalleler Graph s Induktion: Verkette zwei 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 19 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 20 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 21 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