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