04. Vorlesung (07.05.2015) - WueCampus2

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