03. Vorlesung - WueCampus2

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