1 / 29

Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 — Besprechung: 15.01.2007

- Übungsblatt 5 -. Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 — Besprechung: 15.01.2007 Gruppe 2. Aufgabe 3: Knotenpositionierung. Erläutern Sie den Mixed-Model Algorithmus, der in der Publikation C. Gutwenger und P. Mutzel:

rio
Download Presentation

Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 — Besprechung: 15.01.2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. - Übungsblatt 5 - Übungen zu Automatisches Zeichnen von Graphen Ausgabe: 11.12.2007 — Besprechung: 15.01.2007 Gruppe 2

  2. 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, 167-182, beschrieben ist. Welche Eigenschaften besitzen die entstehenden Zeichnungen?

  3. Gliederung • Einleitung • Mathematische Grundlagen • Algorithmus • Analyse • Kommentar

  4. Einleitung: Mixed Model Algorithmus • Linearzeit-Algorithmus • erstellt Polyline-Gitterzeichnung von jedem planaren Graphen • Phasen • VorbereitungsphaseErweiterung auf 2-zusammenhängenden,ebenen Graphen • kanonische Ordnung der Knoten • bounding boxes um Knoten • Platzierung der Knoten

  5. Einleitung: Idee des Algo • basiert auf Ideen von Kant für • 3-zusammenhängene Graphen: • ebenfalls Linearzeit-Algorithmus • minimaler Winkel mind. 2 / dd = 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. Einleitung: Andere Ansätze für d > 4 • Knoten als Boxen • Nachteile • sehr große Knoten • teilweise ist Größevom Gradunabhängig

  7. Einleitung: Andere Ansätze für d > 4 • Grob- und Feingitter • Nachteile • Linien sehr (zu)nah beisammen • kein polynomiellerAlgorithmus bekannt

  8. Einleitung: Andere Ansätze für d > 4 • Kurze, diagonale • Linien • Nachteil • Winkel zu klein

  9. 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 Facesunbegrenztes Face = äußeres Face,sonst inneres Face

  10. 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 v0e1v1...ekvk entlang der Kanten von f, so dass vi+1 der Nachfolger von vi−1 in der Ordnung gegen den Uhrzeigersinn von vi 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 istFür k=2 und k=3: bi- / tri-zusammenhängend

  11. 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. Phase 1: Die geordnete Partition π • π = (V1, …, VN)mit und • Gk = V1 … Vk sei planarer Subgraph • rank(v) = Index i für das Vi das v enthält • Eigenschaften von π • (P1) Für jedes Vk = {z1, …, zp) existieren zwei Knoten left(Vk) und right(Vk) mit:E1(Vk) = {(zi, zi+1)|1 ≤ i < p} für k ≥1E2(Vk) = {(left(Vk), z1), (zp, right(Vk))} für k ≥ 2 left(Vk)‏ z1 zp right(Vk)‏ …

  13. Phase 1: Die geordnete Partition π Eigenschaften von π (P1 Forts.) kann in G eingefügt werden ohne Kreuzungen zu erzeugen. mit (P2) V1 = {v1, ..., vs} ist ein Pfad auf der Grenze im Uhrzeigersinn des externen Faces von .Die Knoten in Vk (k ≥ 2) liegen auf dem externen Face von .

  14. Phase 1: Die geordnete Partition π Eigenschaften von π (P3) C1 ist Sequenz von v1, ..., vs.Für k ≥ 2 sei Ck−1 = c1, ..., cq bereits definiert.Sei cl = left(Vk) und cr = right(Vk).Dann ist Ck die Sequenz c1, ..., cl, Vk, cr, ..., cq. (P4) Sei Vk = {z1, ..., zq}.a)b) Sei k ≥ 2, Ck−1 = c1, ..., cq, left(Vk) = cl, right(Vk) = cr. Dann liegen alle Nachbarn von Vk in in {cl, ..., cr}. Wenn p ≥ 2, dann hat Vk genau zwei Nachbarn in .

  15. Phase 1: Die kanonische Ordnung • π ist eine kanonische Ordnung, wenn gilt: • (1) V1 = {v1, ..., vs}, wobei v1, ...vs ein Pfad auf der Grenze im Uhrzeigersinn des externen Faces von G mit s ≥ 2 undE({v1, ..., vs}) = {(vi, vi+1) | 1 ≤ i < s}. • (2) Jeder Subgraph Gk ist zusammenhängend und intern 2-zusammenhängend • (3) Bezeichne C‘k den Pfad auf der Grenze gegen den Uhrzeigersinn des externen Faces von Gk ausgehend von Knoten v1 zu Knoten vs. Für jedes 2 ≤ k ≤ N trifft zu eine der Bedingungen zu, wobei C‘k = [v1 = c1, ..., cq = vs]: • a) Vk = {z} und z ist ein Knoten aus C‘k mit mindestens drei Nachbarn in Gk−1 • b) Vk = {z1, ..., zp} C‘k, p ≥ 1, und es existieren Knoten cl, cr, l < r, aus C‘k, so dass cl, z1, ..., zi, u1, ..., uj , zi+1, ..., zp, cr ein Pfad auf der Grenze im Uhrzeigersinn des Faces aus G für 0 ≤ i ≤ p, j ≥ 0. u1, ..., uj sind Knoten aus G \ Gk und

  16. 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(Vk) und right(Vk)Seien Ck−1 = c1, ..., cq und e1, ..., ea die Kanten in G' miteμ = (vμ, ciμ) und vμ aus Vk, so dass i1 < ... < ia. • a ≤ 2, Vk erfüllt die Definition (3b)left(Vk) := cl und right(Vk) := cr,wobei cl und cr die Knoten sind, die nach (3b) existieren • a ≥ 3 left(Vk) := cl und right(Vk) := cr, mit l und r wie folgt:Sei N = {ciμ|eμ aus E}. • N = {}: l := i1 und r := ia. • N = {ct}: • |N| ≥ 2: l := min{μ | cμ aus N} und r := max{μ | cμ aus N}.

  17. 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 sindrelativ zur Position von v • (v,w) mit rang(v) = rang(w), zwei Inpoints und keinenOutpoint setzen horizontale Kante

  18. Phase 2: Outpoints Sei Vk = {z1, ..., zp}, v = zi, z0 := left(Vk) und zp+1 := right(Vk)‏ outl(v), outr(v), δl, δr berechnen sich wie folgt: Wenn out(v) ≥ 1, werden folgende Punkte platziert: • outl(v) Outpoints mit den Koordinaten(− outl(v), δl), ..., (−1, outl(v) + δl − 1) (Geraden mit Steigung 1)‏ • Einen Outpoint auf Punkt (0, max{outl(v) + δl − 1, outr(v) + δr − 1})‏ • outr(v) Outpoints mit den Koordinaten(1, outr(v) + δr − 1), ..., (outr(v), δr), (Geraden mit Steigung -1)‏

  19. Phase 2: Inpoints Wenn in(v) ≤ 3,alle Inpoints auf (0,0) setzen Andersfalls, • Einen Inpoint auf Punkt (−inl(v), 0). • inl(v) Inpoints mit den Koordinaten(−inl(v), −1), ..., (−1, −inl(v)),welche auf einer Geraden mit Steigung -1 liegen • Einen Inpoint auf den Punkt (0, −inr(v))‏ • inr(v) Inpoints mit den Koordinaten(1, −inr(v)), ..., (inr(v), −1),welche auf einer Geraden mit der Steigung +1 liegen • Einen Inpoint auf Punkt (inr(v), 0)‏

  20. Phase 2: Beispiele

  21. Phase 2: Beispiele

  22. Phase 3: Platzierung • Verwenden von absoluten y-Koordinaten und relativen x-Koordinaten • Berechnen der x-Koordinaten:Sei C = c1, ..., cq die gegenwärtige Kontur (1)‏

  23. Phase 3: Platzierung • Verschieben von Knoten: • ci aus C nach rechts verschieben-> ci,...,cq und einige Knoten die nicht aus C sind • M(ci) die Menge von Knoten die verschoben werden müssen, wenn ci verschoben wird. -> Baum mit Wurzel ci, Knoten sind relativ zur Wurzel • Alle Mengen M(ci) mit 1≤i≤q, 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. Phase 3: Platzierung Algorithmus Mixed-Model-Placement Input:Ein planarer Graph G=(V,E), eine geordnete Partition∏ = V1,...,VN 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 V1 = {v1,...,vs}. Wir setzen

  25. Phase 3: Platzierung • for k:=2 to N do • Sei C=c1,...,cq Vk={z1,...,zp}, cl=left(Vk) und cr=right(Vk). • y-Koordinaten setzen: • vorläufige x-Koordinaten berechnen von cl+1,...,cr relativ zu cl. • if in(z1) ≥ 3 theneinen einzelnen Knoten platzierenelsep≥1 Knoten mit maximal zwei Nachbarn von C platzierenfi • C := c1,...,cl,z1,...,zq,cr,...,cq • od

  26. Phase 3: Platzierung if in(z1) ≥ 3 then (einen einzelnen Knoten platzieren )‏ Wir wollen z1 direkt über ut plazierensetzen ut = outpoint(ct,z1) und dxt = ut.dx Überprüfen ob z1 direkt über ut plaziert ist:δ = x(z1) − (x(ct) + dxt).if δ > 0 then z1 liegt rechts von ut -> δ Einheiten nach rechts verschieben. Knoten cl+1,...,cr−1 verschwinden aus C, ihre x-Koordinatenrelativ zu z1 setzen und den Baum F updaten:

  27. Phase 3: Platzierung else(p≥1 Knoten mit maximal zwei Nachbarn von C platzieren)‏ Knoten cl+1,...,cr−1 verschwinden aus C, ihre x-Koordinatenrelativ zu z1 setzen und den Baum F updaten:

  28. 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. 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.

More Related