Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]

Ähnliche Präsentationen


Präsentation zum Thema: "PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]"—  Präsentation transkript:

1 PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999] Bernd Zey

2 27.10.05Compounds & Force-Directed – Bernd Zey 3.Zeichen-Algorithmus für Compounds 1.Einleitung 2.Was sind Cluster-, Compound-, Nested- Graphen? Übersicht – Worum gehts?

3 27.10.05Compounds & Force-Directed – Bernd Zey2 Darstellung von Relationen Graphen Grenzen des klassischen Graph-Modells werden schnell erreicht Cluster-, Compound-, Nested-, Hyper- Graphen 1.Einleitung

4 27.10.05Compounds & Force-Directed – Bernd Zey3 Hyper-Graphen sind vielfältig und können Inklusionen, Schnitte und Relationen in einem Diagramm darstellen 1.Einleitung – Hyper-Graphen A B C D E F G H I J K L M

5 27.10.05Compounds & Force-Directed – Bernd Zey4 1.Einleitung – Cluster-Graphen Einteilung von Knoten in Cluster

6 27.10.05Compounds & Force-Directed – Bernd Zey5 161314 153 2 8 11 5 17 10 6 4 1 7 Compound = Mittelweg zwischen Cluster und Hyper 1.Einleitung – Compound-Graphen Inklusionen bzw. Hierarchien als auch Relationen

7 27.10.05Compounds & Force-Directed – Bernd Zey6 Wird definiert durch einen Baum und einen (un)gerichteten Graph Baum Hierarchie Knotenmengen sind identisch, die Kantenmengen unterscheiden sich 2.Was ist ein Compound-Graph? Graph Relationen

8 27.10.05Compounds & Force-Directed – Bernd Zey7 4 2 5 1 3 76 15 14 13 16 8 10 11 17 161314 153 2 8 11 5 17 10 6 4 1 7 2.Was ist ein Compound-Graph? 1 23451767 15141311108 16

9 27.10.05Compounds & Force-Directed – Bernd Zey8 2.Compound-Graph – alternative Darstellung 4 2 5 1 3 76 15 14 13 16 8 10 11 17 1 2345 67 15141311108 16 1 23451767 15141311108 16

10 27.10.05Compounds & Force-Directed – Bernd Zey9 2.Formale Definition eines Compound-Graphen Ein Compound-Graph wird definiert durch ein Paar C = (G,T) mit G ist ein Graph: G = (V,E G ) T ist ein Baum: T = (V,E T,r), wobei folgende Bedingung erfüllt ist: (a,b) E G a Vorfahren(b) und b Vorfahren(a) 14 1361413 6 14 13 6

11 27.10.05Compounds & Force-Directed – Bernd Zey10 Compound-Graph, in dem nur Kanten zwischen Blättern existieren Formal: Ein Cluster-Graph Cl = (G,T) ist ein Compound- Graph mit (a,b) E G : a Blätter(T) & b Blätter(T) 2.Formale Definition eines Cluster-Graphen

12 27.10.05Compounds & Force-Directed – Bernd Zey11 7 6 48 1 9 10 5 3 2 2.Cluster-Graph – Beispiel 76481 9 11 10 5 32

13 27.10.05Compounds & Force-Directed – Bernd Zey12 3.Zeichen-Algorithmus Vielzahl von Algorithmen für Cluster-Graphen Beispiel: Cluster Planarization SpanningTree, SimpleReinsertion, Reinsertion (Materialisierung der Cluster, Dualer Graph) Ziel: Algorithmus für Compound-Graphen

14 27.10.05Compounds & Force-Directed – Bernd Zey13 44 3.Zeichen-Algorithmus – Idee 161314 153 2 8 11 5 17 10 6 1 7 4 2 5 1 3 76 15 14 13 16 8 10 11 17 1 2345 67 15141311108 16 1 44 6 7 10 161314 153 2 8 11 5 17

15 27.10.05Compounds & Force-Directed – Bernd Zey14 3.Definition: Nested- Graph Formal: Ein Nested-Graph N = (G,T) ist ein Compound- Graph mit (a,b) E G : Elter(a) = Elter(b) Nested-Graph = Compound-Graph, in dem Kanten nur zwischen Geschwistern existieren

16 27.10.05Compounds & Force-Directed – Bernd Zey15 1 23451767 15141311108 16 1314 153 2 8 11 5 17 10 6 4 1 7 3.Nested- Graph

17 27.10.05Compounds & Force-Directed – Bernd Zey16 3.Algorithmus zum Compound-Zeichnen – NUAGE NUAGE ist ein Rahmenalgorithmus Idee: Konstruktion eines Nested-Graphen aus dem Compound-Graphen Zeichenalgorithmen als Unterprogramme

18 27.10.05Compounds & Force-Directed – Bernd Zey17 3.Algorithmus – Beschreibung Schritt 1: Konstruktion des Nested-Graphen Schritt 2: Berechne Positionen und Größe der Knoten Schritt 3: Transformation in den Compound-Graphen Schritt 4: Zeichnung erstellen

19 27.10.05Compounds & Force-Directed – Bernd Zey18 Für e = (a,b) E G : Wenn Elter(a) = Elter(b) (a,b) E H Ansonsten: suche Vorfahren a,b von a,b mit Elter(a) = Elter(b) (a,b) E H 3.Algorithmus – Schritt 1 Gegeben: Compound-Graph mit Kantenmenge E G Gesucht: Nested-Graph mit Kantenmenge E H Schritt 1: Konstruktion des Nested-Graphen

20 27.10.05Compounds & Force-Directed – Bernd Zey19 3.Konstruktion des Nested-Graphen – Beispiel 1 23451767 15141311108 16 1314 153 2 8 11 5 17 10 6 4 1 7 1 6 7 4 161314 153 2 8 11 5 17

21 27.10.05Compounds & Force-Directed – Bernd Zey20 3.Algorithmus – Schritt 2 Schritt 2: Berechne Positionen und Größe der Knoten Basiert auf den klassischen Graph-Zeichen-Algorithmen Funktionsweise des Algorithmus: DFS-Durchlauf durch den Baum Jeder Teilgraph wird betrachtet

22 27.10.05Compounds & Force-Directed – Bernd Zey21 Für jeden inneren Knoten v wird der Teilgraph G mit v als Wurzel betrachtet Unteralgorithmus Größe und Position für jeden Knoten Berechne die Größe des Rechtecks, welches G enthält Es wird für alle Knoten in G die relative Position gesetzt Nach einem vollständigen DFS wird jedem Knoten seine absolute Position zugewiesen 3.Algorithmus – Schritt 2

23 27.10.05Compounds & Force-Directed – Bernd Zey22 3.Algorithmus – Schritt 2 Procedure FLEUR (N) Begin relative_position(r); absolute_position(r,0,0); End; Eingabe: Nested-Graph, Größe jedes Blatt-Knotens Ausgabe: Position und Größe aller Knoten in N

24 27.10.05Compounds & Force-Directed – Bernd Zey23 Procedure relative_position(v:node) Begin If Kinder(v) then begin For all s Kinder(v) do relative_position(s); H := Teilgraph von G mit v als Wurzel; Berechne Positionen von Knoten in H mit Hilfe eines Unteralgorithmus; Berechne die bounded-box von H; Setze relative Position von Knoten in H; end; End; 3.Algorithmus – Schritt 2 – Pseudocode

25 27.10.05Compounds & Force-Directed – Bernd Zey24 3.Algorithmus – Schritt 2 – Beispiel 532 9 8 11 6 7 10 1 4 1 45 67 238911 1 45 1067 23 9 8 11 2 4 3 5 89 1067 1

26 27.10.05Compounds & Force-Directed – Bernd Zey25 3.Zwischenresultat Schritt 1: Compound Nested Schritt 2: Berechne Positionen und Größe der Knoten Nun: Schritt 3: Nested-Graph Compound-Graph Vorgehensweise: Kanten zurück biegen

27 27.10.05Compounds & Force-Directed – Bernd Zey26 16 1314 153 8 11 5 10 4 1 7 3.Algorithmus – Schritt 3 PROBLEM! 16 1314 153 8 11 10 4 1 7 5

28 27.10.05Compounds & Force-Directed – Bernd Zey27 3.Algorithmus – Problem NUAGE ignoriert Kanten, welche im Schritt Compound Nested verändert wurden Kantenkreuzungen möglich Lösungen? Kantenlängen minimieren Knoten - die Kanten nach außen haben - an den Rand schieben

29 27.10.05Compounds & Force-Directed – Bernd Zey28 3.Algorithmus – Problemlösung Vorgehensweise zur Verbesserung: Betrachte Kanten, welche zwischen Knoten mit unterschiedlichem Elter verlaufen force-directed-Algorithmus, welcher die Abstoßungskraft ignoriert Dadurch erhält man den gewünschten Effekt

30 27.10.05Compounds & Force-Directed – Bernd Zey29 3.Algorithmus – Problemlösungs-Beispiel 16 1314 153 8 11 10 4 1 7 5 1 7 4 16 1314 153 8 11 5 1 7 4 10 16 1314 153 8 115 1 7 4 10 16 1314 153 8 115

31 27.10.05Compounds & Force-Directed – Bernd Zey30 Literatur: Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs Das wars


Herunterladen ppt "PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]"

Ähnliche Präsentationen


Google-Anzeigen