Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 Besprechung: 15.01.2007 Gruppe 2 - Übungsblatt.

Ähnliche Präsentationen


Präsentation zum Thema: "Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 Besprechung: 15.01.2007 Gruppe 2 - Übungsblatt."—  Präsentation transkript:

1 Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: Besprechung: Gruppe 2 - Übungsblatt 5 -

2 Martin Böhmer/Dennis Treder/Marina Schwacke Aufgabe 3: Knotenpositionierung Erläutern Sie den Mixed-Model Algorithmus, der in der Publikation C. Gutwenger und P. Mutzel: Planar Polyline Drawings with Good Angular Resolution, In S. Whitesides (Eds.), Proceedings Graph Drawing, Montreal, Canada., Lecture Notes in Computer Science, vol. 1547, Springer, 1998, , beschrieben ist. Welche Eigenschaften besitzen die entstehenden Zeichnungen?

3 Martin Böhmer/Dennis Treder/Marina Schwacke Gliederung Einleitung Mathematische Grundlagen Algorithmus Analyse Kommentar

4 Martin Böhmer/Dennis Treder/Marina Schwacke Einleitung: Mixed Model Algorithmus Linearzeit-Algorithmus erstellt Polyline-Gitterzeichnung von jedem planaren Graphen Phasen Vorbereitungsphase Erweiterung auf 2-zusammenhängenden, ebenen Graphen kanonische Ordnung der Knoten bounding boxes um Knoten Platzierung der Knoten

5 Martin Böhmer/Dennis Treder/Marina Schwacke Einleitung: Idee des Algo basiert auf Ideen von Kant für 3-zusammenhängene Graphen: ebenfalls Linearzeit-Algorithmus minimaler Winkel mind. 2 / d d = maximaler Knotengrad des Graphen maximal 3 Knicke pro Kante Kantenlänge O(n) n = Anzahl Konten des Graphen MixedModell mit Polylines aus straightline Framework und kanoischer Ordnung für 3- zusammenhängende Graphen entstanden

6 Martin Böhmer/Dennis Treder/Marina Schwacke Einleitung: Andere Ansätze für d > 4 Knoten als Boxen Nachteile sehr große Knoten teilweise ist Größe vom Grad unabhängig

7 Martin Böhmer/Dennis Treder/Marina Schwacke Einleitung: Andere Ansätze für d > 4 Grob- und Feingitter Nachteile Linien sehr (zu) nah beisammen kein polynomieller Algorithmus bekannt

8 Martin Böhmer/Dennis Treder/Marina Schwacke Einleitung: Andere Ansätze für d > 4 Kurze, diagonale Linien Nachteil Winkel zu klein

9 Martin Böhmer/Dennis Treder/Marina Schwacke Mathematische Grundlagen Graph G heißt einfach, wenn G weder mehrfache Kanten noch Kreise enthält. G ist flach, wenn G mit planarer Zeichnung verbunden ist. Die Einbettung eines planaren Graphen G, ist die Sammlung von kreisförmigen Ordnungen der inzidenten Kanten oder Knoten um jeden Knoten in einer planaren Zeichnung von G. Ein flacher Graph teilt die Fläche in Regionen, genannt Faces unbegrenztes Face = äußeres Face, sonst inneres Face

10 Martin Böhmer/Dennis Treder/Marina Schwacke Mathematische Grundlagen Für einen Knoten v aus G benutzen wir die Kreisordnung gegen den Uhrzeigersinn Die Grenze im Uhrzeigersinn eines Faces f ist ein Kreisdurchlauf v 0 e 1 v 1...e k v k entlang der Kanten von f, so dass v i+1 der Nachfolger von v i1 in der Ordnung gegen den Uhrzeigersinn von v i ist. Ein zusammenhängender Graph G wird k- zusammenhängend genannt, wenn er, nach Löschen von k-1 beliebigen Knoten, immer noch zusammenhängend ist Für k=2 und k=3: bi- / tri-zusammenhängend

11 Martin Böhmer/Dennis Treder/Marina Schwacke Der Algorithmus Eingabe: G = (V, E), wobei G flach und einfach Drei Phasen 1. Berechne geordnete Partition π = disjunkte Teilmengen von V 2. Bestimme Bounding Boxes der Knoten = Berechnung von Inpoints und Outpoints 3. Platzierung = Koordinaten der Knoten berechnen

12 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 1: Die geordnete Partition π π = (V 1, …, V N ) mit und G k = V 1 … V k sei planarer Subgraph rank(v) = Index i für das V i das v enthält Eigenschaften von π (P1)Für jedes V k = {z 1, …, z p ) existieren zwei Knoten left(V k ) und right(V k ) mit: E 1 (V k ) = {(z i, z i+1 )|1 i < p} für k 1 E 2 (V k ) = {(left(V k ), z 1 ), (z p, right(V k ))} für k 2 left(V k )right(V k )z1z1 zpzp …

13 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 1: Die geordnete Partition π Eigenschaften von π (P1 Forts.) kann in G eingefügt werden ohne Kreuzungen zu erzeugen. mit (P2) V 1 = {v 1,..., v s } ist ein Pfad auf der Grenze im Uhrzeigersinn des externen Faces von. Die Knoten in V k (k 2) liegen auf dem externen Face von.

14 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 1: Die geordnete Partition π Eigenschaften von π (P3) C 1 ist Sequenz von v 1,..., v s. Für k 2 sei C k1 = c 1,..., c q bereits definiert. Sei c l = left(V k ) und c r = right(V k ). Dann ist C k die Sequenz c 1,..., c l, V k, c r,..., c q. (P4) Sei V k = {z 1,..., z q }. a) b) Sei k 2, C k1 = c 1,..., c q, left(V k ) = c l, right(V k ) = c r. Dann liegen alle Nachbarn von V k in in {c l,..., c r }. Wenn p 2, dann hat V k genau zwei Nachbarn in.

15 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 1: Die kanonische Ordnung π ist eine kanonische Ordnung, wenn gilt: (1) V 1 = {v 1,..., v s }, wobei v 1,...v s ein Pfad auf der Grenze im Uhrzeigersinn des externen Faces von G mit s 2 und E({v 1,..., v s }) = {(v i, v i+1 ) | 1 i < s}. (2) Jeder Subgraph G k ist zusammenhängend und intern 2- zusammenhängend (3) Bezeichne C k den Pfad auf der Grenze gegen den Uhrzeigersinn des externen Faces von G k ausgehend von Knoten v 1 zu Knoten v s. Für jedes 2 k N trifft zu eine der Bedingungen zu, wobei C k = [v 1 = c 1,..., c q = v s ]: a) V k = {z} und z ist ein Knoten aus C k mit mindestens drei Nachbarn in G k1 b) V k = {z 1,..., z p } C k, p 1, und es existieren Knoten c l, c r, l < r, aus C k, so dass c l, z 1,..., z i, u 1,..., u j, z i+1,..., z p, c r ein Pfad auf der Grenze im Uhrzeigersinn des Faces aus G für 0 i p, j 0. u 1,..., u j sind Knoten aus G \ G k und

16 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 1: Die kanonische Ordnung G ist u.U. nicht 2-zusammenhängend (für Ordnung erforderlich) Erweiterung auf 2-zusammenhängenden Graphen G = (V, E) Berechnung der Ordnung Berechnung von left(V k ) und right(V k ) Seien C k1 = c 1,..., c q und e 1,..., e a die Kanten in G' mit e μ = (v μ, c iμ ) und v μ aus V k, so dass i 1 <... < i a. a 2, V k erfüllt die Definition (3b) left(V k ) := c l und right(V k ) := c r, wobei c l und c r die Knoten sind, die nach (3b) existieren a 3left(V k ) := c l und right(V k ) := c r, mit l und r wie folgt: Sei N = {c iμ |e μ aus E}. N = {}:l := i 1 und r := i a. N = {c t }: |N| 2:l := min{μ | c μ aus N} und r := max{μ | c μ aus N}.

17 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 2: Inpoints und Outpoints In- und Outpoints beschreiben Bounding Box eingehende Kante:{(v,w) | rank(w) rank(v)} ausgehende Kante:{(v,w) | rank(w) > rank(v)} in(v)= Anzahl der eingehenden Kanten von v, out(v)= Anzahl der ausgehenden Kanten von v Koordinaten der In- und Outpoints sind relativ zur Position von v (v,w) mit rang(v) = rang(w), zwei Inpoints und keinen Outpoint setzen horizontale Kante

18 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 2: Outpoints Sei V k = {z 1,..., z p }, v = z i, z 0 := left(V k ) und z p+1 := right(V k ) out l (v), out r (v), δ l, δ r berechnen sich wie folgt: Wenn out(v) 1, werden folgende Punkte platziert: out l (v) Outpoints mit den Koordinaten ( out l (v), δ l ),..., (1, out l (v) + δ l 1)(Geraden mit Steigung 1) Einen Outpoint auf Punkt (0, max{out l (v) + δ l 1, out r (v) + δ r 1}) out r (v) Outpoints mit den Koordinaten (1, out r (v) + δ r 1),..., (out r (v), δ r ),(Geraden mit Steigung -1)

19 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 2: Inpoints Wenn in(v) 3, alle Inpoints auf (0,0) setzen Andersfalls, Einen Inpoint auf Punkt (in l (v), 0). in l (v) Inpoints mit den Koordinaten (in l (v), 1),..., (1, in l (v)), welche auf einer Geraden mit Steigung -1 liegen Einen Inpoint auf den Punkt (0, in r (v)) in r (v) Inpoints mit den Koordinaten (1, in r (v)),..., (in r (v), 1), welche auf einer Geraden mit der Steigung +1 liegen Einen Inpoint auf Punkt (in r (v), 0)

20 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 2: Beispiele

21 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 2: Beispiele

22 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung Verwenden von absoluten y-Koordinaten und relativen x-Koordinaten Berechnen der x-Koordinaten: Sei C = c 1,..., c q die gegenwärtige Kontur (1)

23 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung Verschieben von Knoten: c i aus C nach rechts verschieben -> c i,...,c q und einige Knoten die nicht aus C sind M(c i ) die Menge von Knoten die verschoben werden müssen, wenn c i verschoben wird. -> Baum mit Wurzel c i, Knoten sind relativ zur Wurzel Alle Mengen M(c i ) mit 1iq, sind ein Wald F von allen Knoten, wobei die Wurzeln die Knoten aus C sind. father(v) ist der Vorgänger von v in F, mit rang(father(v))>rang(v) Absolute x-Koordinaten mit (1) berechnen, durch: entlanglaufen der Knoten in C und dann aller anderen Knoten nach absteigendem Rang

24 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung Algorithmus Mixed-Model-Placement Input: Ein planarer Graph G=(V,E), eine geordnete Partition = V 1,...,V N von G (die P1 bis P4 erfüllt) und in- und outpoints. Output: Absolute y- und relative x-Koordinaten gemäß der Gleichung (1) für jeden Knoten in G. Initalisierung: Wir setzen die Menge V 1 = {v 1,...,v s }. Wir setzen

25 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung for k:=2 to N do Sei C=c 1,...,c q V k ={z 1,...,z p }, c l =left(V k ) und c r =right(V k ). y-Koordinaten setzen: vorläufige x-Koordinaten berechnen von c l+1,...,c r relativ zu c l. if in(z 1 ) 3 then einen einzelnen Knoten platzieren else p1 Knoten mit maximal zwei Nachbarn von C platzieren fi C := c 1,...,c l,z 1,...,z q,c r,...,c q od

26 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung if in(z 1 ) 3 then(einen einzelnen Knoten platzieren ) Wir wollen z 1 direkt über u t plazieren setzen u t = outpoint(c t,z 1 ) und dx t = u t.dx Überprüfen ob z 1 direkt über u t plaziert ist: δ = x(z 1 ) (x(c t ) + dx t ). if δ > 0 then z 1 liegt rechts von u t -> δ Einheiten nach rechts verschieben. Knoten c l+1,...,c r1 verschwinden aus C, ihre x-Koordinaten relativ zu z1 setzen und den Baum F updaten:

27 Martin Böhmer/Dennis Treder/Marina Schwacke Phase 3: Platzierung else (p1 Knoten mit maximal zwei Nachbarn von C platzieren) Knoten c l+1,...,c r1 verschwinden aus C, ihre x-Koordinaten relativ zu z1 setzen und den Baum F updaten:

28 Martin Böhmer/Dennis Treder/Marina Schwacke Analyse Soweit uns bekannt erreicht dieser Algorithmus die besten Grenzen für Gittergröße, Winkelauflösung und die Anzahl von Knicken für planare, dichte Graphen. Der Algorithmus zeichnet einen d-planaren Graphen G so in ein Gitter: dass jede Kante höchstens drei Knicke hat, dass der minimale Winkel zwischen zwei Kanten mindestens 2/d (Bogenmaß) beträgt, die Gittergröße (2n-5) x (3/2n-7/2) ist er höchstens 5n-15 Knicke besitzt und jede Kante Länge O(n) hat (n = Anzahl Knoten von G) Der Algorithmus benötigt lineare Laufzeit.

29 Martin Böhmer/Dennis Treder/Marina Schwacke Kommentar Graphen sind im Allgemeinen nicht planar! Graphen in planare Graphen umgewandeln. Kreuzungen ersetzen. Mögliche Planarisierungsmethode: Maximum planare Subgraph Problem lösen und die gelöschten Kanten wieder einzufügen. Beim Mixed-Model Algorithmus können die Zeichnungen dann seltsam aussehen und es ist schwierig die Kreuzungen zu erkennen. -> Algorithmus modizieren: Künstlich erzeugten Knoten anders behandeln Erstrebenswert Mixed-Modell-Zeichnungen bei der Kanten nicht ihre Kreuzungsknoten knicken dürfen.


Herunterladen ppt "Martin Böhmer/Dennis Treder/Marina Schwacke Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 Besprechung: 15.01.2007 Gruppe 2 - Übungsblatt."

Ähnliche Präsentationen


Google-Anzeigen