1 Visualisierung von Graphen Teile-und-Herrsche-Algorithmen: Bäume und serienparallele Graphen 3. Vorlesung Sommersemester 2013 (basierend auf Folien von Martin Nöllenburg und Robert Görke, KIT) Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Ankündigung kommende Termine Mo, 6. Mai: Übung Do, 9. Mai: Vorlesung Christi Himmelfahrt Mo, 13. Mai: Übung Stiftungsfest Do, 16. Mai: Vorlesung Mo, 20. Mai: Übung Pfingstmontag Do, 23. Mai: Vorlesung Übung Mo, 27. Mai: Übung Vorlesung Do, 30. Mai: Vorlesung Fronleichnam Mo, 3. Juni: Übung Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 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 Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4 Ü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 Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 5-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 Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5-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) Martin Fink, 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, v` vr linker Kontur von T` (v ), evtl. überhängendem Teilstück von linker Kontur von Tr (v ) 6. Rechte Kontur analog Martin Fink, 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, 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 + Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I P 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 , dann für v 6= w : x (v` ) := x (v ) + x -Offset(x (v` )) und x (vr ) := x (v ) + x -Offset(x (vr )). Laufzeit? O (n) Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8-4 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 Lässt sich leicht auf bel. 2 Flächenverbrauch O (n ) Bäume verallgemeinern! Eltern von 2 Kindern mittig Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8-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 Flächenverbrauch O (n2 ) Eltern von 2 Kindern mittig per LP! Dito plus minimale Breite: Dito plus minimale Breite auf dem Gitter: NP-schwer! [Supowit & Reingold ’83] Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9 Beispiel für Breitenminimierung Lösung des Algorithmus: Optimale Lösung: Martin Fink, 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 Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · exp. Universität Würzburg 11 Beispiel: Radiale Baumlayouts Martin Fink, 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 Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13 Beschränkung auf kleinere Sektoren αv ρi αmin τ ρi +1 v cos τ = ⇒ αmax Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I ρi ρi+1 i αmin = αv − arccos ρρi+1 i αmax = αv + arccos ρρi+1 · Universität Würzburg 14 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 ) Martin Fink, 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 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 Martin Fink, 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 Martin Fink, 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, Martin Fink, 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 Martin Fink, 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. G1 Martin Fink, Alexander Wolff t1 = t2 t2 G1 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 Verallgemeinerung: SPQR-Bäume Martin Fink, Alexander Wolff · Q Lehrstuhl für Informatik I Q Q Q · Q Universität Würzburg 21 SP-Graphen in Anwendungen Ablaufdiagramme Außerdem: PERT-Diagramme (Program Evaluation and Review Technique) Linearzeitalgorithmen für sonst NP-vollständige Probleme (z.B. Maximum Independent Set) Martin Fink, 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: tn+1 ∆2 tn t0 tn Gn Gn G0 ∆1 sn sn+1 s0 sn−1 sn+1 Π Gn+1 sn a(Gn+1 ) ≥ a(Π ) + a(∆1 ) + a(∆2 ) ≥ 2 · a(Π ) ≥ 4 · a(Gn ) Martin Fink, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg