Diplomarbeit Bioinformatik

Transcription

Diplomarbeit Bioinformatik
Eberhard Karls Universität Tübingen
Fakultät für Informations- und Kognitionswissenschaften
Wilhelm-Schickard-Institut für Informatik
Diplomarbeit Bioinformatik
Visualisierung von Differenzen biologischer Netzwerke
Robert Krug
März bis September 2009
Betreuer
Prof. Dr. Michael Kaufmann
Prof. Dr. Oliver Kohlbacher
(Informatik)
(Bioinformatik)
Wilhelm-Schickard-Institut für Informatik
Wilhelm-Schickard-Institut für Informatik
Universität Tübingen
Universität Tübingen
Eidesstattliche Erklärung
Hiermit versichere ich, dass ich die vorliegende Diplomarbeit selbständig und nur mit
den angegebenen Hilfsmitteln angefertigt habe und dass alle Stellen, die dem Wortlaut
oder dem Sinne nach anderen Werken entnommen sind, durch Angaben von Quellen als
Entlehnung kenntlich gemacht worden sind. Diese Diplomarbeit wurde in gleicher oder
ähnlicher Form in keinem anderen Studiengang als Prüfungsleistung vorgelegt.
Tübingen, den 3. September 2009
Robert Krug
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation . . . .
1.2 Das “Overview and
1.3 Graphentheorie . .
1.4 yEd und die yFiles
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
3
2 Graphen Kondensation
2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . .
2.2 Das Optionsfenster . . . . . . . . . . . . . . . . . .
2.3 Zentralitäten . . . . . . . . . . . . . . . . . . . . .
2.3.1 Knotengrad . . . . . . . . . . . . . . . . . .
2.3.2 Closeness . . . . . . . . . . . . . . . . . . .
2.3.3 Graph Zentralität . . . . . . . . . . . . . .
2.3.4 Node Betweenness . . . . . . . . . . . . . .
2.3.5 Wiener Index . . . . . . . . . . . . . . . . .
2.4 Verschmelzoperationen . . . . . . . . . . . . . . . .
2.4.1 Verschmelzen auf einem variablen Graphen
2.4.2 Verschmelzen auf dem statischen Graphen .
2.4.3 Einführung ins Clustering . . . . . . . . . .
2.4.4 Kondensation mit Clustering . . . . . . . .
2.4.5 Statistiken . . . . . . . . . . . . . . . . . .
2.5 Darstellung . . . . . . . . . . . . . . . . . . . . . .
2.5.1 Der kondensierte Graph . . . . . . . . . . .
2.5.2 Die Detailansicht . . . . . . . . . . . . . . .
2.6 Implementation . . . . . . . . . . . . . . . . . . . .
2.7 Zusammenfassung . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
7
7
8
8
8
9
9
11
16
19
19
24
27
27
27
29
30
3 Graph-Vergleich
3.1 Einleitung . . . . . . . . . . . . . . . . .
3.2 Das Optionsfenster . . . . . . . . . . . .
3.3 Ablauf . . . . . . . . . . . . . . . . . . .
3.3.1 Vorbereitung . . . . . . . . . . .
3.3.2 Der Vergleichsvorgang . . . . . .
3.3.3 Aufbereitung und Visualisierung
3.4 Das Übersichtsfenster . . . . . . . . . .
3.5 Die Detailansicht . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
32
32
32
33
33
34
. . . . . . . . . .
Detail” Konzept
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.6
3.7
3.5.1 Darstellung des Detailgraphen . . .
3.5.2 Exploration des Teilgraphen . . . . .
3.5.3 Progressives Layout . . . . . . . . .
Implementation . . . . . . . . . . . . . . . .
3.6.1 Datenstrukturen . . . . . . . . . . .
3.6.2 Konstruktion des Übersichtsgraphen
3.6.3 Exploration des Teilgraphen . . . . .
3.6.4 Die “undo”-Funktion . . . . . . . . .
Zusammenfassung . . . . . . . . . . . . . .
4 Anwendung
4.1 Einleitung . . . . . . . . . . . .
4.2 Grundlagen . . . . . . . . . . .
4.2.1 Biologische Grundlagen
4.2.2 Testdaten . . . . . . . .
4.3 Vergleich . . . . . . . . . . . . .
4.4 Zusammenfassung . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
37
38
38
38
40
40
41
44
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
45
45
46
47
57
5 Zusammenfassung und Ausblick
59
5.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Literaturverzeichnis
63
1 Einleitung
Beim Arbeiten mit Graphen kommt es oft vor, dass zwei oder mehr verschiedene Graphen verglichen werden sollen. Zum Beispiel werden in der Biologie Protein-Protein Interaktionsnetzwerke von zwei verschiedenen Organismen untersucht, um Ähnlichkeiten und
Unterschiede herauszufinden. Auch in der Medizin ist der Vergleich von Graphen ein wichtiges Instrument. So können zum Beispiel durch den Vergleich von einem gesunden und
einem kranken Organismus Hinweise auf die Ursachen der Krankheit, und damit eventuell Möglichkeiten zur Behandlung gefunden werden. Generell kann in allen Bereichen, in
denen mit Graphen gearbeitet wird, der Fall auftreten, dass zwei Graphen verglichen werden müssen. Zum Beispiel bei dynamischen Graphen wie Peer-to-peer Netzen, bei denen
2 Snapshots von verschiedenen Zeiten verglichen werden. Ist im Netzwerk ein zentraler
Knoten ausgefallen, so können die Auswirkungen durch einen Vergleich des Netzwerkzustandes vor und nach dem Ausfall herausgefunden werden.
Da die Graphen, mit denen heutzutage gearbeitet wird, in der Regel aber sehr groß sind,
kann der Vergleich nur schwer ohne Hilfsmittel durchgeführt werden. Um diesen Vorgang
zu automatisieren, wurde im Rahmen dieser Arbeit ein Verfahren entwickelt und in Form
eines Moduls für den Grapheneditor yEd implementiert, mit dem es möglich ist, zwei
Graphen zu vergleichen und die Unterschiede visuell darzustellen. Das “Overview and Detail”Konzept wurde in [1] formuliert und wird in Abschnitt 1.2 vorgestellt. Dieses Konzept
wurde für das Verfahren, das in dieser Diplomarbeit entwickelt wurde, verwendet. Dazu
wurde zunächst eine Methode entwickelt und implementiert, mit der große Graphen auf
aussagekräftige Minoren reduziert werden können. Mit dieser Technik sollen die Graphen
übersichtlich dargestellt werden. Das Verfahren wird in Kapitel 2 erläutert. Das eigentliche
Vegleichsmodul bedient sich dann dieser Methode, um den Übersichtsgraphen, in dem die
Unterschiede markiert sind, anzuzeigen. Der Ablauf und die Funktionen des Vergleichsmodules werden im Kapitel 3 vorgestellt. Mögliche Anwendungen des entwickelten Verfahrens
werden in Kapitel 4 anhand verschiedener Beispiele erläutert.
1.1 Motivation
Ziel dieser Diplomarbeit war es, ein Verfahren zu entwickeln, mit dem große Graphen
einfach verglichen werden können. Dabei wird davon ausgegangen, dass die Unterschiede zwischen den Graphen im Vergleich zu deren Größe klein sind. Unter anderem im
biologischen Bereich werden immer mehr immer größere Datenmengen produziert, deren
Auswertung nur noch computergestützt möglich ist. Viele dieser Daten liegen in Graphenform vor, wie zum Beispiel Protein-Protein Interaktionsnetzwerke oder phylogenetische
Bäume. Oft hat ein einzelner Graph wenig Aussagekraft und erst durch den Vergleich mit
1
1.2. DAS “OVERVIEW AND DETAIL” KONZEPT
KAPITEL 1. EINLEITUNG
einem ähnlichen Graphen, der zum Beispiel für eine verwandte Spezies bestimmt wurde,
lassen sich sinnvolle Aussagen treffen oder bestimmte Aufgaben lösen. Da diese Graphen
aber ziemlich groß werden können, ist es für einen Menschen sehr mühsam bis unmöglich,
sie von Hand zu vergleichen. Um diesen Vorgang einfacher zu gestalten, wurde in dieser
Diplomarbeit ein Ansatz entwickelt, mit dem sich zwei Graphen automatisch vergleichen
lassen, und mit dem die Ergebnisse übersichtlich dargestellt werden können. Außerdem
bietet das Verfahren die Möglichkeit, den Vergleichsgraphen zu untersuchen und die einzelnen Unterschiede im Detail zu betrachten.
Als Implementationsgrundlage für die entwickelten Verfahren wurden die Graphenbibliothek yFiles und der darauf basierende Editor yEd verwendet, die in Abschnitt 1.4 vorgestellt werden und unter [13] beziehungsweise [12] zu finden sind. Diese Wahl wurde
getroffen, da die yFiles viele Algorithmen bereitstellen, die in verschiedenen Bereichen
dieser Arbeit verwendet werden. Außerdem bieten die yFiles umfangreiche Möglichkeiten
zur Visualisierung von Graphen, die hier ebenfalls Anwendung finden.
1.2 Das “Overview and Detail” Konzept
Um den Vergleich zwischen zwei Graphen sinnvoll darstellen zu können, wird in dieser
Arbeit das “Overview and Detail” Konzept verwendet, das in [1] vorgestellt wurde. Bei
diesem Verfahren wird davon ausgegangen, dass die Unterschiede zwischen den beiden
verglichenen Graphen eher klein und stark lokalisiert sind, und große Bereiche der beiden Graphen übereinstimmen. Deshalb kann ein Übersichtsgraph konstruiert werden, der
die übereinstimmenden Bereiche enthält. Die Elemente, die jeweils nur in einem der beiden Graphen vorkommen, werden in diesem Übersichtsgraphen durch spezielle Knoten repräsentiert. Da die Betonung bei dieser Methode auf den Unterschieden liegt, sollen die gemeinsamen Bereiche nur schematisch und nicht bis ins letzte Detail dargestellt werden, um
die Bereiche mit Änderungen besonders hervorzuheben. Anhand des Übersichtsgraphen
soll dem Benutzer die Möglichkeit gegeben werden, die Änderungen in einer detaillierten Ansicht genauer untersuchen zu können. Sowohl der Übersichtsgraph als auch der
Detailgraph sollen dabei möglichst ansprechend gezeichnet werden. Es sollen also Kantenkreuzungen oder Überlappungen zwischen Graphelementen vermieden werden. Für das
“Overview and Detail” Konzept sind also die folgenden vier Schritte wichtig:
1. Konstruktion des Übersichtsgraphen, der gemeinsame Elemente und Elemente, die
nur in jeweils einem der beiden Graphen vorhanden sind, enthält
2. Layout des Übersichtsgraphen
3. Konstruktion eines Detailgraphen, der dem Benutzer bei Bedarf einen interressanten
Bereich des Übersichtsgraphen detailliert zeigt
4. Layout des Detailgraphen
Um diese Schritte zu ermöglichen, müssen zunächst die Unterschiede zwischen beiden Graphen identifiziert, und anschließend der übereinstimmende Graphenteil auf wichtige Elemente reduziert werden. Durch diese Reduktion wird der Graph zum einen übersichtlicher,
2
KAPITEL 1. EINLEITUNG
1.3. GRAPHENTHEORIE
zum anderen können die Gebiete, in denen Änderungen gefunden wurden, besser erkannt
werden.
Bei der Konstruktion des Detailgraphen wird nur ein kleiner Teil des Übersichtsgraphen
vollständig angezeigt, da davon ausgegangen wird, dass die Änderungen lokal sind, und nur
die unmittelbare Umgebung für den Benutzer interessant ist. Der Detailgraph selber wird
konsistent mit dem Übersichtsgraphen erzeugt, so dass Knoten, die im Übersichtsgraphen
untereinander liegen, auch im Detailgraphen untereinander positioniert sind. Wenn der detaillierte Bereich aber zu klein ist, sollte der Benutzer in der Lage sein, den Detailgraphen
in die gewünschte Richtung zu erweitern. Diese Erweiterung soll wiederum konsistent mit
dem Übersichtsgraphen ablaufen. Wird der Detailgraph zum Beispiel nach oben erweitert,
soll der Bereich, der dann eingeblendet wird, auch im Übersichtsgraphen oberhalb des
schon abgebildeten Bereiches liegen. Diese Konsistenz soll dem Benutzer die Orientierung
im Detailgraphen erleichtern.
1.3 Graphentheorie
Die Problemstellung, die dieser Arbeit zu Grunde liegt, ist der Vergleich zweier Graphen.
Deshalb werden in diesem Abschnitt einige grundlegende Begriffe aus der Graphentheorie
eingeführt. Ein Graph G = (V, E) besteht aus der Knotenmenge V und der Kantenmenge
E. Mit n = |V | wird die Anzahl der Knoten, und mit m = |E| die Anzahl der Kanten
bezeichnet. Kanten sind Knotenpaare (u, v) mit u, v ∈ E, die in gerichteten Graphen eine
Orientierung von Quell- zu Zielknoten haben. Werden zwei Knoten von mehr als einer
Kante verbunden, so spricht man von Multikanten. Hyperkanten hingegen haben mehr
als einen Quell- und oder Zielknoten. Für die Graphen, die mit dem Verfahren aus dieser
Arbeit verglichen werden, wird davon ausgegangen, dass sie keine Hyperkanten enthalten.
Es ist möglich, Kanten ein Gewicht g(e) : e 7→ x ∈ R zuzuordnen, man spricht dann
von einem gewichteten Graph. Dies spielt zum Beispiel eine Rolle, wenn kürzeste Wege
zwischen zwei Knoten gesucht werden, wie es bei manchen der Zentralitäten in Kapitel 2.3
der Fall ist. Dabei kann es vorkommen, dass nicht alle Kanten des Graphen den gleichen
Stellenwert haben.
Man spricht von planaren Graphen, wenn es möglich ist, den Graph so zu zeichnen, dass
sich keine zwei Kanten kreuzen. Unter bipartiten Graphen versteht man Graphen, die in
zwei Mengen von Knoten aufteilbar sind, so dass es nur Kanten zwischen diesen beiden
Knotenmengen gibt, nicht aber innerhalb einer dieser Mengen.
Das in dieser Diplomarbeit entwickelte Programm ist in der Lage, die hier vorgestellten
Graphentypen zu verarbeiten.
1.4 yEd und die yFiles
Als Grundlage für die Implementierung des hier vorgestellten Verfahrens werden die yFiles
zusammen mit dem Editor yEd verwendet, die beide von der Firma yWorks entwickelt
wurden. Die yFiles sind eine Graphenbibliothek, die verschiedene Graphenalgorithmen zur
3
1.4. YED UND DIE YFILES
KAPITEL 1. EINLEITUNG
Verfügung stellt. Der Schwerpunkt liegt auf der Visualisierung und dem Layout von Graphen, aber auch verschiedene Graphenalgorithmen wie kürzeste Wege und Zentralitäten
sind vorhanden. Ein einführendes Paper in die yFiles ist [7], weiterführende Informationen
zu den yFiles finden sich auf [13].
Der Grapheneditor yEd basiert auf den yFiles und bietet die Möglichkeit, viele der Verfahren aus den yFiles direkt auf Beispielgraphen anzuwenden und die Ergebnisse darzustellen.
Außerdem lassen sich komfortabel eigene Module entwickeln und in den Editor integrieren.
Deshalb wurde diese Methode zur Implementation des Verfahrens aus dieser Diplomarbeit
verwendet. Unter [12] lassen sich sowohl der Editor als auch weitere Informationen darüber
finden.
4
2 Graphen Kondensation
2.1 Einleitung
Als Teil des “Overview and Detail” Konzepts aus Abschnitt 1.2 soll ein Übersichtsgraph
konstruiert werden, der die strukturellen Eigenschaften eines Eingangsgraphen in einer
übersichtlichen Art und Weise zusammenfasst. Dazu wird der Graph auf seine wesentlichen Teile reduziert, wobei die restlichen Teile verschmolzen werden. Im Folgenden wird
dieser Vorgang als Kondensation bezeichnet. Implementiert wurde das Verfahren in Form
des “GraphCondenser” Modul für den Grapheneditor yEd. Die verschiedenen Einstellungsmöglichkeiten des Moduls werden im folgenden Abschnitt 2.2 vorgestellt. In Kapitel 2.3 werden verschiedene Zentralitätsmaße eingeführt, die für das Kondensieren des
Graphen verwendet werden. Der eigentliche Kondensationsvorgang mit den verschiedenen
Möglichkeiten wird in Abschnitt 2.4 erläutert. Anschließend folgt das Kapitel 2.5, das die
Darstellung des verschmolzenen Graphen erklärt, sowie die Möglichkeiten, die der Benutzer dabei hat. Auf einige Details der Implementierung wird in Abschnitt 2.6 eingegangen,
und das ganze Kapitel schließlich in Abschnitt 2.7 zusammengefasst.
2.2 Das Optionsfenster des GraphCondenser Modules
In diesem Abschnitt wird das Optionsfenster, in dem die Einstellungen für den Kondensationsvorgang eingegeben werden, vorgestellt. In Abbildung 2.1 ist ein Screenshot des
Optionsfensters zu sehen.
In dem mit (1) markierten roten Kästchen befinden sich die Einstellungen für das Zentralitätsmaß, das für den Kondensationsvorgang verwendet werden soll. Es gibt ein DropDown Menü, aus dem eines der in Kapitel 2.3 vorgestellten Zentralitätsmaße ausgewählt
werden kann, sowie eine Checkbox, mit der eingestellt werden kann, ob die Kanten des
Graphen zur Berechnung der Zentralitätswerte als gerichtet behandelt werden sollen. Für
manche der Zentralitäten ist es wichtig, ob die Richtung der Kanten eine Rolle spielt.
Wenn zum Beispiel kürzeste Wege gesucht werden oder die Erreichbarkeit von Knoten
eine Rolle spielt, können die Werte mit gerichteten Kanten sehr unterschiedlich von den
Werten, die man mit ungerichteten Kanten erhält, sein. Je nach Anwendung muss der
Benutzer hier die für seinen Graphen geeigneten Einstellungen treffen.
Im nächsten Kästchen, der Nummer (2), wird die Auswahl des Kondensationsverfahrens
getroffen. Aus dem Drop-Down Menü kann eines der in Kapitel 2.4 vorgestellten Verfahren
gewählt werden. Mit der Checkbox kann der Benutzer einstellen, ob das Verfahren nach
jedem Schritt unterbrochen und der aktuelle Graph angezeigt wird. Dann kann angegeben
werden, ob ein weiterer Schritt folgen soll, oder der Graph bereits genug kondensiert wur-
5
2.2. DAS OPTIONSFENSTER
KAPITEL 2. GRAPHEN KONDENSATION
Abbildung 2.1: Optionsfenster für das Kondensations Modul, die einzelnen Einstellungen
werden im Text erklärt
de. Wird der interaktive Modus gewählt, so wird die Anzahl verschmolzener Knoten für
die entsprechenden Kondensationsverfahren nicht aus dem Optionsfenster übernommen,
sondern dadurch bestimmt, wann der Benutzer den Vorgang abbricht.
Die Optionen im Kästchen (3) geben die Möglichkeit, die entsprechenden Werte für das jeweilige Kondensationsverfahren anzupassen. Für das Clusteringverfahren, das in Abschnitt
2.4.4 vorgestellt wird, ist die Anzahl der Cluster wichtig, die hier vom Benutzer eingestellt
werden kann. Die nächsten beiden Werte sind nur für die Verfahren aus den Kapiteln
2.4.1 und 2.4.2, bei denen auf einem statischen und einem sich verändernden Graphen
verschmolzen wird, relevant. Bei diesen Verfahren werden benachbarte Knoten miteinander vereinigt. Wird auf einem statischen Graphen verschmolzen, so wird der Graph erst
am Ende des Verschmelzungsvorgangs aktualisiert, während bei der Methode auf dem
sich verändernden Graphen nach jedem Schritt ein Update erfolgt. Es kann die Anzahl
der Knoten, die maximal von einem Multiknoten im Ergebnisgraphen repräsentiert werden sollen, eingestellt werden, sowie der maximale Wichtigkeitswert, den ein Multiknoten
erreichen darf.
Mit den Einstellungen aus dem letzten Kästchen (4) kann optional angegeben werden,
dass während der Kondensation nur Knoten die einen ähnlichen Zentralitätswert haben
vereinigt werden. Mit der Checkbox wird diese Option gewählt und mit dem eingestellten
Wert angegeben, wie unterschiedlich die Wichtigkeit zweier Knoten sein darf, damit sie
noch verschmolzen werden dürfen.
Grundsätzlich muss der Benutzer die für die jeweilige Anwendung am besten geeigneten Einstellungen finden. Der zeitaufwendigste Schritt ist die Berechnung der Zentralitätswerte, die je nach verwendeter Methode durchaus einige Sekunden in Anspruch nehmen kann. Graphen mit einigen Hundert Knoten sind noch kein Problem, aber sobald
6
KAPITEL 2. GRAPHEN KONDENSATION
2.3. ZENTRALITÄTEN
mehr als Tausend Knoten im Graphen sind muss man auf die Berechnung von zum Beispiel den Wiener Index Zentralitätswerten mehrere Sekunden warten. Die Knotengrad
Zentralitäten hingegen sind auch für Graphen mit mehr als Tausend Knoten sehr schnell
berechnet, so dass der eigentliche Aufwand bei diesem Maß in der Kondensation liegt.
Für die übrigen Zentralitäten ist das restliche Verfahren vergleichsweise schnell, so dass
die optimalen Einstellungen mit wenig Aufwand durch etwas Experimentieren gefunden
werden können.
2.3 Zentralitäts Maße
Um die Knoten eines Graphen miteinander vergleichen zu können, und die Wichtigkeit der
einzelnen Knoten zu bewerten, wird ein Ähnlichkeitsmaß benötigt. Eine Möglichkeit für ein
solches Maß sind Zentralitäten. Dabei wird jedem Knoten ein Wert aus dem Intervall [0, 1]
zugewiesen. Dieser Wert soll eine Abschätzung für die “Wichtigkeit” des entsprechenden
Knotens liefern. Für das Kondensationsmodul stehen verschiedene Zentralitätsmaße zur
Verfügung, die im Folgenden vorgestellt werden. Die hier vorgestellten Zentralitätsmaße
sind aus [4] entnommen, welches auch eine ausführlichere Beschreibung und weitere Zentralitätsmaße enthält.
Für die einzelnen Zentralitäten sei G = (V, E) der zugrundeliegende Graph mit Knotenmenge V und Kantenmenge E. Der Grad eines Knotens v sei mit deg(v), der Zentralitätswert des Knotens mit c(v) beschrieben. Für manche der Zentralitätsmaße wird
außerdem der kürzeste Weg zwischen zwei Knoten gebraucht - mit dist(u, v) sei deshalb
die Länge des kürzesten Weges zwischen den Knoten u und v bezeichnet. Da für mehrere
der Zentralitäten kürzeste Wege verwendet werden, ist es wichtig zu unterscheiden, ob
der Graph gerichtet oder ungerichtet ist. Dies kann der Benutzer im Optionsfenster direkt
nach der Wahl des Zentralitätsmaßes angeben. Je nach gewähltem Zentralitätsmaß ist die
Berechnung mehr oder weniger aufwendig. Insbesondere der Wiener Index ist sehr rechenintensiv und kann bei größeren Graphen durchaus einige Zeit zur Berechnung in Anspruch
nehmen. Sobald die Knotenzahl Tausend übersteigt muss, je nach Dichte des Graphen,
mehrere Sekunden auf das Ergebnis der Berechnung gewartet werden. Wenn die Struktur
des Graphen bekannt ist, und damit auch abgeschätzt werden kann, welche Knoten wichtig
sind, kann ein geeignetes Zentralitätsmaß gewählt werden, so dass der kondensierte Graph
den originalen Graph möglichst gut wiedergibt.
2.3.1 Knotengrad
Das einfachste Zentralitätsmaß ist der Knotengrad. Dabei erhält jeder Knoten als Wert
die Anzahl seiner ein- und ausgehenden Kanten. Dieser Wert wird noch normiert indem
er durch den maximalen Grad eines Knotens im aktuellen Graphen geteilt wird. Die Knotengrad Zentralität ist also folgendermaßen definiert:
c(v) =
deg(v)
maxv∈V deg(v)
7
(2.1)
2.3. ZENTRALITÄTEN
KAPITEL 2. GRAPHEN KONDENSATION
2.3.2 Closeness
Bei der Closeness Zentralität wird die Länge aller kürzesten Pfade von einem Knoten zu
allen anderen Knoten des Graphen betrachtet. Ein Knoten der zu allen anderen Knoten
einen geringen Abstand hat erhält einen hohen Closeness Wert. Die Idee bei diesem Maß
ist, dass Knoten, die für den jeweiligen Graphen wichtig sind, im Zentrum des Graphen
liegen, und deshalb einen geringen Abstand zu allen anderen Knoten haben. Berechnet
wird die Closeness Zentralität, indem der Kehrwert der Summe aller kürzesten Pfadlängen
eines Knotens zu allen anderen Knoten genommen wird:
1
u∈V,u6=v dist(v, u)
c(v) = P
(2.2)
Dieses Zentralitätsmaß kann nur sinnvoll angewendet werden, wenn der Graph zusammenhängend ist. Sind einige Knoten nicht erreichbar, so wird der kürzeste Pfad zu diesen
Knoten unendlich lang und der Zentralitätswert somit 0. Eine Möglichkeit dieses Problem zu umgehen ist, dass man für die Berechnung des Zentralitätswertes nur die Knoten
berücksichtigt, die vom aktuellen Knoten aus erreichbar sind. Dadurch kommt es allerdings
wieder zu anderen ungewollten Seiteneffekten. Zum Beispiel werden kleinere Zusammenhangskomponenten einen hohen Closeness Wert erhalten, da innerhalb der Komponente
alle Knoten mit wenigen Schritten erreicht werden können. Für den Rest des Graphen ist
die Komponente aber eventuell nicht so wichtig, so dass die Wichtigkeitswerte durch diese
Anpassung verzerrt werden.
2.3.3 Graph Zentralität
Die Graph Zentralität ist der Closeness Zentralität sehr ähnlich. Auch hier werden wieder
kürzeste Wege zur Berechnung verwendet. Allerdings wird diesmal nicht über alle Wege
aufsummiert, sondern das Maximum der kürzesten Wege von diesem Knoten verwendet.
Das bedeutet, wie schon bei der Closeness Zentralität, dass ein Knoten mit einem hohen
Graph-Zentralitätswert kurze Wege zu allen anderen Knoten des Graphen hat, und somit
als besonders wichtig für den Graphen angesehen werden kann. Die Definition der Graph
Zentralität ist dann:
1
c(v) =
(2.3)
maxu∈V,u6=v dist(v, u)
Auch bei diesem Zentralitätsmaß kommt es mit nicht zusammenhängenden Graphen zu
Problemen, die aber wiederum umgangen werden können, indem für die Berechnung jeweils
nur erreichbare Knoten berücksichtigt werden. Allerdings treten dabei wieder die zuvor
beschriebenen Seiteneffekte auf.
2.3.4 Node Betweenness
Für die Node Betweenness Zentralität werden wieder kürzeste Wege betrachtet, allerdings
nicht von einem bestimmten Knoten ausgehend. Bei diesem Zentralitätsmaß ist nicht die
Länge wichtig, sondern wie oft ein Knoten auf kürzesten Wegen liegt. Ein Knoten mit
8
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
einem hohen Node Betweenness Wert ist Bestandteil von vielen kürzesten Wegen des
Graphen. Sein Entfernen hätte eine starke Auswirkung und deshalb wird der Knoten als
wichtig betrachtet. Bei der Node Betweenness Zentralität werden deshalb zunächst alle
paarweisen kürzesten Wege bestimmt. Dann wird für jeden Knoten des Graphen gezählt,
auf wievielen dieser kürzesten Wege der Knoten liegt. Für die normierte Version der Node
Betweenness Zentralität wird anschließend noch jeder Wert durch den Maximalwert geteilt,
damit die Zentralitätswerte aller Knoten im Intervall [0, 1] liegen. Die (nicht normierte)
Node Betweenness Zentralität ist also definiert als:
X
c(v) =
onP athv (x, y)
(2.4)
x,y∈V
mit
onP athv (x, y) =
1 v liegt auf dem kürzesten Weg von x nach y
0
sonst
(2.5)
2.3.5 Wiener Index
Der Wiener Index ist ein Wert, der für einen Graphen definiert ist, und entspricht der
Summe der kürzesten Wege zwischen allen Knotenpaaren. Um nun einen Zentralitätswert
für jeden Knoten zu erhalten, wird der Wiener Index für den ursprünglichen Graphen und
für den Graphen ohne den jeweiligen Knoten bestimmt. Der Zentralitätswert des Knotens
entspricht dann dem Unterschied zwischen diesen beiden Wiener Index Werten. Dieser
Wert muss, nachdem er für alle Knoten bestimmt wurde, wieder mit dem höchsten Wert
normiert werden, damit er zwischen 0 und 1 liegt. Der Wiener Index eines Knoten ist also
definiert als:
c(v) = wiener(G) − wiener(G \ {v})
(2.6)
mit
wiener(G) =
X
dist(u, v)
(2.7)
u,v∈V
Es gibt noch viele weitere Zentralitätsmaße die hier nicht erwähnt wurden. Zum Beispiel
sind viele Zentralitäten auf den Kanten eines Graphen definiert. Alle hier vorgstellten
Zentralitätsmaße weisen nur den Knoten des Graphen einen Wert zu. Außerdem gibt es
noch die Möglichkeit, verschiedene Zentralitätsmaße zu kombinieren. Dabei kann durch
eine Gewichtung den verschiedenen verwendeten Zentralitäten eine unterschiedlich große
Rolle zugeteilt werden.
2.4 Verschmelzoperationen
Nachdem im vorigen Kapitel die verschiedenen Zentralitäten vorgestellt wurden, wird nun
erklärt, wie der Graph kondensiert wird. Unter Verwendung eines der möglichen Zentralitätsmaße aus dem vorigen Abschnitt werden schrittweise Knoten mit anderen Knoten
zusammengefasst und die Größe des Graphen damit reduziert. Im Folgenden wird dieser
9
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Vorgang als Verschmelzung bezeichnet. Je nach den vom Benutzer gewählten Einstellungen ist die Verkleinerung des Graphen mehr oder weniger stark. Die erste der beiden
möglichen Verschmelzoperationen ist in Abbildung 2.2 dargestellt.
Bei der Verschmelzung aus Abbildung 2.2 werden zwei benachbarte Knoten vereinigt.
Abbildung 2.2: Eine mögliche Verschmelzoperation des Kondensationsmoduls: gestrichelte
Elemente werden aus dem Graphen entfernt, der rote Knoten wird zum
Multiknoten und die roten Kanten neu eingefügt
Dies reduziert vor allem die Anzahl der Grad 1 Knoten in einem Graph, kann aber mit
entsprechenden Einstellungen der Verschmelzparameter auch andere Knoten miteinander vereinen. An dem Beispiel aus Abbildung 2.2 sieht man außerdem, dass in manchen
Fällen neue Kanten eingefügt werden. Wird ein Knoten aus dem Graphen entfernt, der
aber mit anderen Knoten als dem entsprechenden Multiknoten verbunden ist, so werden Kanten vom Multiknoten zu diesem Knoten eingefügt, damit der Graph weiterhin
verbunden bleibt. Sind alle Möglichkeiten für Verschmelzungen nach dieser Methode ausgeschöpft, gibt es eine zweite Methode, nach der Knoten vereinigt werden können. Diese
zweite Methode ist schematisch in Abbildung 2.3 dargestellt.
Bei der zweiten Verschmelzmethode aus Abbildung 2.3 werden 2 Knoten, die einen gemeinsamen benachbarten Knoten haben, miteinander vereinigt. Diese Methode wird angewandt, wenn nach der ersten Methode keine Knoten mehr verschmolzen werden können.
Auch hier müssen in Fällen wie dem aus dem Beispiel neue Kanten in den Graphen eingefügt werden, damit dieser zusammenhängend bleibt.
Bevor der eigentliche Verschmelzvorgang stattfindet, wird zunächst für jeden Knoten der
Zentralitätswert ermittelt. Dieser stellt für den Verschmelzvorgang die Wichtigkeit des
Knotens dar. Dabei wird das vom Benutzer gewählte Zentralitätsmaß verwendet. Als
zusätzliche Eingabe kann optional angegeben werden, dass manche Knoten nicht verschmelzbar sind. Dies kann zum Beispiel sinnvoll sein, wenn zu Beginn bekannt ist, dass
manche Knoten im aktuellen Graphen sehr wichtig sind und deshalb in der kondensierten
Version des Graphen auf jeden Fall enthalten sein sollen. Außerdem wird das eine Rol-
10
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Abbildung 2.3: Die zweite mögliche Verschmelzoperation des Kondensationsmoduls: gestrichelte Elemente werden aus dem Graphen entfernt, der rote Knoten
wird zum Multiknoten und die rote Kante neu eingefügt
le spielen, wenn später der Vergleichsgraph zur Übersichtlichkeit kondensiert wird (siehe
Kapitel 3).
Mit diesen Angaben und den restlichen Parametern die im Optionsfenster eingestellt wurden (wie in Kapitel 2.2 beschrieben) wird nun die eigentliche Kondensation mit dem vom
Benutzer gewählten Verfahren durchgeführt. Die folgenden Abschnitte erläutern, wie bei
den einzelnen Kondensationsmethoden vorgegangen wird.
2.4.1 Verschmelzen auf einem variablen Graphen
Bei diesem Verfahren wird solange ein verschmelzbares Knotenpaar ermittelt und verschmolzen, bis es keine Möglichkeit mehr gibt. Um zu entscheiden, ob ein Knotenpaar
verschmolzen werden kann, wird zunächst überprüft ob mit der Vereinigung nicht ein
Knoten entstünde, der zuviele andere Knoten repräsentiert. Außerdem wird überprüft ob
der entstehende Knoten einen Wichtigkeitswert erhält, der die vom Benutzer gegebene
Maximalgrenze übersteigt. Wurde die entsprechende Option im Optionsfenster gewählt,
wird außerdem noch überprüft, ob die Wichtigkeitswerte der beiden Knoten nicht zu weit
auseinander liegen, so dass nur Knoten mit ähnlichem Wert vereinigt werden.
Der Unterschied zu dem Verfahren aus Kapitel 2.4.2 ist der, dass bei dem Verfahren aus
diesem Kapitel der Graph nach jedem Verschmelzungsschritt angepasst wird, während bei
dem Verfahren aus Kapitel 2.4.2 erst nachdem alle Knoten verschmolzen wurden aktualisiert wird. Durch die Methode aus diesem Kapitel ändert sich also in jedem Schritt die
Nachbarschaft der an der aktuellen Verschmelzung beteiligten Knoten. Beim Clusteringverfahren aus Kapitel 2.4.4 hingegen wird der Graph zwar nach jedem Schritt angepasst,
allerdings werden die Knoten, die verschmolzen werden, nicht auf dem ganzen Graph gesucht. In jedem Schritt wird beim Clustering die Nachbarschaft der Clusterknoten in diese
verschmolzen.
Für die Verschmelzung auf dem variablen Graphen wird ein passendes Knotenpaar gesucht und die beiden Knoten im Graphen vereint. Das bedeutet, dass einer der Knoten
11
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
aus dem Graphen entfernt wird, und der andere Knoten mit allen Nachbarn des entfernten Knotens verbunden wird, mit denen er noch nicht verbunden ist. Es wird gespeichert,
welcher Knoten in welchem “Multiknoten” enthalten ist. Außerdem wird die Wichtigkeit
des verbleibenden Knotens auf einen neuen Wert gesetzt. Der neue Wert des Multiknotens
ist die Summe der Zentralitätswerte der Knoten, die in ihm enthalten sind. Somit wird
ein Multiknoten mit jedem weiteren Knoten, der mit ihm verschmolzen wird, wichtiger.
Durch das einfache Addieren der Wichtigkeiten ist das Verfahren wesentlich schneller,
als wenn nach jedem Schritt die Zentralitätswerte des Graphen neu berechnet werden
müssten, da der komplette Verschmelzvorgang aus sehr vielen Einzelschritten besteht.
Außerdem berücksichtigen die Zentralitätsmaße nicht, dass ein Multiknoten mehrere Knoten repräsentiert, und deshalb einen höheren Wichtigkeitswert als ein normaler Knoten
haben sollte.
Einer der Parameter, die der Benutzer einstellen kann, ist die Zahl der Knoten, die maximal zu einem Multiknoten vereint werden dürfen. Wurde die Option “interactive melting
process” gewählt, so werden zunächst bis zu 2 Knoten vereint. Anschließend wird der
veränderte Graph angezeigt und dem Benutzer die Option gegeben, mehr als 2 Knoten zu
verschmelzen. Nachdem alle Möglichkeiten 2 Knoten zu vereinen erschöpft sind, wird der
Benutzer gefragt, ob noch mehr Knoten verschmolzen werden sollen. Sollte der Benutzer
das bestätigen, werden solange bis zu 3 Knoten vereinigt, bis es keine Möglichkeit mehr
gibt. Dann wird der Benutzer erneut gefragt, ob mehr Knoten verschmolzen werden sollen. Auf diese Weise kann der Benutzer so lange mehr Knoten vereinigen lassen, bis der
gewünschte Kondensationsgrad erreicht wurde.
Wird hingegen im normalen Modus kondensiert, bedeutet das, dass zunächst nur 2 Knoten
verschmolzen werden und dann schrittweise immer ein Knoten mehr, bis die eingestellte
Grenze erreicht ist. Auf diese Weise wird sichergestellt, dass das Ergebnis nach drei Schritten aus dem Ergebnis das nach zwei Schritten erhalten wurde, hervorgeht, auch wenn
nicht nach jedem Schritt unterbrochen wird. Dadurch sind die kondensierten Graphen, die
aus demselben Ursprungsgraphen, aber mit anderen Kondensationseinstellungen gewonnen wurden, ähnlicher als wenn beliebig verschmolzen werden könnte. Damit werden diese
verschiedenen Versionen des Graphen miteinander vergleichbar.
Durch diese Vorgehensweise kommt es zu einem weiteren Effekt: Die Graphen bei denen
bis zu 2 und bei denen bis zu 3 Knoten verschmolzen wurden, unterscheiden sich kaum.
Das liegt daran, dass dach dem ersten Schritt alle möglichen 2-er Paare von Knoten zu
einem Multiknoten zusammengefasst wurden, diese 2-er Multiknoten aber nicht miteinander vereinigt werden können, da im zweiten Graphen nur maximal 3 Knoten in einem
Multiknoten enthalten sein dürfen. Einzelne Knoten die nach dem ersten Schritt noch nicht
verschmolzen wurden können in diesem Schritt noch zu einem 2-er Knoten hinzugefügt
werden, der Rest des Graphen bleibt aber unverändert. Somit sind die größten Sprünge
im Kondensationsfaktor des Graphen immer bei den 2-er Potenzen für die maximal verschmelzbare Knotenzahl.
12
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Abbildung 2.4: zufällig erzeugter planarer Beispielgraph mit 350 Knoten und 700 Kanten
Kondensiert man den zufällig erzeugten planaren Graphen aus Abbildung 2.4 mit dem
in diesem Kapitel vorgestellten Verfahren und den Einstellungen bis zu 2 Knoten verschmelzen und einem maximalen Wichtigkeitswert von 2.0, so erhält man den Graphen
aus Abbildung 2.5. Erkennbar ist die deutliche Reduzierung der Knotenzahl, wobei die
Form und Struktur des Graphen erhalten bleibt. Man sieht, dass einige blaue Knoten im
Graphen verbleiben - diese konnten nicht mehr verschmolzen werden, da alle ihre Nachbarn schon mit anderen Knoten vereint wurden und nur 2 Knoten in einem Multiknoten
enthalten sein dürfen.
13
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Abbildung 2.5: Der Graph aus Abbildung 2.4 kondensiert mit dem in Kapitel 2.4.1 vorgestellten Verfahren und den Einstellungen bis zu 2 Knoten verschmolzen und einem maximalen Wichtigkeitswert von 2.0. Normale Knoten sind
blau, Multiknoten sind rot und eingefügte Kanten grün markiert. Diese
Farbgebung ist in allen folgenden Abbildungen identisch.
14
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Abbildung 2.6: Der Graph aus Abbildung 2.4 kondensiert mit dem Verfahren aus Kapitel 2.4.1 und den Einstellungen bis zu 4 Knoten verschmolzen und einem
maximalen Wichtigkeitswert von 2.0
Erkennbar in den Abbildungen 2.4 - 2.6 ist die zunehmende Reduzierung der Knotenzahl
des Ergebnisgraphen wenn mehr Knoten verschmolzen werden dürfen. Wenn mehr als 2
Knoten verschmolzen werden dürfen, wie in Abbildung 2.6, so bleiben in diesem Beispiel
keine unverschmolzenen Knoten mehr im Graphen. Die Knotenzahl wird im Vergleich zu
dem Graphen aus Abbildung 2.5, bei dem nur 2 Knoten verschmolzen wurden, weiter reduziert und der Kondensationsgrad des Graphen somit erhöht. Die relative Form bleibt
dennoch erhalten, entfernt sich aber deutlich weiter vom Eingangsgraphen aus Abbildung
2.4 als bei der Kondensation aus Abbildung 2.5.
Durch das in diesem Kapitel beschriebene Verschmelzverfahren wird der Graph also in
jedem Schritt verändert - es entfallen Knoten und in manchen Fällen werden Kanten eingefügt. Je mehr Knoten verschmolzen werden können, desto weiter entfernt sich das Ergebnis vom ursprünglichen Graphen. Der Benutzer muss für den jeweiligen Anwendungsfall
selbst entscheiden, ob er mehr Wert darauf legt, dass der Graph nah am originalen Graphen bleibt, oder der Komprimierungsfaktor möglichst groß sein soll. Dies kann durch
entsprechende Einstellungen im Optionsfenster (siehe auch Kapitel 2.2) erreicht werden.
15
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
2.4.2 Verschmelzen auf dem statischen Graphen
Für dieses Verfahren werden ebenfalls in jedem Schritt zwei verschmelzbare Knoten bestimmt und diese zu einem Multiknoten zusammengefasst. Die Kriterien, die bestimmen
ob zwei Knoten verschmelzbar sind, sind dieselben wie die, die im vorigen Kapitel 2.4.1
beschrieben wurden.
Nachdem zwei Knoten vereint wurden, wird bei diesem Verfahren aber nicht der Graph
geändert. Die zusammengehörenden Knoten werden separat gespeichert und erst nach Beendigung des kompletten Kondensationsvorgangs werden die verschmolzenen Knoten mit
ihren Kanten aus dem Graphen entfernt. Das jeweils nächste verschmolzene Knotenpaar
wird also immer auf dem originalen Graphen gesucht. Um das zu ermöglichen, wird für
jeden Knoten gespeichert, wie groß die Gruppe bereits ist, zu der er gehört, und welchen Wichtigkeitswert die Gruppe hat. Dieser wird, wie schon bei der Verschmelzung auf
dem variablen Graphen, bei einer Verschmelzung auf die Summe der Wichtigkeiten der
einzelnen Knoten (oder Knotengruppen) gesetzt. Auch bei diesem Verfahren wird wieder schrittweise vorgegangen, sowohl im interaktiven wie im normalen Fall. Das Ergebnis
nachdem bis zu drei Knoten verschmolzen wurden geht also immer aus dem Ergebnis für
bis zu zwei verschmolzenen Knoten hervor.
In Abbildung 2.7 ist der Beispielgraph aus dem vorigen Kapitel mit dem Verfahren aus
diesem Kapitel und den angegebenen Einstellungen verschmolzen worden. Die Einstellungen sind dieselben wie in Abbildung 2.5, damit die beiden Verfahren verglichen werden
können. Zwischen den beiden Abbildungen sind nur sehr wenig Unterschiede auszumachen.
Das liegt daran, dass der Graph durch die Verschmelzung von zwei benachbarten Knoten
noch kaum verändert wird und somit der Unterschied zwischen den beiden Verfahren nicht
wirklich zum Tragen kommt. Deshalb sind die beiden Ergebnisse nahezu identisch.
16
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Abbildung 2.7: Der Beispielgraph aus Abbildung 2.4 kondensiert mit dem Verfahren aus
Kapitel 2.4.2 und den Einstellungen bis zu 2 Knoten verschmolzen und
einer maximalen Wichtigkeit von 2.0
17
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Abbildung 2.8: Der Beispielgraph aus Abbildung 2.4 kondensiert mit dem Verfahren aus
Kapitel 2.4.2 und den Einstellungen bis zu 4 Knoten verschmolzen und
einer maximalen Wichtigkeit von 2.0
Wenn mehr Knoten verschmolzen werden, wie in dem Beispiel aus Abbildung 2.8, so wird
der Unterschied zwischen den beiden bisher vorgestellten Verfahren sehr viel deutlicher.
Es wurden wieder dieselben Einstellungen gewählt wie für den Graphen in Abbildung 2.6.
Auffällig ist, dass mit dem Verfahren aus diesem Kapitel etwas mehr Knoten im Graphen
verbleiben. Das liegt daran, dass der Graph mit dem Verfahren aus dem vorigen Kapitel 2.4.1 verändert wird, während er bei dem Verfahren aus diesem Kapitel unverändert
bleibt. Die Nachbarschaft der Knoten bleibt also auch gleich, während die Multiknoten
beim ersten Verfahren mit jedem Schritt neue Nachbarn erhalten und somit insgesamt
mehr Knoten verschmolzen werden können. Das ist auch erkennbar daran, dass mit dem
Verfahren aus dem letzten Kapitel wenn mehr Knoten verschmolzen werden sehr lange
Kanten eingefügt werden, da entfernte Knoten plötzlich benachbart sind. Im Beispiel aus
Abbildung 2.8 ist das nicht der Fall. Die Veränderung der Nachbarschaft bei dem Verfahren aus Kapitel 2.4.1 wird durch die zweite Verschmelzoperation aus Abbildung 2.3
ermöglicht. Es ist erkennbar, dass Strukturen aus dem ursprünglichen Graphen mit dem
Verfahren aus diesem Kapitel deutlicher erhalten werden, als wenn der Graph während
des Kondensationsvorganges verändert wird.
Der entscheidende Vorteil dieses Verfahrens ist, dass der Ergebnisgraph deutlich näher am
18
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
ursprünglichen Graph bleibt als bei dem im vorigen Kapitel vorgestellten Verfahren. Dies
kommt dadurch zustande, dass die einzelnen Verschmelzungen stärker lokalisiert sind als
zuvor. Dadurch dass der Graph bei dem ersten Verfahren nach jedem Schritt verändert
wird, ändert sich die Nachbarschaft der Knoten ständig, und sie können mit Knoten verschmolzen werden, von denen sie zu Beginn noch mehrere Schritte entfernt waren. Durch
diese Einschränkung ist allerdings der Komprimierungsfaktor bei den Graphen nicht mehr
so hoch wie zuvor, weil auch nicht mehr so viele Knoten verschmolzen werden können. Es
muss also der Benutzer für den Einzelfall entscheiden, welches Verfahren für die jeweilige
Aufgabe am besten geeignet ist.
2.4.3 Einführung ins Clustering
Bei Clusteringverfahren ist es normalerweise das Ziel, verschiedene Objekte in Gruppen
einzuteilen, so dass nur zusammengehörende Elemente in einer Gruppe enthalten sind.
Diese Gruppen sind die sogenannten Cluster. Objekte die im selben Cluster liegen sollen
ähnlicher sein als Objekte aus verschiedenen Clustern. Dabei wird oft eine Distanzfunktion verwendet, um die Ähnlichkeit von Objekten zu messen. Um eine Distanz definieren
zu können, werden verschiedene Objektmerkmale gewählt, die charakteristisch für die jeweilige Anwendung sind. Die Anzahl der gewählten Merkmale definiert die Dimension des
Merkmalsraumes. Auf diesem Merkmalsraum wird dann mit einem geeigneten Distanzmaß
der Abstand zwischen den einzelnen Objekten bestimmt. Denkbare Abstandsmaße sind
zum Beispiel der euklidische Abstand, die Manhattan Distanz oder die Hamming Distanz.
Es gibt viele verschiedene Clusteringverfahren. Bei manchen ist von vorneherein bekannt,
wieviele Cluster es gibt, bei manchen wird diese Zahl im Laufe des Verfahrens bestimmt.
Eine Übersicht über einige der vielen Möglichkeiten des Clusterings ist zum Beispiel in [6]
zu finden.
Die bisher genannten Clusteringverfahren werden vor allem zum Clustern von Daten verwendet. In der Graphentheorie hingegen wird nach der Dichte von Graphen geclustert.
Dabei werden Teilgraphen, die im Vergleich zum Rest des Graphen besonders dicht sind,
zu einem Cluster zusammengefasst. Eine Einführung in verschiedene Möglichkeiten Graphen zu clustern wird in [5] gegeben.
Das Clusteringverfahren, das in dieser Arbeit verwendet wurde arbeitet zwar auf Graphen,
ist aber den Verfahren zum Clustering von Daten wesentlich ähnlicher als den gängigen
Graphenclustering Methoden.
2.4.4 Kondensation mit Clustering
In Abschnitt 2.4.3 wurden herkömmliche Clusteringverfahren vorgestellt. Für das Kondensationsmodul wird ein modifiziertes Clustering durchgeführt. Die Anzahl der Cluster
wird vom Benutzer vorgegeben, und alle Knoten des Graphen werden in entsprechend
viele Cluster zusammengefasst. Zu Beginn des Verfahrens werden die Clusterknoten bestimmt. Hierfür gibt es zwei Möglichkeiten. Entweder wurde die Option “cluster into
important nodes” gewählt, dann werden die wichtigsten Knoten entsprechend der Zentralitätsfunktion verwendet. Oder es wurde “cluster into random nodes” gewählt, dann
19
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
werden zufällige Knoten als Clusterknoten verwendet. Das zufällige Verfahren hat den
Vorteil, dass keine Zentralitätswerte berechnet werden müssen, und somit ein je nach
Verfahren sehr aufwändiger Schritt gespart wird. Demgegenüber steht der Nachteil, dass
mit einer sorgfältigeren Knotenauswahl ein besseres Ergebnis erreicht werden könnte. In
jedem Fall stehen am Ende dieses Auswahlvorgangs eine voher festgelegte Zahl Knoten
fest, in die nun der Rest der Knoten geclustert wird. Dabei wird ein sehr einfaches Distanzmaß verwendet - jeder Knoten wird in den nächstgelegenen Cluster einsortiert. Im
Gegensatz zu den bisher vorgestellten Kondensationsverfahren bleiben also keine unverschmolzenen Knoten im Graphen, außer der Benutzer hat sie vor der Kondensation als
unverschmelzbar markiert. Für die Kondensation wird in jedem Schritt die Nachbarschaft
der Clusterknoten bestimmt, und diese dann in den jeweiligen Knoten “verschmolzen”.
Der Graph wird entsprechend angepasst. Das bedeutet, dass die verschmolzenen Knoten
entfernt und eventuell neue Kanten eingezogen werden. Das wird solange wiederholt, bis
alle Knoten verschmolzen, beziehungsweise keine verschmelzbaren Knoten mehr vorhanden sind. Ein Verschmelzungsschritt ist in Abbildung 2.9 dargestellt.
In der Abbildung 2.9 ist erkennbar, dass sowohl Knoten als auch Kanten aus dem Gra-
Abbildung 2.9: Ein Schritt des Clusteringverfahrens: der rote Knoten ist ein Clusterknoten, die gestrichelten Elemente werden aus dem Graphen entfernt, während
die roten Kanten neu dazukommen
phen entfernt werden. Die Elemente, die nach dem Verschmelzungsschritt nicht mehr im
Graphen sind, sind in der Abbildung gestrichelt. Aber es kann auch vorkommen, dass
neue Kanten in den Graphen eingefügt werden. In dem Beispiel aus Abbildung 2.9 werden
die in rot markierten Kanten bei dem dargestellten Verschmelzungsschritt eingefügt. Das
ist notwendig, damit im nächsten Schritt die Nachbarn der Knoten, die bereits in diesem
Schritt in den Clusterknoten aufgenommen wurden, verschmolzen werden können. Die
Kondensation des Graphen ist also recht einfach: es werden in jedem Schritt alle Nachbarn der Clusterknoten mit diesen vereinigt und deren Nachbarn mit den entsprechenden
Clusterknoten verbunden. Das wird solange wiederholt bis nur noch Clusterknoten und
unverschmelzbare Knoten vorhanden sind. Im Optionsfenster können zwar vom Benutzer
20
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Werte für die maximale Anzahl an verschmolzenen Knoten und ein Grenzwert für die
Wichtigkeit der Multiknoten eingestellt werden, wie schon im Abschnitt 2.2 beschrieben,
für das Clusteringverfahren werden diese Einstellungen aber nicht berücksichtigt. Die einzigen relevanten Parameter sind die Anzahl der Cluster sowie das Verfahren, nach dem
die Clusterknoten ausgewählt werden.
Ein Beispiel für eine Kondensation mit der Clustering-Methode ist in Abbildung 2.10
Abbildung 2.10: Der Graph aus Abbildung 2.4 kondensiert mit zufälliger Clusterknoten
Auswahl und 125 Clustern
dargestellt. Hier wurde der Beispielgraph aus Abbildung 2.4, der schon in den vorigen
Kapiteln verwendet wurde, in 125 zufällig ausgewählte Cluster kondensiert. Die Form des
Ursprungsgraphen bleibt dabei relativ gut erhalten. Manche der Multiknoten waren aber
schon im ursprünglichen Graphen benachbart und durch eine bessere Auswahl hätte die
Struktur des Graphen deutlicher erhalten bleiben können.
In Abbildung 2.11 wurde der bekannte Beispielgraph in 75 zufällig ausgewählte Cluster kondensiert. Das Ergebnis hat sich inzwischen schon recht weit vom ursprünglichen
Graphen entfernt, die grobe Form ist aber immer noch erhalten worden. Auch in diesem
Beispiel ist ersichtlich, dass durch eine günstigere Auswahl der Clusterknoten ein besseres
Ergebnis erzielt werden könnte.
21
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Abbildung 2.11: Der Graph aus Abbildung 2.4 kondensiert mit zufälliger Clusterknoten
Auswahl und 75 Clustern
22
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Abbildung 2.12: Der Graph aus Abbildung 2.4 kondensiert in die 125 wichtigsten Knoten
nach der NodeBetweenness Zentralität aus Kapitel 2.3.4
Werden die Clusterknoten nicht mehr zufällig ausgewählt, sondern anhand ihrer Wichtigkeit, die mit einem der Zentralitätsmaße aus Kapitel 2.3 gemessen wird, so werden Ergebnisse wie in Abbildung 2.12 erzielt. Hier ist erkennbar, dass, im Vergleich zur zufälligen
Clusterknotenauswahl aus Abbildung 2.10, die Cluster gleichmäßiger über den Graphen
verteilt sind, und das Ergebnis damit sehr viel näher am ursprünglichen Graphen bleibt.
Die Strukturen wie zum Beispiel die großen Zykel lassen sich im kondensierten Graphen
meistens sehr gut wiedererkennen.
Reduziert man die Anzahl an Clustern auf 75, so erhält man den Graphen aus Abbildung
2.13. Im Vergleich mit der zufälligen Auswahl wird wieder klar, dass die hier gewählten
Cluster wesentlich günstiger liegen, und die Struktur des Ursprungsgraphen deutlicher zu
erkennen ist. Auch mit dieser geringen Anzahl an Knoten lassen sich Strukturen aus dem
ursprünglichen Graphen gut in der kondensierten Version wiederfinden.
Das Clustering Verfahren mit den beiden Möglichkeiten Clusterknoten auszuwählen hat
den entscheidenden Vorteil, dass es sehr schnell ist. Wenn erst einmal die Clusterknoten
bestimmt sind, ist der Rest der Kondensation sehr einfach. Der entscheidende Faktor für
die Qualität des Ergebnisses ist die Anzahl und die Methode zur Auswahl der Clusterknoten. Die zufällige Auswahl ist sehr schnell, weil die Berechnung der Zentralitäten für
den Graphen eingespart wird. Mit einer angemessenen Anzahl Cluster lassen sich mit dieser Methode gute Ergebnisse erzielen, wie aus den Abbildungen 2.10 und 2.11 ersichtlich
23
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Abbildung 2.13: Der Graph aus Abbildung 2.4 kondensiert in die 75 wichtigsten Knoten
nach der NodeBetweenness Zentralität aus Kapitel 2.3.4
ist. Zwar sind diese Ergebnisse nicht so nah am originalen Graphen wie bei der Auswahl
nach Wichtigkeit, für manche Anwendungen kann das aber dennoch reichen. Wählt man
hingegen die wichtigsten Knoten als Clusterknoten gemäß eines entsprechenden Zentralitätsmaßes, so bleibt das Ergebnis, wenn eine günstige Zahl Cluster gewählt wurde, sehr
nah am ursprünglichen Graphen, und der Komprimierungsfaktor ist dennoch hoch.
Beide Verfahren haben ihre Vor- und Nachteile und somit muss der Benutzer entscheiden,
welches für die jeweilige Anwendung am besten geeignet ist. Durch die Geschwindigkeit
des Clustering Verfahrens ist es möglich, durch einige Experimente mit wenig Zeitaufwand
gute Einstellungen zu finden.
2.4.5 Statistiken
In diesem Abschnitt wird die Veränderung der Grapheneigenschaften durch die verschiedenen Kondensationsverfahren mit einigen Beispielzahlen verdeutlicht. Die Wichtigkeitswerte der Knoten werden mit den zuvor eingeführten Zentralitätsmaßen gemessen. Diese
Werte sind normiert, so dass sie alle zwischen null und eins liegen. Für die Auswertung
wurde dieser Bereich gleichmäßig in 10 Intervalle geteilt und bestimmt, wieviele Knoten jeweils einen entsprechenden Wichtigkeitswert zugeordnet bekommen haben. Um eine
statistisch signifikante Aussage treffen zu können, wurde das für viele zufällig erzeugte
24
KAPITEL 2. GRAPHEN KONDENSATION
2.4. VERSCHMELZOPERATIONEN
Graphen wiederholt und die Ergebnisse über alle Versuche gemittelt. Am deutlichsten
werden die Veränderungen wenn man die Knotengrad-Verteilung vor und nach dem Kondensationsvorgang betrachtet. In Tabelle 2.1 sind die Zahlen für die Verschmelzung von
zufällig erzeugten Graphen dargestellt. Für die Werte der Tabelle wurden Zufallsgraphen
mit 500 Knoten und 5000 Kanten erzeugt und diese dann mit den beiden Verfahren aus
den Kapiteln 2.4.2 und 2.4.1 kondensiert. Dabei wurden bis zu 5 Knoten verschmolzen
und ein maximaler Wichtigkeitswert von 3 verwendet. Als Wichtigkeitsmaß wurde der
Knotengrad gewählt, da sich daran die Grapheigenschaften besonders gut ablesen lassen.
Das Verfahren wurde 500 mal wiederholt und die erhaltenen Zahlen gemittelt.
Erkennbar in Tabelle 2.1 ist, dass in den zufällig erzeugten Graphen im unkondensierten
Tabelle 2.1: Knotengradverteilung vor und nach den Kondensationsverfahren aus den Abschnitten 2.4.2 und 2.4.1 bei zufällig erzeugten Graphen mit 500 Knoten und
5000 Kanten. Maximaler Knotengrad vor der Kondensation: 34, nach original
Graph Methode: 70, nach variabler Graph Methode: 69
Intervall
0 − 0.1
0.1 − 0.2
0.2 − 0.3
0.3 − 0.4
0.4 − 0.5
0.5 − 0.6
0.6 − 0.7
0.7 − 0.8
0.8 − 0.9
0.9 − 1.0
Originale Verteilung
0
0
4
35
106
141
121
61
21
6
statischer Graph
0
0
0
0
0
1
11
45
51
15
variabler Graph
0
0
0
0
0
1
10
45
53
15
Zustand der Knotengrad ungefähr normalverteilt ist. Die meisten Knoten haben einen
Wert um 0.5, was bei einem Zufallsgraphen erwartet wird. Werden diese Graphen mit den
Verfahren aus Kapitel 2.4.2 oder 2.4.1 verschmolzen, so sieht man, dass sich die Gradverteilung der Knoten hin zu den höheren Graden verschiebt. Es gibt nach der Kondensation
wesentlich weniger Knoten niederen Grades als zuvor. Auch ist erkennbar, dass die Zahlen bei beiden Kondensationsverfahren sehr ähnlich sind. Das bedeutet nicht, dass die
Ergebnisgraphen ähnlich sind, sondern dass die Verteilung des Knotengrades durch beide
Verfahren ähnlich beeinflusst wird. Wie schon bei den Beispielen zu den beiden Verfahren
deutlich wurde können die Ergebnisgraphen sehr unterschiedlich aussehen. Die Ähnlichkeit
in der Knotengradverteilung ist auf die ähnliche Vorgehensweise bei den beiden Verfahren zurückzuführen. In beiden Fällen werden benachbarte Knoten verschmolzen und es
entstehen Multiknoten, die alle höchstens die vom Benutzer vorgegebene Anzahl Knoten
enthalten. Der Unterschied zwischen den beiden Verfahren ist der Zeitpunkt, zu dem der
Graph aktualisiert wird. Da die prinzipielle Veränderung des Graphen aber bei beiden Verfahren die gleiche ist, sind die Ergebnisse sehr ähnlich. Ein weiterer Effekt ist, dass sich
die Gradverteilung nicht nur hin zu höheren Graden verschiebt, sondern die absoluten
25
2.4. VERSCHMELZOPERATIONEN
KAPITEL 2. GRAPHEN KONDENSATION
Tabelle 2.2: Knotengradverteilung vor und nach den beiden Clusteringverfahren aus Abschnitt 2.4.4 bei zufällig erzeugten Graphen mit 500 Knoten und 5000 Kanten.
Maximaler Knotengrad vor der Kondensation: 34, nach clustering in wichtige
Knoten: 88, nach clustering in zufällige Knoten: 85
Intervall
0 − 0.1
0.1 − 0.2
0.2 − 0.3
0.3 − 0.4
0.4 − 0.5
0.5 − 0.6
0.6 − 0.7
0.7 − 0.8
0.8 − 0.9
0.9 − 1.0
Originale Verteilung
0
0
4
35
107
141
122
60
21
6
Cluster in wichtige Knoten
0
5
36
16
10
7
6
6
5
5
Cluster in zufällige Knoten
0
14
17
16
12
9
8
8
7
5
Werte der Knotengrade auch deutlich größer werden. Ist der Maximalgrad im originalen
Graphen noch 34, so steigt er durch die Kondensation auf 69 beziehungsweise 70 an. Dies
ist vor allem dadurch zu erklären, dass die Kantenzahl durch den Kondensationsvorgang
zwar ungefähr erhalten bleibt, sich die verbleibenden Kanten aber auf weniger Knoten
verteilen. Wenn eine Kante aus dem Graphen entfernt wird, so bedeutet das, dass die
beiden Knoten miteinander vereint werden. Wenn der Knoten, der aus dem Graphen entfernt wird, nicht Grad 1 hat, so werden alle Knoten, die mit ihm verbunden waren, mit
dem Multiknoten, zu dem er hinzugefügt wurde, verbunden. Wird ein Multiknoten mit
mehreren Knoten verschmolzen und erhält jedesmal neue Kanten, so ist klar, dass der
Maximalgrad der Knoten nach Beendigung des Kondensationsvorganges höher ist als im
Originalgraphen.
Für das Clustering sehen die Zahlen hingegen etwas anders aus. In Tabelle 2.2 ist die
Knotengradverteilung für zufällig erzeugte Graphen vor und nach den beiden Clusteringverfahren aus Abschnitt 2.4.4 dargestellt. Für diese Zahlen wurden Zufallsgraphen mit
dem Kondensationsmodul in 100 Cluster verkleinert. Das wurde 500 mal wiederholt und
die Zahlen gemittelt.
Aus Tabelle 2.2 ist ersichtlich, dass die Knotengradverteilung in Zufallsgraphen durch das
Clustering deutlich anders beeinflusst wird als durch die Verschmelzoperationen, die zu
den Verhältnissen aus Tabelle 2.1 geführt haben. Nach dem Clustering sind im Graphen
nur noch Clusterknoten und unverschmelzbare Knoten. Wie in Tabelle 2.2 zu erkennen, haben die meisten dieser Knoten einen geringen Grad. Wurde in wichtige Knoten geclustert,
so ist dieser Effekt stärker ausgeprägt als bei einer zufälligen Auswahl der Clusterknoten.
Vergleicht man allerdings die absoluten Werte, so sieht man, dass auch beim Clustering
der maximale Knotengrad deutlich erhöht wird. Wie schon bei den Verschmelzungsmethoden wird das auch hier dadurch verursacht, dass die verbleibenden Kanten des Graphen
sich auf weniger Knoten verteilen. Auch beim Clustering wird zu jedem Nachbarn eines
26
KAPITEL 2. GRAPHEN KONDENSATION
2.5. DARSTELLUNG
Knotens, der mit einem Multiknoten vereint wird, eine neue Kante zum Multiknoten eingefügt. Dieser verliert zwar die Kante zu seinem ursprünglichen Nachbarn, gewinnt aber,
wenn sein Nachbar nicht Grad 1 hatte, mindestens 1 neue Kante hinzu. Der absolute Grad
der meisten Knoten nach dem Clustering entspricht ungefähr dem, den die meisten Knoten vor dem Clustering hatten. Das bedeutet, dass zwar einige Knoten im Grad steigen,
bei vielen Knoten hält sich der Verlust und das Hinzugewinnen von Kanten allerdings die
Waage.
Im Vergleich zwischen den Verschmelzmethoden aus den Kapiteln 2.4.1 und 2.4.2, deren Effekt in Tabelle 2.1 zusammengefasst wird, und den Clusteringverfahren aus Kapitel
2.4.4, die in Tabelle 2.2 aufgeführt sind, wird ein deutlicher Unterschied sichtbar. Während
bei den Verschmelzungsmethoden die Gradverteilung der Knoten erhalten bleibt, ändert
sie sich bei den Clusteringmethoden deutlich. Die Veränderung der Knotengradverteilung
wirkt sich allerdings nicht negativ auf das Ergebnis des Kondensationsvorganges aus, wie
aus den verschiedenen Beispielabbildungen aus den entsprechenden Kapitel gesehen werden kann. Alle Verfahren liefern mit der kondensierten Version des Eingabegraphen eine
Zusammenfassung die die Struktur annähert, und erfüllen somit die an die Kondensation
gestellten Ansprüche.
2.5 Darstellung
2.5.1 Der kondensierte Graph
Nachdem in den vorangegangenen Kapiteln die verschiedenen Kondensationsmöglichkeiten
beschrieben wurden, wird in diesem Abschnitt auf die Darstellung des Ergebnisgraphen
eingegangen.
Zusätzlich zu den normalen Knoten und Kanten des Graphen sind zwei Elemente hinzugekommen, die Multiknoten und die eingefügten Kanten. Diese werden farblich markiert,
damit sie von den anderen Elementen des Graphen unterschieden werden können. Außerdem werden die Labels der Multiknoten verändert. Diese werden durch eine Liste der
Bezeichnungen aller Knoten ersetzt, die sie repräsentieren. In den vorangegangenen Kapiteln wurde anhand eines Beispielgraphen (Abbildung 2.4) die verschiedenen Verfahren
vorgestellt. Die kondensierten Graphen aus den Abbildungen 2.5 - 2.13 enthalten diese zusätzlichen Elemente. Die roten Knoten der Abbildungen stellen Multiknoten dar,
während eingefügte Kanten in grün markiert sind.
2.5.2 Die Detailansicht
Für das “Overview and Detail” Konzept, das zuvor in Kapitel 1.2 beschrieben wurde,
sollte aus dem Übersichtsgraphen an interessanten Stellen ein Detailgraph erzeugt werden
können. Dazu muss es eine Möglichkeit geben, den Kondensationsvorgang lokal rückgängig
zu machen, und den originalen Graphen an dieser Stelle anzuzeigen. Zu diesem Zweck wird,
wenn ein Multiknoten im Graph angewählt wird, ein extra Fenster geöffnet, in dem bis
zu einer vom Benutzer eingestellten Tiefe der Originalgraph um den ausgewählten Knoten herum angezeigt wird. Für das Layout des Detailgraphen, das auch Bestandteil des
27
2.5. DARSTELLUNG
KAPITEL 2. GRAPHEN KONDENSATION
“Overview and Detail” Konzeptes aus Kapitel 1.2 ist, wird hierbei die Layoutinformation
des Eingangsgraphen verwendet. Das bedeutet, dass alle Knoten im Detailgraphen auf
dieselbe Position gesetzt werden, auf denen sie im ursprünglichen Graphen liegen. Für
das Vergleichsmodul, das in Kapitel 3 vorgestellt wird, wurde ein spezielles Verfahren für
das Layouten des Detailgraphen entwickelt, das in Abschnitt 3.5.3 vorgestellt wird. Ein
Fenster mit einem Detailgraphen ist in Abbildung 2.14 dargestellt.
In der Abbildung 2.14 des Teils des Originalgraphen ist zu erkennen, dass am Rande des
Abbildung 2.14: Ein Beispiel für ein Fenster das man erhält, wenn man im Graph aus
Abbildung 2.13 einen Multiknoten auswählt
dargestellten Bereiches gestrichelte Kanten hinausführen. Im Originalgraphen verbinden
diese Kanten den dargestellten Teilgraphen mit dem Rest des Graphen. Wird eine dieser
gestrichelten Kanten ausgewählt, so wird der angezeigte Teilgraph entlang dieser Kante erweitert. Das bedeutet, dass die Kante zu einer normalen Kante wird, mit der Orientierung
die vom Originalgraphen vorgegeben ist. Der Knoten auf der anderen Seite der Kante wird
in die Abbildung eingefügt und neue gestrichelte Kanten, die von diesem Knoten ausgehen
angelegt. Entlang dieser Kanten kann der Graph dann beliebig weiter exploriert werden.
Sollte irgendwann zuviel des Graphen sichtbar sein, so kann durch das Auswählen einer
normalen Kante des Teilgraphen das Ziel dieser Kante und dessen Subgraph wieder entfernt werden. Alle Knoten und Kanten die ohne den Zielknoten der ausgewählten Kante
vom Startknoten aus nicht mehr erreichbar sind werden aus dem Graphen entfernt. Die
Kanten die am Rand des neuen Graphen liegen werden dann zu erweiternden Kanten.
28
KAPITEL 2. GRAPHEN KONDENSATION
2.6. IMPLEMENTATION
2.6 Implementation
Da die yFiles eine Java-Bibliothek, und yEd ein Java-Programm ist, wurden auch die in
dieser Diplomarbeit entwickelten Verfahren in Java implementiert. Eine Übersicht über
das Kondensationsmodell ist in Abbildung 2.15 dargestellt.
Um den Rechenaufwand und den Speicherbedarf des Kondensationsmoduls gering zu hal-
Abbildung 2.15: Übersicht über das Kondensationsmodul
ten, werden Knoten, die aus dem Graphen entfenrt werden, nicht wirklich entfernt, sondern
nur unsichtbar. Alle Kanten die diesen Knoten mit dem Rest des Graphen verbinden werden ebenfalls unsichtbar. In einer Map wird zu jeder Kante gespeichert, welchen Typ sie
hat. Kanten können normale Kanten, unsichtbare Kanten oder durch die Kondensation
eingeführte Kanten sein. Auf diese Weise muss nicht jeder entfernte Knoten mit allen seinen Kanten extra gespeichert werden, damit man den ursprünglichen Graph später wieder
rekonstruieren kann. In einer zusätzlichen Map wird zu jedem Knoten gespeichert, ob er
ein normaler Knoten, ein unsichtbarer Knoten oder ein Multiknoten ist.
29
2.7. ZUSAMMENFASSUNG
KAPITEL 2. GRAPHEN KONDENSATION
Wird nun im Übersichtsgraphen ein Multiknoten angeklickt, so wird das schon zuvor beschriebene Extrafenster geöffnet. Dazu wird ein neuer Graph angelegt, der nur den angezeigten Teil enthält. Dieser wird dadurch gefunden, dass die Umgebung des Multiknotens
im Übersichtsgraphen inklusive der unsichtbaren Elemente durchsucht wird. Eingefügte
Kanten werden dabei nicht in dem neuen Teilgraph erzeugt, so dass der Graph in seiner
ursprünglichen Form angezeigt wird.
An dem Teilgraph wird ein Listener registriert, der dafür zuständig ist, den Graphen beim
Klick auf eine erweiternde Kante zu vergrößern, oder beim Klick auf eine normale Kante
zu verkleinern. Dieser Listener hat eine Liste der erweiternden Kanten, so dass er unterscheiden kann, welcher Fall eintritt. Außerdem sind der Übersichtsgraph und der Teilgraph
durch Maps miteinander verbunden, so dass schnell der entsprechende Knoten im jeweils
anderen Graph gefunden werden kann. Wird der Teilgraph erweitert, so muss der Knoten
im ursprünglichen Graph gesucht werden, um die Nachbarschaft und somit die neuen Knoten zu finden. Diese Knoten sind dann erst einmal Teil des Übersichtsgraphen. Durch die
Map, die diesen Graphen mit dem Teilgraph verbindet, kann dann herausgefunden werden,
ob der entsprechende Knoten bereits in dem Teilgraphen enthalten ist, weil er von einem
anderen Knoten aus schon erreicht wurde. Deshalb werden Maps für beide Richtungen
benötigt.
Um das Kondensationsmodul für andere Projekte besser verwenden zu können, wurden
alle Funktionen javadoc konform kommentiert, und eine entsprechende Dokumentation
erzeugt.
2.7 Zusammenfassung
In diesem Kapitel wurden einige Kondensationsverfahren vorgestellt, mit denen ein großer
Graph auf übersichtliche Art und Weise dargestellt werden kann. Diese Verfahren bedienen
sich verschiedener Zentralitätsmaße, die den Knoten des Graphen Werte zuweisen, die deren Wichtigkeit wiederspiegeln sollen. Anhand dieser Wichtigkeiten werden die Knoten auf
unterschiedliche Arten zusammengefasst und die Gesamtknotenzahl des Graphen damit
reduziert. Damit der Graph dadurch nicht unzusammenhängend wird werden zusätzliche
Kanten eingefügt, die speziell markiert werden, damit sie von den normalen Kanten unterschieden werden können. Um eine Detailansicht nach dem “Overview and Detail”Konzept
zu erstellen kann der kondensierte Graph an interessanten Stellen untersucht werden, indem man einen Multiknoten anklickt. Dadurch erhält man ein Extrafenster, in dem der
kondensierte Teil in seiner ursprünglichen Form um den gewählten Knoten herum ange eigt
wird. In diesem Fenster ist es möglich, den Graphen zu explorieren, indem der angezeigte
Teil durch Anklicken von weiterführenden Kanten erweitert wird.
30
3 Graph-Vergleich
3.1 Einleitung
Das Ziel dieser Arbeit war, wie schon im Kapitel 1 beschrieben, große Graphen miteinander zu vergleichen und die Unterschiede visuell darzustellen. Dazu wurde wieder ein Modul
für den Grapheneditor yEd implementiert. In diesem Kapitel wird nun erläutert, wie die
Graphen verglichen, und auf welche Weise die Unterschiede in einem Übersichtsfenster
angezeigt werden. Dazu wird zunächst das Optionsfenster des Modules in Kapitel 3.2
vorgestellt. Anschließend folgt mit Abschnitt 3.3 eine Erläuterung des Ablaufes des Vergleichsmodules. Die Darstellung der Ergebnisse schließlich wird in Kapitel 3.4 erklärt, und
Abschnitt 3.5 beschreibt die Möglichkeiten, die der Benutzer hat, um das Ergebnis des Vergleichsvorgangs zu untersuchen. Einige Details der Implementation werden in Abschnitt
3.6 erläutert und das ganze Kapitel in Abschnitt 3.7 zusammengefasst.
3.2 Das Optionsfenster
In Abbildung 3.1 ist das Optionsfenster des Vergleichsmoduls dargestellt.
Hier werden die für den Vergleichsvorgang wichtigen Einstellungen vom Benutzer vorge-
Abbildung 3.1: Optionsfenster des Vergleichsmoduls
nommen. Die erste Option erlaubt es, den aktuell im yEd bearbeiteten Graphen als einen
der beiden Graphen, die verglichen werden sollen, zu verwenden. Mit den darunter liegenden “browse. . . ” Buttons können ein (oder zwei) Dateien angegeben werden, in denen
Graphen gespeichert sind. Soll für einen oder beide Graphen vor dem Vergleichen ein Layout berechnet werden, so kann dies über die Checkboxen darunter angegeben werden. Soll
31
3.3. ABLAUF
KAPITEL 3. GRAPH-VERGLEICH
für einen der Graphen ein Layout berechnet werden, so wird dafür ein Spring-Embedder
verwendet. Dazu wird der Organic Layouter aus den yFiles mit den Standardeinstellungen
benutzt. Über die letzte Einstellung kann der Benutzer bestimmen, bis zu welcher Distanz
zwei erkannte Änderungen zu einer großen Änderung zusammengefasst werden sollen. Je
nach Graphgröße und erwarteter Unterschiedsmenge muss hier vom Benutzer ein entsprechender Wert gewählt werden. Die Auswirkungen der in diesem Fenster vorgenommenen
Einstellungen auf den Ablauf des Vergleichsvorgangs werden im Abschnitt 3.3 beschrieben.
3.3 Ablauf
Dieses Kapitel beschreibt den Ablauf des Vergleichsmoduls. Er kann in drei Schritte eingeteilt werden: Vorbereitung (Kapitel 3.3.1), Vergleichsvorgang (Kapitel 3.3.2) und Visualisierung (Kapitel 3.3.3). Die einzelnen Schritte werden in den folgenden Abschnitten
erläutert.
3.3.1 Vorbereitung
Zunächst werden die beiden Graphen, die verglichen werden sollen, über das Optionsfenster
des “Graph Compare Modules”, das im vorigen Abschnitt 3.2 vorgstellt wurde, angegeben.
Hierbei hat der Benutzer die Wahl, den aktuell im yEd bearbeiteten Graphen direkt als
den ersten der beiden Graphen zu wählen. Der zweite (und evtl. auch der erste) Graph
wird aus einer vom Benutzer angegebenen Datei eingelesen. Die Graphen können in den
Formaten ygf, gml und graphml vorliegen. Um sicher zu stellen, dass die richtigen Graphen
ausgewählt sind, wird der Name der ausgewählten Datei neben dem “browse. . . ”Button
angezeigt. Es besteht zusätzlich noch die Möglichkeit, einen oder beide Eingabegraphen
zu layouten, sollte keine Layoutinformation für den jeweiligen Graphen vorliegen. Wählt
man diese Option, so wird noch vor Beginn des eigentlichen Vergleichsvorgangs für die
entsprechenden Graphen ein Layout berechnet. Dazu wird der Organic Layouter aus den
yFiles mit den Standardeinstellungen verwendet. Für die Eingangsgraphen wird ein Layout
benötigt, da sie auch im Ergebnisfenster (siehe Kapitel 3.4) angezeigt werden.
3.3.2 Der Vergleichsvorgang
Stehen die Eingabegraphen fest, wird mit der Suche nach Unterschieden begonnen. Hierzu
wird angenommen, dass zusammengehörende Knoten dadurch identifiziert werden können,
dass sie in beiden Graphen das selbe Label haben. Das bedeutet, dass die Zuordnung der
Knoten bekannt ist, und kein Isomorphieproblem gelöst werden muss. Deshalb ist der Vergleichsvorgang verhältnismäßig einfach. Von dieser Annahme kann in den in dieser Arbeit
betrachteten Anwendungsfällen ausgegangen werden.
Die gefundenen Unterschiede können Knoten oder Kanten sein, die in einem der beiden Graphen nicht vorkommen. Für jeden Unterschied wird ein eigenes Objekt angelegt.
Zunächst wird jede atomare Änderung für beide Graphen bestimmt. Anschließend werden die Änderungen, die nicht weiter als eine vorgegebene Distanz von einander entfernt
32
KAPITEL 3. GRAPH-VERGLEICH
3.4. DAS ÜBERSICHTSFENSTER
sind, zu komplexen Änderungen zusammengefasst. Dabei bestimmt die vom Benutzer im
Optionsfenster aus Kapitel 3.2 angegebene Entfernung von Unterschieden, bis zu welcher
Distanz lokale Änderungen zusammengehören. Ein Abstand von 1 bedeutet, dass zwei
Knoten die in einem Graphen vorhanden und durch eine Kante verbunden sind , im anderen Graphen aber nicht, zu einer Änderung zusammengefasst werden. Auf diese Weise
werden im Übersichtsfenster nicht sehr viele atomare Änderungen angezeigt, sondern weniger, dafür größere komplexe Änderungen, die fehlende Knoten und Kanten enthalten.
Nach diesem Schritt gibt es zwei Listen, die jeweils eine Menge von Elementen enthalten,
die nur in einem der beiden Graphen enthalten sind.
3.3.3 Aufbereitung und Visualisierung
Nachdem nun alle Unterschiede zwischen den beiden Graphen bestimmt und zusammengefasst wurden, werden die Graphen mit einem der in Kapitel 2 vorgestellten Verfahren
kondensiert. Dazu wird einmal der Optionsdialog des Kondensationsmoduls angezeigt, der
bereits in Abschnitt 2.2 beschrieben wurde. Die hier vorgenommenen Einstellungen werden auf alle drei Graphen, die später angezeigt werden, angewendet. Da die ursprünglichen
Graphen auch im Übersichtsfenster angezeigt werden, werden nicht die Graphen selbst sondern Kopien mit dem Kondensationsmodul verkleinert.
Als Grundlage des Übersichtsgraphen wird einer der beiden Eingangsgraphen verwendet.
Aus diesem werden die Elemente, die nur in ihm enthalten sind entfernt, und dann wird der
Graph mit den vom Benutzer angegebenen Einstellungen kondensiert. Anschließend wird
für jede Änderung ein Knoten eingefügt. Der resultierende Graph wird mit dem Organic
Layouter aus den yFiles gelayoutet.
3.4 Das Übersichtsfenster
Sind die Graphen verglichen und kondensiert worden, werden die Ergebnisse in einem
Übersichtsfenster präsentiert. Ein Beispiel für ein Übersichtsfenster ist in Abbildung 3.2
dargestellt.
Das Übersichtsfenster enthält mehrere Tabs, über die auf die verglichenen Graphen zugegriffen werden kann. Es sind Tabs mit den beiden Eingabegraphen in unkondensierter und kondensierter Version vorhanden, sowie ein Tab der den Übersichtsgraphen mit
den Ergebnissen des Vergleichs enthält. In den einzelnen Tabs kann mit gedrückter rechter Maustaste navigiert und mit dem Mausrad gezoomt werden. Durch Anklicken von
Änderungs- oder Multiknoten im Übersichtsgraphen erhält man eine Detailansicht, die im
nächsten Abschnitt 3.5 beschrieben wird. Zusätzlich ist in jedem Tab eine Buttonleiste auf
der rechten Seite, in der ein Button mit der Beschriftung “copy graph to yed” vorhanden
ist, mit dem man den jeweiligen Graphen zur weiteren Bearbeitung in den Grapheneditor
kopieren kann. In dem Tab, das den Übersichtsgraphen enthält, ist außerdem noch eine
Legende unter dem Button angebracht. Darin wird verdeutlicht, welche Farbe Elemente
aus welchem Graphen symbolisiert. In Abbildung 3.2 kann man die Legende sehen, die den
Farben grün und rot jeweils einen Graphen zuordnet. Diese Farben entsprechen den Farben
33
3.5. DIE DETAILANSICHT
KAPITEL 3. GRAPH-VERGLEICH
Abbildung 3.2: Beispiel für ein Übersichtsfenster in dem die Ergebnisse des Vergleichsvorgangs präsentiert werden
der Änderungsknoten im Übersichtsgraphen. Um die Lesbarkeit des Übersichtsgraphen zu
verbessern, werden Knotenlabels die länger als 25 Zeichen sind abgeschnitten. Um sich zu
orientieren reichen die abgeschnittenen Labels, und wenn ein interessanter Bereich in der
Detailansicht untersucht wird, werden die vollständigen Knotenlabels wieder eingeblendet.
3.5 Die Detailansicht
Jede komplexe Änderung ist im Übersichtsgraphen als einzelner Knoten enthalten. Um
nun die jeweilige Änderung genauer untersuchen zu können, wird das Fenster, das Teile
des kondensierten Graphen in ihrer ursprünglichen Form anzeigt, verwendet. In Kapitel 2.5
wurde beschrieben, wie beim Anwählen eines Multiknoten im kondensierten Graphen ein
extra Fenster geöffnet wird, das den Bereich um den Multiknoten im originalen Graphen
darstellt. Dieses Fenster wurde für das Vergleichsmodul angepasst.
3.5.1 Darstellung des Detailgraphen
Gemäß dem “Overview and Detail” Konzept aus Kapitel 1.2 soll der Detailgraph nach
der Konstruktion gelayoutet werden. Um das konsistent mit dem Übersichtsgraphen zu
gestalten, werden die Knoten, deren Position im Übersichtsgraphen schon festliegt, auf
34
KAPITEL 3. GRAPH-VERGLEICH
3.5. DIE DETAILANSICHT
dieselben Positionen gelegt. Die restlichen Knoten werden mit dem Organic Layouter aus
den yFiles unter Berücksichtigung der Knoten mit festen Positionen gelayoutet.
Sollte ein Multiknoten angewählt worden sein, so wird wie zuvor der Bereich um den
Knoten im unkondensierten Zustand angezeigt. Wird aber ein Knoten ausgewählt der eine Änderung darstellt, ist die Darstellung anders. Es wird ein Bereich aus dem Graphen
angezeigt, der die Elemente aus der gewählten Veränderung enthält. Die Darstellung des
Graphen entspricht seinem originalen Zustand, nur sind die Elemente, die nur in diesem
Graphen enthalten sind, farblich hervorgehoben. Ein Beispiel für eine solche Detailansicht
ist in Abbildung 3.3 dargestellt.
Erkennbar in Abbildung 3.3 sind die Elemente, die nur in einem der beiden Graphen
Abbildung 3.3: Detailansicht einer Änderung. Die Elemente, die nur in einem der beiden
verglichenen Graphen enthalten sind, sind farblich hervorgehoben. Die rot
umrandete Buttonleiste wird im Einzelnen im Text erklärt
enthalten sind. Dabei sind die Knoten in der entsprechenden Farbe umrandet und die
Kanten in dieser Farbe gezeichnet. Die beiden Farben entsprechen denen, die auch im
Übersichtsgraphen verwendet werden, und die im Übersichtsfenster, wie in Abschnitt 3.4
beschrieben, einem der beiden verglichenen Graphen zugeordnet werden. Der Rest des
dargestellten Teilgraphen wird wie im originalen Graphen abgebildet. Für Abbildung 3.3
wurde ein Änderungsknoten aus dem Übersichtsgraphen aus Abbildung 3.2 angeklickt und
der angezeigte Graph noch entlang einiger Kanten exploriert, bis aus jedem der beiden
35
3.5. DIE DETAILANSICHT
KAPITEL 3. GRAPH-VERGLEICH
Graphen eine Änderung zu sehen war. Die Exploration des Teilgraphen wird in Abschnitt
3.5.2 beschrieben.
In der Buttonleiste des Fensters aus Abbildung 3.3 sind vier Buttons zu erkennen. Mit dem
“dual view” Button lässt sich der entsprechende Bereich im anderen Graphen einblenden,
so dass die beiden Graphen an einer interressanten Stelle direkt verglichen werden können.
Für das Beispiel aus Abbildung 3.3 würde der Dualview aussehen wie in Abbildung 3.4.
Der Graph im zweiten Fenster lässt sich nach der gleichen Methode explorieren wie
Abbildung 3.4: Der Dualview für die Ansicht aus Abbildung 3.3
die kondensierten Graphen aus Abschnitt 2.5. Da in diesem Graphen keine Multi- oder
Änderungsknoten enthalten sind, kommt beim Klick auf eine erweiternde Kante immer
nur ein neuer Knoten hinzu. Die Knoten aus dem zweiten Graphen, die auch im ersten
Graphen enthalten sind, werden auf dieselben Positionen gesetzt. Dadurch soll der Vergleich der beiden Graphen erleichtert werden.
Durch die Exploration des Dualview-Graphen, die im Detail in Abschnitt 3.5.2 beschrieben
wird, kann man dort zu Knoten gelangen, die im ersten Graphen (noch) nicht enthalten
sind. Diese werden dann mithilfe eines Organic Layouters aus den yFiles platziert. Mit
einem zweiten Klick auf den Button “dual view” wird dieser wieder deaktiviert und nur
noch der erste Graph angezeigt.
Mit dem zweiten Button lässt sich der Graph im Dualview Fenster layouten. Wird der “layout dualView” Button geklickt, so werden alle die Knoten aus dem Dualview Graphen,
die nicht im ersten Graphen enthalten sind, gelayoutet. Dazu wird wieder ein Organic
Layouter aus den yFiles verwendet. Die Knoten deren Position schon bekannt ist bleiben
unverändert, damit die beiden Graphen vergleichbar bleiben.
36
KAPITEL 3. GRAPH-VERGLEICH
3.5. DIE DETAILANSICHT
Durch einen Klick auf den dritten Button (“copy to yed”) wird der Graph, der gerade
im primären Fenster dargestellt wird, zur weiteren Bearbeitung in den Editor yEd kopiert. Dabei bleiben Farbgebung und Position der Knoten und Kanten erhalten, und die
Möglichkeiten von yEd können auf den Teilgraphen angewendet werden.
In Abschnitt 3.5.2 wird beschrieben, wie die Exploration auf dem Teilgraphen des Vergleichsmoduls funktioniert. Dabei können, je nachdem was für eine Kante angeklickt wurde, mehrere Knoten zum Graph hinzukommen oder daraus entfernt werden. Um diese
Änderungen einfach rückgängig zu machen ist der vierte Button (“undo”) da. Mit einem
Klick darauf wird die letzte Änderung, die der Benutzer am Teilgraphen vorgenommen
hat, rückgängig gemacht.
3.5.2 Exploration des Teilgraphen
Die Exploration des Graphen entlang der gestrichelten Kanten funktioniert im Vergleichsmodul etwas anders als im Kondensationsmodul. Bei der normalen Graphenkondensierung
wurde beim Klick auf eine erweiternde Kante der nächste Knoten eingeblendet und an
diesem neuen Knoten eventuell neue erweiternde Kanten erzeugt. Dieses Verfahren wurde schon in Kapitel 2.5 beschrieben. Wird hingegen im Vergleichsmodul eine gestrichelte
Kante angeklickt, gibt es drei mögliche Fälle:
1. der andere Knoten ist ein normaler Knoten
2. der andere Knoten ist ein Multiknoten
3. der andere Knoten ist ein Änderungsknoten
Im ersten Fall wird verfahren wie schon bei der normalen Kondensation - der Knoten wird
sichtbar und eventuell werden neue erweiternde Kanten eingefügt.
Tritt Fall zwei ein, so werden alle Knoten, die Teil des Multiknotens sind, in den dargestellten Graphen eingefügt und entsprechende normale und erweiternde Kanten erzeugt.
Im dritten Fall werden ebenfalls mehrere Knoten in den Graphen eingefügt. Alle Knoten
und Kanten, die Teil der entsprechenden Änderung sind, werden mit farblicher Markierung dem Teilgraphen hinzugefügt. Auch hier werden wieder die entsprechenden neuen
Erweiterungskanten erzeugt.
Alle Knoten, die während des Explorationsvorganges zum Teilgraphen hinzugefügt werden, für die aber noch keine Layoutinformation vorhanden ist, werden nach dem Verfahren,
das in Abschnitt 3.5.3 beschrieben wird, auf eine Position gesetzt.
Wird der Graph entlang einer erweiternden Kante exploriert, so wird diese, nachdem alle
neuen Knoten zum Graphen hinzugefügt wurden, aus dem Graph entfernt, da sie nicht
Teil des ursprünglichen Graphen war. Des weiteren werden alle Kanten, die nach dem
Explorationsschritt zwei normale Knoten verbinden, aber nicht im originalen Graphen
enthalten waren, aus dem Teilgraphen entfernt. Dies betrifft erweiternde Kanten, die im
Übersichtsgraphen während der Kondensation eingeführt wurden und durch den Explorationsschritt zu normalen Kanten des Teilgraphen geworden sind.
37
3.6. IMPLEMENTATION
KAPITEL 3. GRAPH-VERGLEICH
3.5.3 Progressives Layout
Eine der Annahmen zu Beginn dieser Arbeit war, dass die verglichenen Graphen sehr groß
sind. Um nicht für den kompletten detaillierten Graphen ein Layout berechnen zu müssen,
wird dieser schrittweise gelayoutet. Im vorigen Abschnitt wurde erläutert, wie der Graph
im Extrafenster exploriert werden kann. Dabei werden manchmal mehrere Knoten gleichzeitig zum bestehenden Graphen hinzugefügt. Kommt ein Knoten zum Graphen hinzu, so
gibt es zwei mögliche Fälle: die Position ist bereits bekannt oder noch nicht. Wurde die
Position des Knotens schon zuvor festgelegt, so wird er wieder auf dieselbe Position gelegt,
andernfalls wird er mit Hilfe eines Organic Layouters aus den yFiles platziert. Dazu wird,
nachdem der Übersichtsgraph erzeugt wurde, intern ein Layoutgraph angelegt, der alle
momentan sichtbaren Knoten des Übersichtsgraphen enthält. Diese werden auf die Positionen initialisiert, auf denen sie im Übersichtsgraphen liegen. Der Layoutgraph wird um
einen zuvor bestimmten Faktor gestreckt, damit für alle Knoten, die später hinzugefügt
werden, genügend Platz vorhanden ist. Der Streckungsfaktor wird auf die halbe Größe des
größten Multiknotens gesetzt, wobei die Größe eines Multiknotens der Anzahl der darin
enthaltenen Knoten entspricht. Wird nun ein Knoten zum Teilgraphen im Extrafenster
hinzugefügt, so wird er entweder auf die Position, die sein entsprechendes Gegenstück im
Layoutgraphen hat, gesetzt, oder es wird ein entsprechender Knoten zum Layoutgraph hinzugefügt und mit einem Organic Layouter platziert. Dann wird der Knoten im Teilgraphen
auf die so errechnete Position gelegt. Vom Benutzer können beliebig viele Extrafenster mit
Teilgraphen geöffnet werden, indem ein entsprechender Knoten im Übersichtsgraphen angeklickt wird. Diese Teilgraphen sind voneinander unabhängig, für alle wird aber derselbe
Layoutgraph verwendet, um die Knoten zu platzieren. Wurde ein Knoten einmal zum Layoutgraph hinzugefügt, so wird er, wenn er in einem anderen Teilgraphen einmal erreicht
wird, immer auf dieselbe Position gesetzt. Der Layoutgraph speichert somit die Positionen
von allen bereits gelayouteten Knoten des Übersichtsgraphen.
Durch dieses Verfahren wird sichergestellt, dass alle Teilgraphen, die sich der Benutzer
aus demselben Übersichtsgraphen anzeigen lässt, konsistent sind. Dadurch, dass immer
nur einige wenige Knoten gelayoutet werden müssen, während die Positionen der restlichen Knoten schon festliegen, ist das Verfahren in der Lage, auch große Graphen mit wenig
Zeitaufwand zu verarbeiten.
3.6 Implementation
3.6.1 Datenstrukturen
Eine Übersicht über die Struktur des Vergleichsmoduls ist in Abbildung 3.5 dargestellt.
Der erste Schritt beim Vergleichsmodul ist die Suche nach Unterschieden in den beiden
Graphen. Dazu wird für jeden Knoten im jeweils anderen Graphen nach einem Knoten mit
demselben Label gesucht. Wird ein solcher Knoten gefunden, wird das in zwei Maps gespeichert, die die beiden Knoten miteinander verbinden. Werden die Knoten aus dem zweiten
Graphen abgearbeitet, so muss dann nicht mehr nach einem entsprechenden Knoten gesucht werden, sondern es kann einfach in der Map nachgeschaut werden, ob ein passender
38
KAPITEL 3. GRAPH-VERGLEICH
3.6. IMPLEMENTATION
Abbildung 3.5: Übersicht über die Struktur des Vergleichsmoduls
Knoten existiert. Sollte für einen Knoten keine Entsprechung im anderen Graphen gefunden werden, so wird ein neues “Change” Objekt angelegt, das den entsprechenden Knoten
enthält. Nachdem so alle Knoten in beiden Graphen abgearbeitet wurden, gibt es für jeden
Graph eine Liste mit Knoten, die im anderen Graphen nicht enthalten sind.
Im nächsten Schritt werden die Kanten untersucht. Dabei werden sie der Reihe nach durchgegangen, und im jeweils anderen Graphen nach einer entsprechenden Kante gesucht. Das
geht sehr schnell, da die Zuordnung der Knoten bereits im vorigen Schritt bestimmt und
in den Maps gespeichert wurde. Es muss also nur noch überprüft werden, ob die beiden
Knoten der Kante Teil des anderen Graphen sind, und ob sie auch über eine Kante der
entsprechenden Orientierung verbunden werden. Für fehlende Kanten wird auch jeweils
ein “Change” Objekt angelegt und nachdem alle Kanten aus beiden Graphen abgearbeitet
wurden, gibt es auch hier zwei Listen mit entsprechenden Objekten.
Eine der Optionen, die vom Benutzer für das Vergleichsmodul festgelegt werden können,
ist der Abstand, bis zu dem zwei Änderungen zusammengehören. Dieser wurde im Optionsfenster, wie in Kapitel 3.2 beschrieben, angegeben. Im nächsten Schritt werden die
Listen für die beiden Graphen nun durchgegangen, und für alle Paare der Abstand der
Elemente im jeweiligen Graph bestimmt. Dazu wird einmal auf beiden Graphen ein “allpairs-shortest-path” Algorithmus aus den yFiles verwendet und das Ergebnis gespeichert.
Alle Änderungsobjekte, die Elemente enthalten deren Abstand kleiner als der vom Benutzer vorgegebene Abstand ist, werden zu einer großen Änderung zusammengefasst.
39
3.6. IMPLEMENTATION
KAPITEL 3. GRAPH-VERGLEICH
3.6.2 Konstruktion des Übersichtsgraphen
Nachdem die beiden Listen so verkleinert wurden, wird der Übersichtsgraph erzeugt. Dazu
wird der Eingabegraph, der weniger Änderungen von beiden Graphen enthält, zunächst in
ein neues Objekt kopiert. In diesen Graphen werden dann für jedes Änderungsobjekt neue
Knoten eingefügt. Die Unterschiede aus den beiden Graphen werden durch unterschiedlich gefärbte Änderungsknoten dargestellt. Abschließend wird dieser Differenzgraph mit
einem Organic Layouter aus den yFiles gelayoutet und ein Listener registriert, der dafür
zuständig ist, das Extrafenster aus Abschnitt 3.5.1 zu erzeugen.
Wenn der Differenzgraph erzeugt wurde, wird dem Benutzer der Optionsdialog des Kondensationsmoduls, der bereits in Kapitel 2.2 beschrieben wurde, angezeigt. Mit den dort
vorgenommenen Einstellungen werden die beiden Eingabegraphen und der Differenzgraph
kondensiert. Durch diese Kondensation wird der Differenzgraph zum Übersichtsgraph, der
die Bedinungen des “Overview and Detail”Konzeptes aus Kapitel 1.2 erfüllt. Änderungen
sind einfach zu finden, während der Rest des Graphen auf die wesentlichen Teile reduziert
wurde.
Die so erhaltenen Graphen werden in einem Fenster in verschiedenen Tabs angezeigt, so
dass komfortabel zwischen den Graphen gewechselt werden kann. Jeder Tab bietet dabei
die Möglichkeit, den enthaltenen Graphen in den yEd zu kopieren, damit dieser dort bearbeitet werden kann.
3.6.3 Exploration des Teilgraphen
Wie in Abschnitt 3.5.2 beschrieben läuft die Exploration des Teilgraphen im Vergleichsmodul leicht anders als im Kondensationsmodul. Über die erweiternden Kanten können
Multi- und Änderungsknoten erreicht werden. In einem solchen Fall wird immer der ganze
Inhalt zum aktuellen Teilgraphen hinzugefügt. Zu jedem Multi- bzw. Änderungsknoten
ist eine entsprechende Liste der Knoten gespeichert, die er repräsentiert. Wird ein solcher
Knoten hinzugefügt, können über diese Listen die neuen Knoten schnell gefunden werden. Über die Maps, die die beiden Graphen verbinden, kann in konstanter Zeit überprüft
werden, ob ein Knoten schon vorhanden ist, so dass es keine doppelten Knoten gibt. Das
Layout der neuen Knoten, sollte es erforderlich sein, ist ebenfalls nicht sehr aufwändig, da
nur diese Knoten vom Layouter bewegt werden können und der Rest der Knoten auf festen
Positionen liegt. Dadurch ist das Layout schnell berechnet und der ganze Explorationsvorgang nicht sehr rechenaufwändig. Die Layoutinformationen für die einzelnen Knoten
werden in einem extra Graphobjekt gespeichert, das einen Repräsentant für jeden bereits
gelayouteten Knoten enthält. Über entsprechende Maps kann der Knoten und damit dessen Position im Graphen schnell gefunden werden, sollte diese Information zum Beispiel
in einem anderen Extrafenster benötigt werden.
40
KAPITEL 3. GRAPH-VERGLEICH
3.6. IMPLEMENTATION
3.6.4 Die “undo”-Funktion
Die Realisierung der “undo” Funktion aus Abschnitt 3.3 erwies sich als relativ aufwändig.
Die yFiles stellen zwar die Möglichkeit bereit, Änderungen am Graphen rückgängig zu
machen, aber diese sind nicht weitreichend genug für das Vergleichsmodul. Die Knoten
und Kanten des Teilgraphen sind in speziellen Listen und Maps markiert, in denen gespeichert wird, welche Knoten Multiknoten oder normale Knoten sind, und welche Kanten
normale, zusätzliche oder erweiternde Kanten sind. Um die volle Funktionsfähigkeit der
Exploration des Teilgraphen gewährleisten zu können, müssen diese Listen und Maps nach
einem “undo” Schritt aktualisiert werden. In Abbildung 3.6 ist ein beispielhafter “undo”
Schritt dargestellt.
In dem Beispiel aus Abbildung 3.6 wird zunächst zum Knoten 3 exploriert, der ein Multi-
Abbildung 3.6: Beispiel für die “undo” Operation nach einem Explorationsschritt. Es ist
nicht klar, welcher Knoten unsichtbar werden muss.
knoten ist. Daraufhin wird der gesamte Inhalt dem Graph hinzugefügt und entsprechende
neue erweiternde Kanten erzeugt. Anschließend wird dieser Schritt mit dem “undo” But-
41
3.6. IMPLEMENTATION
KAPITEL 3. GRAPH-VERGLEICH
ton rückgängig gemacht. Der im dritten Schritt dargestellte Graph ist die Version, die
durch die yFiles wiederhergestellt wird. Das bedeutet, dass hinzugekommene und entfernte Knoten und Kanten wieder eingefügt werden, und zwar genau mit dem Aussehen,
das sie zuvor hatten. Es müssen jetzt also die Knoten und Kanten herausgesucht werden,
deren Aussehen verändert werden muss. Für das Beispiel aus Abbildung 3.6 wären das
der Knoten 3 und die Kante zwischen den Knoten 2 und 3. Allein aus dem Aussehen der
Knoten kann aber nicht rekonstruiert werden, welcher Knoten eigentlich unsichtbar, und
welche Kante eigentlich eine erweiternde Kante sein müsste. Im Beispiel muss der Knoten
3 eigentlich unsichtbar werden, und die Kante die ihn mit Knoten 2 verbindet zu einer
erweiternden Kante werden. Im restlichen Teilgraphen können aber natürlich noch weitere
Grad 1 Knoten sein, die nur über eine Kante mit dem Graphen verbunden sind. Um die
entsprechenden Elemente des Graphen eindeutig identifizieren zu können, ist es notwendig, sichtbare Knoten des Teilgraphen besonders zu markieren. Dies geschieht durch das
Hinzufügen eines unsichtbaren Knotens zu jedem sichtbaren Knoten des Graphen. Dieser
sogenannte “Ghostnode” wird über eine unsichtbare Kante mit dem Knoten verbunden,
den er markiert. Mit den Ghostnodes ist es nach dem “undo” Schritt eindeutig, welcher
Knoten im Aussehen verändert werden muss, wie in Abbildung 3.7 erkennbar ist.
In Abbildung 3.7 ist nach dem Explorationsschritt mit jedem sichtbaren Knoten ein
Ghostnode verbunden. Da der Ghostnode an Knoten 3 aber erst mit dem Explorationsschritt hinzugefügt wurde, wird er mit dem “undo” der yFiles wieder entfernt. Im letzten
Schritt ist es somit einfach, den Knoten 3 zu identifizieren und den Graph entsprechend
anzupassen.
Die Markierung aller sichbaren Knoten mit einem extra Ghostnode ist sehr aufwändig,
doch lässt sich das Problem nicht einfacher lösen. Durch das Entfernen und Wiedereinfügen
von Knoten verändert sich deren interne id, so dass es nicht möglich ist, einfach zu jedem
Knoten zu speichern, ob er sichbar ist oder nicht. Wurde er einmal aus dem Graphen entfernt und wieder eingefügt, kann dieser Wert dem Knoten nicht mehr zugeordnet werden.
Aus diesem Grund muss auf die Ghostnodes zurückgegriffen werden, damit der Teilgraph
und die darunterliegenden Datenstrukturen nach einem “undo” Schritt korrekt aktualisiert werden können.
Alle Funktionen des Vergleichsmoduls wurden javadoc konform kommentiert, um die Verwendung in anderen Projekten zu vereinfachen.
42
KAPITEL 3. GRAPH-VERGLEICH
3.6. IMPLEMENTATION
Abbildung 3.7: Beispiel für die “undo” Operation nach einem Explorationsschritt. Durch
die Ghostnodes ist eindeutig, welcher Knoten unsichtbar werden muss.
43
3.7. ZUSAMMENFASSUNG
KAPITEL 3. GRAPH-VERGLEICH
3.7 Zusammenfassung
In diesem Kapitel wurde das Vergleichsmodul vorgestellt. Es können zwei Graphen angegeben werden, die auf Unterschiede untersucht werden. Dabei wird kein Isomorphieproblem
gelöst, sondern davon ausgegangen dass die Zuordnung der Knoten bekannt ist.
Wurden alle Änderungen bestimmt, wird ein Übersichtsfenster angezeigt, das neben den
Eingabegraphen in normaler und kondensierter Version, einen Übersichtsgraphen enthält,
in dem die Änderungen durch spezielle Knoten markiert sind.
Durch Anklicken eines Änderungsknotens erhält der Benutzer ein Extrafenster, in dem
die jeweilige Änderung farblich markiert in der unkondensierten Nachbarschaft des Graphen dargestellt wird. Wie schon zuvor beim Kondensationsmodul kann der Graph in
diesem Extrafenster exploriert werden, indem er entlang der Erweiterungskanten traversiert wird. Dabei werden die Multi- und Änderungsknoten, wenn sie bei der Exploration
erreicht werden, immer komplett entpackt und alle ihre Bestandteile zum Teilgraphen hinzugefügt. Zusätzlich gibt es im Extrafenster die Möglichkeit, den entsprechenden Bereich
im anderen Graphen anzeigen zu lassen, so dass die beiden Graphen an interessanten Stellen direkt miteinander verglichen werden können.
Knoten für die noch keine Position bekannt ist werden mithilfe eines Organic Layouters
aus den yFiles platziert. Damit das in allen Teilgraphen konsistent geschieht wird ein
Layoutgraph gehalten, in dem die Position aller bereits gelayouteter Knoten gespeichert
wird.
44
4 Anwendung
4.1 Einleitung
Die Motivation zur Erstellung dieser Diplomarbeit war der Vergleich großer Graphen, die
insbesondere auch aus dem biologischen Bereich kommen. In diesem Kapitel werden einige
Beispiele für Anwendungen vorgestellt. Dazu werden ausgewählte Graphen aus der Biologie verglichen. Zum besseren Verständnis werden dazu in Kapitel 4.2 einige Grundlagen
erläutert. Die eigentlichen Vergleiche werden in Kapitel 4.3 vorgestellt und die Ergebnisse
in Abschnitt 4.4 zusammengefasst.
4.2 Grundlagen
4.2.1 Biologische Grundlagen
Viele der Vorgänge, die in einer Zelle ablaufen, werden durch Proteine reguliert. So werden
Vorgänge durch die Anwesenheit bestimmter Proteine erst möglich, oder gerade verhindert.
Proteine sind oft für einen bestimmten Schritt in einer Kette von Reaktionen zuständig,
die in der exakten Reihenfolge aufeinander folgen müssen, damit die Zelle ihre Funktion
erfüllen kann. Ist ein Protein verändert, oder fehlt es ganz, so bricht die Reaktion an der
entsprechenden Stelle ab und die Zelle verhält sich nicht mehr normal. In Tumorzellen
sind zum Beispiel Proteine nicht vorhanden oder verändert, die das Wachstum der Zelle
regulieren. Ohne diese Proteine wächst die Zelle unkontrolliert und es bildet sich ein Tumor. Fehlen weitere Proteine, die die Zelle in ihrem normalen Umfeld verankern, so kann
die Zelle wandern und an anderen Stellen im Körper Metastasen bilden.
Hat man ein Netzwerk von Proteinen von einem Organismus im gesunden und einem
im kranken Zustand, so ist die Suche nach Unterschieden ein wichtiger Schritt. Die Auswirkungen fehlender oder veränderter Proteine auf solche anomalen Vorgänge lassen sich
beispielsweise durch einen Vergleich von entsprechenden Proteinnetzwerken herausfinden.
Aus diesem Grund ist es wichtig herauszufinden, welche Proteine in einem kranken Organismus nicht oder übermäßig vorhanden sind, um eine geeignete Methode zur Behandlung zu finden. Solche Daten lassen sich zum Beispiel mit Microarray-Experimenten erlangen und führen in Kombination mit anderen Methoden schließlich zu einer Behandlungsmöglichkeit der entsprechenden Krankheit.
Eine zweite große Gruppe biologisch relevanter Graphen sind metabolische Netzwerke.
Diese Netzwerke repräsentieren spezifische Stoffwechselwege, über die ein Stoff in einen
oder mehrere andere Stoffe umgewandelt wird. Ein bekanntes Beispiel hierfür ist die Glycolyse, in der Glucose zu Pyruvat umgewandelt wird, und durch die der Körper Energie
45
4.2. GRUNDLAGEN
KAPITEL 4. ANWENDUNG
gewinnt. In diesen Netzwerken repräsentieren die Knoten verschiedene Stoffe, die die einzelnen Zwischenschritte der Reaktion darstellen. Die Kanten repräsentieren Reaktionen,
die einen Stoff in den nächsten überführen. Abhängig davon, ob eine Reaktion umgekehrt
werden kann, ist eine Kante gerichtet oder ungerichtet.
Durch einen Vergleich von metabolischen Netzwerken von einem gesunden und einem
kranken Organismus können wiederum wichtige Informationen über die Auswirkungen,
und damit Behandlungsmöglichkeiten der Krankheit gewonnen werden. Außerdem ist der
Unterschied zwischen ein und demselben Stoffwechselvorgang zwischen verschiedenen Spezies interessant, um Aufschluss über die Verwandschaftsbeziehungen zu erhalten.
Alle diese Vergleiche können mit dem in dieser Arbeit entwickelten Verfahren durchgeführt
werden. Im Folgenden werden einige Beispiele für die Anwendung gezeigt.
4.2.2 Testdaten
Die Testgraphen für die Protein-Protein Interaktionsnetzwerke, die in diesem Kapitel verwendet werden, wurden mit der PINA Plattform erstellt. Diese Plattform integriert die
Daten aus sechs öffentlichen, gepflegten Datenbanken und bildet daraus nicht-redundante
Protein-Protein Interaktionsnetzwerke. Diese Netzwerke können visualisiert, analysiert
und heruntergeladen werden. Ein einführendes Paper in die PINA Plattform ist [11]. Unter
[10] kann auf die PINA Plattform zugegriffen werden.
Zur Erstellung der Testgraphen wurden die Interaktionsnetzwerke für verschiedene Listen
von Proteinen, die an bestimmten Stoffwechselvorgängen beteiligt sind, mit der PINA
Plattform erstellt und gespeichert. Diese Netzwerke wurden dann mit dem Vergleichsmodul aus Kapitel 3 auf Unterschiede untersucht. Um diese Proteinlisten zu erhalten, wurden
mit der UniProt Datenbank Proteine gesucht, die an den jeweiligen Vorgängen beteiligt
sind. Die UniProt Datenbank setzt sich aus mehreren Datenbanken zusammen, genauer
kann dies in [8] nachgelesen werden. Die UniProt Datenbank kann unter [9] gefunden werden. Für die Interaktionsnetzwerke, die hier untersucht werden, wurden nur verifizierte
Datenbankeinträge verwendet. Die so erhaltenen Proteinlisten sind natürlich nicht immer vollständig, stellen aber zumindest einen Teil eines tatsächlichen Proteinnetzwerkes
dar. Um die Anwendung des Vergleichsmoduls zu demonstrieren reichen die so erhaltenen Netzwerke aus. Um tatsächliche Aussagen über die Unterschiede der betrachteten
Stoffwechselvorgänge zwischen zwei Organismen treffen zu können, müsste deutlich mehr
Aufwand in die Erstellung geeigneter Netzwerke investiert werden.
Für die metabolischen Netzwerke wurden mit der Metaroute Plattform Beispielgraphen
erstellt. Diese wurde in Tübingen von Torsten Blum entwickelt und implementiert. In [2]
wird die Plattform vorgestellt. Mit ihr ist es möglich, in einem Organismus einen Weg von
einem Metaboliten zu einem anderen zu suchen. Als Ergebnis erhält man einen Graph, der
die möglichen Wege als Abfolge von Reaktionen beschreibt. Zur Berechnung dieser Wege wird ein spezieller Algorithmus verwendet, der ebenfalls von Torsten Blum entwickelt
wurde. Eine genaue Beschreibung der Funktionsweise des Algorithmus ist in [3] zu finden. Mit der MetaRoute Plattform wurden für dieses Kapitel einige Graphen erstellt und
miteinander verglichen.
46
KAPITEL 4. ANWENDUNG
4.3. VERGLEICH
4.3 Vergleich
In diesem Kapitel wird das Vergleichsmodul aus Kapitel 3 auf verschiedene Beispielgraphen
angewendet. Es werden sowohl Netzwerke desselben Stoffwechselvorgangs von Mensch und
Maus verglichen, als auch künstlich abgeänderte Netzwerke. Da manche der Netzwerke
zwischen Mensch und Maus zu unterschiedlich sind, ist es nicht sinnvoll, sie mit dem Vergleichsmodul zu vergleichen. Im Extremfall werden nur zwei Änderungen gefunden - jeder
Eingabegraph ist dann in einem eigenen Änderungsknoten enthalten. Da solche Beispiele
nicht hilfreich sind, wurden einige der Graphen, die mit der PINA Plattform aus Abschnitt
4.2.2 erstellt wurden, von Hand leicht abgeändert, so dass sie mit dem Vergleichsmodul
sinnvoll untersucht werden konnten.
Zuerst wurden Protein-Proteininteraktionsnetzwerke für Proteine erstellt, die im Zusammenhang mit der Apoptose beim Menschen und bei der Maus stehen. Die entsprechenden
Proteinlisten wurden aus der Swissprot Datenbank gewonnen, und das Netzwerk dann mit
der PINA-Plattform erstellt (siehe Abschnitt 4.2.2). Werden auf diese Weise ein Netzwerk,
das für den Menschen erstellt wurde, und ein Netzwerk, das für die Maus erstellt wurde,
verglichen, so ergibt sich das Bild aus Abbildung 4.1.
Erkennbar in Abbildung 4.1 ist, dass die beiden Eingabegraphen wenig Gemeinsamkeiten
Abbildung 4.1: Übersichtsgraph
für
den
Vergleich
von
ProteinProteininteraktionsnetzwerken für Apoptoseproteine von Mensch und
Maus
47
4.3. VERGLEICH
KAPITEL 4. ANWENDUNG
aufweisen. Es sind nur wenige blaue Knoten, in diesem Beispiel die normalen Knoten,
im Übersichtsgraph vorhanden. Diese Knoten sind Bestandteil beider Eingabegraphen.
Es sind sehr viele Änderungsknoten für beide Eingabegraphen enthalten. Im Zentrum des
Graphen sind zwei sehr hochgradige Änderungsknoten, für jeden Eingabegraphen einer. In
den Randbereichen des Graphen sind auch Änderungsknoten, die über wenige Kanten mit
dem Rest des Graphen verbunden sind. Außerdem fällt auf, dass um den Graphen herum
einzelne, nicht verbundene Änderungsknoten angeordnet sind. Diese enthalten Elemente,
die nur in einem der beiden Eingabegraphen vorhanden sind, und dort nicht mit dem Rest
des Graphen verbunden sind. Dadurch dass die Eingabegraphen sehr unterschiedlich sind,
ist in den Änderungsknoten sehr viel enthalten. Klickt man zum Beispiel einen der beiden
hochgradigen Änderungsknoten aus Abbildung 4.1 an, und exploriert den Teilgraphen bis
zu dem anderen Änderungsknoten, so erhält man das Bild aus Abbildung 4.2.
In Abbildung 4.2 ist erkennbar, dass sehr große Bereiche des Graphen nur in einem der
Abbildung 4.2: Detailansicht des Übersichtsgraphen aus Abbildung 4.1
beiden Eingabegraphen enthalten sind. Da diese Bereiche zusammenhängen, waren sie alle
in einem Änderungsknoten zusammengefasst. Der Aufbau des Detailgraphen dauerte in
dieser Situation etwas länger als bei kleineren Beispielen, da sehr viele Knoten auf einmal
ausgepackt und gelayoutet werden mussten. In diesem Bild erkennt man nicht die einzelnen Knoten, aber sehr deutlich die Bereiche, in denen nur Elemente aus einem Graphen
liegen. Die schwarzen Kanten, die sich durch das Bild ziehen, sind Expansionskanten und
werden, wenn sie angeklickt werden, zu normalen oder Änderungskanten. An diesem Beispiel sieht man, dass das Vergleichsmodul zwar in der Lage ist, auch sehr unterschiedliche
Graphen zu verarbeiten, die Ergebnisse aber nicht unbedingt hilfreich sind. Das ist aber
auch nicht anders zu erwarten, wenn zwei sehr unterschiedliche Graphen verglichen werden. Der interessante Teil des Graphen ist in diesem Falle vielleicht sogar der Bereich, der
beiden Graphen gemeinsam ist. Dieser ist wiederum einfach zu finden, und wird dadurch,
dass die unterschiedlichen Bereiche in einzelnen Änderungsknoten zusammengefasst wer-
48
KAPITEL 4. ANWENDUNG
4.3. VERGLEICH
den, auch relativ gut dargestellt.
Für das nächste Beispiel wurden zwei Graphen erstellt, die Proteine enthalten, die mit
der mRNA von Mensch beziehungsweise Maus assoziiert sind. Die Proteinlisten wurden
wieder aus der UniProt Datenbank gewonnen und die Graphen mit der PINA Plattform
erstellt. Der Übersichtsgraph für die beiden Netzwerke ist in Abbildung 4.3 dargestellt.
In der Abbildung 4.3 ist, wie schon beim Beispiel der Apoptose, zu erkennen, dass die
Abbildung 4.3: Übersichtsgraph
für
den
Vergleich
von
ProteinProteininteraktionsnetzwerken von mRNA assoziierten Proteinen beim
Menschen und der Maus
beiden Eingabenetzwerke sehr unterschiedlich sind. Es sind wieder sehr wenig normale
Knoten enthalten, und der Großteil der beiden Graphen ist in den Änderungsknoten enthalten. Wählt man zum Beispiel den mittleren roten Änderungsknoten an, so erhält man
den Detailgraph aus Abbildung 4.4.
Die Detailansicht aus Abbildung 4.4 macht wieder deutlich, dass große Teile des Eingabegraphen nur in diesem enthalten sind, die Übereinstimmungen zwischen den beiden
Graphen also sehr klein sind. Auch sind wieder einige Änderungs- und normale Knoten
am Rand des Graphen aufgereiht. Diese sind nicht mit dem Rest des Graphen verbunden,
die Eingabegraphen waren also ebenfalls nicht verbunden.
49
4.3. VERGLEICH
KAPITEL 4. ANWENDUNG
Abbildung 4.4: Detailansicht des Übersichtsgraphen aus Abbildung 4.3
50
KAPITEL 4. ANWENDUNG
4.3. VERGLEICH
Für die nächsten Beispiele wurden auch wieder Netzwerke mit der UniProt Datenbank
und der PINA Plattform erstellt. Dann wurden kleine Änderungen von Hand eingefügt,
und die beiden unterschiedlichen Versionen miteinander verglichen. Das wurde gemacht,
um zu demonstrieren, wie kleine lokale Änderungen in großen Graphen mit dem Vergleichsmodul gut gefunden und untersucht werden können.
Als erstes manuell geändertes Beispiel wurde der schon zuvor verwendete Graph des
Protein-Proteininteraktionsnetzwerkes von Apoptoseproteinen beim Menschen verwendet.
Zu Vergleichszwecken wurden einige Knoten und Kanten entfernt, sowie neue Knoten und
Kanten eingefügt. Der abgeänderte Graph wurde dann mit der ursprünglichen Version verglichen. Vergleicht man nun diese beiden Versionen, so erhält man den Übersichtsgraph
aus Abbildung 4.5. In Abbildung 4.5 ist zu erkennen, dass beide Graphen viele Über-
Abbildung 4.5: Übersichtsgraph
für
den
Vergleich
von
einem
ProteinProteininteraktionsnetzwerk von Apoptoseproteinen beim Menschen
mit einer von hand abgeänderten Version
einstimmungen haben. Der Großteil der Knoten und Kanten ist normal gezeichnet, was
bedeutet, dass diese Elemente in beiden Graphen vorhanden sind. Die wenigen Änderungen
hingegen, die von Hand hinzugefügt wurden, sind im Übersichtsgraphen durch die Signalfarben rot und grün sehr gut zu erkennen. Dadurch wird es erleichtert, interessante Gebiete
im Übersichtsgraphen zu finden. Wählt man nun einen der Änderungsknoten an, so erhält
man zum Beispiel die Darstellung aus Abbildung 4.6. Die Änderung, die in Abbildung
4.6 dargestellt ist, beinhaltet einen Knoten, dessen Kindknoten fast alle aus dem Graphen
entfernt wurden. Man kann in der Abbildung erkennen, dass diese Knoten gleichmäßig
51
4.3. VERGLEICH
KAPITEL 4. ANWENDUNG
Abbildung 4.6: Detailansicht für einen Änderungsknoten des Übersichtsgraphen aus Abbildung 4.5
vom Organic Layouter um den Vaterknoten herum angeordnet wurden. Durch die rote
Markierung wird deutlich, welche der Knoten aus dem Graphen entfernt wurden, und
welche im Graphen verblieben sind.
52
KAPITEL 4. ANWENDUNG
4.3. VERGLEICH
Als erstes Beispiel für einen Vergleich metabolischer Netzwerke wird, wie schon im
einführenden Paper zu Metaroute [2], ein Netzwerk für den Pfad von Pyruvat zu Lysin in Escherichia coli und Saccharomyces cerevisiae verglichen. In Abbildung 4.7 ist
der Übersichtsgraph für diesen Vergleich dargestellt. Aus dem Graphen aus Abbildung
Abbildung 4.7: Übersichtsgraph für den Vergleich von einem metabolischen Netzwerk für
den Pfad von Pyruvat zu Lysin in E. Coli und der Hefe
4.7 ist zu erkennen, dass die beiden metabolischen Netzwerke zwar einige gemeinsame
Knoten haben, aber auch große Unterschiede. Diese Unterschiede sind allesamt miteinander verbunden, da nur zwei Änderungsknoten vorhanden sind. Klickt man auf einen der
Änderungsknoten, und expandiert den Teilgraphen bis man den anderen Änderungsknoten
erreicht, so erhält man ein Bild wie in Abbildung 4.8. In dem Teilgraphen, den man erhält
wenn man von einem Änderungsknoten bis zum anderen exploriert, ist erkennbar, dass
viele Elemente nur in einem der beiden Eingabegraphen enthalten sind. Der metabolische
Pfad von Pyruvat zu Lysin ist also zwischen den beiden Organismen Hefe und E. Coli sehr
unterschiedlich. Wie schon in [2] erwähnt ist die Lysin Biosynthese zwischen verschiedenen Organismen sehr unterschiedlich. In dem Ausschnitt des Teilgraphen aus Abbildung
4.8 ist erkennbar, dass in beiden Organismen das Lysin auf einem unterschiedlichen Weg
erzeugt wird. Die roten Elemente stammen aus E. Coli und die grünen Elemente aus Saccharomyces cerevisiae. Man kann aus der Abbildung 4.8 erkennen, dass es in E. Coli zwei
Pfade gibt, über die Pyruvat zu Lysin umgewandelt werden kann, während in Saccharomyces cerevisiae nur ein Pfad vorhanden ist. Selbst wenn ein mit E. Coli nahe verwandtes
Bakterium wie Photorhabdus luminescens betrachtet wird, fällt der Vergleich ähnlich aus.
53
4.3. VERGLEICH
KAPITEL 4. ANWENDUNG
Abbildung 4.8: Ausschnitt aus der Detailansicht für einen Änderungsknoten aus dem
Graph aus Abbildung 4.7
In Abbildung 4.9 ist eine Detailansicht für einen entsprechenden Graphen dargestellt. In
der Detailansicht für den Vergleich des metabolischen Netzwerkes zur Umwandlung von
Pyruvat zu Lysin in E. Coli und Photorhabdus luminescens ist erkennbar, dass auch hier
zwei große Änderungen vorliegen, die beiden Eingabegraphen also sehr unterschiedlich waren. In dem Ausschnitt aus dem Teilgraphen aus Abbildung 4.9 stehen die roten Elemente
für Metabolite und Reaktionen, die nur in E. Coli auftreten. In der Detailansicht ist erkennbar, dass in E. Coli ein zusätzlicher Pfad vorhanden ist, auf dem Pyruvat zu Lysin
umgewandelt werden kann.
54
KAPITEL 4. ANWENDUNG
4.3. VERGLEICH
Abbildung 4.9: Detailansicht für einen Änderungsknoten im Vergleichsgraphen des metabolischen Netzwerkes für die Umwandlung von Pyruvat zu Lysin in E. Coli
und Photorhabdus luminescens
55
4.3. VERGLEICH
KAPITEL 4. ANWENDUNG
Als zweiter Stoffwechselvorgang wird die schon zuvor erwähnte Glykolyse untersucht.
Hierbei werden wieder die zwei nahe verwandten Bakterien E. Coli und Photorhabdus
luminescens verwendet. Der Vergleich der beiden metabolischen Netzwerke liefert den
Übersichtsgraphen aus Abbildung 4.10. In der Abbildung 4.10 ist erkennbar, dass auch
Abbildung 4.10: Übersichtsgraph für den Vergleich der Glykolyse bei E. Coli und Photorhabdus luminescens
die Glycolyse zwischen den beiden Organismen deutliche Unterschiede aufweist. Es sind
zwar einige gemeinsame Komponenten in beiden Netzwerken vorhanden, aber auch deutliche Unterschiede. Da die Elemente in den Unterschieden zusammenhängen, sind im
Übersichtsgraphen in der Abbildung 4.10 nur zwei Änderungsknoten enthalten. Erstellt
man nun für einen der Änderungsknoten eine Detailansicht, und exploriert den Teilgraphen bis zum anderen Änderungsknoten, so ist erkennbar, dass die Elemente, die nur in
einem Graphen enthalten sind, alle mit einander verbunden sind. Deswegen gibt es im
Übersichtsgraphen aus der Abbildung 4.10 nur zwei Änderungsknoten. Es sind insgesamt
aber deutlich weniger Elemente in den beiden Änderungen als bei der Lysin Biosynthese
aus den Abbildungen 4.8 und 4.9. Dies bedeutet, dass die Glycolyse zwischen den einzelnen
Organismen stärker konserviert ist, als die Lysin Biosynthese. In Abbildung 4.11 ist ein
Ausschnitt aus dem Teilgraphen dargestellt, wobei die roten Elemente für Metabolite und
Reaktionen in E. Coli stehen, während die grünen Elemente aus Photorhabdus luminescens
stammen. In der Detailansicht aus Abbildung 4.11 sieht man, dass in E. Coli das Pyruvat
noch auf zwei anderen Wegen erreicht werden kann.
In allen hier vorgestellten Beispielen wird durch die Darstellung der Ergebnisse der Vergleich der beiden Graphen sehr erleichtert. Durch die Signalfarbe der Änderungsknoten
können diese leicht im Übersichtsgraphen gefunden werden. In der Detailansicht können
56
KAPITEL 4. ANWENDUNG
4.4. ZUSAMMENFASSUNG
Abbildung 4.11: Detailansicht für einen Änderungsknoten aus dem Graphen aus Abbildung 4.10 exploriert bis zum anderen Änderungsknoten
die verschiedenen Elemente den jeweiligen Graphen durch die deutliche Farbgebung einfach zugeordnet werden, so dass die Unterschiede deutlich werden.
4.4 Zusammenfassung
In diesem Kapitel wurde das Vergleichsmodul anhand verschiedener Beispiele getestet und
seine Funktionen demonstriert. Dabei wurde deutlich, dass sehr unterschiedliche Graphen
zwar verglichen werden können, das Ergebnis aber nur bedingt hilfreich ist. Am ehesten
können beim Vergleich zweier unterschiedlicher Graphen die Bereiche identifiziert werden,
die beiden Graphen gemeinsam sind. Sind die Unterschiede im Vergleich zur Größe der
Graphen hingegen klein und lokal, so können sie mit dem Vergleichsmodul gut gefunden
werden. Die Detailansicht erleichtert das Untersuchen der einzelnen Änderungen und bietet
mit der Exploration zusätzlich die Möglichkeit, die Umgebung der Änderung im Detail
zu betrachten. Dabei werden andere Änderungen, die während der Exploration erreicht
werden, in der jeweiligen Graphenfarbe eingefärbt.
57
5 Zusammenfassung und Ausblick
5.1 Zusammenfassung
Die vorliegende Diplomarbeit ist in zwei große Bereiche einzuteilen - das Kondensationsund das Vergleichsmodul. Ziel war es, ein Verfahren zu entwickeln, mit dem große Graphen
verglichen werden können. Zu diesem Zweck wurde das “Overview and Detail”Konzept
aus Kapitel 1.2 verwendet. Zur Realisierung dieses Konzeptes wurde das Kondensationsmodul entwickelt. Damit lassen sich große Graphen visuell komprimieren. Es werden allen
Knoten Wichtigkeitswerte mithilfe von Zentralitäten zugewiesen. Dann werden, in einer
vom Benutzer vorgegebenen Weise, Knoten des Graphen zusammengefasst und der Graph
so optisch reduziert. Nach der Kondensation hat der Benutzer die Möglichkeit, den Inhalt von Multiknoten in einem Extrafenster anzeigen zu lassen. Dazu wird ein Teil des
ursprünglichen Graphen in unkondensierter Version angezeigt. Dieser Teilgraph kann entlang erweiternder Kanten vergößert werden.
Um zwei Graphen zu vergleichen wurde das Vergleichsmodul (Kapitel 3) entwickelt. Für
den eigentlichen Vergleich zweier Graphen wird davon ausgegangen, dass die Zuordnung
der Knoten bekannt ist. Gerade für biologische Netzwerke ist diese Annahme nicht unrealistisch, da die Knoten zum Beispiel in Protein-Protein Interaktionsnetzwerken eindeutigen
Proteinen zugeordnet sind, die in beiden Graphen gefunden werden können. Die Eingabegraphen und der Ergebnisgraph werden mithilfe des Kondensationsmoduls verkleinert,
so dass die wichtigen Elemente - die Änderungen - vom Benutzer einfach gefunden werden können. Beim Anwählen einer der Änderungen wird ein Extrafenster geöffnet, in dem
der betroffene Bereich des Graphens dargestellt wird. Dieses Fenster ähnelt dem das man
bei den kondensierten Graphen erhielt, wenn ein Multiknoten angeklickt wurde. Auch
hier kann der Graph entlang erweiternder Kanten vergrößert werden. Nur wird diesmal
nicht in jedem Schritt ein neuer Knoten hinzugefügt, sondern immer der gesamte Inhalt
des nächsten Knotens in den Teilgraphen eingefügt. Die Elemente, die dabei Teil einer
Änderung sind, werden farblich markiert, so dass sie vom Benutzer einfach zu identifizieren sind. Das Extrafenster bietet die Möglichkeit, den aktuell betrachteten Bereich im
zweiten Graphen anzuzeigen, so dass beide Graphen direkt miteinander verglichen werden
können. Zusätzlich hat der Benutzer die Möglichkeit, den aktuell betrachteten Graphen
zur weiteren Bearbeitung in den yEd zu kopieren. Sollte einer der Erweiterungs- oder
Komprimierungsschritte des Teilgraphen rückgängig gemacht werden, so kann das mit der
undo-Funktion erreicht werden.
In Kapitel 4 wurden einige beispielhafte Anwendungen des Vergleichsmoduls auf ausgewählte biologische Graphen demonstriert.
59
5.2. AUSBLICK
KAPITEL 5. ZUSAMMENFASSUNG UND AUSBLICK
5.2 Ausblick
Die vorgestellten Verfahren können an mehreren Stellen verbessert und erweitert werden.
Zunächst einmal könnte die Graphenexploration überarbeitet und beschleunigt werden. Da
in einem Änderungsknoten sehr viele Elemente sein können, kann die Exploration eines solchen Knotens relativ lange dauern. Um einen flüssigen Programmablauf zu gewährleisten,
könnte in diesem Fall der Änderungsknoten nur teilweise zum Teilgraphen hinzugefügt
werden, und einige neue Änderungsknoten für den Rest des ursprünglichen Knotens eingeführt werden.
Eine mögliche Erweiterung des Kondensationsmoduls und damit auch des Vergleichsmoduls wäre die Implementierung weiterer Kondensationsmethoden. So ist es zum Beispiel
möglich, ein Matching auf dem Graphen zu berechnen, und die Knoten gemäß diesem
Matching zu verschmelzen. Generell sind beliebige Verfahren zur Auswahl und Vereinigung von Knoten denkbar.
In den meisten der Kondensationsverfahren die in dieser Arbeit entwickelt wurden spielen
Zentralitätsmaße eine wichtige Rolle bei der Auswahl der Knoten, die vereinigt werden.
Hier könnten ebenfalls neue Maße implementiert werden, die zum Beispiel für bestimmte
Graphenklassen besonders gut geeignet sind.
Für den Übersichtsgraphen des Kondensationsmoduls und die detaillierten Teilgraphen
die daraus erzeugt werden wurde der Organic Layouter aus den yFiles verwendet. Anstelle
dieses eher einfachen Layouters könnten beliebige andere Layouter, die an den jeweiligen
Typ Graph, der verglichen werden soll, angepasst sind, verwendet werden. Es wäre auch
denkbar, dass für den Übersichtsgraphen und den Detailgraphen unterschiedliche Layouter
verwendet werden.
Gerade bei den metabolischen Netzwerken aus Kapitel 4 fällt auf, dass der Organic Layouter nicht immer gute Ergebnisse liefert. Da in diesen Netzwerken eine Richtung vorhanden
ist, nämlich ein Stoff über mehrere Schritte in einen anderen umgewandelt wird, wäre
es sinnvoll, wenn der Layouter diese Richtung bei der Platzierung der Knoten und Kanten berücksichtigt. Da es in diesen Netzwerken aber oft Knoten gibt, die mit sehr vielen
anderen Knoten verbunden sind, weil die entsprechenden Stoffe an vielen Reaktionen teilhaben, ist es auch für andere Layouter sehr schwierig, ein optisch ansprechendes Layout
zu erstellen.
Das Vergleichsmodul kann, in der hier vorgestellten Version, zwei Graphen vergleichen.
Eine Erweiterung auf mehrere Graphen wäre denkbar, würde allerdings die Komplexität des Programmes deutlich erhöhen. Auch müsste die Darstellung der Ergebnisse
überarbeitet werden, um sinnvoll Unterschiede zwischen allen verglichenen Graphen darstellen zu können. Eine Möglichkeit hierzu wäre eine Darstellung in 2, 5D. Hierzu gibt es
sogar schon eine Erweiterung zum verwendeten Grapheneditor yEd, die ebenfalls im Rahmen einer Diplomarbeit an diesem Lehrstuhl von Johannes Spielmann entwickelt wurde.
Eine sehr aufwändige Erweiterung wäre die Möglichkeit, Graphen mit unbekannter Knotenzuordnung zu vergleichen. Für diese Arbeit wurde davon ausgegangen, dass die Zuordnung bekannt ist. Gerade für biologische Anwendungen, in denen veränderte Stoffwechselvorgänge oder Ähnliches untersucht werden, ist diese Annahme nicht unrealistisch. Da aber
60
KAPITEL 5. ZUSAMMENFASSUNG UND AUSBLICK
5.2. AUSBLICK
in anderen Anwendungen nicht immer von einer bekannten Zuordnung ausgegangen werden kann, wäre eine solche Erweiterung durchaus sinnvoll. Das Graphisomorphieproblem
ist aber bekanntermaßen NP-hart, so dass eine Erweiterung auf Graphen mit unbekannter
Knotenzuordnung sehr aufwändig würde.
61
Literaturverzeichnis
[1] Albrecht, Mario, Alejandro Estrella-Balderrama, Markus Geyer, Carsten Gutwenger, Karsten Klein, Oliver Kohlbacher und Michael Schulz:
08191 Working Group Summary – Visually Comparing a Set of Graphs. In: Borgatti, Stephen P., Stephen Kobourov, Oliver Kohlbacher und Petra Mutzel (Herausgeber): Graph Drawing with Applications to Bioinformatics and Social
Sciences, Nummer 08191 in Dagstuhl Seminar Proceedings, Dagstuhl, Germany, 2008.
Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany.
[2] Blum, Torsten und Oliver Kohlbacher: MetaRoute: fast search for relevant
metabolic routes for interactive network navigation and visualization. Bioinformatics,
24(18):2108–2109, 2008.
[3] Blum, Torsten und Oliver Kohlbacher: Using Atom Mapping Rules for an
Improved Detection of Relevant Routes in Weighted Metabolic Networks. Journal of
Computational Biology, 15(6):565–576, 2008.
[4] Dirk Koschützki, Katharina Anna Lehmann, Leon Peeters Stefan Richter Dagmar Tenfelde-Podehl und Oliver Zlotowski: Centrality Indices. Lecture Notes in Computer Science. Springer Berlin / Heidelberg, 2005.
[5] Gaertler, Marco: Clustering. Lecture Notes in Computer Science. Springer Berlin
/ Heidelberg, 2005.
[6] Jain, A. K., M. N. Murty und P. J. Flynn: Data clustering: a review. ACM
Comput. Surv., 31(3):264–323, 1999.
[7] R. Wiese, M. Eiglsperger, M. Kaufmann: yFiles: Visualization and Automatic
Layout of Graphs. In: Proceedings of the 9th International Symposium on Graph
Drawing (GD 2001). Springer-Verlag, 2001.
[8] The UniProt Consortium: The Universal Protein Resource (UniProt). Nucleic
Acids Research, 36:D190–D195, 2008.
[9] The UniProt Consortium: The Universal Protein Resource (UniProt).
http://www.uniprot.org/, 2008.
[10] University of Helsinki: PINA: Protein Interaction Network Analysis platform.
http://csbi.ltdk.helsinki.fi/pina/, 2008.
63
Literaturverzeichnis
Literaturverzeichnis
[11] Wu, J., Vallenius T. Ovaska K. Westermarck J. Makela T.P. und
S. Hautaniemi: Integrated network analysis platform for protein-protein interactions. Nature methods, 6:75 – 77, 2008.
[12] yWorks GMbH: Grapheneditor yEd. http://www.yworks.com/en/products_yed_
about.html.
[13] yWorks GMbH: yFiles GraphenBibliothek.
products_yfiles_about.html.
64
http://www.yworks.com/en/