03. Vorlesung (30.04.2013): Zeichnen von Bäumen

Werbung
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
Herunterladen