1 Visualisierung von Graphen Planare Orientierungen Pflasterungen und Sichtbarkeitsrepräsentationen 9. Vorlesung Sommersemester 2015 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 X s s Philipp Kindermann, Alexander Wolff · Lehrstuhl für Informatik I · Universität Würzburg 4 Planare st-Graphen Normalerweise aufwärtsplanar gezeichnet t Zwei Außenfacetten s ? /t ? links/rechts Für e = (u , v ) ∈ E : orig(e ) = u und dest(e ) = v s? left(e ), right(e ) ∈ F : Facetten links u. rechts von e G ? = (V ? = F , E ? ): e ∈ E ⇒ (left(e ), right(e )) ∈ E ? v t? u Multigraph s ? t ? -Graph Philipp Kindermann, Alexander Wolff s · Lehrstuhl für Informatik I · Universität Würzburg 5 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 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 : setze orig(v ) = dest(v ) = v ; für f ∈ F : setze left(f ) = right(f ) = f . Lemma4 Für zwi 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 vertikale/horizontale Grenze wir schreiben θ = [x1 (θ), x2 (θ)] × [y1 (θ), y2 (θ)] 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 X θ(o ) ist Rechteck. θ(o1 ) und θ(o2 ) horizontal benachbart ⇔ o1 = left(o2 ) oder o1 = right(o2 ) oder o2 = left(o1 ) oder o2 = right(o1 ) o1 X o2 (Weder o1 noch o2 hat eindeutigen Nachbarn!) θ(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 · X Universität Würzburg 9-19 Algorithmus Tesselation(planarer st-Graph G ) Berechne G ? . Berechne topologische Nummerierungen X von G ? und Y von G . 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 ) Berechne G ? . Berechne topologische Nummerierungen Knoten ≡ horizontale Strecke Facette ≡ vertikale Strecke X von G ? und Y von G . Kante ≡ Fläche 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-25 Algorithmus Tesselation(planarer st-Graph G ) Berechne G ? . Berechne topologische Nummerierungen X von G ? und Y von G . 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 ) Berechne G ? . Berechne optimale gewichtete topologische Nummerierungen Y von G , X von G ? mit Einheitsgewichten. Für Knoten v5 ∈ V setze Γ (v ) = [X (left(v )), X (right(v )) 5− 1] × {Y (v )}. 2 4 5 e∈E 4 4 4 Für Kante setze 4 Γ (e ) = {X (left(e ))} × [Y (orig(e3)), 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 ) Berechne G ? . Berechne optimale gewichtete topologische Nummerierungen Y von G , X von G ? mit Einheitsgewichten. Für Knoten v ∈ V setze Γ (v ) = [X (left(v )), X (right(v )) − 1] × {Y (v )}. 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