Layout- und Filterverfahren zur Graphdarstellung in GroIMP Birka Fonkeng
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Inhaltsverzeichnis Einleitung Layoutalgorithmen Arten Zusatzfeatures/Verbesserungen der Layouts in GroIMP Filter Definition der Filter und Anwendung Zusammenfassung Quellenangaben 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Einleitung Graph Nutzung zur graphischen Visualisierung von Problemen möglich, Knoten = Objekte, Kanten = Beziehungen GroIMP1 3D-Modellierungsplattform auf der Grundlage von relationalen Wachstumsgrammatiken Relationale Wachstumsgrammatiken2 Parallele Graph-Grammatiken, insbes. zur Repräsentation von biologischen Strukturen und Prozessen 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP GroIMP - Graphansicht 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Layoutalgorithmen Berechnung von visuellen Abbildungen von Graphen Ästhetikkriterien:3 Nähe verbundener Knoten zueinander (closeness) Abstand der Knoten zueinander (smallest separation) Gleichmäßige Knotenverteilung (uniform distribution) Größe des Zeichenfensters (adaption to the frame) Einheitliche Kantenlängen (fixed edge length) Minimierung Kantenüberkreuzungen (edge crossing minimization) Berücksichtigung Kantenrichtungen (edge directions) 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Layoutalgorithmen Arten: Knotenbasierte Layoutverfahren Einfach Hierarchisch Kräftebasiert Energiebasiert Kantenbasierte Layoutverfahren 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Einfache Layoutalgorithmen Beispiele:4 Random Zufallsbasierte Anordnung der Knoten Square Anordnung der Knoten in einem Raster Circle Anordnung der Knoten auf einem oder mehreren Kreisen 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Hierarchiebasierte Layoutalgorithmen Vorhandensein von Wurzel(n), gerichteten Kanten Von der Wurzel ausgehend, bereits besuchte Knoten werden markiert Anordnung der Knoten, je nach Entfernung von der Wurzel, auf Schichten Tree4 Tiefensuche Sugiyama3 Zusätzlich Kantenüberkreuzungsminimierung nach der Barycenter-Methode 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Barycenter-Methode Nach Anordnung der Knoten auf Schichten: Jeweils Betrachtung zweier benachbarter Schichten Kantenüberkreuzungsminimierung durch Berechnung der Barycenter und Neupositionierung der Knoten in der zweiten Schicht: 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kräftebasierte Layoutalgorithmen Verbundene Knoten ziehen sich an, unverbundene stoßen sich ab Anziehung → positive Kraft Abstoßung → negative Kraft Summe der Kräfte aller Knoten (maxForce) im Idealfall = 0 Spring-Layout 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kräftebasierte Layoutalgorithmen Für eine bestimmte Anzahl von Iterationen: Wenn maxForce > akzeptable Differenz von 0 sumForce = (0,0) Für alle Knoten n: n.layoutVarX := n.layoutVarY := 0 Für alle Knotenpaare n, m: Berechnung abstoßende Kraft repForce Wenn n ausgehende Kante e mit m: sumForce := repForce + anziehende Kraft attrForce Wenn n eingehende Kante e zu m: sumForce := repForce – anziehende Kraft attrForce n.layoutVarX/Y -= sumForce; m.layoutVarX/Y += sumForce maxForce := MAX(|layoutVarX/Y|) Koordinaten von n += n.layoutVarX/Y 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kräftebasierte Layoutalgorithmen Beispiel: Spring Embedder Einfachstes Verfahren repForce von Knotenpaar n, m mit repulsion = const.: attrForce von Knotenpaar n, m verbunden durch Kante e mit attraction = const.: 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kräftebasierte Layoutalgorithmen Weitere Beispiele: Eades5 Berücksichtigung Entfernungen der Knoten voneinander Fruchterman-Reingold5 Ideale Entfernung von Knoten abhängig von Größe der Zeichenfläche und der Knotenanzahl Davidson-Harel6 Simulated Annealing, Minimierung Kostenfunktion 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Energiebasierte Layoutalgorithmen Energy7 R-PolyLog-Energiemodell Grad der Clusterung einstellbar Energieminimierung durch den Barnes-Hut-Algorithmus Rekursive Einteilung des Graphen in Subtrees 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kantenbasierte Layoutalgorithmen Berücksichtigung der Kantentypen (GroIMP: 2 Standard-Kantentypen + bel. viele nutzerdefinierte) Beispiele: Simple Edge-Based Jeder Kantentyp bekommt einen eindeutigen Richtungsvektor zugewiesen Einheitliche Kantenlänge Edge-Based2 Erweiterung des Simple Edge-Based-Layouts Die Kanten der beiden am häufigsten vorkommenden Kantentypen werden achsenparallel gezeichnet, können eine andere Kantenlänge zugewiesen bekommen als die übrigen 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Kantenbasierte Layoutalgorithmen Problem: Knotenüberlagerungen Solange Test positiv ist: Addition einer Konstante zum Richtungsvektor Bei großen Graphen zusätzlich Verlängerung der Kanten 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Zusatzfeatures der Layoutverfahren in GroIMP Setzen des ersten Knoten auf eine feste Position Kräftebasiert: In die Mitte des Zeichenfensters Random, Square: obere linke Ecke des Zeichenfensters Anpassung des Graphlayouts an das Zeichenfenster (automatische Verschiebung, Zoomen) Drehung/Spiegelung einiger ausgewählter Layouts 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Zusatzfeatures der Layoutverfahren in GroIMP Interpolation Animierter Übergang vom aktuellen Graphenbild zum gewünschten Layout Anzahl der Zwischenschritte einstellbar 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Aktuelle Verbesserungen Erhöhung der Stabilität der Layoutverfahren durch Prüfen der eingestellten Parameter Hinweise, Fehlermeldungen in Statusleiste Z. B. Hinweis nach Abbruch der neuen Layoutberechnung wegen ungünstiger Parameterwahl Setzen des ersten Knoten bei kräftebasierten Verfahren verschlechtert nicht mehr kurzfristig die zu minimierende Gesamtkraft 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Methoden, die auf Graphstrukturen angewendet werden können, um für den Benutzer bedeutsame Substrukturen von den unwichtigen Informationen graphisch trennen zu können Arten: Verstecken Hervorheben Zusammenfassen 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
GroIMP - Filterauswahl (Nachher) 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Filterdefinition XML-Datenformat: Für jede Filterart ein eigener Bereich, beliebig oft wiederholbar Einheitliche Definition der Suchkriterien Einheitliche Definition der Attributänderungen <SubNodes> - Anwendung des Filters auf den gesamten Teilbaum ab dem Knoten, der den Suchkriterien entspricht 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Demonstration der Filterverfahren Beispiel einer XML-Datei Ergebnis: Graph nach Filteranwendung (Vorher) 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Zusammenfassung Layoutalgorithmen und Filter effektive Mittel zur Verbesserung der Übersichtlichkeit von Graphstrukturen Berücksichtigung verschiedener Arten von Graphen und Sichtweisen auf diese Mathematische Modelle allein nicht ausreichend für befriedigende Ansichten GroIMP: Plugin-Schnittstellen bieten Platz für Erweiterungen und Verbesserungen 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Vielen Dank für Ihre Aufmerksamkeit!
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Quellenangaben 1Winfried Kurth, Gerhard Buck-Sorlin, Ole Kniemeyer. GroIMP. URL: http://www.gs.informatik.tu-cottbus.de/grogra.de/software/groimp/, Lehrstuhl Grafische Systeme, BTU Cottbus, 06.05.2007. 2Winfried Kurth, Gerhard Buck-Sorlin, Ole Kniemeyer. Relationale Wachstumsgrammatiken: Ein Formalismus zur Spezifikation multiskalierter Struktur-Funktions-Modelle von Pflanzen. In: Modellierung pflanzlicher Systeme aus historischer und aktueller Sicht. Schriftenreihe des Landesamtes für Verbraucherschutz, Landwirtschaft und Flurneuordnung Brandenburg, Band 7, 2006, S. 36-45. 3Kozo Sugiyama. Graph Drawing and Applications for Software and Knowledge Engineers. World Scientific Publishing, Singapore, 2002. 4Dexu Zhao. Simulation und Visualisierung der Struktur und Dynamik metabolischer Netzwerke mit relationalen Wachstumsgrammatiken. Diplomarbeit, Lehrstuhl Grafische Systeme an der Brandenburgischen Technischen Universität Cottbus, 2006. 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP
Layout- und Filterverfahren zur Graphdarstellung in GroIMP Quellenangaben 5Thomas M. J. Fruchterman, Edward M. Reingold. Graph Drawing by Force-Directed Placement. In: Software - Practice and Experience, Vol. 21, Nr. 11, 1991, S. 1129-1164. 6Ron Davidson, David Harel. Drawing Graphs Nicely Using Simulated Annealing. In: ACM Transactions on Graphics, Vol. 15, Nr. 4, 1996, S. 301-331. 7Andreas Noack. Energy Models for Drawing Clustered Small-World Graphs. Computer Science Report, 07/03, BTU Cottbus, 2003.. 20.11.2018 21:03 Layout- und Filterverfahren zur Graphdarstellung in GroIMP