1 Visualisierung von Graphen Geradlinige Zeichnungen planarer Graphen 6. Vorlesung Sommersemester 2014 (basierend auf Folien von Marcus Krug und Tamara Mchedlidze, KIT) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Kazimierz Kuratowski Warschau 1896–1980 Warschau Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. John Edward Hopcroft *1939, Seattle, WA, U.S.A. Philipp Kindermann, Alexander Wolff Robert Endre Tarjan *1948 Pomona, CA, USA · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. Satz. [Wagner 1936, Fáry 1948, Stein 1951] Jeder planare Graph lässt sich geradlinig zeichnen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. Satz. [Wagner 1936, Fáry 1948, Stein 1951] Jeder planare Graph lässt sich geradlinig zeichnen. Satz. [Koebe 1936: Kontaktprobleme der konformen Abbildung] Jeder planare Graph lässt sich als Berührgraph von Kreisscheiben (coin graph) repräsentieren. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. Satz. [Wagner 1936, Fáry 1948, Stein 1951] Jeder planare Graph lässt sich geradlinig zeichnen. Satz. [Koebe 1936: Kontaktprobleme der konformen Abbildung] Jeder planare Graph lässt sich als Berührgraph von Kreisscheiben (coin graph) repräsentieren. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. Satz. [Wagner 1936, Fáry 1948, Stein 1951] Jeder planare Graph lässt sich geradlinig zeichnen. Satz. [Koebe 1936: Kontaktprobleme der konformen Abbildung] Jeder planare Graph lässt sich als Berührgraph von Kreisscheiben (coin graph) repräsentieren. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Planare Graphen: Charakterisierung, Test, Zeichnung Satz. [Kuratowski 1930: Sur le problème des courbes gauches en topologie ] Sei G ein einfacher Graph. Dann gilt: G planar ⇔ weder K5 noch K3,3 ist Minor von G . Satz. [Hopcroft & Tarjan, J. ACM 1974] Sei G ein einfacher Graph mit n Knoten. Dann kann man in O (n) Zeit entscheiden, ob G planar ist. Satz. [Wagner 1936, Fáry 1948, Stein 1951] Jeder planare Graph lässt sich geradlinig zeichnen. Satz. [Koebe 1936: Kontaktprobleme der konformen Abbildung] Jeder planare Graph lässt sich als Berührgraph von Kreisscheiben (coin graph) repräsentieren. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Satz. [de Fraysseix, Pach & Pollack 1988] Jeder eingebettete planare Graph mit n Knoten lässt sich geradlinig und planar auf dem (2n − 4) × (n − 2) Gitter zeichnen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Satz. [de Fraysseix, Pach & Pollack 1988] Jeder eingebettete planare Graph mit n Knoten lässt sich geradlinig und planar auf dem (2n − 4) × (n − 2) Gitter zeichnen. n−2 2n − 4 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Satz. [de Fraysseix, Pach & Pollack 1988] Jeder eingebettete planare Graph mit n Knoten lässt sich geradlinig und planar auf dem (2n − 4) × (n − 2) Gitter zeichnen. n−2 2n − 4 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Satz. [de Fraysseix, Pach & Pollack 1988] Jeder eingebettete planare Graph mit n Knoten lässt sich geradlinig und planar auf dem (2n − 4) × (n − 2) Gitter zeichnen. n−2 2n − 4 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 Planare Graphen zeichnen Satz. [Tutte 1963: How to draw a graph] Ein (3-fach zshg.) planarer Graph lässt sich in Linearzeit geradlinig (und konvex) zeichnen. William Thomas Tutte Newmarket, GB 1917–2002 Kitchener, Kanada Satz. [de Fraysseix, Pach & Pollack 1988] Jeder eingebettete planare Graph mit n Knoten lässt sich geradlinig und planar auf dem (2n − 4) × (n − 2) Gitter zeichnen. n−2 heute Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I 2n − 4 · Universität Würzburg 4-1 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-2 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-3 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-4 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-5 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-6 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Zeichne inkrementell Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-7 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Zeichne inkrementell v G0 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4-8 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Zeichne inkrementell v G0 Philipp Kindermann, Alexander Wolff G0 · Lehrstuhl für Informatik I · Universität Würzburg 4-9 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Zeichne inkrementell v G0 Philipp Kindermann, Alexander Wolff G0 · Lehrstuhl für Informatik I · Universität Würzburg 4-10 Idee Es reicht, maximal planare (triangulierte) Graphen zu betrachten. Zeichne inkrementell v G0 Philipp Kindermann, Alexander Wolff v G0 · Lehrstuhl für Informatik I · Universität Würzburg 5 Kanonische Ordnungen Definition: Kanonische Ordnung Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5 Kanonische Ordnungen Definition: Kanonische Ordnung Sei G = (V , E ) ein triangulierter, planar eingebetteter Graph mit n ≥ 3 Knoten. Eine Ordnung π = (v1 , v2 , . . . , vn ) der Knoten heißt kanonische Ordnung, falls gilt Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5 Kanonische Ordnungen Definition: Kanonische Ordnung Sei G = (V , E ) ein triangulierter, planar eingebetteter Graph mit n ≥ 3 Knoten. Eine Ordnung π = (v1 , v2 , . . . , vn ) der Knoten heißt kanonische Ordnung, falls gilt für 3 ≤ k ≤ n ist der von {v1 , . . . vk } induzierte Teilgraph Gk zweifachzusammenhängend und intern trianguliert. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5 Kanonische Ordnungen Definition: Kanonische Ordnung Sei G = (V , E ) ein triangulierter, planar eingebetteter Graph mit n ≥ 3 Knoten. Eine Ordnung π = (v1 , v2 , . . . , vn ) der Knoten heißt kanonische Ordnung, falls gilt für 3 ≤ k ≤ n ist der von {v1 , . . . vk } induzierte Teilgraph Gk zweifachzusammenhängend und intern trianguliert. für 2 ≤ k ≤ n ist v1 , v2 ist Außenkante von Gk . Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5 Kanonische Ordnungen Definition: Kanonische Ordnung Sei G = (V , E ) ein triangulierter, planar eingebetteter Graph mit n ≥ 3 Knoten. Eine Ordnung π = (v1 , v2 , . . . , vn ) der Knoten heißt kanonische Ordnung, falls gilt für 3 ≤ k ≤ n ist der von {v1 , . . . vk } induzierte Teilgraph Gk zweifachzusammenhängend und intern trianguliert. für 2 ≤ k ≤ n ist v1 , v2 ist Außenkante von Gk . für k < n liegt vk +1 auf dem Rand der äußeren Facette von Gk +1 und alle Nachbarn von vk +1 in Gk +1 bilden ein zusammenhängendes Intervall auf dem Rand Co (Gk ) der äußeren Facette von Gk . Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-1 Beispiel kanonische Ordnung Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-2 Beispiel kanonische Ordnung 16 G16 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-3 Beispiel kanonische Ordnung 16 G15 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-4 Beispiel kanonische Ordnung 16 15 G15 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-5 Beispiel kanonische Ordnung 16 15 G14 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-6 Beispiel kanonische Ordnung 16 14 15 G14 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-7 Beispiel kanonische Ordnung 16 14 15 G13 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-8 Beispiel kanonische Ordnung 16 14 15 13 G13 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-9 Beispiel kanonische Ordnung 16 14 15 13 G12 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-10 Beispiel kanonische Ordnung 16 14 15 Sehne G13 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-11 Beispiel kanonische Ordnung 16 14 15 13 G13 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-12 Beispiel kanonische Ordnung 16 14 15 13 G12 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-13 Beispiel kanonische Ordnung 16 14 15 12 13 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 7 Existenz einer kanonischen Ordnung Lemma. Jeder planare, triangulierte Graph G = (V , E ) hat eine kanonische Ordnung. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 7 Existenz einer kanonischen Ordnung Lemma. Jeder planare, triangulierte Graph G = (V , E ) hat eine kanonische Ordnung. Beweis: Umgekehrte Induktion über k . Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 7 Existenz einer kanonischen Ordnung Lemma. Jeder planare, triangulierte Graph G = (V , E ) hat eine kanonische Ordnung. Beweis: Umgekehrte Induktion über k . vn k = n: v2 v1 Induktionsvoraussetzung: Die Knoten vn , vn−1 , . . . , vk +1 wurden so gewählt, dass die drei Bedingungen erfüllt sind. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . IV Gk v1 Philipp Kindermann, Alexander Wolff v2 · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV v1 Philipp Kindermann, Alexander Wolff v2 · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV v1 Philipp Kindermann, Alexander Wolff vk darf nicht an Sehne liegen. Reicht das aus? v2 · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . IV vk vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk Gk−1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk Gk−1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk Gk−1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk Gk nicht 2fach-zshgd. Gk−1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk vk Gk nicht 2fach-zshgd. Gk−1 Gk−1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk vk Gk nicht 2fach-zshgd. Gk−1 Gk−1 Philipp Kindermann, Alexander Wolff Gk nicht trianguliert · Lehrstuhl für Informatik I · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk vk Gk nicht 2fach-zshgd. Gk nicht trianguliert Gk−1 Gk−1 Philipp Kindermann, Alexander Wolff vk · Lehrstuhl für Informatik I Gk−1 · Universität Würzburg 8 Existenz einer kanonischen Ordnung Wir suchen geeignetes vk in Gk . vk IV vk darf nicht an Sehne liegen. Reicht das aus? v1 v2 Zeige: vk nicht an Sehne ⇒ Gk −1 zweifach zusammenhängend vk vk Gk nicht 2fach-zshgd. Gk nicht trianguliert Sehne Gk−1 Gk−1 Philipp Kindermann, Alexander Wolff vk · Lehrstuhl für Informatik I Gk−1 · Universität Würzburg 9-1 Finde Knoten vk der nicht an Sehne liegt Zeige: Es gibt einen Knoten vk auf der Außenfacette, der an keine Sehne angrenzt. – starte Umlauf von v1 ; Sehnen bilden Klammernstruktur v1 Philipp Kindermann, Alexander Wolff v2 · Lehrstuhl für Informatik I · Universität Würzburg 9-2 Finde Knoten vk der nicht an Sehne liegt Zeige: Es gibt einen Knoten vk auf der Außenfacette, der an keine Sehne angrenzt. – entferne innere Knoten – starte Umlauf von v1 ; Sehnen bilden Klammernstruktur v1 Philipp Kindermann, Alexander Wolff v2 · Lehrstuhl für Informatik I · Universität Würzburg 9-3 Finde Knoten vk der nicht an Sehne liegt Zeige: Es gibt einen Knoten vk auf der Außenfacette, der an keine Sehne angrenzt. – entferne innere Knoten vk – starte Umlauf von v1 ; Sehnen bilden Klammernstruktur – ⇒ finde geeignetes vk v1 Philipp Kindermann, Alexander Wolff v2 · Lehrstuhl für Informatik I · Universität Würzburg 10 Berechnen einer kanonischen Ordnung Algorithmus Kanonische Ordnung forall the v ∈ V do chords(v ) ← 0; out(v ) ← false; mark(v ) ← false; out(v1 ), out(v2 ), out(vn ) ← true; for k = n to 3 do wähle v 6= v1 , v2 mit mark(v ) = false, out(v ) = true, chords(v ) = 0; vk ← v ; mark(v ) ← true; (w1 = v1 , w2 , . . . , wt−1 , wt = v2 ) ← Co (Gk−1 ); (wp , . . . , wq ) ← unmarkierte Nachbarn von vk ; out(wi ) ← true for all p < i < q; aktualisiere chords(·) für diese wi und ihre Nachbarn; chord(v ): Anzahl der zu v adjazenten Sehnen mark(v ) = true ⇔ v wurde schon eine Nummer zugewiesen out(v )=true ⇔ v liegt auf der Außenfacette des aktuellen Teilgraphen Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 10 Berechnen einer kanonischen Ordnung Algorithmus Kanonische Ordnung forall the v ∈ V do chords(v ) ← 0; out(v ) ← false; mark(v ) ← false; out(v1 ), out(v2 ), out(vn ) ← true; for k = n to 3 do wähle v 6= v1 , v2 mit mark(v ) = false, out(v ) = true, chords(v ) = 0; vk ← v ; mark(v ) ← true; (w1 = v1 , w2 , . . . , wt−1 , wt = v2 ) ← Co (Gk−1 ); (wp , . . . , wq ) ← unmarkierte Nachbarn von vk ; out(wi ) ← true for all p < i < q; aktualisiere chords(·) für diese wi und ihre Nachbarn; chord(v ): Anzahl der zu v adjazenten Sehnen mark(v ) = true ⇔ v wurde schon eine Nummer zugewiesen out(v )=true ⇔ v liegt auf der Außenfacette des aktuellen Teilgraphen Der Algorithmus findet eine kanonische Ordnung in O(n) Zeit. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-1 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-2 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-3 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-4 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Überlappungen! Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-5 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Überlappungen! Ideen? Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-6 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-7 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-8 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-9 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. vk Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-10 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-11 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. Gitterpunkt? Übung Gk−1 v2 v1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11-12 Shift-Algorithmus von de Fraysseix, Pach und Pollack Invariante: Gk−1 ist so gezeichnet, dass v1 auf (0, 0) und v2 auf (2k − 6, 0) liegt. y die Außenfacette (ohne die Kante {v1 , v2 }) x-monoton ist. x jede Kante auf der Außenfacette (ohne die Kante {v1 , v2 }) Steigung ±1 hat. Gitterpunkt? Übung Gk−1 v1 v2 L(vk ) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 12-1 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-2 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-3 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-4 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-5 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-6 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-7 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-8 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-9 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-10 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-11 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-12 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 2 L(10) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 12-13 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 2 L(11) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 12-14 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-15 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-16 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 L(13) 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-17 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 L(14) 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-18 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-19 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 13 15 12 11 10 6 9 8 7 4 5 3 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 12-20 Shift-Algorithmus von de Fraysseix, Pach und Pollack +1 +2 16 14 (n − 2, n − 2) 13 15 12 11 10 6 9 8 7 4 5 3 1 2 (2n − 4, 0) (0, 0) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-1 Was ist die Menge L(vk )? vk Gk −1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-2 Was ist die Menge L(vk )? vk überdeckte Knoten Gk −1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-3 Was ist die Menge L(vk )? vk überdeckte Knoten Gk −1 Philipp Kindermann, Alexander Wolff · Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . In Gi , 1 ≤ i ≤ n − 1: Wald Lehrstuhl für Informatik I · Universität Würzburg 13-4 Was ist die Menge L(vk )? vk Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . In Gi , 1 ≤ i ≤ n − 1: Wald Gk −1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-5 Was ist die Menge L(vk )? vk Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . In Gi , 1 ≤ i ≤ n − 1: Wald Gk −1 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-6 Was ist die Menge L(vk )? vk wp wq w2 w1 Gk −1 Philipp Kindermann, Alexander Wolff · Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . wt −1 In Gi , 1 ≤ i ≤ n − 1: Wald wt Lehrstuhl für Informatik I · Universität Würzburg 13-7 Was ist die Menge L(vk )? vk wp wq w2 w1 Gk −1 L(wi ) Philipp Kindermann, Alexander Wolff · Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . wt −1 In Gi , 1 ≤ i ≤ n − 1: Wald wt Lehrstuhl für Informatik I · Universität Würzburg 13-8 Was ist die Menge L(vk )? vk wp wq w2 w1 Gk −1 L(wi ) Jeder innere Knoten wird genau einmal überdeckt. Überdeckungen definieren einen Baum in G . wt −1 In Gi , 1 ≤ i ≤ n − 1: Wald wt Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, L(vk ) δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 14 Verschiebungen Lemma. Sei 0 < δ1 ≤ δ2 ≤ · · · ≤ δt ∈ N. Wenn wir L(wi ) um δi nach rechts schieben, erhalten wir eine geradlinige planare Zeichnung. Beweis: Induktion über k; wir betrachten G3 , . . . , Gn . Nehme an, die Behauptung stimmt für Gk−1 . w1 , . . . , wp , vk , wq , . . . , wt Außenfacette von Gk . Sei δ(w1 ) ≤ · · · ≤ δ(wp ) ≤ δ(vk ) ≤ δ(wq ) ≤ · · · ≤ δ(wt ). Setze δ 0 (wi ) = δ(wi ) für 1 ≤ i ≤ p, δ 0 (wi ) = δ(vk ) + 1 für p + 1 ≤ i ≤ q − 1 und δ 0 (wi ) = δ(wi ) + 2 für q ≤ i ≤ t. Nach Induktionsvoraussetzung können wir L(w1 ) . . . , L(wt ) um δ(w1 )0 , . . . , δ(wt )0 verschieben. Zum Schluss können wir die Zeichnung mit vk wieder vervollständigen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 15 Der Zeichenalgorithmus Algorithmus Shift v1 , . . . , vn sei kanonische Ordnung von G ; for i = 1 to n do L(vi ) ← {vi }; P(v1 ) ← (0, 0); P(v2 ) ← (2, 0); P(v3 ) ← (1, 1); for k = 4 to n do Sei w1 = v1 , w2 , . . . , wt−1 , wt = v2 Außenfacette von Gk−1 ; wp , . . . , wq seien die Nachbarn von vk ; for v ∈ ∪q−1 j=p+1 L(wj ) do x(v ) ← x(v ) + 1 ; for v ∈ ∪tj=q L(wj ) do x(v ) ← x(v ) + 2 ; P(vi ) ← Schnittpunkt der Geraden mit Steigung ±1 von P(wp ) und P(wq ) ; L(vi ) = ∪q−1 j=p+1 L(wj ) ∪ {vi } ; Laufzeit: O (n2 ) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 14 12 11 8 7 6 5 3 4 1 Philipp Kindermann, Alexander Wolff 2 · Lehrstuhl für Informatik I · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 1 14 15 12 11 8 7 9 10 6 5 3 14 8 4 1 2 7 3 Philipp Kindermann, Alexander Wolff 13 · Lehrstuhl für Informatik I 6 12 4 11 2 5 · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 1 14 15 12 11 8 7 9 10 6 5 3 14 8 4 1 2 7 3 Philipp Kindermann, Alexander Wolff 13 · Lehrstuhl für Informatik I 6 12 4 11 2 5 · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 1 14 15 12 11 8 7 9 10 6 5 3 13 14 8 4 1 2 7 3 6 12 4 11 2 5 x(vk ) = 12 (x(wq ) + x(wp ) + y (wq ) − y (wp )) (1) y (vk ) = 21 (x(wq ) − x(wp ) + y (wq ) + y (wp )) (2) x(vk ) − x(wp ) = 21 (x(wq ) − x(wp ) + y (wq ) − y (wp )) (3) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 1 14 15 12 11 8 7 9 10 6 5 3 13 14 8 4 1 2 7 3 6 12 4 11 2 5 x(vk ) = 12 (x(wq ) + x(wp ) + y (wq ) − y (wp )) (1) y (vk ) = 21 (x(wq ) − x(wp ) + y (wq ) + y (wp )) (2) x(vk ) − x(wp ) = 21 (x(wq ) − x(wp ) + y (wq ) − y (wp )) (3) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 16 Eine Linearzeitimplementierung 15 13 10 9 1 14 15 12 11 8 7 9 10 6 5 3 13 14 8 4 1 7 2 3 verwende Abstand zum Vorgänger 6 12 4 11 2 5 x(vk ) = 12 (x(wq ) + x(wp ) + y (wq ) − y (wp )) (1) y (vk ) = 21 (x(wq ) − x(wp ) + y (wq ) + y (wp )) (2) x(vk ) − x(wp ) = 21 (x(wq ) − x(wp ) + y (wq ) − y (wp )) (3) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. vk w3 wp wp+1 wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). Berechne y (vk ) mit (2) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). Berechne y (vk ) mit (2) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). Berechne y (vk ) mit (2) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). Berechne y (vk ) mit (2) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). Berechne y (vk ) mit (2) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg 17 Eine Linearzeitimplementierung Aus den y -Koordinaten von wp und wq und der Differenz x(wq )− x(wp ) können wir den x-Abstand zwischen vk und wp berechnen. In unserem Binärbaum verwalten wir den x-Abstand zwischen jedem Knoten und seinem Vater. ∆x (wp , wq ) = ∆x (wp+1 ) + · · · + ∆x (wq ) Berechne ∆x (vk ) mit (3). ∆x (wq ) = ∆x (wp , wq ) − ∆x (vk ) Berechne y (vk ) mit (2) ∆x (wp+1 ) = ∆x (wp+1 ) − ∆x (vk ) w3 wp wp+1 vk wq−1 wq w2 Wurzel v1 = w1 Philipp Kindermann, Alexander Wolff v2 = wt · Lehrstuhl für Informatik I · Universität Würzburg