Grundlagen der wissenschaftlichen Visualisierung Vorlesung: Mo + Mi, 9:15 – 10:45, INF 368 – 532 Übung: Mi, 14:15 – 15:45, INF 350 (OMZ) – U011 JProf. Dr. Heike Leitte http://www.iwr.uni-heidelberg.de/groups/CoVis/ 7. Darstellung von Graphen 7. Graphen 3 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 4 Relationale Daten ● ● Häufig besitzen die zu visualisierenden Entitäten eine inhärente Relation (Beziehung oder Abhängigkeit). In diesem Fall eignen sich Graphen als Repräsentation, wobei Knoten die Entitäten und Kanten die Relation darstellen. Ein einfaches Beispiel für solche relationalen Daten ist die Verzeichnishierarchie eines Computersystems, die man sich als Baumstruktur vorstellen kann. Auf dem Computer sind die Daten in Ordnern gespeichert, welche selbst wieder Unterordner haben. Typische Fragestellungen sind: – In welchem Ordner/Wo befinde ich mich? – Wo ist die gesuchte Datei relativ zum aktuellen Ordner? 7. Graphen 5 Organigramm einer Firma 7. Graphen 6 Soziale Netzwerke [DaoMuCun ] 7. Graphen 7 Schaltpläne 7. Graphen 8 Metabolische Netzwerke 7. Graphen 9 Relationale Daten ● Typische Anwendungen sind – Organigramm einer Firma – Projektmanagment (z. B. Project Evaluation and Review Technique - PERT) – Soziale Netzwerke – Taxonomie biologischer Arten (bei Abstammung: phylogenetische Bäume) – Biochemische Reaktionen, speziell Stoffwechselsysteme – Abhängigkeiten bei Genexpression – Ähnlichkeiten von Dokumenten – Sematische Netzwerke und Wissensrepräsentationsdiagrame – Webseiten und ihre Links – Szenengraphen und virtuelle Realität – Datenstrukturen, insbesondere bei Compilern – Strukturen objektorientierte Systeme (Klassenhierachie, Datenfluss) – Realzeitsystem (Zustandsdiagramme) – Schaltkreisentwurf (very large system integration VLSI) 7. Graphen 10 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 11 Graphen ● ● ● Ein Graph ist ein Paar G = (V, E) disjunkter Mengen mit E [V]²; die Elemente von E sind also 2-elementige Teilmengen von V. Die Elemente von V nennt man die Ecken (oder Knoten) des Graphen G, die Elemente E seine Kanten. Graphen können bildhaft dargestellt werden. Hierbei werden die Knoten als Punkte gezeichnet und Kanten als Verbindungslinien zwischen den entsprechenden Punkten. (Die Anordnung der Punkte, sowie der Verlauf der Kanten können frei gewählt werden und sind lediglich von Zweckmäßigkeit und Ästhetik abhängig). 7. Graphen 12 Bestandteile von Graphen ● ● ● ● ● Ein Graph G = (W, F) ist ein Graph auf W. Die Knotenmenge W eines Graphen bezeichnen wir mit V(G), seine Kantenmenge F mit E(G). Statt v∈V (G ) oder e∈ E (G ) schreiben wir gelegentlich auch v∈G oder e ∈G . Der Graph heißt endlich bzw. unendlich je nachdem, ob V(G) endlich oder unendlich ist. Statt |V(G)| schreiben wir auch |G| und nennen |G| die Ordnung von G; statt |E(G)| schreiben wir ||G||. Den leeren Graphen ( ) bezeichnen wir kurz mit . 7. Graphen 13 Lagebeziehungen von Knoten und Kanten ● Ein Knoten v und eine Kante e inzidieren miteinander und heißen inzident, wenn v e gilt. ● Die beiden Knoten einer Kante sind ihre Endknoten, und sie verbindet diese Knoten. ● Für eine Kante {x,y} schreiben wir kürzer auch xy (oder yx). ● ● ● Zwei Knoten x, y von G sind (adjazent oder) benachbart in G und heißen Nachbarn voneinander, wenn xy E(G) ist. Zwei Kanten e ≠ f sind benachbart, falls sie einen gemeinsamen Endknoten haben. Sind je zwei Ecken von G benachbart, so heißt G vollständig. Einen vollständigen Graphen auf n Ecken bezeichnen wir mit Kn; K³ ist ein Dreieck. 7. Graphen 14 Grad eines Knoten und Adjazenzmatrix ● ● ● Es sei G = (V, E) ein (nicht leerer) Graph. Die Menge der Nachbarn einer Ecke v bezeichnen wir mit NG(v), oder kurz N(v). Der Grad (oder die Valenz) dG(v) = d(v) einer Ecke v ist die Anzahl |E(v)| der mit v inzidenten Kanten; nach unserer Definition eines Graphen ist dies gerade die Anzahl der Nachbarn von v. Ein Graph G = (V, E) mit n Knoten kann durch die n×n Adjazenzmatrix A beschrieben werden, wobei Auv = 1, wenn {u , v }∈E und Auv = 0 sonst. Die Adjazenzmatrix eines (ungerichteten) Graphen ist immer symmetrisch. 7. Graphen 16 Teilgraphen und Untergraphen ● Wir setzen G∪G ' :=V ∪V ' , E ∪E ' und ● ● ● G∩G ' :=V ∩V ' , E ∩E ' Ist G∩G ' =∅ , so heißen G und G' disjunkt. Gilt V ' ⊆V und E ' ⊆E so ist G' ein Teilgraph von G, und G ein Obergraph von G', geschrieben G ' ⊆G . Informell sagen wir häufig, dass G den Graphen G' enthält. Der Teilgraph G' heißt induziert oder aufgespannt (von V' in G), wenn er alle Kanten xy E mit x,y V' enthält. Einen solchen induzierten Teilgraphen nennen wir einen Untergraphen. Wir bezeichnen G' dann auch mit G[V']. 7. Graphen 17 Pfade und Kreise ● Ein Weg ist ein nichtleerer Graph P = (V, E) der Form V ={x 0 , x1 , , x k } E ={ x 0 x 1 , x 1 x 2 , , x k−1 x k }, wobei die xi paarweise verschieden sind. Die Knoten x0 und xk sind die Endknoten von P; sie sind durch P verbunden. ● ● Die Anzahl der Kanten eines Weges ist seine Länge; den Weg der Länge k bezeichnen wir mit Pk. Ist P = x0...xk-1 ein Weg und k ≥ 3, so ist der Graph C := P + xk-1x0 ein Kreis (oder Zyklus). Die Länge eines Kreises ist wieder die Anzahl seiner Kanten, und den Kreis der Länge k bezeichnen wir mit Ck. Ein Graph ohne Zyklus heißt azyklisch. 7. Graphen 18 Bäume und Wälder ● ● ● ● Ein nicht leerer Graph heißt zusammenhängend, wenn er für je zwei seiner Ecken x, y einen x-y-Weg enthält. Ein maximal zusammenhängender Teilgraph von G ist eine (Zusammenhangs-)Komponente von G. Ein Graph, der keinen Kreis enthält, ist ein Wald. Ein zusammenhängender Wald ist ein Baum. (Ein Wald ist somit ein Graph, dessen Komponenten Bäume sind.) Die Ecken vom Grad 1 eines Baumes sind seine Blätter. Alle übrigen Knoten heißen innere Knoten. Oftmals wird ein innerer Knoten ausgezeichnet und man spricht von einem Wurzelknoten. 7. Graphen 19 Gerichtete Graphen ● ● ● ● ● ● Ein gerichteter Graph oder Digraph G=(V, E) besteht aus einer endlichen Menge V von Knoten und einer endlichen Menge E⊂V ×V gerichteter Kanten. Eine gerichtete Kante (u,v) ist ein ausgehende Kante für u und eine eingehende Kante für v. Eine gerichtete Kante (u, v) mit u = v heißt Schlinge oder auch Schleife. Knoten ohne ausgehende Kanten heißen Senken. Knoten ohne eingehende Kanten heißen Quellen. Der Ingrad von v ist die Anzahl eingehender Kanten. Der Ausgrad von v ist die Anzahl ausgehender Kanten. Ein gerichteter Weg in G ist eine Folge (v1, v2, ..., vh) von Knoten in G, so dass (vi, vi+1) eine gerichtete Kante in G für i = 1,...,h-1 ist. ● Ein gerichteter Weg heißt Zyklus, falls (vh, v1) eine gerichtete Kante in G ist. ● Ein gerichteter azyklischer Graph (DAG) ist ein gerichteter Graph ohne Zyklus. ● Zu einem gerichteten Graphen G' gibt es immer einen Graph G, der durch „Vergessen der Orientierung der Kanten“ entsteht 7. Graphen 20 Zeichnung eines Graphen ● ● ● ● Eine Zeichnung eines Graphen oder Digraphen G ist eine Abbildung G vom Graphen in die Ebene, die jedem Knoten v einen Punkt G(v) und jeder Kante {u, v} eine offene Jordankurve G(u,v) zuordnet, die die Punkte G(u) und G(v) als Endpunkte hat. (Die gerichteten Kanten des Digraphen werden in der Regel als Pfeile gezeichnet.) Eine Zeichnung eines Graphen oder Digraphen heißt planar, wenn sich die Kurven zweier verschiedener Kanten höchstens in den Endpunkten schneiden. Ein Graph oder Digraph heißt planar, wenn es mindestens eine planare Zeichnung gibt. Man beachte, dass nicht alle Graphen planar sind und dass nach der Eulerformel ein planarer Graph mit n>2 Knoten höchstens 3n-6 Kanten haben kann. 7. Graphen 22 Planare Zeichnungen des gleichen Graphen 7. Graphen 23 Facetten und Planare Einbettung ● ● ● ● ● Eine planare Zeichnung eines Graphen oder Digraphen zerlegt die Ebene in topologisch verbundene Regionen, die Facetten genannt werden. Die unbegrenzte Facette wird äußere Facette genannt. Eine planare Zeichnung bestimmt eine zirkuläre Ordnung der inzidenten Kanten an jedem Knoten durch Umlauf im Uhrzeigersinn. Zwei planare Zeichnungen heißen äquivalent, wenn sie die gleiche zirkuläre Ordnung an allen Knoten festlegen. Eine planare Einbettung eines Graphen oder Digraphen G ist eine Äquivalenzklasse von planaren Zeichnungen. Sie wird durch Festlegen der zirkulären Ordnungen der inzidenten Kanten an jedem Knoten festgelegt. (Auf der vorherigen Folie liefern a,b,c die gleiche, d dagegen eine andere Einbettung des Graphen.) Ein eingebetteter Graph bzw. eingebetteter Digraph ist ein Graph bzw. Digraph mit einer festgelegten planaren Einbettung. 7. Graphen 24 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 26 Vorüberlegungen ● ● ● ● Beim Graphzeichnen ist es wichtig sich im Vorfeld Gedanken zu machen, welche kombinatorischen Eigenschaften der Graph hat z.B. gerichtet/ungerichtet, Baum/zyklisch, planar. Dieses Wissen ist aus zwei Gründen wichtig: – Einige Algorithmen funktionieren nur/besser für eine bestimmte Art von Graph. – Häufig sollen die kombinatorischen Eigenschaften des Graphen in der Zeichnung hervorgehoben werden, z.B. dass keine Zykel vorhanden sind. Wichtig ist ebenfalls zu bedenken, dass es den optimalen Graphzeichenalgorithmus nicht gibt (nicht einmal für einen bestimmten Graphen), da Geschmäcker sehr verschieden sind und Menschen häufig unterschiedliche Darstellungen bevorzugen. Auch das Anwendungsgebiet hat einen großen Einfluss. Es haben sich allerdings im Laufe der Zeit einige Konventionen herauskristallisiert, die eine grobe Orientierung für ein gutes Vorgehen geben. 7. Graphen 27 Optimale Zeichnung? ● Je nach Anwendung können unterschiedliche Zeichnungen optimal sein. 7. Graphen 28 Konventionen für Zeichnungen Es gibt verschiedene Zeichenkonventionen, die entscheidenden Einfluss auf die Auslegealgorithmen von Graphen haben. Die gebräuchlichen Konventionen sind: ● ● ● ● Polylinienzeichnung: Jede Kante wird als Polygonzug gezeichnet. Geradlinige Zeichnung: Jede Kante wird als gerade Linie gezeichnet. Orthogonale Zeichnung: Jede Kante wird als Polygonzug achsenparalleler Linien gezeichnet. Gitterzeichnung: Knoten, Schnittpunkte und Kantenknicke haben ganzzahlige Koordinaten bzgl. eines festgelegten kartesischen Gitters. 7. Graphen 29 Konventionen für Zeichnungen ● ● Planare Zeichnung: Kanten schneiden sich höchstens an Knoten. Aufwärtszeichnung (bzw. Abwärtszeichnung): Für azyklische gerichtete Graphen (DAGs) wird jede Kante als monoton ansteigende (absteigende) Kurve gezeichnet. 7. Graphen 30 Ästhetikkriterien Ästhetische Kriterien formulieren Wünsche an die Zeichnung eines Graphen, die diese Zeichnung möglichst gut erfüllen soll. Oft sind nicht alle Kriterien, manchmal keines zu erreichen und es wird ein guter Kompromiss gesucht. ● ● ● ● ● ● Kantenschnitte. Minimierung der Anzahl der Schnittpunkte von Kanten. Fläche. Der Graph wird auf möglichst kleiner Fläche gezeichnet. Die Fläche wird z.B. durch eine BoundingBox oder die konvexe Hülle gemessen. Gesamtkantenlänge. Die Gesamtkantenlänge wird minimiert. Auch dies ist nur bei skalierungsunabhängigen Zeichnungen sinnvoll. Maximale Kantenlänge. Die Länge der längsten Kante wird minimiert. Auch dies ist nur bei skalierungsunabhängigen Zeichnungen sinnvoll. Gleichförmige Kantenlänge. Die Varianz der Kantenlängen wird minimiert. Gesamtanzahl Knicke. Die Zahl aller Knicke aller Kanten soll minimiert werden. Dies ist besonders bei orthogonalem Zeichnen sinnvoll. 7. Graphen 31 Ästhetikkriterien ● ● ● ● ● ● Maximale Knickanzahl. Das Maximum von Knicken einer Kante wird minimiert. Gleichmäßige Knickanzahl. Die Varianz der Knickanzahl wird minimiert. Winkelauflösung. Der kleinste auftretende Winkel zwischen zwei Kanten wird maximiert. Seitenverhältnis. Das Seitenverhältnis des kleinsten umschriebenen Rechtecks soll nahe 1 sein. Symmetrie. Die Symmetrien des Graphen sollen möglichst gut abgebildet werden. Oft widersprechen sich die Ästhetikkriterien. Ferner kann auch ein einzelnes Kriterium nicht immer erfüllt werden. 7. Graphen 32 Einschränkungen Bei Einschränkungen werden Teilgraphen oder Teilzeichnungen festgelegt, um bestimmte Konventionen einzuhalten. Häufige Beispiele in der Visualisierung sind: ● ● ● ● ● Zentrum. Ein gegebener Knoten wird im Zentrum der Zeichnung fixiert. Außen. Ein bestimmter Knoten wird der äußeren Facette benachbart. Cluster. Eine gegebene Menge von Knoten wird nah beieinander angeordnet. Links-Rechts-Folge. Ein vorgegebener Weg wird von links nach rechts gezeichnet. (Auch vertikal möglich.) Form. Zeichne einen gegebenen Teilgraphen mit vorgegebener Form. 7. Graphen 33 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 34 Der Topologie-Form-Metrik Ansatz Dieser Ansatz zielt vor allem auf orthogonale Gitterzeichnungen und basiert auf drei Verfeinerungsebenen: ● ● ● Topologie. Zwei orthogonale Zeichnungen haben die gleiche Topologie, wenn sie durch stetige Deformation ohne Veränderung der Kantenfolge der Facetten ineinander überführt werden können. Form. Zwei orthogonale Zeichnungen haben die gleiche Form, wenn sie die gleiche Topologie haben und eine Zeichnung aus der anderen nur durch Längenänderungen bei den Liniensegementen hervorgeht (Winkel bleiben erhalten). Metrik. Zwei orthogonale Zeichnungen haben die gleiche Metrik, wenn sie kongruent sind, also durch Verschieben und Drehen ineinander überführt werden können 7. Graphen 35 Der Topologie-Form-Metrik Ansatz Die Umsetzung erfolgt durch drei entsprechende Schritte, bei denen nacheinander Topologie, Form und Metrik optimiert werden. ● Die Planarisierung legt die Einbettung des Graphen, also seine Topologie fest. Ziel dabei ist es die Anzahl der Kantenschnitte zu minimieren. Oft wird zunächst ein maximaler planarer Untergraph gesucht und eingebettet. Anschließend werden die verbleibenden Kanten einzeln eingefügt, wobei jeweils möglichst wenig Überschneidungen erzeugt werden. An den Überschneidungen werden Hilfsknoten eingefügt, um einen planaren Graphen zu erhalten. ● Die Orthogonalisierung legt die Form des Graphen fest. Sie liefert eine orthogonale Repräsentation des Graphen. Die Knoten erhalten keine Koordinaten und die Kanten lediglich Winkellisten, die ihre Knicke festlegen. Die Minimierung der Knicke ist in der Regel das Hauptziel. ● Die Kompaktifizierung legt schließlich die endgültigen Koordinaten der Kanten und der Kantenknicke fest. In der Regel wird die Fläche des Graphen minimiert. Die Hilfsknoten werden entfernt. Details zu den Phasen finden sich in der Literatur. [Jeron, Jard. 3D Layout of Reachability Graphs of Communicating Processes. Graph Drawing '94 Proceedings, 1995, 25-32], [Jünger, Leipert, Mutzel. Pitfalls of using PQ-trees in automatic graph drawing. Graph drawing '97 Proceedings, 1997, 193-204][Battista, Eades, Tamassia, Tollis, Graph Drawing, Prentice-Hall, 1999] 7. Graphen 36 Der Topologie-Form-Metrik Ansatz – Ästhetikkriterien ● Die drei Schritte des Algorithmus geben die Bedeutung der drei Optimierungskriterien wieder, die verfolgt werden: – Der erste Schritt ist die Planarisierung. Hierbei wird die Anzahl der Kantenschnitte minimiert. Auch die relative Lage der Knoten im Graphen wird bestimmt, etwa ob sie eher im Zentrum oder am Rand dargestellt werden sollen. Weiterhin wird durch die relative Lage der Knoten zueinander die Anzahl der Biegungen der Kanten beeinflusst. – Im zweiten Schritt wird die Anzahl der Knicke in den Kanten optimiert. Es können auch Kanten bestimmt werden, die keine Knicke enthalten sollen, indem die Endknoten entsprechend gesetzt werden. – Die letzte und am wenigsten wichtige Optimierung gilt der Fläche. In diesem Schritt können weitere Ästhetikkriterien wie die Kantenlänge berücksichtigt werden. Planarisierung 7. Graphen Orthogonalisierung Kompaktifizierung 37 Der Topologie-Form-Metrik Ansatz – Einschränkungen ● In jeder der drei Phasen können auch Einschränkungen gemacht werden, so dass eine bestimmte Struktur der Zeichnung erzwungen wird. – Planarisierung: Für die Knoten kann eine bestimmte Position innerhalb des Graphen erzwungen werden oder es kann verboten werden, dass sich bestimmte Kanten schneiden. – Orthogonalisierung: Es kann z.B. gefordert werden, dass ein bestimmter Pfad keine Knicke aufweist. Alternativ kann eine bestimmte Struktur mit einer vorgegebenen Knickfolge in verschiedene Richtungen vorgegeben werden, um z.B. eine gewünschte Grobstruktur vorzugeben. – Kompaktifizierung: Innerhalb bestimmter Grenzen die durch die vorherigen Schritte gegeben sind, kann z.B. die Lage von Knoten zueinander bestimmt werden (einer weiter oben, als der andere). Planarisierung 7. Graphen Orthogonalisierung Kompaktifizierung 38 Der Hierarchische Ansatz Dieser Ansatz eignet sich besonders für das Zeichnen von DAGs und verwendet ebenfalls drei Schritte. ● ● ● Der Schichtungsschritt verwandelt einen DAG in einen geschichteten Digraphen, bei dem jedem Knoten eine Ebene Li zugeordnet wird, so dass für alle Kanten (u,v) mit u∈ Li , v∈ L j gilt, dass i > j. Anschließend wird ein echter geschichteter Digraph daraus, indem auf Kanten, die über mehr als eine Ebene laufen, Hilfsknoten eingefügt werden, so dass jede Kante genau eine Ebene überspannt. Bei der Schnittreduktion erhalten die Knoten einer jeden Schicht eine Reihenfolge (Ordnung), welche die Topologie der Zeichnung bestimmt. Dabei wird die Anzahl der Kantenschnitte minimiert. Das Festlegen der x-Koordinaten ordnet den Knoten einer Ebene ihre x-Koordinaten zu. Für die endgültige Zeichnung ersetzt man Hilfsknoten durch Knicke. Dabei können die Knicke minimiert (man ordnet die Hilfsknoten so an, dass sie eine Gerade bilden) oder Symmetrien betont (mittels horizontalem Verschieben) werden. Wie schon im Falle des Topologie-Form-Metrik Ansatzes wird auch hier durch die Abfolge der drei Schritte eine Gewichtung der Ästhetikkriterien festgelegt. 7. Graphen 39 Der Hierarchische Ansatz 7. Graphen 40 Der Hierarchische Ansatz – Berechnung ● ● Hierarchische Ansätze können auch für allgemeine gerichtete Graphen (mit Zykeln) verwendet werden, wenn man in einem Vorverarbeitungsschritt die Zykel durch Wechsel der Kantenorientierung entfernt und sie nach Beendigung des Zeichnens wieder zurücksetzt. Das Problem der Schnittminimierung zwischen zwei Ebenen ist bereits NP-vollständig, so dass Heuristiken gesucht werden. Eine exzellente Arbeit zu gerichteten Graphen stammt von Sugiyama. [K. Sugiyama, S. Tagawa, and M. Toda, „Methodes for Visual Understanding of Hierarchical Systems Structures“, IEEE Trans. Systems, Man, and Cybernetics, vol. 11, no. 2, pp. 109-125, 1989] ● Eine Heuristik [W. Tutte, „How to Draw a Graph“, Proc. London Math. Soc., vol. 3, no. 13, pp. 743-768, 1963] legt eine Ordnung der ersten und letzten Ebene fest und fordert, dass jeder Knoten im Schwerpunkt seiner Nachbarn (im Graphen) liegt. Dies führt auf ein lineares Gleichungssystem. Einen Vergleich von Heuristiken geben Laguna und Marti an. [M. Laguna and R. Marti, „Heuristics and Meta-Heuristics for 2-Layer Straight Line Crossing Minimization“ , URL: http://www-bus.colorado.edu/Faculty/Laguna/, 1999]. 7. Graphen 41 Der Hierarchische Ansatz – Beschränkungen Zumeist werden Beschränkungen bezüglich der Anordnung der Knoten gemacht. So wird zum Beispiel gefordert: ● ● Schnittreduktion: – Bestimmte Knoten sollen in der Mitte angeordnet sein. – Bestimmte Knoten sollen auf einer Ebene nahe beieinander angeordnet werden. Festlegen der x-Koordinate: – Eine bestimmte Folge von Knoten soll auf einer senkrechten Geraden untereinander liegen. Schichtung 7. Graphen Schnittreduktion Festlegen der x-Koordinaten 42 Der Sichtbarkeitsansatz Dieser Ansatz dient dem Auslegen beliebiger Graphen mit Polylinien. ● ● ● Die Planarisierung gleicht demjenigen im Topologie-FormMetrik Ansatz. Hier geht es erneut vor allem um Schnittminimierung. Im Sichtbarkeitsschritt wird eine Sichtbarkeitsrepräsentation des Graphen geschaffen. Jedem Knoten wird ein horizontales und jeder Kante {u,v} ein vertikales Liniensegment zugeordnet, wobei das Kantensegment seinen Anfang und sein Ende innerhalb der zugehörigen Knotensegmente hat. Ferner schneiden die Kantensegmente einander nicht. Der Ersetzungsschritt erzeugt die endgültige Zeichnung des Graphen durch Ersetzen jedes horizontalen Segments durch einen Punkt und jedes vertikalen Segments durch einen Kantenzug. Die Kantenzüge sollen dabei möglichst den Segmenten aus dem Sichtbarkeitsschritt folgen. Hier kann eine Vielzahl von Strategien eingesetzt werden. 7. Graphen 43 Der Sichtbarkeitsansatz – Ästhetikkriterien ● ● Der Sichtbarkeitsansatz ist ein Mittelweg zwischen den beiden vorhergehenden Ansätzen. Er übernimmt die planare Anordnung aus dem Topologie-Form-Metrik Ansatz und die ebenenbasierte Anordnung aus dem hierarchischen Ansatz. Es ergibt sich folgende Bedeutung verschiedener Ästhetikkriterien: – Die Schnittminimierung ist wieder das wichtigste Ziel des Algorithmus (Planarisierungsschritt). – Im Sichtbarkeitsschritt wird versucht die benötigte Fläche zu minimieren. – Der letzte Schritt (Ersetzung) lässt Raum für die Spezifikationen einer Vielzahl von Optimierungskriterien. So kann z.B. auf eine minimale Anzahl von Knicken, starke Symmetrie oder eine gleichmäßige Verteilung der Knoten im Raum geachtet werden. 7. Graphen 44 Der Sichtbarkeitsansatz – Beschränkungen Beschränkungen können für alle drei Schritte vorgegeben werden. ● ● Topologische Einschränkungen können entsprechend denen des Topologie-Form-Metrik Ansatzes gefordert werden. Sichtbarkeits- und Ersetzungsschritt – Vertikale Ausrichtung von Knoten eines bestimmten Pfades. – Relative Position zweier Knoten zueinander in der Horizontalen und/oder der Vertikalen. – Vorgabe für die Form von Kanten. 7. Graphen 45 Der Erweiterungsansatz Auch dieser Ansatz zielt auf Polylinienzeichnungen und besteht aus drei Schritten. ● ● ● Die Planarisierung gleicht dem Topologie-Form-Metrik Ansatz. Hier geht es erneut vor allem um Schnittvermeidung. Die Verfeinerung fügt eine geeignete Anzahl von Kanten (evtl. auch Knoten) in die Einbettung ein, um einen maximalen planaren Graphen zu erzeugen, d. h. alle Facetten haben dann drei Kanten und wir erhalten eine Triangulierung. Da die Qualität des Zeichnens maximaler Graphen in der Regel vom Knotengrad abhängt, wird beim Einfügen von neuen Kanten meistens versucht, den maximalen Knotengrad zu minimieren. Die Triangulierungszeichnung erzeugt die Zeichnung durch Auslegen aller Dreiecke und anschließendes Entfernen der Hilfskanten und Hilfsknoten. Alle Algorithmen nutzen spezielle Eigenschaften der Triangulierung. (Beim Entfernen der Hilfsknoten entstehen in durchlaufenden Kanten Knicke.) 7. Graphen 46 Der Erweiterungsansatz 7. Graphen 47 Der Erweiterungsansatz – Ästhetikkriterien ● ● Planarisierung: Da auch bei dieser Strategie wieder mit einer Planarisierung begonnen wird, gilt die größte Bedeutung der Minimierung von Kantenschnitten. Verfeinerung und Zeichnen der Triangulierung In den beiden anderen Phasen können verschiedene Ästhetikkriterien optimiert werden, die durch die Eigenschaften der Dreiecke beschrieben werden, wie z.B. kleine Gesamtfläche, gute Winkeleigenschaften (also keine sehr spitzen Winkel) oder gleichmäßige Verteilung der Vertices. Panarisierung 7. Graphen Verfeinerung Zeichnen der Triangulierung 48 Der Kraftbasierte Ansatz ● Kraftbasierte Ansätze sind intuitive Methoden für geradlinige Zeichnungen (ungerichteter) Graphen. Wegen ihrer leichten Verständlichkeit und einfachen Implementierung sind sie sehr populär. Ein solcher Algorithmus simuliert ein System von Kräften auf dem Eingabegraphen und gibt eine Zeichnung minimaler Energie aus. Dazu benötigt man zwei Zutaten: – – ● Das Kräftemodell. Oft wird jedem Paar von Knoten eine Feder „natürlicher Länge“ zugeordnet, etwa die Anzahl der Kanten des kürzesten Weges. Die Federn gehorchen dem Federgesetz und ergeben eine Kraft proportional zur Differenz von natürlicher Länge und Länge in der aktuellen Zeichnung. Eine Technik zur Energieminimierung. In der Regel werden hier numerische Techniken eingesetzt, etwa einfache iterative Ansätze zur Lösung gewöhnlicher Differentialgleichungen. Dies ergibt oft qualitativ gute, hoch symmetrische Zeichnungen mit gleichmäßiger Knotenverteilung. Einschränkungen können beachtet werden. [A. Frick, A. Ludwig, and H. Mehldau, „A Fast Adaptive Layout Algorithm for Undirected Graphs“, Proc. Symp. Graph Drawing GD '93, pp. 389-403, 1994] ● Ein gutes Beispiel für den kraftbasierten Ansatz ist in den Beispielen des JavaScriptFrameworks D3 enthalten. [http://bl.ocks.org/mbostock/4062045] 7. Graphen 49 Der Kraftbasierte Ansatz – Ästhetik und Beschränkungen ● ● Ästhetik: Kraftbasierte Ansätze liefern im allgemeinen sehr schöne Darstellungen. Diese weisen oft eine hohe Symmetrie auf und verteilen die Knoten gleichmäßig im Raum. Beschränkungen: Kraftbasierte Ansätze können durch vielfältige Parameter beeinflußt werden. So können z.B. die Kantenlängen unterschiedlich groß gewählt werden und so erzwungen werden, dass bestimmte Knoten nahe beieinander liegen und andere weiter entfernt sein können. Außerdem kann leicht eine räumliche Beschränkung vorgegeben werden innerhalb derer der Graph gezeichnet werden soll. 7. Graphen 50 Der Teile-und-Herrsche Ansatz ● ● ● Dieses beliebte Informatikprinzip wird auch bei Zeichnungen von Graphen gerne benutzt. Er besteht aus drei Schritten: – Teile: Zuerst wird der Graph in Teilgraphen zerlegt. Diesen werden rekursiv gezeichnet. – Herrsche: Im letzten Schritt werden die Teilgraphen zu einer Zeichnung zusammengefügt. Für diesen Ansatz eignen sich nur Graphen, die leicht in Teilgraphen zerlegt werden können. Besonders geeignet ist der Teile-Und-Herrsche-Ansatz für Bäume. 7. Graphen 51 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 52 Grundstruktur von Zeichenalgorithmen für Graphen ● ● Im vorhergehenden Abschnitt haben wir uns verschiedene Grundideen für Zeichenalgorithmen angesehen. Diese werden häufig auch in Kombination verwendet. Im Folgenden betrachten wir noch eine allgemeine Taxonomie (Klassifikationsschema) zur Beschreibung von Zeichenalgorithmen für Graphen. Die Nützlichkeit einer Taxonomie rechtfertigt sich durch zwei wesentliche Beobachtungen: – Ist ein Algorithmus auf einen (allgemeinen) Graphen G anwendbar, so ist er auch auf dessen speziellere Variante G' anwendbar. So funktioniert ein Algorithmus, der allgemeine azyklische Graphen zeichnet, auch für bipartite azyklische Graphen. – Graphenalgorithmen entsprechen einer Verarbeitungskette, die aus mehreren unabhängigen Bausteinen besteht. Dabei werden nach und nach zusätzlich Details in die Darstellung des Graphen eingefügt. Die Eingabe eines jeden Schrittes ist ein Graph, ebenso wie dessen Ausgabe. Des weiteren können neue Algorithmen entwickelt werden, indem Schritte aus existierenden Algorithmen neu verknüpft werden. 7. Graphen 53 Taxonomie 7. Graphen 54 Taxonomie Topologie-Form-Metrik Hierarchisch Sichtbarkeit Erweiterung 7. Graphen 55 Aufgaben bei Graphanalyse Folgende Aufgaben müssen bei der Analyse von Graphen häufig durchgeführt werden: ● Anzahl der Knoten zählen: Dies gibt dem Nutzer Aufschluss über die Größe der Daten. ● Ein-/Ausgrad eines Knoten bestimmen: Gerade wenn der Graph Bewegungsmuster repräsentiert (z.B. Migration) ist es interessant zu wissen an welchen Knoten es starken Abbzw. Zufluss gibt. ● Nachbarknoten finden: Nachbarschaftsanalyse ist eine häufige Aufgabe auf Netzwerken, z.B. Facebook → Menschen, Interaktion → chemische Bestandteile, Biologie. ● Nachbarschaftsanalyse: Finde zu einem Knoten alle Knoten, die über einen Pfad mit maximaler Länge n erreicht werden können. ● Mittelmannknoten identifizieren: Diese Knoten verbinden Subgraphen miteinander. Entfernt man sie, so zerfällt der Graph in Einzelteile. Diese ist z.B. wichtig um Schwachstellen in Systemen zu identifizieren. ● Cluster (Cliquen) finden: Subgruppenanalyse, welche aufzeigt, welche Knoten sehr stark miteinander verknüpft sind, ist in fast allen Anwendungsgebieten wichtig, z.B. Netzwerkanalyse. Bei einigen dieser Aufgaben benötigt man einen globalen Überblick, bei anderen wiederum nur sehr lokales Wissen. Gerade in großen Graphen kann beides nicht gleichzeitig erreicht werden. 7. Graphen 56 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 57 Layout von Bäumen 7. Graphen 58 Traversieren von Bäumen ● Traversieren eines Baumes bezeichnet das Durchlaufen seiner Knoten. Hierbei gibt es verschiedene Strategieen: – pre-order oder Hauptreihenfolge (W–L–R): Es wird zuerst die Wurzel betrachtet, dann der linke Teilbaum durchlaufen und abschließend der rechte. – in-order oder symmetrische Reihenfolge (L–W–R): Es wird zuerst der linke Teilbaum durchlaufen, anschließend wird die Wurzel betrachtet und zuletzt der rechte Teilbaum durchlaufen. – post-order oder Nebenreihenfolge (L–R–W): Es wird zuerst der linke, dann der rechte Teilbaum durchlaufen und abschließend die Wurzel betrachtet. – level-order oder Breitensuche: Beginnend bei der Wurzel, werden die Schichten von links nach rechts durchlaufen. 1 4 2 3 5 4 7. Graphen 6 7 2 7 1 6 3 5 3 7 1 6 2 4 5 59 Traversieren von Bäumen A preorder(node) if node == null then return visit(node) preorder(node.left) preorder(node.right) B D F inorder(node) if node == null then return inorder(node.left) visit(node) inorder(node.right) C E G H → Übung postorder(node) if node == null then return postorder(node.left) postorder(node.right) visit(node) 7. Graphen 60 Zeichnen von Bäumen ● ● ● Der Algorithmus von Reingold und Tilford [E. M. Reingold and J. S. Tilford, „Tidier Drawing of Trees“, IEEE Trans. Software Eng., vol7, no2, pp. 223-228, 1981] erzeugt eine klassische Baumstruktur für Bäume mit ausgezeichneter Wurzel mit einem typischen Teile-und-Herrsche-Ansatz. Dabei soll die Zeichnung eines Unterbaums nicht von Knoten außerhalb dieses Unterbaums beeinflusst werden. Die vier wesentlichen Ästhetikkriterien sind: 1. Knoten einer Schicht des Baumes liegen auf einer Geraden und die Geraden, die eine Schicht beschreiben sind parallel. (Implizit ist gemeint, dass sich Kanten nicht schneiden.) 2. Ein „linker“ Kindknoten soll links des Elternknoten positioniert werden, ein „rechter“ rechts davon. 3. Ein Elternknoten soll mittig zu seinen Kindern liegen. 4. Ein Baum und seine gespiegelte Versionen sollen Zeichnungen ergeben die diesen Zusammenhang widerspiegeln; Unterbäume sollen gleich gezeichnet werden, egal an welcher Position im Baum sie auftreten. 7. Graphen 61 Zeichnen von Bäumen – Beispiel Wetherell-Shannon Algorithmus, der die ersten drei Kriterien beachtet. 7. Graphen Baumzeichnung mit dem Reingold-Tilford Algorithmus 62 Wetherell-Shannon Algorithmus Der Algorithmus von Reingold und Tilford verbessert den Baumzeichenalgorithmus von Wetherell und Shannon (ersten drei Ästhetikkriterien), der wie folgt funktioniert: ● ● Speichere in jedem Knoten seine Schicht im Baum, dies gibt die y-Koordinate des Knoten. Durchlaufe den Baum in Post-Order (L-R-W) und weise dabei jedem Knoten eine xKoordinate zu. Hierzu gibt es folgende Regeln: – Ist der Knoten ein Blatt, so weise ihm die nächste freie Position auf seiner Schicht zu (letzte Position mit Knoten + 2). – Ist der Knoten ein innerer Knoten unterscheide: ● hat er nur ein linkes Kind, weise ihm die x-Koordinate seines Kindes + 1 zu. ● hat er nur ein rechtes Kind, weise ihm die x-Koordinate seines Kindes - 1 zu. ● hat er zwei Kinder, weise ihm das Mittel deren beider x-Koordinaten zu. – Ist der Knoten ein innerer Knoten und hat nicht mindestens den Abstand 2 zum Vordermann in seiner Schichten, so verschiebe den gesamten Unterbaum entsprechend. 7. Graphen 63 Reingold-Tilford Algorithmus ● ● ● Der Reingold-Tilford Algorithmus ist ein heuristischer Ansatz. Dabei werden die beiden Unterbäume eines Knotens zunächst unabhängig gezeichnet und anschließend so nah wie möglich aneinandergeschoben. Die Heuristik wird wieder in einem Post-order Durchlauf angewendet: – Man stelle sich vor, dass an jedem Knoten T die beiden Unterbäume bereits gezeichnet wurden und aus Papier entlang ihrer Kontur ausgeschnitten wurden. – Die Wurzeln der beiden Unterbäume werden nun überlagert. Man durchläuft die Schichten, die von den beiden Unterbäumen überdeckt werden und schiebt sie so weit auseinander, dass sie einander nicht mehr überlagern. – Die beiden Unterbäume werden abschließend relativ zu ihrem Vater angeordnet. In einem abschließenden Pre-order Durchlauf werden die relativen Verschiebungen an die Kinder weitergegeben und die endgültigen Positionen berechnet. 7. Graphen 64 Reingold-Tilford Algorithmus - Pseudocode 7. Graphen 65 Zeichnen von Bäumen – Beispiel Wetherell-Shannon Algorithmus, der die ersten drei Kriterien beachtet. 7. Graphen Baumzeichnung mit dem Reingold-Tilford Algorithmus 66 Erweiterung ● ● Der Reingold-Tilford Algorithmus wurde ursprünglich für Binärbäume präsentiert, lässt sich aber trivial auf geordnete Bäume, die die Anzahl an Kindern pro Knoten nicht beschränken, erweitern. Für ungeordnete Bäume mit Wurzel kann man die Reihenfolge der Kinder willkürlich, nach semantischen Aspekten (z.B. alphabetisch) festlegen oder optimieren. Bekannt ist allerdings, dass das Bestimmen einer Reihenfolge der Kinder, die die Breite der Zeichnung minimiert, im allgemeinen NP-vollständig ist. 7. Graphen 67 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 68 Radiale Zeichnungen ● ● ● ● Radiale Zeichnungen legen Knoten konzentrisch um einen zentralen Punkt herum aus. Sie eignen sich besonders für Bäume, da diese mit zunehmender Entfernung von der Wurzel immer breiter werden. Dazu kann man z.B. Reingold-Tilford durchführen und das Ergebnis als Polarkoordinaten interpretieren. Man kann aber auch direkt die Sektoren der kreisförmige Zeichenfläche unterteilen. [Margaret A. Bernard (1981): „On the Automated Drawing of Graphs.“ Proceedings of the Third Caribbean Conference on Combinatorics and Computing, pp. 43 – 55.] 7. Graphen 69 Zeichnen freier Bäume ● ● ● Freie Bäume sind kreisfreie zusammenhängende Graphen. Sie haben keine ausgezeichnete Wurzel. Schritt 1: Bestimme Wurzel als „zentralen Knoten“ – Knoten, dessen Entfernen den Baum in möglichst gleichgroße Teile zerlegt (Bernard) – Knoten, der den maximalen Abstand zu allen Blättern minimiert (Eades) Algorithmisch sehr ähnlich: – Markiere alle Knoten ki des Baums T mit dem Wert w(ki)=1 – Solange T mehr als einen Knoten enthält: ● Wähle ein Blatt b mit niedrigstem Wert w(b), sein Nachbar sei n ● w(n) ← w(n) + w(b) (Bernard) ● w(n) ← max(w(n), w(b) + 1) (Eades) Lösche b und die Kante {b,n} Optimierungsvorschlag von Eades: Brich den Algorithmus bereits dann ab, wenn der Baum nur noch zwei Knoten gleichen Werts enthält. Deren gemeinsame Kante ist dann das zentrale Element. ● ● 7. Graphen 70 Aufteilung der Kreissektoren ● ● Schritt 2: Hier geht man wieder Teile-und-Herrsche vor: Man weist dem zentralen Element einen Kreissektor von 0 bis 2π zu und zerlegt Kreissektoren rekursiv an Teilbäume. Die Aufteilung passiert proportional entweder: – Anhand der Anzahl an Teilbäumen – Anhand der Anzahl an Knoten in den Teilbäumen Bei der Aufteilung der Kreissektoren auf Unterbäume sollte man sicherstellen, dass Kanten nicht außerhalb der zu ihrer Schicht gehörenden Kreisscheibe verlaufen. Sonst ergeben sich unter Umständen Kantenüberschneidungen. 7. Graphen 71 Bemerkungen ● Man kann die letzte Bedingung auch abschwächen, um eine besseres Ausnutzen des Platzes gegen mögliche aber seltene Überscheidungen einzutauschen. [I.Herman, G. Melancon, M. M. De Ruiter, and M. Delest, „Latour-A Tree Visualization System“, Proc. Symp. Graph Drawing GD'99, pp. 392-399, 1999. Detailierter in: Reports of the Centre for Math. And Computer Sciens, Report number INS-R9904, 1999, available at: http://www.cwi.nl/InfoVisu/papers/LatourOverview.pdf] ● ● Alle besprochenen Baumzeichenalgorithmen sind deterministisch, d. h. bei gleicher Eingabe liefern sie die gleiche Ausgabe. Diese in der Visualisierung sehr sinnvolle Eigenschaft weisen allgemeinere wie z.B. kraftbasierte Ansätze im Allgemeinen nicht mehr auf. 7. Graphen 72 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 74 Baummosaik (TreeMap) – Ansätze 7. Graphen 75 Baummosaik – Beispiel http://www.nytimes.com/imagepages/2007/02/25/business/20070225_CHRYSLER_GRAPHIC.html 7. Graphen 76 Baummosaik – Google Bildersuche 7. Graphen 77 Baummosaik (TreeMap) – Algorithmus ● Wähle ein begrenzendes Rechteck für die Baummosaikdarstellung [M. Bruls 1999] 7. Graphen 78 Baummosaik (TreeMap) – Algorithmus ● ● Wähle ein begrenzendes Rechteck für die Baummosaikdarstellung Für jedes Rechteck in diesem Level das Kindknoten hat: – Unterteile das Rechteck in so viele Streifen, wie der zugehörige Knoten Kinder hat. – Die Flächenverhältnisse der neuen Rechtecke sollen der relativen Größe der Kindknoten entsprechen. – Ist Level eine gerade Zahl unterteile vertikal, sonst horizontal. [M. Bruls 1999] 7. Graphen 79 Baummosaik (TreeMap) – Algorithmus ● ● ● Wähle ein begrenzendes Rechteck für die Baummosaikdarstellung Für jedes Rechteck in diesem Level das Kindknoten hat: – Unterteile das Rechteck in so viele Streifen, wie der zugehörige Knoten Kinder hat. – Die Flächenverhältnisse der neuen Rechtecke sollen der relativen Größe der Kindknoten entsprechen. – Ist Level eine gerade Zahl unterteile vertikal, sonst horizontal. Wiederhole den vorherigen Schritt bis alle Level erreicht sind. [M. Bruls 1999] 7. Graphen 80 Baummosaik (TreeMap) – Algorithmus ● ● ● Wähle ein begrenzendes Rechteck für die Baummosaikdarstellung Für jedes Rechteck in diesem Level das Kindknoten hat: – Unterteile das Rechteck in so viele Streifen, wie der zugehörige Knoten Kinder hat. – Die Flächenverhältnisse der neuen Rechtecke sollen der relativen Größe der Kindknoten entsprechen. – Ist Level eine gerade Zahl unterteile vertikal, sonst horizontal. Wiederhole den vorherigen Schritt bis alle Level erreicht sind. [M. Bruls 1999] 7. Graphen 81 Baummosaik (TreeMap) – Dice and Slice Algorithmus ● ● ● Wähle ein begrenzendes Rechteck für die Baummosaikdarstellung Für jedes Rechteck in diesem Level das Kindknoten hat: – Unterteile das Rechteck in so viele Streifen, wie der zugehörige Knoten Kinder hat. – Die Flächenverhältnisse der neuen Rechtecke sollen der relativen Größe der Kindknoten entsprechen. – Ist Level eine gerade Zahl unterteile vertikal, sonst horizontal. Wiederhole den vorherigen Schritt bis alle Level erreicht sind. [M. Bruls 1999] 7. Graphen 82 Baummosaik (TreeMap) – Dice and Slice Algorithmus ● Probleme: – Kleine Dateien führen zu stark verzerrten Rechtecken. – Wenn alle Dateien gleich groß sind sieht das Ergebnis aus wie Kästchenpapier. 7. Graphen 83 Baummosaik (TreeMap) – Squarified Algorithmus ● Squarified Algorithmus [Bruls 1999] – Idee: Versuche Unterteilungen so zu erzeugen, dass die einzelnen Rechtecke ein Seitenverhältnis nahe 1 haben. Quadratisiertes Baummosaik Quadratisiertes Kissenmosaik [Bruls, Mark, Kees Huizing, and Jarke J. Van Wijk. Squarified treemaps. Springer Vienna, 2000.] 7. Graphen 84 Baummosaik (TreeMap) – Squarified Algorithmus ● Squarified Algorithmus [Bruls 1999] – Idee: Versuche Unterteilungen zu erzeugen, so dass die einzelnen Rechtecke ein Seitenverhältnis nahe 1 haben. 7. Graphen 85 Baummosaik (TreeMap) – Squarified Algorithmus ● Squarified Algorithmus [Bruls 1999] – Idee: Versuche Unterteilungen zu erzeugen, so dass die einzelnen Rechtecke ein Seitenverhältnis nahe 1 haben. 7. Graphen 86 Baummosaik (TreeMap) – Squarified Algorithmus 7. Graphen 87 Voronoi-TreeMaps Die Elemente in TreeMaps müssen nicht immer Rechtecke sein. VoronoiTreeMaps liefern ästhetische TreeMaps mit guten Seitenverhältnissen und beliebiger Form des Rands. Sie verwenden kräftebasiertes Zeichnen zum Bestimmen von Positionen. 7. Graphen [Balzer, M.; Deussen, O.; Lewerentz, C. (2005): „Voronoi treemaps for the visualization of software metrics.“ In Proceedings of the 2005 ACM symposium on Software visualization, pp. 165-172.] 88 Wahrnehmung von Baumkarten Kong et al. beschäftigte sich mit der Wahrnehmung von Baumkarten, insbesondere dem Mythos. [Kong, N.; Heer, J.; Agrawala, M. (2010): „Perceptual guidelines for creating rectangular treemaps.“ In Proceedings of InfoVis 2010, 990-998.] und erstellen aus ihren Experimenten Designrichtlinien. ● Extreme Seitenverhältnisse (mehr als 9:2 bzw. 2:9) sollten vermieden werden. ● Optimierung des durchschnittlichen Seitenverhältnis auf 3:2 scheint besser als 1:1 zu sein. ● Ab ca. 4000 Werten bei Baumhöhe 2 sind Baumkarten Säulendiagrammen überlegen. ● Es ist OK, mit Helligkeit einen weiteren Wert in einer Baumkarte zu kommunizieren. ● Randdicke hat keinen Einfluss (das lag aber wahrscheinlich am Experimentieraufbau). 7. Graphen 89 Semantik von Baumkarten Obwohl sie oft als äquivalent betrachtet werden, sind Hierarchien und Rekursive Unterteilungen nicht ganz dasselbe. Ziemkiewicz und Kosara [Ziemkiewicz, C.; Kosara, R. (2008): „The Shaping of Information by Visual Metaphors.“ In Proceedings of InfoVis, 1269–1276.] untersuchten diesen Effekt und stellten fest, dass die Leistung bei der Verarbeitung von Baumkarten und hierarchisch gezeichneten Bäumen sinkt, wenn die falsche Metapher verwendet wurde. ● Ein Chef steht über seinem Angestellten, enthält ihn aber nicht. ● Ein Order enthält eine Datei, steht aber nicht über ihr. Lektion: Obwohl man Daten im Rechner gleich repräsentieren und verarbeiten kann (Baum), darf sie man sie nicht unbedingt gleich darstellen. Semantische Aspekte berücksichtigen! 7. Graphen 90 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln HV Zeichnung von Binärbäumen ● ● Der HV Zeichenalgorithmus ist ein einfacher Teile-undHerrsche Algorithmus, der den Baum Post-Order durchläuft. Bei der Bearbeitung jedes Knotens muss nur entschieden werden, ob man den linken oder den rechten Teilbaum bevorzugt. Dies hat Einfluss auf das Seitenverhältnis und die Gesamtfläche der Zeichnung. Der Algorithmus kann Bäume in O(n) Zeit und O(n log n) Fläche zeichnen. 7. Graphen 95 H-förmiges Zeichnen von Binärbäumen ● Man kann Binärbäume auch H-förmig auslegen [P. Eades, „Drawing Free Trees“, Bulletin of the Institute for the Combinatorics and its Applications, pp. 10-36, 1992]. ● Auch dies ist ein Teile-und-Herrsche Ansatz 7. Graphen 96 Kegelbäume ● Der Kegelbaum kombiniert Hierachisches und Radiales Zeichnen in 3D. Allerdings rät man aufgrund neuerer Untersuchungen kognitiver Fähigkeiten des Menschen von 3D Darstellungen abstrakter Daten ab (zu viele Überdeckungen → erhöhter Interaktionsaufwand). 7. Graphen 97 Botanical Trees Ernst Kleiberg, Huub van de Wetering, and Jarke J. Van Wijk. 2001. Botanical Visualization of Huge Hierarchies. In Proceedings of the IEEE Symposium on Information Visualization 2001 (INFOVIS'01) (INFOVIS '01). 7. Graphen 98 Botanical Trees 7. Graphen 99 Phyllotaktische Bäume ● ● Bei phyllotaktischen Bäumen hat man sich an in der Natur vorkommenden Spiralmuster inspiriert um Bäume in 3D darzustellen. Auch hier sind die kognitiven Kosten zu hoch um eine funktionale (im Gegensatz zu einer ästhetische) Lösungen darzustellen. [Neumann, Carpendale, and Agarawala: „PhylloTrees: phyllotactic patterns for tree layout.“ Proceedings of EUROVIS 2006, pp. 59–66.] 7. Graphen 100 3D Hierachiedarstellungen Graph Visualization and Navigation in Information Visualization: a Survey (2000), Ivan Herman , Guy Melançon , M. Scott Marshall , IEEE Transactions on Visualization and Computer Graphics http://www.caida.org/tools/visualization/walrus 7. Graphen 101 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln http://www.bonkersworld.net/organizational-charts/ 7. Graphen 103 Gerichtete Graphen 7. Graphen 104 Sugiyama – Ansatz ● Zum Zeichnen gerichteter Graphen (DAGs) schlug Sugiyama et al. vor, das Problem in drei Schritte zu zerlegen: a Sortieren der Knoten in Schichten, so dass Kanten stets von höheren in niedrigere Schichten zeigen, füge virtuelle Knoten für lange Kanten ein b Sortieren der Knoten innerhalb der Schichten zur Minimierung der Anzahl Kantenkreuzungen c Verschieben der Knoten innerhalb Schichten zur besseren Lesbarkeit von Kanten Sugiyama, Tagawa, and Toda: „Methods for Visual Understanding of Hierarchical System Structures.“ IEEE Transactions on Systems, Man, and Cybernetics SMC-1(2), 1981. 7. Graphen 105 Sugiyama – Probleme ● Leider erwies sich jedes der Teilprobleme als besonders hartnäckig: – Um einen gerichteten Graphen azyklisch zu machen, muss man entweder einen maximalen azyklischen Teilgraph finden oder eine minimale Anzahl an Kanten umdrehen. Beide Probleme haben sich als NP-vollständig erwiesen. – Um Knoten in Schichten zu ordnen, so dass die durchschnittliche Anzahl an Schichten die die Kanten überspannen minimiert wird, hat sich als NP-vollständig erwiesen. – Die Minimierung an Kantenkreuzungen zwischen je zwei Schichten ist NP-vollständig, die globale Minimierung somit auch. – Knoten innerhalb Schichten verschieben ist für viele Optimalitätskriterien (z.B. minimale Anzahl an Kantenknicken) ebenfalls in NP. 7. Graphen 106 Dot Algorithmus ● ● Der dot Algorithmus (Gansner et al., 1993) bietet für diese Teilprobleme jeweils Heuristiken an. Er unterstützt die folgenden Ästhetikkriterien: – Hierarchie hervorheben, Kanten möglichst in eine Richtung zeigen lassen, um Quellen und Senken möglichst einfach zu finden und Pfade einfach verfolgen zu können. – Anomalien vermeiden, die die zugrundelegende Graphenstruktur misrepräsentieren: Kantenkreuzungen und scharfe Kantenknicke – Kanten möglichst kurz halten um sie leichter verfolgen zu können. – Symmetrie und Balance hervorheben (sekundär). 7. Graphen 107 Dot Algorithmus – Zykel entfernen ● ● ● ● ● Zum entfernen von Zyklen wird eine sehr einfache Heuristik angewandt: – Führe Tiefensuche ausgehend von den Quellen des Graphen durch (falls keine Quelle existiert, wähle einen Knoten mit vielen ausgehenden Kanten) – Die Tiefensuche ergibt einen Spannbaum, klassifiziere Kanten ● Spannbaumkanten ● Vorwärtskanten (konsistent mit Richtung der Spannbaumkanten) ● Rückwärtskanten (inkonsistent mit Richtung der Spannbaumkanten) ● Querkanten (verbinden unabhängige Teilbäume) – Drehe alle Rückwärtskanten um Wenn Knoten in die oberste/unterste Schicht gelegt werden sollen, werden deren eingehende/ausgehende Kanten im Vorfeld umgedreht. Die Originalrichtung muss sich gemerkt werden und wird später durch Pfeile an den Kanten wieder richtig kommuniziert. Der Algorithmus macht einen Graphen in O(|E|) Zeit und Speicher azyklisch. Es gibt auch bessere Heuristiken für dieses Problem, aber laut Autoren funktioniert diese Heuristik für die in der Praxis vorkommenden Graphen sehr gut, da selten/wenige Kanten umgekehrt werden müssen. 7. Graphen 108 Dot Algorithmus – Schichtung ● Für die Schichtung präsentieren Gansner et al. eine einfache Heuristik. Sie vereinfachen das Problem zu einem linearen Programm: min ∑ w (u , v )(λ (v)−λ (u)) (u , v )∈ E mit : λ (v )−λ (u)≥δ(u , v) ∀ (u , v)∈ E ● ● ● Dabei gibt λ(x) die (zu bestimmende) Schicht von x, δ(x,y) die ganzzahlige Mindestlänge der Kante (x,y) und w(x,y) die nichtnegative Wichtigkeit der Kante (x,y) an. Das lineare Programm lässt sich mit dem Simplex-Algorithmus lösen (→ Kombinatorische Optimierung, → Algorithmische Geometrie), Gansner et al. geben hierfür einen eigenen Algorithmus an, der das Problem in polynomieller Zeit löst. Um zu unterstützen, dass Knotengruppen der selben Schicht zugeordnet werden, werden diese für diesen Abschnitt des Algorithmus durch einen neuen Knoten ersetzt, der die Kanten der anderen Knoten übernimmt. Zum Schluss wird jede Kante, die mehr als eine Schicht überspannt, in Einzelkanten zerlegt die jeweils zwischen zwei Nachbarschichten verlaufen. Dabei werden virtuelle Knoten eingefügt. 7. Graphen 109 Dot Algorithmus – Kreuzungsminimierung 7. Graphen 110 Dot Algorithmus – Kreuzungsminimierung ● ● ● Der Graph mit virtuellen Knoten wird mit Breiten- oder Tiefensuche durchlaufen, dabei bestimmt die Auftrittsreihenfolge regulärer und virtueller Knoten die anfängliche Reihenfolge innerhalb der Schichten. Dieses Vorgehen erreicht, dass wenn der Graph z.B. ein Baum ist, seine anfängliche Knotenreihenfolge keinerlei Kantenkreuzungen produziert. Die anfängliche Reihenfolge wird dann iterativ verbessert, wobei in jeder Iteration abwechselnd absteigend und aufsteigend durch die Schichten gegangen wird. Unter Festhalten der Knotenreihenfolge in der i-ten Schicht bestimmt man dann heuristisch eine optimale Knotenreihenfolge in der i±1-ten Schicht. Dafür kann man u.A. folgende Möglichkeiten verwenden: – Jeder Knoten der variablen Schicht erhält den Median der Ränge seiner Nachbarn in der festen Schicht. (erzeugt höchsten 3-mal soviele Kantenkreuzungen wie nötig) – Jeder Knoten der variablen Schicht erhält den Mittelwert der Ränge seiner Nachbarn in der festen Schicht. (kann Gewichte bei der Mittelwertbestimmung berücksichtigen) Die neue Knotenreihenfolge ergibt sich aus dem Sortierrang der Knotenwerte. Anschließend werden benachbarte Knoten vertauscht solange dies die Anzahl gewichteten Kantenkreuzungen verringert. Danach wird mit der nächsten Schicht fortgefahren. 7. Graphen 111 Dot Algorithmus – Positionierung 7. Graphen 112 Dot Algorithmus – Positionierung ● ● Die Positionierungsphase erzeugt nun aus dem Graphen (V',E') mit virtuellen Knoten und deren Reihenfolge pro Schicht einen neuen azyklischen gerichteten Graphen mit Knotenmenge V'' = V' ∪ E' und einer Kantenmenge E'' wie folgt: – Für jede Kante e = (u,v) in E' werden zwei neue Kanten (e,u) und (e,v) in E'' erzeugt mit Gewicht w(e,u) = w(e,v) = Ω(u,v)w(u,v) und Mindestlänge δ(e,u) = δ(e,v) = 0. Ω(u,v) ist dabei 1 wenn u und v reguläre Knoten sind, 8 wenn u und v virtuelle Knoten sind und 2 sonst. – Für je zwei aufeinanderfolgende Knoten u,v der selben Schicht wird eine Kante (u,v) in E'' erzeugt mit Gewicht w(e,u) = 0 und Mindestlänge δ(u,v) = nodesep(G) + 0.5 (width(u) + width(v)) Der Graph (V'',E'') erhält dann wie bei der Ebenzuweisung mit einem linearen Programm horizontale Koordinaten. min ∑ w (u , v )( x(v )− x(u)) (u , v )∈ E mit : x (v)−x (u)≥δ(u , v) ∀(u , v )∈ E ● Die Wahl von Ω sorgt dabei dafür, dass Kanten mit vielen virtuellen Knoten möglichst gerade gezeichnet werden (Minimiere Kantenbiegungen). 7. Graphen 113 Dot Algorithmus – Knotenports ● Möchte man dass Kanten an bestimmten Stellen auf Knoten starten/enden kann man dies leicht durch die Anpassung von δ in (V'',E'') erreichen: 7. Graphen 114 Dot Algorithmus – Nachbearbeitung ● Zum Schluss werden virtuelle Knoten in Stützstellen für Splines verwandelt, eventuelle Schlingen hinzugefügt und Knoten und Kanten beschriftet. Im unteren Bild wurde zudem horizontal und vertikal getauscht. 7. Graphen 115 Dot Algorithmus – Unterstütze Beschränkungen ● Der dot Algorithmus unterstützt sehr viele Beschränkungen – xsize(v), ysize(v) – Größe der Knoten bzw. derer Bezeichner – nodesep(G), ranksep(G) – horizontaler bzw. vertikaler Knotenmindestabstand – w(e) – Wichtigkeit einer Kante, diese wird bevorzugt kürzer/gerader gezeichnet Knoten können in die selbe Schicht gruppiert werden Knoten können in die oberste/unterste Schicht platziert werden. – – 7. Graphen 116 Dot Algorithmus – Bemerkungen ● ● ● ● ● Der dot Algorithmus ist ein Beispiel für einen sehr vielseitigen Zeichenalgorithmus. Er ist frei erhältlich im populären GraphViz Programmpaket. Für das Lösen linearer Programme gibt es Bibliotheken, die Implementierung ist damit auch nicht so aufwändig. Ausgewogenere Ergebnisse erhält man, wenn man versucht horizontale und vertikale Abstandsquadrate zu minimieren. Dafür kann man das lineare durch ein quadratisches Programm ersetzen. Die Laufzeit wird stark von der Anzahl virtueller Knoten bestimmt. Diese Anzahl ist im schlimmsten Fall in O(max{|V|3, |E|2}). [A. Frick, “Upper Bounds on the Number of Hidden Nodes in Sugiyama’s Algorithm,” Graph Drawing, S.C. North, ed., pp. 169-183, Springer, 1996.] ● Eine schnellere Lösung wird von Eigelsperger et al. vorgeschlagen: Die Anzahl virtueller Knoten pro Kante wird auf 2 begrenzt. Der Algorithmus ist viel komplizierter und liefert im Allgemeinen schlechtere Ergebnisse (mehr Kantenüberschneidungen). [M. Eiglsperger, M. Siebenhaller, and M. Kaufmann, “An Efficient Implementation of Sugiyama’s Algorithm for Layered Graph Drawing,” Graph Drawing, J. Pach, ed., pp. 155-166, Springer, 2004.] 7. Graphen 117 Beispiel: Satzalignment Stefan Jänicke, Universität Leipzig. Aktueller Prototyp. [Jänicke, S.; Geßner, A.; Büchler, M.; Scheuermann, G. „Visualization for text reuse“, accepted for VISIGRAPP 2014] 7. Graphen 118 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 119 Übung ● Zeichnet folgenden durch eine Adjazenzmatrix gegebenen Graphen: 7. Graphen 120 http://www.facebook.com/note.php? note_id=469716398919 7. Graphen 121 High School Dating http://www-personal.umich.edu/~mejn/networks/ Daten zum Bild: Peter S. Bearman, James Moody, and Katherine Stovel, Chains of affection: The structure of adolescent romantic and sexual network, American Journal of Sociology 110, 44-91 (2004). 7. Graphen 122 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. Weitere Darstellungen 4. Anwendungsbeispiel: Wörterbaum 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Topologisches Zeichnen 3. Kraftbasiertes Kantenbündeln 7. Graphen 123 Kraftbasierte Ansätze ● Kraftbasierte Methoden orientieren sich an einem physikalischen Modell mit Kräften bzw. potentieller Energie, die minimiert werden. Da sie intuitiv zu verstehen, relativ einfach zu implementieren sind und zugleich oft gute Ergebnisse liefern, sind sie sehr beliebt. Ein einfache Illustration findet sich im Bild. Videos: http://vimeo.com/4356593 http://www.youtube.com/watch?v=GyWuYMsYu48 7. Graphen 124 Kraftbasiertes Knotenpositionieren ● ● ● ● Grob sieht jeder kraftbasierte Knotenpositionierungsalgorithmus gleich aus: 1 Bestimme Anfangsposition aller Knoten 2 Wiederhole bis eine feste Anzahl an Iterationen abgearbeitet oder Knotenpositionen sich kaum mehr ändern: ● Berechne F(vi) für alle vi∈V ● Verschiebe p(vi) um Δ∙F(vi) Δ wird in der Regel in jeder Iteration verkleinert. Der Algorithmus ist deterministisch, wenn die Anfangspositionen deterministisch bestimmt werden. Man bemerke, dass die Simulation physikalisch nicht korrekt ist, Kräfte werden proportional zu Geschwindigkeiten betrachtet anstatt, wie richtig, proportional zu Beschleunigungen. 7. Graphen 125 Kraftbasiertes Knotenpositionieren ● Für die Anfangspositionen können Knoten z.B. zufällig, regelmäßig oder phyllotaktisch angeordnet werden. Das phyllotaktische Muster erhält man mit (i > 0, Φ = (1 + √5) / 2): 2 πi 1+Φ 2πi y i = √ i sin 1+Φ x i = √ i cos 7. Graphen 126 Fruchterman-Reingold Algorithmus – Kraftmodell ● Der Fruchterman-Reingold Algorithmus nutzt ein sehr einfaches Kraftmodell: pu− pv pu− pv F (v )= ∑ f a (‖p u − p v‖) + ∑ f r (‖ p u − p v‖) ‖p − p ‖ ‖ p u − p v‖ {u , v }∈E u ∈V ∖ {v } u v mit Knotenpositionen pu, pv und dem Euklidischen Abstand ||pu – pv|| und d2 f a (d )= k ● ● ● k2 f r (d )=− d Dieses Modell hat keine direkte physikalische Interpretation und enthält nur eine Konstante k. Die Formeln sind so gewählt, dass k dem optimalen Abstand zweier Knoten entspricht. k= √ A Dies ermöglicht die Bestimmung von k anhand der gewünschten Fläche A der Zeichnung: Damit das System schneller konvergiert, werden Punkte maximal um einen Wert T verschoben, dieser wird mit jeder Iteration kleiner (z.B. Ti = k/i). [Fruchterman und Reingold: „Graph Drawing by Force-directed Placement.“ Software – Practice and Expirience 21(11), 1129-1164, 1991.] 7. Graphen 127 Fruchterman-Reingold Algorithmus – Laufzeitoptimierung ● ● ● ● Fruchterman und Reingold schlagen weiterhin vor, da abstoßende Kräfte zwischen weit entfernten Knoten vernachlässigbar sind, diese gar nicht erst zu berechnen. Dazu wird die Zeichenfläche in |V|/4 Zellen der Seitenlänge 2k zerlegt und in jeder Iteration die Knoten in ihre jeweilige Zelle einsortiert (mit O(|V|) Aufwand). Abstoßende Kräfte werden dann nur noch zwischen Knoten der selben oder benachbarter Zellen berechnet. Bei gleichförmiger Knotenverteilung sind dies nur O(|V|) statt O(|V|2) viele. So ist die Zeit pro Iteration O(|E|+|V|). Damit Knoten nicht aus dem Gitter herauswandern, müssen sie am Rand reflektiert oder gestoppt werden. Letzteres führt zu besserer Konvergenz. 7. Graphen 128 Fruchterman-Reingold Algorithmus – Kraftmodell ● Der Fruchterman-Reingold Algorithmus nutzt ein sehr einfaches Kraftmodell: pu− pv pu− pv F (v )= ∑ f a (∥p u − p v∥) + ∑ f r (∥ p u − p v∥) ∥p − p ∥ ∥ p u − p v∥ {u , v }∈E u ∈V ∖ {v } u v mit Knotenpositionen pu, pv und dem Euklidischen Abstand ||pu – pv|| und d2 f a (d )= k ● ● ● k2 f r (d )=− d Dieses Modell hat keine direkte physikalische Interpretation und enthält nur eine Konstante k. Die Formeln sind so gewählt, dass k dem optimalen Abstand zweier Knoten entspricht. k= √ A Dies ermöglicht die Bestimmung von k anhand der gewünschten Fläche A der Zeichnung: Damit das System schneller konvergiert, werden Punkte maximal um einen Wert T verschoben, dieser wird mit jeder Iteration kleiner (z.B. Ti = k/i). [Fruchterman und Reingold: „Graph Drawing by Force-directed Placement.“ Software – Practice and Expirience 21(11), 1129-1164, 1991.] 7. Graphen 129 Verallgemeinertes Feder-Kraft-Modell ● Ein allgemeinerer Ansatz nutzt elektrische Kräfte und Federn, wobei jeder Knoten v als positiv geladenes Teilchen und jede Kante e = {u, v} als Feder mit vorgegebener Ruhelänge luv modelliert wird. Die Kraft auf einen Knoten v ist F (v )= ∑ u∈ N ( v) f uv + ∑ u∈V ∖ {v } g uv wobei fuv die Kraft auf v durch die Feder zwischen u und v ist und guv eine elektrische Abstoßung von v durch u modelliert. ● Genauer gilt p −p u v F (v )= k (1) (∥ p − p ∥−l ) uv u v uv ∥ p − p ∥ u∈ N ( v) u v ∑ + ∑ u ∈V ∖ {v } k (2) uv pv − pu ∥p v − p u∥3 mit den den Federkonstanten kuv(1) und der ladungsbasierten Abstoßungsstärke kuv(2). 7. Graphen 130 Kraftbasierte Ansätze – Anwendungen 7. Graphen 131 Kraftbasierte Knotenpositionen für Digraphen ● ● Durch Modellierung von Magnetfeldern in den Kraftsystemen lassen sich sogar gerichtete Graphen darstellen. Kanten werden dabei zusätzlich als Dauermagnete modelliert, die sich tendenziell entlang des Magnetfeldes ausrichten. Für verschiedene Formen von Magnetfelder ergeben sich verschiedene Darstellungen, z.B. hierarchisch in (a), radial in (b), zyklisch in (c). [Sugiyama, K; Misue, K. (1995), „Graph Drawing by the Magnetic Spring Model“, Journal of Visual Languages and Computing 6:217-231] 7. Graphen 132 Simulierte Abkühlung (Simulated Annealing) ● Wenn die Berechnung der Kräfte rechenaufwändig/unmöglich ist (z.B. weil die Energie keine wohldefinierte Ableitung hat), kann man stattdessen die Energie direkt minimieren: 1 Bestimme Anfangsposition aller Knoten 2 Wiederhole bis eine feste Anzahl an Iterationen abgearbeitet oder die Energie sich kaum mehr ändert: ● ● ● ● (asynchron) Verschiebe einen zufällig gewählten Knoten v um einen zufälligen Vektor Δ fester Länge (synchron) Verschiebe alle vi∈V um zufällige Vektoren Δi fester Länge Bestimme Zufallszahl q gleichverteilt in [0,1] und berechne Energieänderung verwirf neue Konfiguration wenn E − E neu q≤exp alt T ( ) (Energieverringerungen werden stets akzeptiert, Energieerhöhungen manchmal) ● ● Die Temperatur T wird im Lauf der Zeit verringert, z.B. Ti = 1/i Dieser Algorithmus ist nichtdeterministisch. Er ermöglicht es aber, die Energiefunktion beliebig zu erweitern, z.B. durch einen Term für die Anzahl an Kantenkreuzungen. [Davidson&Harel (1996) „Drawing graphs nicely using simulated annealing“, ACM Trans. Graphics, 15(4):301–331.] 7. Graphen 133 Das Problem der Konvergenz ● ● ● ● Wie wir gesehen haben minimieren kraftbasierte Methoden eine Zielfunktion (Energie) durch Finden von Nullstellen in der Ableitung (Kräftegleichgewicht). Dabei stellt nicht jedes Kräftegleichgewicht ein globales Minimum der Energie dar. Systeme können in lokalen Minima stecken bleiben. Hier muss man eine Entscheidung treffen: Deterministische Ansätze liefern stets die gleiche (möglicherweise schlechte) Darstellung, nichtdeterministische Ansätze stets eine andere, dafür von Zeit zu Zeit bessere Darstellung. Einen Ausweg bieten Mehrebenenverfahren an, die den Graph schrittweise vergröbern und die Zeichnung feinerer Graphen durch kleine Verbesserungen der Darstellung gröberer Graphen generieren. Zusätzlich sind diese Verfahren sehr viel schneller. [Hachul, S., & Jünger, M. (2005). Drawing large graphs with a potential-fieldbased multilevel algorithm. In Graph Drawing (pp. 285-295).] 7. Graphen 134 Ästhetikkriterien und Einschränkungen für kraftbasierte Ansätze Kraftbasierte Methoden unterstützen in der Regel die folgenden Ästhetikkriterien: ● Gleichmäßige Knotenverteilung und Kantenlängen ● Hervorheben von Symmetrien ● Hervorheben von Clustern ● Kantenschnittminimierung (Nebeneffekt) Die kraftbasierten Methoden lassen sich gut mit Einschränkungen kombinieren ● festgelegte Positionen einiger Knoten, mobile/behäbige Knoten ● fixierte Teilgraphen ● vorgegebener Rahmen für den Graphen ● durch Energie ausdrückbare Beschränkungen (z.B. unterschiedliche Abstände zwischen Knoten) verbinden. 7. Graphen 135 Eigenschaften Vorteile: ● Sehr flexibel, gute Einflussmöglichkeiten ● Leicht zu implementieren ● Ästhetische Resultate Nachteile: ● Kraftbasierte Methoden benötigen oft viel Rechenaufwand O(N³), N ist Anzahl der Knoten. Daher sind effiziente Minimierungsmethoden nötig. Entweder wird der Zufall bemüht (Simulated Annealing, Behandlung steifer Differentialgleichungen, Kombinatorische Vorbehandlung) oder es werden geeignete Heuristiken verwendet. ● Nichtdeterministisches Layout (zwei Layouts des gleichen/ähnlicher Graphen können sehr verschieden aussehen. Weitere Details ergeben sich aus dem Buch von [Battista, Eades, Tamassia, Tollis. Graph Drawing. Prentice Hall, Upper Saddle River, NJ, USA, 1999] der dort zitierten Literatur und den Proceedings der Graph Drawing Conference Series. 7. Graphen 136 7. Graphen 137 Inhaltsverzeichnis 1. Theorie des Graphenzeichnens 1. Definitionen und Grundbegriffe 2. Grundkonzepte des Graphzeichnens 3. Zeichenstrategien 4. Taxonomie des Graphzeichnens 2. Darstellung von Bäumen 1. Hierarchische Darstellung 2. Radiale Darstellung 3. TreeMap 4. Weitere Darstellungen 3. Hierarchische Darstellung gerichteter Graphen 4. Darstellung ungerichteter Graphen 1. Kraftbasiertes Knotenpositionieren 2. Kraftbasiertes Kantenbündeln 7. Graphen 155 Motivation 7. Graphen 156 Motivation 7. Graphen 157 Motivation Oft besitzt der Graph einfach zu viele Kanten um sinnvoll durch Geradlinienzeichnung dargestellt zu werden, oder Knotenpositionen sind fest vorgegeben. Im folgenden soll es um eine Methode der gebogenen Darstellung von Kanten gehen, die etwas Licht auf die Grobstruktur des Graphen werfen soll. Individuelle Kanten spielen dabei keine Rolle mehr. Ursprünglich wurde der Algorithmus für Graphen mit Hierarchie entwickelt. [Holten, D. (2006). Hierarchical edge bundles: „Visualization of adjacency relations in hierarchical data.“ IEEE TVCG 12(5):741-748] 7. Graphen 158 Kraftbasiertes Kantenbündeln – Überblick Im Kern zerlegt der Algorithmus von Holten und van Wijk (2009) Kanten in kürzere Kanten und lässt die dabei eingefügten Knoten sich untereinander anziehen und abstoßen. ● Schritt 1: Zerlege jede Kante in N Teilstücke (Holten wählt N=20) ● Schritt 2: Wiederhole bis sich Knotenpositionen nur noch wenig ändern: – Berechne anziehende Kräfte Fs zwischen Knoten entlang einer Kante. – Berechne anziehende Kräfte Fe zwischen Knoten gleicher Nummer für alle Paare von Kanten. – Verschiebe Knoten (außer den Enden) wie bei üblichen kraftbasierten Verfahren. Einzelkanten versuchen sich zusammenzuziehen, Kantenpaare versuchen sich gegenseitig anzuziehen. Im Kräftegleichgewicht ergibt sich eine gebündelte Struktur. Offensichtlich hat der Algorithmus eine lange Laufzeit von O(N|E|2) pro Iteration, lässt sich aber trivial parallelisieren. 7. Graphen 159 Kraftbasiertes Kantenbündeln – Kantenkompatibilität ● Der so vorgestellte Algorithmus liefert noch unbrauchbare Bilder. Nicht alle Kanten sollten gebündelt werden. 7. Graphen 160 Kraftbasiertes Kantenbündeln – Kantenkompatibilität ● ● Um schlechte Bündlung zu vermeiden, definieren Holten und van Wijk Kantenkompatibilitätsmaße: (a) Der Winkel, (b) der relative Längenunterschied, (c) der Positionsunterschied (Entfernung der Mittelpunkte geteilt durch die durchschnittliche Länge) und (d) Überdeckungsunterschied des Kantenpaares. Die Gesamtkompatibilität ist das Produkt der Einzelkompatibilitäten und wird einmal zu Beginn der Verfahrens berechnet. Bestimmte Kantenpaare, deren Kompatibilität zu gering ist, können in der Hauptiteration übergangen werden, was den Algorithmus beschleunigt. 7. Graphen 161 Kraftbasiertes Kantenbündeln – Nachbearbeitung ● ● Die zerlegten Kanten werden durch B-Splinekurven gezeichnet und geglättet. Ähnlich Heatmaps/kontinuierlichen Streudiagrammen/Parallelen Koordinaten wird jeder Punkt des Bildschirms anhand der Anzahl an Kanten, die ihn überdecken, eingefärbt. 7. Graphen 162 Beispiele – US Fluglinien 7. Graphen 163 Beispiele – US Fluglinien 7. Graphen 164 Beispiele – US Migration 7. Graphen 165 Schlussbemerkung 7. Graphen 166 Schlussbemerkung Im Graphenzeichen kann jedes Darstellungsproblem in ein mathematisches Optimierungsproblem überführt werden. Dies wurde unter Anderem ermöglicht durch: ● die abstrakte und einfache Struktur von Graphen ● die Definition von Ästhetikkriterien, trotzdem diese zum Teil vage formuliert sind (z.B. Symmetrie aufzeigen) oder sich als irrelevant für Kognition herausgestellt haben (z.B. Minimierung von Kantenlängen). Allerdings zeigen die vielen NP-vollständigen Probleme in diesem Bereich, dass das Problem der besten Darstellung weiterhin schwierig bleibt. 7. Graphen 167 Referenzen Die Erklärungen folgen den Beschreibungen in: ● Diestel, R. (2006): „Graphentheorie,“ 3. Auflage, Springer. ● di Battista, G.; Eades, P.; Tamassia, T.; Tollis, I. G. (1999): „Graph Drawing: Algorithms for the Visualization of Graphs“, Prentice Hall. ● Wattenberg, M.; Viégas, F. B. (2008): „The word tree, an interactive visual concordance.“ Visualization and Computer Graphics, IEEE Transactions on, 14(6):1221–1228. ● Gansner, E.R.; Koutsofios, E. ; North, S.C. ; Vo K.-P. (1993): „A technique for drawing directed graphs.“, IEEE Transactions on Software Engineering, 19(3):214–230. ● Archambault, D.; Munzner, T.; Auber, D (2006): „TopoLayout: Multi-Level Graph Layout by Topological Features“, IEEE Transactions on Visualization and Computer Graphics 13(2):305– 317. ● Holten, D.; Van Wijk, J. J. (2009): „Force‐Directed Edge Bundling for Graph Visualization.“ In Proceedings of EuroVis 2009, pp. 983-990. 7. Graphen 168