Algorithmen zur Visualisierung von Graphen

Werbung
Fünfte Übung
Algorithmen zu Visualisierung von Graphen
Teile-und-Herrsche und s-t-Ordnungen
Thomas Bläsius
I NSTITUTE OF T HEORETICAL I NFORMATICS
K ARLSRUHE I NSTITUTE OF T ECHNOLOGY (KIT)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
In der Vorlesung wurde ein einfaches Verfahren zum Zeichnen
von Bäumen vorgestellt, das jedem Knoten v die Koordinaten
x(v) = pre-/in-/postorder(v) und y(v) = −tiefe(v) zuordnet. Garantiert dieses Verfahren auch dann noch eine geradlinige Gitterzeichnung, wenn man für die x-Koordinaten die sogenannte
levelorder -Nummerierung verwendet, die nacheinander in einer
Breitensuche alle Knoten der gleichen Tiefe von links nach rechts
besucht?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
1
2
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
2
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
1
2
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
2
1
2
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4 5
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4 5 6
1
2
3
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4 5 6
1
2
3
7
4
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4 5 6
1
2
3
7
4
8
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 1 – Levelorder-Baumlayout
Level
0
0
1
3
2
1
2
4 5 6
1
2
3
7
4
8 9
5
6
7
8
9
0
1
2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 2 – HV-Layouts
Geben Sie einen Algorithmus an, der für einen gegebenen
Binärbaum in O(n2 ) Zeit ein HV-Layout minimaler Fläche berechnet. Betrachten Sie dabei sowohl feste als auch variable Einbettung.
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 2 – HV-Layouts
Geben Sie einen Algorithmus an, der für einen gegebenen
Binärbaum in O(n2 ) Zeit ein HV-Layout minimaler Fläche berechnet. Betrachten Sie dabei sowohl feste als auch variable Einbettung.
zur Erinnerung:
ss Zeichne rechten und linken Teilbaum in Rechteck mit der
Wurzel links oben
ss Kombiniere Teilbäume horizontal oder vertikal
ss Minimiere die benötigte Fläche → Dynamisches Programm
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Kombinationen (var. Einb.)
Einbettung 1
G1
Einbettung 2
G1
G2
H
G2
G1
G2
V
G1
G2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Kombinationen (var. Einb.)
Einbettung 1
G1
Einbettung 2
G1
G2
H
G2
G1
G2
V
G1
G2
w1
w2
1
w = max(w1 , w2 + 1)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Kombinationen (var. Einb.)
Einbettung 1
G2
H
G1
G1
h2
1
V
G1
G2
G1
G2
Einbettung 2
h1
G2
h = h1 + h2 + 1
w = max(w1 , w2 + 1)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Kombinationen (var. Einb.)
Einbettung 1
G2
G1
Einbettung 2
G1
1
G2
H
h = max(h1 + 1, h2 )
h = max(h1 , h2 + 1)
w = w1 + w2 + 1
w = w1 + w2 + 1
G2
h2
G1
G1
2
1
V
3
h1
4
G2
h = h1 + h2 + 1
h = h1 + h2 + 1
w = max(w1 , w2 + 1)
w = max(w1 + 1, w2 )
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
Für ein Blatt gilt: h = w = 0
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
3
(w, h) = (7, 3)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
3
(w, h) = (7, 3)
4
(w, h) = (5, 4)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
3
(w, h) = (7, 3)
4
(w, h) = (5, 4)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
3
(w, h) = (7, 3)
4
(w, h) = (5, 4)
Können mehr als zwei Kombinationen übrig bleiben?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Dynamisches Programm
1
h = max(h1 + 1, h2 )
2
h = h1 + h2 + 1
3
h = max(h1 , h2 + 1)
4
h = h1 + h2 + 1
w = w1 + w2 + 1
w = max(w1 , w2 + 1)
w = w1 + w2 + 1
w = max(w1 + 1, w2 )
Idee: Dynamisches Programm
ss
ss
Für ein Blatt gilt: h = w = 0
Für innere Knoten berechne (w, h) für jede Kombination
ss Entferne dominierte Paare ((w, h) dom. (w0 , h0 ) ⇔ w ≤ w0 ∧ h ≤ h0 )
Beispiel: (w1 , h1 ) = (4, 1) und (w2 , h2 ) = (2, 2)
1
(w, h) = (7, 2)
2
(w, h) = (4, 4)
3
(w, h) = (7, 3)
4
(w, h) = (5, 4)
Können mehr als zwei Kombinationen übrig bleiben?
Wie geht man im nächsten Schritt vor, wenn beide Kinder mehrere Paare anbieten?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Ziel: Berechne die Paretomenge P von G
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Ziel: Berechne die Paretomenge P von G
ss Für jedes Paar (w1 , h1 ) ∈ P1 wähle jedes Paar (w2 , h2 ) ∈ P2
und berechne (w, h) für jede der vier Kombinationen.
ss Entferne alle dominierten Paare.
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Ziel: Berechne die Paretomenge P von G
ss Für jedes Paar (w1 , h1 ) ∈ P1 wähle jedes Paar (w2 , h2 ) ∈ P2
und berechne (w, h) für jede der vier Kombinationen.
ss Entferne alle dominierten Paare.
Offensichtlich erhält man die korrekte Paretomenge P
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Ziel: Berechne die Paretomenge P von G
ss Für jedes Paar (w1 , h1 ) ∈ P1 wähle jedes Paar (w2 , h2 ) ∈ P2
und berechne (w, h) für jede der vier Kombinationen.
ss Entferne alle dominierten Paare.
Offensichtlich erhält man die korrekte Paretomenge P
Wie groß kann P werden?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
G1 und G2 haben nicht jeweils ein optimales Paar (w1 , h1 ) bzw.
(w2 , h2 ) sondern eine Menge von sich nicht dominierenden Paaren P1 und P2 (Paretomengen).
Ziel: Berechne die Paretomenge P von G
ss Für jedes Paar (w1 , h1 ) ∈ P1 wähle jedes Paar (w2 , h2 ) ∈ P2
und berechne (w, h) für jede der vier Kombinationen.
ss Entferne alle dominierten Paare.
Offensichtlich erhält man die korrekte Paretomenge P
Wie groß kann P werden?
Lemma
Die Paretomenge eines Baums mit n Knoten enthält maximal n Paare.
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
Lemma
Die Paretomenge eines Baums mit n Knoten enthält maximal n Paare.
Beweis:
ss
Für jedes Paar (w, h) ∈ P gilt w ∈ {0, . . . , n − 1}
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
Lemma
Die Paretomenge eines Baums mit n Knoten enthält maximal n Paare.
Beweis:
ss
Für jedes Paar (w, h) ∈ P gilt w ∈ {0, . . . , n − 1}
ss
Für zwei Paare (w, h) und (w0 , h0 ) gilt w 6= w0 , andernfalls
dominiert (w, h) das Paar (w0 , h0 ) oder umgekehrt
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
Lemma
Die Paretomenge eines Baums mit n Knoten enthält maximal n Paare.
Beweis:
ss
Für jedes Paar (w, h) ∈ P gilt w ∈ {0, . . . , n − 1}
ss
Für zwei Paare (w, h) und (w0 , h0 ) gilt w 6= w0 , andernfalls
dominiert (w, h) das Paar (w0 , h0 ) oder umgekehrt
ss
⇒ Die Paretomenge enthält maximal n Paare
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Paretomenge
Lemma
Die Paretomenge eines Baums mit n Knoten enthält maximal n Paare.
Beweis:
ss
Für jedes Paar (w, h) ∈ P gilt w ∈ {0, . . . , n − 1}
ss
Für zwei Paare (w, h) und (w0 , h0 ) gilt w 6= w0 , andernfalls
dominiert (w, h) das Paar (w0 , h0 ) oder umgekehrt
ss
⇒ Die Paretomenge enthält maximal n Paare
Damit benötigen wir O(n2 ) Zeit pro Schritt also insgesamt O(n3 )
Geht es schneller?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
P2
1
3
7
6
1
5
5
1
8
4
6
6
4
7
2
3
7
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
1
P2
1
8
3
12
7
7
6
1
5
5
4
6
6
4
7
2
3
7
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
1
P2
1
8
3
12
5
7
7
9
6
1
5
5
4
6
6
4
7
2
3
7
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
1
P2
1
8
3
12
5
7
7
9
6
1
5
5
4
6
8
7
6
4
7
2
3
7
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
1
P2
1
8
3
12
5
7
7
9
6
1
5
5
4
6
7
6
4
2
8
10
7
7
3
7
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
P2
1
3
12
7
7
6
15
1
2
5
14
5
5
1
4
8
6
5
8
9
7
8
11
9
7
7
10
9
7
6
4
10
7
13
5
12
5
7
2
11
7
14
3
13
5
3
7
7
8
10
8
9
8
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
1
w = w1 + w2 + 1
h = max(h1 + 1, h2 )
P1 8
P2
1
3
12
7
7
6
15
1
2
5
14
5
5
1
4
8
6
5
8
9
7
8
11
9
7
7
10
9
7
6
4
10
7
13
5
12
5
7
2
11
7
14
3
13
5
3
7
7
8
10
8
9
8
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
w = w1 + w2 + 1
P2
8
h = max(h1 + 1, h2 )
3
7
5
5
6
1
3
7
4
6
6
4
7
2
8
1
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
w = w1 + w2 + 1
P2
8
h = max(h1 + 1, h2 )
3
5
7
9
5
5
6
1
3
7
4
6
6
4
7
2
8
1
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
w = w1 + w2 + 1
P2
8
h = max(h1 + 1, h2 )
3
5
7
9
5
5
6
1
3
7
7
8
4
6
6
4
7
2
8
1
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
w = w1 + w2 + 1
P2
8
h = max(h1 + 1, h2 )
3
5
7
9
5
5
6
1
3
7
7
8
4
6
8
7
6
4
7
2
8
1
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
w = w1 + w2 + 1
P2
8
h = max(h1 + 1, h2 )
3
5
7
9
5
5
6
1
3
7
7
8
4
6
7
8
6
4
2
1
8
10
11
12
7
7
7
7
restliche Zeile wird dominiert nach Eintrag mit h1 + 1 ≤ h2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
3
w = w1 + w2 + 1
P2
8
7
h = max(h1 + 1, h2 )
3
5
7
7
9
8
5
7
9
5
9
8
6
8
10
1
9
8
4
6
7
8
6
4
2
1
8
10
11
12
7
7
7
7
10
7
11
7
restliche Spalten werden dominiert bis Eintrag mit h1 + 1 ≤ h2
restliche Zeile wird dominiert nach Eintrag mit h1 + 1 ≤ h2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Beispiel (Paretomenge)
Idee: Sortiere die Mengen
P1 1
1
3
w = w1 + w2 + 1
P2
8
7
h = max(h1 + 1, h2 )
3
5
7
7
9
8
5
7
9
5
9
8
6
8
10
1
9
8
4
6
8
7
10
7
11
7
6
4
10
7
12
5
13
5
7
2
11
7
13
5
14
3
8
1
12
7
14
5
15
2
restliche Spalten werden dominiert bis Eintrag mit h1 + 1 ≤ h2
restliche Zeile wird dominiert nach Eintrag mit h1 + 1 ≤ h2
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Quadratische Laufzeit
Um die Paretomenge P aus den beiden Paretomengen der Kinder P1 und P2 zu berechnen, führe folgende Schritte aus:
ss
1
Sortiere P1 und P2 aufsteigend nach der Breite
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Quadratische Laufzeit
Um die Paretomenge P aus den beiden Paretomengen der Kinder P1 und P2 zu berechnen, führe folgende Schritte aus:
1
ss
Sortiere P1 und P2 aufsteigend nach der Breite
ss
Iteriere über P1 bis h1 + 1 ≤ h2 (einschließlich)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Quadratische Laufzeit
Um die Paretomenge P aus den beiden Paretomengen der Kinder P1 und P2 zu berechnen, führe folgende Schritte aus:
1
ss
Sortiere P1 und P2 aufsteigend nach der Breite
ss
Iteriere über P1 bis h1 + 1 ≤ h2 (einschließlich)
ss
Nimm nächstes Paar aus P2 und starte Iteration über P1 bei
aktuellem Element in P1 (einschließlich)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Quadratische Laufzeit
Um die Paretomenge P aus den beiden Paretomengen der Kinder P1 und P2 zu berechnen, führe folgende Schritte aus:
1
ss
Sortiere P1 und P2 aufsteigend nach der Breite
ss
Iteriere über P1 bis h1 + 1 ≤ h2 (einschließlich)
ss
Nimm nächstes Paar aus P2 und starte Iteration über P1 bei
aktuellem Element in P1 (einschließlich)
⇒ Laufzeit O(|P1 | + |P2 |) ∈ O(n)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
HV-Layouts – Quadratische Laufzeit
Um die Paretomenge P aus den beiden Paretomengen der Kinder P1 und P2 zu berechnen, führe folgende Schritte aus:
1
ss
Sortiere P1 und P2 aufsteigend nach der Breite
ss
Iteriere über P1 bis h1 + 1 ≤ h2 (einschließlich)
ss
Nimm nächstes Paar aus P2 und starte Iteration über P1 bei
aktuellem Element in P1 (einschließlich)
⇒ Laufzeit O(|P1 | + |P2 |) ∈ O(n)
⇒ Gesamtlaufzeit O(n2 )
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 3 – Außenplanar / Serienparallel
Ein Graph G heißt außenplanar, wenn er eine kreuzungsfreie
Zeichnung besitzt, in der alle Knoten an der äußeren Facette liegen. Zeigen Sie, dass jeder zweifach zusammenhängende außenplanare Graph serienparallel ist.
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 4 – Sichtbarkeitsrepräsentation
Zeigen Sie, dass jeder serienparallele Graph eine Sichtbarkeitsrepräsentation hat.
f
f
e
e
b
c
c
d
d
b
a
a
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 5 – Ohrendekomposition
Sei G = (V, E) ein Graph der für jede Kante {s, t} ∈ E eine
offene Ohrendekomposition besitzt die mit {s, t} beginnt. Zeigen
Sie, dass G zweifach zusammenhängend ist. (In der Vorlesung
wurde die umgekehrte Richtung gezeigt.)
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Aufgabe 6 – s-t-Ordnungen
Sei s = v1 , . . . , vn = t eine s-t-Ordnung eines planaren Graphen
G, der so eingebettet ist, dass die Kante {s, t} auf der äußeren
Facette liegt. Zeigen Sie, dass vi in der äußeren Facette des von
v1 , . . . , vi−1 induzierten Graphen liegt.
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Letzte Übung
Letzte Übung am 2. oder am 9. Februar?
Algorithmen zur Visualisierung von Graphen – Teile-und-Herrsche und s-t-Ordnungen
Institute for Theoretical Informatics
Thomas Bläsius
Algorithmics Group I
Herunterladen