planaritätsalgorithmus nach demoucron, malgrange und pertuiset
DESCRIPTION
Seminar Fortgeschrittene Konzepte der Programmierung SS 2008, Universität Bayreuth Vortrag am 23.06.2008 Martin KlinkeTRANSCRIPT
Planaritätsalgorithmus nach Demoucron, Malgrange und Pertuiset
Seminar Fortgeschrittene Konzepte der ProgrammierungSS 2008, Universität Bayreuth
Vortrag am 23.06.2008Martin Klinke
Inhalt
1.Was bedeutet Planarität anschaulich?
2.Motivation: Warum mit Planarität beschäftigen?
3.Kriterien für Planarität
4.Algorithmus zur Erkennung und Einbettung von planaren Graphen
21 2 3 4
Was bedeutet Planarität anschaulich?
1 2 3 4
Ein planarer Graph...
... lässt sich in der Ebene zeichnen, ohne dass sich Kanten überschneiden.
41 2 3 4
[2]
Nicht-planare Graphen...
... lassen sich dagegen nicht ohne Überschneidungen in der Ebene zeichnen.
51 2 3 4
[2]
Motivation: Warum mit Planarität beschäftigen?
1 2 3 4
Anwendungen von Planarität
71 2 3 4
[3]
[4]
Anwendungen von Planarität
•Entwurf elektrischer Schaltkreise
71 2 3 4
[3]
[4]
Anwendungen von Planarität
•Entwurf elektrischer Schaltkreise
71 2 3 4
[3]
[4]
Anwendungen von Planarität
•Entwurf elektrischer Schaltkreise
•Übersichtliche Darstellung von Abläufen, z.B. Programmen, Projektaufgaben
71 2 3 4
[3]
[4]
Anwendungen von Planarität
•Entwurf elektrischer Schaltkreise
•Übersichtliche Darstellung von Abläufen, z.B. Programmen, Projektaufgaben
71 2 3 4
[3]
[4]
Anwendungen von Planarität
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Anwendungen von Planarität
•Menschen zu beschäftigen: Verbinde jedes Haus mit Gas, Wasser und Strom, ohne dass sich die Leitungen kreuzen...
81 2 3 4
Häuser
Gas Wasser Strom
Kriterien für Planarität
1 2 3 4
Definition: Graph
•Ein Graph G wird durch zwei Mengen beschrieben [5]:
•Knotenmenge V = {v1, v2, ..., vn}
•Kantenmenge E ⊆ V2
•Hier nur Betrachtung von
•schlichten ungerichteten und
•zweifach zusammenhängenden Graphen
101 2 3 4
Definition: Inzidenz, Adjazenz
•Ein Knoten v und eine Kante e = (u, v) sind zueinander inzident.
•Zwei Kanten e = (u, v) und f = (v, w) sind zueinander adjazent.
•Zwei Knoten u, v sind zueinander adjazent, wenn die Kante (u,v) existiert.
111 2 3 4
Definition: Einbettung
•Nach [1]: Ein Graph G ist einbettbar in einen Raum L, wenn eine Abbildung der Knoten und Kanten von G auf Punkte und Jordan-Kurven von L existiert, so dass gilt:• verschiedene Knoten werden auf verschiedene Punkte
abgebildet;•wenn ein Knoten inzident zu einer Kante ist, dann ist das
Abbild des Knotens ein Endpunkt des Abbildes der Kante;
•nicht-adjazente Kanten von G werden auf Kurven abgebildet, die sich nicht schneiden;
•adjazente Kanten werden auf Kurven abgebildet, die sich nur in einem Punkt schneiden; dieser Punkt entspricht dem Knoten, der Teil beider Kanten ist.
121 2 3 4
Stereographische Projektion
•Ein Graph ist genau dann planar, wenn er in eine Kugeloberfläche eingebettet werden kann.
131 2 3 4
[1]
Stereographische Projektion
•Ein Graph ist genau dann planar, wenn er in eine Kugeloberfläche eingebettet werden kann.
131 2 3 4
N
v
v‘
[1]
Euler-Formel - 1
•Nach Eulers Theorem (1758) [1] gilt für jeden zusammenhängenden planaren Graphen die Formeln - m + f = 2.
•n: Anzahl Knoten
•m: Anzahl Kanten
•f: Anzahl Flächen
141 2 3 4
Euler-Formel - 2
•Für jeden zusammenhängenden planaren (n,m)-Graphen G mit n ≥ 3 gilt die Ungleichungm ≤ 3n - 6.
151 2 3 4
K5
161 2 3 4
K5
K5
•K5 ist nicht planar
161 2 3 4
K5
K5
•K5 ist nicht planar
•n=5, m=10m ≤ 3n - 610 ≤ 9 ✘
161 2 3 4
K5
K3,3
171 2 3 4
K3,3
K3,3
•K3,3 ist nicht planar
171 2 3 4
K3,3
K3,3
•K3,3 ist nicht planar•n=6, m=9
m ≤ 3n - 6 bzw. 9 ≤ 12 ✔⇒ f = 5
171 2 3 4
K3,3
K3,3
•K3,3 ist nicht planar•n=6, m=9
m ≤ 3n - 6 bzw. 9 ≤ 12 ✔⇒ f = 5
•Bipartit ⇒ jede
Fläche muss von mind. 4 Kanten berandet sein ⇒ 2m ≥ 4f
bzw. 18 ≥ 20 ✘
171 2 3 4
K3,3
Algorithmus zur Erkennung und Einbettung von planaren Graphen
1 2 3 4
BegrifflichkeitenEin Graph G und seine Fragmente S1 bis S6 bzgl. eines Subgraphen G‘
191 2 3 4
[1]
BegrifflichkeitenEin Graph G und seine Fragmente S1 bis S6 bzgl. eines Subgraphen G‘
321 54
9 10 11
678
G
191 2 3 4
[1]
BegrifflichkeitenEin Graph G und seine Fragmente S1 bis S6 bzgl. eines Subgraphen G‘
321 54
678
F2
F1
G‘321 54
9 10 11
678
G
191 2 3 4
[1]
BegrifflichkeitenEin Graph G und seine Fragmente S1 bis S6 bzgl. eines Subgraphen G‘
321 54
678
F2
F1
G‘321 54
9 10 11
678
G
321 4
9 10
S1
11
3S2
5 6
2
S3
8
1
S4
7
2
S5
6
4
S6
6
191 2 3 4
[1]
Definition: Fragment
•Nach [1]: Als Fragment S bzgl. G‘ bezeichnet man einen Subgraphen von G, bei dem es sich um einen der beiden folgenden Typen handelt:
•Eine Kante e = (u, v) ∈ E(G), so dass e ∉ E(G‘) und u, v ∈ V(G‘).
•Eine Zusammenhangskomponente von G - G‘ die durch alle Kanten (und ihre Enden) von G, die die Komponente mit G verbinden, erweitert wird.
201 2 3 4
Definition: Kontaktknoten
•Nach [1]: Ein Knoten v eines Fragments S bzgl. G‘ wird als Kontaktknoten bezeichnet, wenn v ∈ V(G‘).
321 54
678
G‘
211 2 3 4
321 4
9 10
S
Definition: Kontaktknoten
•Nach [1]: Ein Knoten v eines Fragments S bzgl. G‘ wird als Kontaktknoten bezeichnet, wenn v ∈ V(G‘).
321 54
678
G‘
211 2 3 4
321 4
9 10
S
Definition: α-Pfad
•Nach [1]: Einfacher Pfad L des Fragments S,
•der zwei verschiedene Kontaktknoten verbindet und
•keine weiteren Kontaktknoten enthält.
221 2 3 4
321 4
9 10
S
Definition: Zulässige Fläche
•Nach [1]: Eine zulässige Fläche für ein Fragment S bzgl. G‘ ist eine Fläche von G‘, die alle Kontaktknoten von S enthält.
•F(S): Menge aller zulässigen Flächen für S
231 2 3 4
321 54
678
F2
F1
G‘
11
321 4
9 10
S
F3
F4
Definition: Zulässige Fläche
•Nach [1]: Eine zulässige Fläche für ein Fragment S bzgl. G‘ ist eine Fläche von G‘, die alle Kontaktknoten von S enthält.
•F(S): Menge aller zulässigen Flächen für S
231 2 3 4
321 54
678
F2
F1
G‘
11
321 4
9 10
S
F3
F4
Konkurrierende Fragmente
•Nach [1]: Zwei Fragmente S1 und S2 werden als konkurrierend bezeichnet, wenn
•θ = F(S1) ∩ F(S2) ≠ ∅ und
•zwei α-Pfade L1 ∈ S1, L2 ∈ S2 existieren, die nicht gleichzeitig in jede Fläche aus θ eingebettet werden können.
241 2 3 4
Der Algorithmus...
•basiert auf den Ideen von Demoucron, Malgrange und Pertuiset von 1964
•kann nicht nur auf Planarität testen, sondern liefert eine planare Einbettung, falls möglich
•arbeitet inkrementell
251 2 3 4
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
2.Suche Flächen von G‘ und Fragmente bzgl. G‘. Wenn keine Fragmente vorhanden, dann G‘ ≅ G, d.h. G eingebettet ⇒ Ende
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
2.Suche Flächen von G‘ und Fragmente bzgl. G‘. Wenn keine Fragmente vorhanden, dann G‘ ≅ G, d.h. G eingebettet ⇒ Ende
3.Existiert ein Fragment S ohne zulässige Fläche, dann ist G nicht-planar ⇒ Ende
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
2.Suche Flächen von G‘ und Fragmente bzgl. G‘. Wenn keine Fragmente vorhanden, dann G‘ ≅ G, d.h. G eingebettet ⇒ Ende
3.Existiert ein Fragment S ohne zulässige Fläche, dann ist G nicht-planar ⇒ Ende
4.Existiert ein Fragment S mit einer einzigen zulässigen Fläche F, dann zu Schritt 6, ansonsten zu Schritt 5
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
2.Suche Flächen von G‘ und Fragmente bzgl. G‘. Wenn keine Fragmente vorhanden, dann G‘ ≅ G, d.h. G eingebettet ⇒ Ende
3.Existiert ein Fragment S ohne zulässige Fläche, dann ist G nicht-planar ⇒ Ende
4.Existiert ein Fragment S mit einer einzigen zulässigen Fläche F, dann zu Schritt 6, ansonsten zu Schritt 5
5.Wähle ein beliebiges Fragment S und davon eine beliebige zulässige Fläche F
Algorithmus nach Demoucron [1]
261 2 3 4
1.Wähle einfachen Kreis C aus G und bette ihn in die Ebene ein, setze G‘ = C
2.Suche Flächen von G‘ und Fragmente bzgl. G‘. Wenn keine Fragmente vorhanden, dann G‘ ≅ G, d.h. G eingebettet ⇒ Ende
3.Existiert ein Fragment S ohne zulässige Fläche, dann ist G nicht-planar ⇒ Ende
4.Existiert ein Fragment S mit einer einzigen zulässigen Fläche F, dann zu Schritt 6, ansonsten zu Schritt 5
5.Wähle ein beliebiges Fragment S und davon eine beliebige zulässige Fläche F
6.Bette einen beliebigen α-Pfad L von S in F ein und ersetze G‘ durch G‘ ∪ L; gehe zu Schritt 2
Algorithmus nach Demoucron [1]
261 2 3 4
Beispiel
271 2 3 4
4
65
1 2
3
•Durchlauf des Algorithmus anhand des dargestellten Ausgangsgraphen G
•Das Format für die Darstellung der Zwischenschritte stammt aus [6].
G
281 2 3 4
G‘ Flächen Fragmentezulässige Flächen
F1={∞, 456}F2={456}
F(S1)={F1, F2}F(S2)={F1, F2}
F1={∞, 456}F2={1456}F3={164}
F(S1)={F1, F2}
4
65 4
61
5
32
6
4
651
5
32
6
291 2 3 4
G‘ Flächen Fragmentezulässige Flächen
F1={∞, 2654}F2={265}F3={1465}F4={164}
F(S1)={F1, F2}
5
32
4
651
2
4
651
23
Aufwand
•Der Algorithmus nach Demoucron kann bestenfalls mit quadratischer Zeitkomplexität (O(n2)) implementiert werden. [5]
•Es existieren andere Algorithmen, die das Problem mit linearem Aufwand lösen.
301 2 3 4
Quellen
1.Lectures on Graph Theory, O. Melnikov, BI Wissenschaftsverlag 1994
2.http://cgm.cs.mcgill.ca/~athens/cs507/Projects/2004/Andrew-King/507planar.html, letzter Abruf: 08.06.2008
3.http://flickr.com/photos/hinkelstone/2435823037/, letzter Abruf: 08.06.2008
4.http://blog.keelit.com/2007/04/12/, letzter Abruf: 08.06.2008
5.http://www.user.fh-stralsund.de/~pscheff/KonflikteVermeiden.pdf, letzter Abruf: 22.06.2008
6.http://www.mathe2.uni-bayreuth.de/EWS/demoucron.pdf, letzter Abruf: 22.06.2008
311 2 3 4
Vielen Dank für die Aufmerksamkeit!
Seminar Fortgeschrittene Konzepte der ProgrammierungSS 2008, Universität Bayreuth
Vortrag am 23.06.2008Martin Klinke
1 2 3 4
Fragen?
1 2 3 4