1 Visualisierung von Graphen Planare Orientierungen Pflasterungen und Sichtbarkeitsrepräsentationen 8. Vorlesung Sommersemester 2014 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 2 Topologische Nummerierungen Sei G = (V , E ) gerichteter Graph. topologische Nummerierung von G : Abbildung µ : V → N mit µ(u ) < µ(v ) für jede Kante (u , v ) topologische Sortierung von G : topologische Nummerierung mit µ(V ) = {1, . . . , n} gewichtete topologische Nummerierung von (G , w ): topologische Nummerierung mit µ(u ) + w (u , v ) ≤ µ(v ) für jede Kante (u , v ) optimal, falls maxv ∈V µ(v ) − minv ∈V µ(v ) minimal ist Berechnung: jeweils in O (n + m) Zeit möglich Übung! Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 3 st-Graphen Ein gerichteter, azyklischer Graph G = (V , E ) mit je genau einer Quelle s bzw. Senke t heißt st -Graph. G topologisch nummeriert: Jeder Pfad besucht Knoten mit aufsteigenden Nummern. Für jeden Knoten v existiert einfacher, gerichteter s -t -Pfad durch v . Planarer st -Graph: st -Graph, so planar eingebettet, dass s und t an Außenfacette. t t s s Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4 Planare st-Graphen Normalerweise aufwärtsplanar gezeichnet t 2 Außenfacetten s ? /t ? links/rechts Für e = (u , v ) ∈ E : orig(e ) = u und dest(e ) = v left(e ), right(e ) ∈ F Facetten links und rechts von e s? G ? = (V ? = F , E ? ): e ∈ E ⇒ (left(e ), right(e )) ∈ E ? t? Multigraph s ? t ? -Graph Philipp Kindermann, Alexander Wolff s · Lehrstuhl für Informatik I · Universität Würzburg 5-9 Eigenschaften planarer st-Graphen Lemma1 Jede Facette f von G besteht aus zwei Pfaden von Quelle orig(f ) zu Senke dest(f ). Beweis: Ann.: ∃f , so dass Aussage falsch G nicht zykl. ⇒ f hat Quelle q Folge Pfaden πli , πr e von q entlang ∂ f bis umgekehrt ger. Kante Beob.: ∃ s -w -Pfad πs und u -t -Pfad πt G planar ⇒ ∃ Knoten x ∈ πs ∩ πt ⇒ gerichteter Kreis πle πt w f q t x u πr e πs s Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5-18 Eigenschaften planarer st-Graphen Lemma1 Jede Facette f von G besteht aus zwei Pfaden von Quelle orig(f ) zu Senke dest(f ). Lemma2 In jedem Knoten v ∈ V bilden ein-/ausgehende Kanten jeweils ein Intervall mit trennenden Facetten left(v )/right(v ). t Beweis: Klar für s und t w4 Sei v ∈ V \ {s , t }, so dass Aussage falsch w3 w1 v ⇒ gerichteter Kreis x w2 s Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 5-22 Eigenschaften planarer st-Graphen Lemma1 Jede Facette f von G besteht aus zwei Pfaden von Quelle orig(f ) zu Senke dest(f ). Lemma2 In jedem Knoten v ∈ V bilden ein-/ausgehende Kanten jeweils ein Intervall mit trennenden Facetten left(v )/right(v ). Aussagen sind dual. dest(f ) left(v ) v right(v ) f orig(f ) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-8 Eigenschaften planarer st-Graphen Lemma3 Für 2 Facetten f und g gilt genau eine der Aussagen: Es ex. Pfad von dest(f ) nach orig(g ) in G . Es ex. Pfad von dest(g ) nach orig(f ) in G . Es ex. Pfad von f nach g in G ? . Es ex. Pfad von g nach f in G ? . Beweis: Sei µ top. Sort. von G t OBdA µ(dest(f )) < µ(orig(g )) Linkester Pfad folgt immer x g linkester Kante dest(f ) orig(g ) (rechtester Pfad analog) f Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 6-10 Eigenschaften planarer st-Graphen Lemma3 Für 2 Facetten f und g gilt genau eine der Aussagen: Es ex. Pfad von dest(f ) nach orig(g ) in G . Es ex. Pfad von dest(g ) nach orig(f ) in G . Es ex. Pfad von f nach g in G ? . Es ex. Pfad von g nach f in G ? . für v ∈ V : orig(v ) = dest(v ) = v für f ∈ F : left(f ) = right(f ) = f Lemma4 Für 2 Objekte o1 , o2 ∈ V ∪ E ∪ F gilt genau eine der Aussagen: Es ex. Pfad von dest(o1 ) nach orig(o2 ) in G . Es ex. Pfad von dest(o2 ) nach orig(o1 ) in G . Es ex. Pfad von o1 nach o2 in G ? . Es ex. Pfad von o2 nach o1 in G ? . Beweis: Übung! Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 7 Pflaster-/Parkettstein Pflaster-/Parkettstein: achsenparalleles Rechteck θ kann unbeschränkt sein, oder zu Strecke/Punkt degeneriert θ1 , θ2 horizontal/vertikal benachbart ⇔ gemeinsame hor./vert. Grenze wir schreiben θ = [xL (θ), xR (θ)] × [yB (θ), yT (θ)] Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 8 Pflasterung/Parkettierung Def. Pflasterung θ eines planaren st -Graphen G bildet jedes Objekt o ∈ V ∪ E ∪ F auf Pflasterstein θ(o ) ab, so dass: o1 6= o2 ⇒ intθ(o1 ) ∩ intθ(o2 ) = ∅ S o ∈V ∪E ∪F θ(o ) ist Rechteck. θ(o1 ) und θ(o2 ) horizontal benachbart ⇔ o1 = left(o2 ) oder o1 = right(o2 ) oder o2 = left(o1 ) oder o2 = right(o1 ) θ(o1 ) und θ(o2 ) vertikal benachbart ⇔ o1 = orig(o2 ) oder o1 = dest(o2 ) oder o2 = orig(o1 ) oder o2 = dest(o1 ) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9-19 Algorithmus Tesselation(planarer st-Graph G ) 1. Berechne G ? 2. Berechne topologische Nummerierung Y von G , X von G ? 3. Für jedes Objekt o ∈ V ∪ E ∪ F setze θ(o ) = [X (left(o )), X (right(o ))] × [Y (orig(o )), Y (dest(o ))] 5 2 4 0 3 1 4 5 4 3 3 2 4 6 5 4 3 2 1 0 7 4 1 0 1 2 3 4 5 6 7 0 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9-21 Algorithmus Tesselation(planarer st-Graph G ) 1. Berechne G ? 2. Berechne topologische Nummerierung Y von G , X von G ? 3. Für jedes Objekt o ∈Knoten V ∪ E ∪≡ F setze Horizontale Facette ≡ Vertikale θ(o ) = [X (left(o )), X (right(o ))] × [Y (orig(o )), Y (dest(o ))] Kante ≡ Fläche 5 2 4 0 3 1 4 5 4 3 3 2 4 6 5 4 3 2 1 0 7 4 1 0 1 2 3 4 5 6 7 0 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 9-24 Algorithmus Tesselation(planarer st-Graph G ) 1. Berechne G ? 2. Berechne topologische Nummerierung Y von G , X von G ? 3. Für jedes Objekt o ∈ V ∪ E ∪ F setze θ(o ) = [X (left(o )), X (right(o ))] × [Y (orig(o )), Y (dest(o ))] Korrektheit: Lemma4 garantiert, dass Objekte disjunkt sind. Nachbarschaftsbedingungen folgen direkt aus Koordinatenzuordnung. Laufzeit: O (n) Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 10 Größenbedingungen Minimalhöhe/-breite h, w : E → R≥0 für Kantenpflastersteine Berechne optimale gewichtete topologische Nummerierungen Y von G = (V , E ; h) und X von G ? = (F , E ? ; w ). Knoten-/Facettenpflastersteine: modifiziere Graph zu G 0 v ev ef f Jedes Objekt von G entspricht Kante in G 0 . Satz: Eine flächenminimale Pflasterung eines planaren st Graphen G , die sich an Minimalhöhen/-breiten h, w : V ∪ E ∪ F → R≥0 hält, lässt sich in O (n) Zeit berechnen. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 11 Sichtbarkeitsrepräsentationen Def. Eine Sichtbarkeitsrepräsentation Γ eines planaren st Graphen G stellt Knoten v als horizontale Strecke Γ (v ) und Kante (u , v ) als vertikale Strecke Γ (u , v ) dar so dass Knotenstrecken paarweise disjunkt sind, Kantenstrecken paarweise disjunkt sind und die Kantenstrecke Γ (u , v ) die Knotenstrecken Γ (u ) und Γ (v ) von unten nach oben verbindet und keine andere Knotenstrecke schneidet. Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I Γ (v ) Γ (u , v ) Γ (u ) · Universität Würzburg 12 Berechnen einer Sichtbarkeitsrepräsentation Verwende Pflasterung; Knotenpflaster: degeneriert (d.h. Strecken); Facettenpflaster: nicht degeneriert Kantenstrecken Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-6 Algorithmus Visibility(planarer st-Graph G ) 1. Berechne G ? 2. Berechne optimale gewichtete topologische Nummerierung Y von G , X von G ? mit Einheitsgewichten 3. Für Knoten 5v ∈ V setze Γ (v ) = [X (left(v )), X (right(v )) − 51] × {Y (v )} 2 4 4 5 e ∈ E setze 4 4 4. Für 4Kante Γ (e ) = {X (left(e ))} × [Y (orig(e )),3 Y (dest(e ))] 0 3 1 3 3 2 6 7 4 1 2 1 0 0 1 2 3 4 5 6 7 0 Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 13-7 Algorithmus Visibility(planarer st-Graph G ) 1. Berechne G ? 2. Berechne optimale gewichtete topologische Nummerierung Y von G , X von G ? mit Einheitsgewichten 3. Für Knoten v ∈ V setze Γ (v ) = [X (left(v )), X (right(v )) − 1] × {Y (v )} 4. Für Kante e ∈ E setze Γ (e ) = {X (left(e ))} × [Y (orig(e )), Y (dest(e ))] Satz: Der Algorithmus Visibility erzeugt in O (n) Zeit eine Sichtbarkeitsrepräsentation mit ganzzahligen Koordinaten und Flächenbedarf O (n2 ). Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg