Algorithmen zur Visualisierung von Graphen

Transcrição

Algorithmen zur Visualisierung von Graphen
Algorithmen zur Visualisierung von Graphen
Teile & Herrsche-Algorithmen:
Bäume und serien-parallele Graphen
Vorlesung im Wintersemester 2012/2013
Tamara Mchedlidze – Martin Nöllenburg – Ignaz Rutter
23. Oktober 2012
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmen zum Zeichnen von Bäumen
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Anwendbarkeit
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 + Wurzel
ss
tiefe(v): Abstand zur
Wurzel
ss Durchlaufreihenfolgen
ss preorder
ss inorder
ss postorder
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
2 Phasen:
1. postorder
(bottom-up):
Konturen und x-Offsets
zum Vorgänger einsammeln
2. preorder (top-down): absolute Koordinaten ausrechnen
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
2 Phasen:
1. postorder
(bottom-up):
Konturen und x-Offsets
zum Vorgänger einsammeln
2. preorder (top-down): absolute Koordinaten ausrechnen
Kontur: verkettete Liste von Knoten (-Koordinaten)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
Phase 1:
1. Bearbeite T` (v) und Tr (v)
2. Laufe parallel linke Kontur von Tr (v) und rechte Kontur von
T` (v) ab
3. Bestimmt daraus dv , den horizontalen Minimalabstand von
v` und vr
4. x-Offset(v` ) = −d d2v e, x-Offset(vr ) = d d2v e
5. Baue linke Kontur von Tv aus: v, linke Kontur von T` (v) und
evtl. überhängendes Teilstück von linker Kontur von Tr (v)
6. Rechte Kontur analog
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Algorithmus von Reingold und Tilford (’81)
Phase 2
1. Setze y-Koordinate y(v) = −tiefe(v)
2. Setze x(v) = 0 für Wurzel und rekursiv die x-Koordinate
x(v` ) und x(vr ) der Nachfolger von v auf
x(v)+ x-Offset(x(v` )) bzw. x(v)+ x-Offset(x(vr ))
Zusammenfassung:
Algorithmus berechnet Binärbaumlayout:
ss geradliniges Gitterlayout
ss tiefengeschichtet, kreuzungsfrei
ss Knoten derselben Tiefe haben Abstand ≥ 2
ss Knoten sind über Nachfolgern zentriert
ss linke/rechte Nachfolger sind strikt links/rechts
ss identische Teilbäume gleich gezeichnet
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Breitenminimierung von Binärbaumlayouts
Satz (Supowit, Reingold)
Die Breitenminimierung von Binärbaumlayouts ist NP-schwer
Beweis: Reduktion von 3S AT
F = C1 ∧ · · · ∧ Cm ,
Ci = yi,1 ∨ yi,2 ∨ yi,3 , yi,j ∈ {x1 , . . . , xn , x1 , . . . , xn }
Konstruiere Baum T (F ), der genau dann Layout mit
Breite W ≤ 24 hat, wenn F erfüllbar ist.
Baum T (xk ) für Var. xk :
p
p
q0
q0
qk
qk
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Breitenminimierung von Binärbaumlayouts
Satz (Supowit, Reingold)
Die Breitenminimierung von Binärbaumlayouts ist NP-schwer
Beweis: Reduktion von 3S AT
F = C1 ∧ · · · ∧ Cm ,
Ci = yi,1 ∨ yi,2 ∨ yi,3 , yi,j ∈ {x1 , . . . , xn , x1 , . . . , xn }
Konstruiere Baum T (F ), der genau dann Layout mit
Breite W ≤ 24 hat, wenn F erfüllbar ist.
Baum T (xk ) für Var. xk :
p
q0
q0
qk
qk
u1
u`
Höhe ` = 3(i − 1) + j
p
Baum Ti,j
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Breitenminimierung von Binärbaumlayouts
Satz (Supowit, Reingold)
Die Breitenminimierung von Binärbaumlayouts ist NP-schwer
Beweis: Reduktion von 3S AT
F = C1 ∧ · · · ∧ Cm ,
Ci = yi,1 ∨ yi,2 ∨ yi,3 , yi,j ∈ {x1 , . . . , xn , x1 , . . . , xn }
Konstruiere Baum T (F ), der genau dann Layout mit
Breite W ≤ 24 hat, wenn F erfüllbar ist.
Baum T (xk ) für Var. xk :
p
q0
qk
u1
q0
qk
u`
Höhe ` = 3(i − 1) + j
p
Baum Ti,j
Literalbaum:
yi,j = xk
T (yi,j ) für
yi,j = xk
p
b
T (xk )
6
Ti,j
b
T (xk )
Ti,j
6
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Breitenminierung II
Klauselbaum T (Ci ):
T (yi,1 )
T (yi,2 )
T (yi,3 )
Erfüllte Klausel hat Breite höchstens
6 + 2 + 7 + 2 + 7 = 24
Beachte: alle Literalbäume haben volle Breite auf
vierter Ebene von oben
Nicht erfüllte Klausel: 7+2+7+2+7 = 25
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Breitenminierung II
Klauselbaum T (Ci ):
Formelbaum T (F )
T (C1 )
b
T (yi,1 )
T (yi,2 )
T (yi,3 )
T (C2 )
b
Erfüllte Klausel hat Breite höchstens
6 + 2 + 7 + 2 + 7 = 24
Beachte: alle Literalbäume haben volle Breite auf
vierter Ebene von oben
Nicht erfüllte Klausel: 7+2+7+2+7 = 25
T (Cm )
Breite ≤ 24 ⇔ F erfüllbar
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
HV-Bäume
Idee:
ss
Zeichne Teilbäume in Rechtecke,
Wurzel liegt in linker oberer Ecke
ss Nachfolger liegen vertikal unterhalb bzw. horizontal rechts
Induktionsanfang:
Induktionsschritt: kombiniere Layouts
horizontale Kombination
(Fläche: 3 × 7)
Berechne optimale Zeichnung mit
vertikale Kombination
dynamischer Programmierung
(Fläche: 4 × 6)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Rechtslastige hv-Layouts
Rechtslastiges hv-Layout:
ss
ss
Wähle in jedem Schritt Horizontal-Kombination
Platziere größeren Teilbaum rechts
Lemma
Höhe eines rechtslastigen hv-Layouts für Baum mit n Knoten ist
höchstens log n.
Beweis:
ss
ss
ss
ss
Vertikale Kanten haben Länge 1
w Knoten mit minimaler y-Koordinate
betrachte eindeutigen Pfad P zur Wurzel
für jede vertikale Kante (u, v) auf P : |T (v)| > |2T (u)|
ss ⇒ P enthält höchstens log n solcher Kanten
Platzbedarf: O(n log n)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Radiale Baumlayouts
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
11
9
1
7
1
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
11
9
1
7
1
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
11
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
11
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
9
10
11
·
1
8
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
9
10
11
·
1
8
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
9
10
11
·
7
8
·
1
6
9
10
·
1
8
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beispiel Radiallayout
9
10
11
·
7
8
·
1
6
9
10
·
1
8
9
1
7
1
1
10
5
1
3
1
1
1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Verlassen des Kreisringsektors
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Verlassen des Kreisringsektors
ρi
τ
ρi+1
cos τ =
ρi
ρi+1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Verlassen des Kreisringsektors
ρi
τ
ρi+1
cos τ =
ρi
ρi+1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Serien-parallele Graphen
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Serien-parallele Graphen
Graph G heißt serien-parallel, wenn er
t
ss
aus genau zwei Knoten (Quelle s, Senke t sowie
der Kante (s, t) besteht oder
ss aus zwei serien-parallelen Graphen G1 , G2 mit
Quellen s1 , s2 und Senken t1 , t2 durch eine der
folgenden Kombinationen hervorgeht
s
parallele Komposition:
serielle Komposition:
Identifiziere s1 , s2 als neue Quelle
Identifiziere t1 und s2 ,
s1 neue Quelle, T2 neue Senke Identifiziere t1 , t2 als neue Senke
t2
t1 = t2
t1 = s2
s1
s1 = s2
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Serien-parallele Graphen II
Lemma
Serien-parallele Graphen sind azyklisch und planar.
Beschreibung des rekursiven Aufbaus durch binären Baum:
ss
ss
Blätter sind Kanten (Q-Knoten)
Innere Knoten sind S- oder P-Knoten
(vgl. SPQR-Baum)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
S
Q
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
P
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
P
S
Q
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen: Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
P
S
Q
S
Q
Q
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
SP-Graphen in Anwendungen
Ablaufdiagramme
PERT-Diagramme
(Program Evaluation and Review Technique)
Außerdem: Linearzeitalgorithmen für sonst NP-vollständige Probleme (z.B. Maximum Independent Set)
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
Beweis:
tn+1
t0
tn
Gn
sn
s0
G0
sn+1
Gn+1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
Beweis:
tn+1
t0
tn
Gn
tn
Gn
sn−1
sn
s0
G0
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
Beweis:
tn+1
tn+1
t0
tn
Gn
tn
Gn
sn−1
sn
s0
G0
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
Beweis:
tn+1
tn+1
t0
tn
tn
Gn
Gn
sn
s0
G0
sn+1
sn−1
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
tn
tn
Gn
Gn
sn
s0
G0
sn−1
sn+1
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
tn
tn
Gn
Gn
sn
s0
G0
sn−1
sn+1
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
tn
tn
Gn
Gn
sn
s0
G0
sn−1
sn+1
sn+1
Gn+1
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
∆2
tn
tn
Gn
Gn
sn
s0
G0
sn+1
Gn+1
sn−1
∆1
sn+1
Π
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
∆2
tn
tn
Gn
Gn
sn
s0
G0
sn+1
Gn+1
sn−1
∆1
sn+1
Π
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
∆2
tn
tn
Gn
Gn
sn
s0
G0
sn+1
Gn+1
sn−1
∆1
sn+1
Π
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Untere Schranke für die Fläche
Satz
Jedes kreuzungsfreie Aufwärtslayout für geordnete einfache
serien-parallele Graphen mit n Knoten benbötigt im worst case
ein Gitter der Größe Ω(2n ).
tn+1
Beweis:
tn+1
t0
∆2
tn
tn
Gn
Gn
sn
s0
G0
sn+1
Gn+1
sn−1
∆1
sn+1
Π
sn
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Linkslastige Ordnungen
Ordnung heißt linkslastig, wenn Q-Knoten nur als rechte Nachfolger von P-Knoten vorkommen.
Satz
Wenn G serien-parallel, einfach und linkslastig geordnet, so besitzt G Zeichnung der Größe O(n2 ).
Komponenten des Dekompositionsbaums:
ss Layout von G passt in rechtwinkliges, gleichschenkliges Dreieck mit vertikaler Basis, Schenkel nach links.
ss Quelle in unterer Ecke, Senke in oberer Ecke, linke
t
v
Ecke frei
ss rechtester Nachbar von s 6= t (t 6= s) liegt unterhalb
(oberhalb) der Mitte
ss v Nachbar der Quelle (Senke) ⇒ kein Knoten liegt im
v
Parallelogramm von v und s (t).
s
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Konstruktion
s
Q-Knoten (Induktionsanfang):
t
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Konstruktion
s
Q-Knoten (Induktionsanfang):
t
t
∆(G2 )
S-Knoten (serielle Komposition):
∆(G1 )
s
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Konstruktion
s
Q-Knoten (Induktionsanfang):
t
∆(G2 )
t
S-Knoten (serielle Komposition):
t
∆(G1 )
P-Knoten (parallele Komposition):
∆(G1 )
s
∆(G2 )
s
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Konstruktion
s
Q-Knoten (Induktionsanfang):
t
∆(G2 )
t
S-Knoten (serielle Komposition):
t
∆(G1 )
P-Knoten (parallele Komposition):
Eigenschaften:
ss kreuzungsfrei und aufwärts
ss höchstens quadratische Fläche
∆(G1 )
s
∆(G2 )
s
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Darstellung von Symmetrien in Graphen
aus Hong, Eades, Lee ’00
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Darstellung von Symmetrien in Graphen
Definition: Automorphismen eines DAG
Ein Automorphismus eines DAG G = (V, E) ist eine Knotenpermutation π : V → V , die Adjazenzen respektiert und alle
Kantenrichtungen erhält oder alle Kantenrichtungen umdreht:
(u, v) ∈ E ⇔ (π(u), π(v)) ∈ E
oder
(u, v) ∈ E ⇔ (π(v), π(u)) ∈ E.
Die Automorphismen von G bilden mit der Hintereinanderausführung eine Gruppe.
ss die Automorphismengruppe eines Graphen zu bestimmen ist GI-
vollständig
ss für Graphen mit beschränktem Maximalgrad und planare Graphen
geht das in Polynomialzeit
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Darstellung von Symmetrien in Graphen
Definition: Automorphismen eines DAG
Ein Automorphismus eines DAG G = (V, E) ist eine Knotenpermutation π : V → V , die Adjazenzen respektiert und alle
Kantenrichtungen erhält oder alle Kantenrichtungen umdreht:
(u, v) ∈ E ⇔ (π(u), π(v)) ∈ E
oder
(u, v) ∈ E ⇔ (π(v), π(u)) ∈ E.
Die Automorphismen von G bilden mit der Hintereinanderausführung eine Gruppe.
ss die Automorphismengruppe eines Graphen zu bestimmen ist GI-
vollständig
ss für Graphen mit beschränktem Maximalgrad und planare Graphen
geht das in Polynomialzeit
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Darstellbare Symmetrien
ss ein Automorphismus π eines Graphen ist darstellbar, wenn es eine
Zeichnung gibt, die eine Symmetrie enthält, welche π induziert
ss Lin charakterisiert darstellbare Automorphismen [Lin ’92]
ss Darstellbare Automorphismen eines Graphen zu finden ist NP-
schwer
ss für planare Graphen ist das wieder in Polynomialzeit möglich
2
1
1
3
2
1
4
3
4
2
3
4
5
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Darstellbare Symmetrien
ss ein Automorphismus π eines Graphen ist darstellbar, wenn es eine
Zeichnung gibt, die eine Symmetrie enthält, welche π induziert
ss Lin charakterisiert darstellbare Automorphismen [Lin ’92]
ss Darstellbare Automorphismen eines Graphen zu finden ist NP-
schwer
ss für planare Graphen ist das wieder in Polynomialzeit möglich
2
1
1
3
2
1
4
3
4
stellt 1 → 2 → 3 → 4 → 1 dar,
aber nicht 1 → 2 → 3 → 1
2
3
stellt 1 → 2 → 3 → 1 dar, aber
nicht 1 → 2 → 3 → 4 → 1
4
5
1 → 2 → 3 → 1, 4 → 5 → 4
nicht darstellbar
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien in SP-Graphen
v
π(v)
u
π(u)
πvert
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien in SP-Graphen
π(u)
π(v)
v
π(v)
u
π(u)
πvert
v
u
πhor
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien in SP-Graphen
v
π(v)
u
π(u)
πvert
π(u)
π(u)
π(v)
π(v)
v
v
u
u
πhor
πrot
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien in SP-Graphen
v
π(v)
u
π(u)
πvert
π(u)
π(u)
π(v)
π(v)
v
v
u
u
πhor
πrot
{πvert , πhor , πrot }
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien in SP-Zeichnungen
Satz (Hong, Eades, Lee ’00)
Die in einem kreuzungsfreien Aufwärtslayout eines SPGraphen darstellbaren Symmetrien sind entweder
ss {id}
ss {id, π} mit π ∈ {πvert , πhor , πrot }
ss {id, πvert , πhor , πrot }.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
P
S
Q
S
Q
Q
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
P
S
S
S
Q
Q
S
Q
P
S
Q
S
Q
Q
Q
Q
Q
Q
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
S
S
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
Kanonische Kodierung
ss Setze C(G) = h0i für alle Q-Knoten G.
ss Für jede Tiefe t = max tiefe(G), . . . , 0
G
ss
ss
ss
Für jeden S- oder P-Knoten G der Tiefe t mit Nachfolgern
G1 , . . . , Gk setze C(G) = hc(G1 ), . . . , c(Gk )i und sortiere C(G)
nichtabsteigend, falls G ein P-Knoten ist.
Sortiere die Menge der Tupel aller Knoten der Tiefe t lexikographisch.
Für jede Komponente G der Tiefe t setze ihre Kodierung auf c,
falls ihr Tupel in der sortierten Tupelfolge als c-tes verschiedenes Tupel auftritt.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
Kanonische Kodierung
ss Setze C(G) = h0i für alle Q-Knoten G.
ss Für jede Tiefe t = max tiefe(G), . . . , 0
G
ss
ss
ss
Für jeden S- oder P-Knoten G der Tiefe t mit Nachfolgern
G1 , . . . , Gk setze C(G) = hc(G1 ), . . . , c(Gk )i und sortiere C(G)
nichtabsteigend, falls G ein P-Knoten ist.
Sortiere die Menge der Tupel aller Knoten der Tiefe t lexikographisch.
Für jede Komponente G der Tiefe t setze ihre Kodierung auf c,
falls ihr Tupel in der sortierten Tupelfolge als c-tes verschiedenes Tupel auftritt.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
Kanonische Kodierung
ss Setze C(G) = h0i für alle Q-Knoten G.
ss Für jede Tiefe t = max tiefe(G), . . . , 0
G
ss
ss
ss
Für jeden S- oder P-Knoten G der Tiefe t mit Nachfolgern
G1 , . . . , Gk setze C(G) = hc(G1 ), . . . , c(Gk )i und sortiere C(G)
nichtabsteigend, falls G ein P-Knoten ist.
Sortiere die Menge der Tupel aller Knoten der Tiefe t lexikographisch.
Für jede Komponente G der Tiefe t setze ihre Kodierung auf c,
falls ihr Tupel in der sortierten Tupelfolge als c-tes verschiedenes Tupel auftritt.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
Kanonische Kodierung
ss Setze C(G) = h0i für alle Q-Knoten G.
ss Für jede Tiefe t = max tiefe(G), . . . , 0
G
ss
ss
ss
Für jeden S- oder P-Knoten G der Tiefe t mit Nachfolgern
G1 , . . . , Gk setze C(G) = hc(G1 ), . . . , c(Gk )i und sortiere C(G)
nichtabsteigend, falls G ein P-Knoten ist.
Sortiere die Menge der Tupel aller Knoten der Tiefe t lexikographisch.
Für jede Komponente G der Tiefe t setze ihre Kodierung auf c,
falls ihr Tupel in der sortierten Tupelfolge als c-tes verschiedenes Tupel auftritt.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
Kanonische Kodierung
ss Setze C(G) = h0i für alle Q-Knoten G.
ss Für jede Tiefe t = max tiefe(G), . . . , 0
G
ss
ss
ss
Für jeden S- oder P-Knoten G der Tiefe t mit Nachfolgern
G1 , . . . , Gk setze C(G) = hc(G1 ), . . . , c(Gk )i und sortiere C(G)
nichtabsteigend, falls G ein P-Knoten ist.
Sortiere die Menge der Tupel aller Knoten der Tiefe t lexikographisch.
Für jede Komponente G der Tiefe t setze ihre Kodierung auf c,
falls ihr Tupel in der sortierten Tupelfolge als c-tes verschiedenes Tupel auftritt.
Zwei Knoten u und v gleicher Tiefe sind genau dann isomorph, wenn sie
den gleichen Code haben.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h0i
h0i
h0i
h0i
h0i
S
S
h0i
h0i
h0i
h0i
h0i
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h0i
h0i
h0i
h0i
h0i
S
S
h0i
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h0i
h0i
h0i
h0i
h0i
h0i
S
S
h1, 1i
h1, 1i
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h0i
h0i
h0i
h0i
h0i
h0i
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h1, 1i
h0i
h0i
h0i
h0i
h0i
h0i
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Knotenkodierung im Dekompositionsbaum
P
S
S
S
P
h1, 1i 2
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Knotenkodierung im Dekompositionsbaum
P
S
S
h1, 1, 2i
h1, 1i
h1, 1i
S
P
h1, 1i 2
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Knotenkodierung im Dekompositionsbaum
P
S
S
h1, 1i
h1, 1, 2i
1
2
h1, 1i 1
S
P
h1, 1i 2
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Knotenkodierung im Dekompositionsbaum
P
h1, 1, 2i
1
S
S
h1, 1i
h1, 1, 2i
1
2
h1, 1i 1
S
P
h1, 1i 2
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
h0i 1
S
S
h1, 1i
h1, 1i
1
h0i 1
h0i 1
h0i 1
h0i 1
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
1
Vertikale Symmetrien
Satz (Hong, Eades, Lee ’00)
Gegeben sei der kanonische Dekompositionsbaum eines serienparallelen Graphen. Es sei G eine Komponente, die durch Komposition der Komponenten G1 , . . . , Gk entstehe.
ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle
G1 , . . . , Gk vertikal symmetrisch sind.
ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤
i ≤ k, c(Gi ) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.
ss |Gj | gerade ∀j ⇒ vertikal symmetrisch
ss |Gj | ungerade für genau ein j ⇒ G vertikal symmetrisch g.d.w.
Graphen in Gj vertikal symmetrisch
ss |Gi |, |Gj | ungerade für i 6= j ⇒ G nicht vertikal symmetrisch
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Vertikale Symmetrien
Satz (Hong, Eades, Lee ’00)
Gegeben sei der kanonische Dekompositionsbaum eines serienparallelen Graphen. Es sei G eine Komponente, die durch Komposition der Komponenten G1 , . . . , Gk entstehe.
ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle
G1 , . . . , Gk vertikal symmetrisch sind.
ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤
i ≤ k, c(Gi ) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.
ss |Gj | gerade ∀j ⇒ vertikal symmetrisch
ss |Gj | ungerade für genau ein j ⇒ G vertikal symmetrisch g.d.w.
Graphen in Gj vertikal symmetrisch
ss |Gi |, |Gj | ungerade für i 6= j ⇒ G nicht vertikal symmetrisch
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Vertikale Symmetrien
Satz (Hong, Eades, Lee ’00)
Gegeben sei der kanonische Dekompositionsbaum eines serienparallelen Graphen. Es sei G eine Komponente, die durch Komposition der Komponenten G1 , . . . , Gk entstehe.
ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle
G1 , . . . , Gk vertikal symmetrisch sind.
ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤
i ≤ k, c(Gi ) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.
ss |Gj | gerade ∀j ⇒ vertikal symmetrisch
ss |Gj | ungerade für genau ein j ⇒ G vertikal symmetrisch g.d.w.
Graphen in Gj vertikal symmetrisch
ss |Gi |, |Gj | ungerade für i 6= j ⇒ G nicht vertikal symmetrisch
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Vertikale Symmetrien
Satz (Hong, Eades, Lee ’00)
Gegeben sei der kanonische Dekompositionsbaum eines serienparallelen Graphen. Es sei G eine Komponente, die durch Komposition der Komponenten G1 , . . . , Gk entstehe.
ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle
G1 , . . . , Gk vertikal symmetrisch sind.
ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤
i ≤ k, c(Gi ) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.
ss |Gj | gerade ∀j ⇒ vertikal symmetrisch
ss |Gj | ungerade für genau ein j ⇒ G vertikal symmetrisch g.d.w.
Graphen in Gj vertikal symmetrisch
ss |Gi |, |Gj | ungerade für i 6= j ⇒ G nicht vertikal symmetrisch
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beweisidee vertikale Symmetrie
S-Knoten
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beweisidee vertikale Symmetrie
P-Knoten, alle Klassen gerade Anzahl
S-Knoten
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Beweisidee vertikale Symmetrie
P-Knoten, alle Klassen gerade Anzahl
S-Knoten
alle Knoten v-symm.
P-Knoten, eine Klasse ungerade Anzahl & v-symm.
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien zeichnen
aus Hong, Eades, Lee ’00
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien zeichnen
aus Hong, Eades, Lee ’00
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I
Symmetrien zeichnen
aus Hong, Eades, Lee ’00
Algorithmen zur Visualisierung von Graphen – Teile & Herrsche-Algorithmen
Institute for Theoretical Informatics
Ignaz Rutter
Algorithmics Group I