Graphen - IWR Heidelberg

Werbung
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
Herunterladen