- Institute for Web Science and Technologies

Werbung
Fachbereich 4: Informatik
Berechnung und Approximation
von Kürzeste-Pfad-Statistiken
in großen Netzwerken für
KONECT
Bachelorarbeit
zur Erlangung des Grades
Bachelor of Science
im Studiengang Imformatik
vorgelegt von
Jesús Cabello González
Betreuer: Dr. Jérôme Kunegis, Institut for Web Science and
Technologies - WeST, Fachbereich Informatik, Universität
Koblenz-Landau
Gutachter: Prof. Dr. Steffen Staab, Institut for Web Science and
Technologies - WeST, Fachbereich Informatik, Universitat
Koblenz-Landau
Koblenz, im März 2014
Zusammenfassung
KONECT (The Koblenz Network Collection) ist ein Projekt, das verschiedene
Netzwerkdatensätze sammelt und mit Werkzeugen der Netzwerkanalyse Netzwerkstatistiken berechnet, repräsentative Diagramme darstellt, und verschiedene Link-Vorhersagealgorithmen implementiert. Eine der Statistiken, die berechnet sind, beschäftigt sich mit der Länge der Wege in einem Netzwerk. In diese
Arbeit sind implementiert und evaluiert effiziente Algorithmen zur Berechnung
des Durchmessers von großen Netzwerken. Somit sind mehr Informationen über
Netzwerke zur Verfügung gestellt, wovon KONECT profitieren kann. Die Arbeit
ist aber auch für alle anderen Personen bzw. Studien gedacht, die Interesse an
Netzwerktheorie und Netzwerkanalyse haben.
1
Inhaltsverzeichnis
Inhaltsverzeichnis
2
1 Einleitung
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Forschungsmethoden und Aufbau der Arbeit . . . . . . . . . . .
3
5
6
7
2 Theoretische Grundlagen
2.1 Netzwerk . . . . . . . . . . . . . . . .
2.2 Weg und Distanz . . . . . . . . . . . .
2.3 Durchmesser, Exzentrizität und Grad
2.4 Größte Zusammenhangskomponente .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
12
13
13
3 Verfahren
3.1 Dijkstra-Algorithmus . .
3.2 Sampling-Algorithmus .
3.3 HyperANF-Algorithmus
3.4 iFub-Algorithmus . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
14
17
17
18
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Experimente
20
4.1 Die Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Präzisition des Durchmessers . . . . . . . . . . . . . . . . . . . . 27
4.3 Präzisition der Hop Distribution . . . . . . . . . . . . . . . . . . 28
5 Zusammenfassung und Ausblick
28
Anhang
36
Literatur
41
2
1
Einleitung
Heutzutage haben wir sehr oft mit solchen Netzwerken zu tun, ohne dass es uns
wirklich bewusst ist. Oft werden wir selbst ein Teil von einem Netzwerk. Als
Beispiele für solche Netzwerke können Landkarten, Bahnhof- und Flugverbindungen, soziale Netzwerke, und Kommunikationsnetzwerke genannt werden.
Es lässt sich feststellen, dass derzeitige Netzwerke immer komplexer und größer werden. Um Informationen aus den Netzwerken ableiten und diese auch verstehen zu können, bietet sich die Netzwerkanalyse als optimale Lösung. Durch
die ständig zunehmende Komplexität der Netzwerke wird deutlich, dass herkömmliche Analysemethoden nicht ausreichen, um diese Netzwerke zu untersuchen. Unter dem Begriff der Netzwerkanalyse wird eine empirische Untersuchungsmethode verstanden, die dabei helfen soll, ein Netzwerk zu erfassen. Mit
anderen Worten ausgedrückt, handelt es sich dabei um eine Methode zur Beschreibung von Strukturen und Interaktion von Individuen bzw. Akteuren. Die
innere Interaktion wird als Wahrscheinlichkeit verstanden, dass ein Akteur mit
k anderen Akteuren eine Relation bzw. Beziehung hat. Diese Wahrscheinlichkeit kann in vielen natürlichen Systemen durch ein Potenzgesetz beschrieben
werden: P (k) ∼ k ∼γ [8].
Bei der Netzwerkanalyse handelt es sich um ein relativ neues Wissenschaftsbereich [10]. Im Rahmen der Literaturrecherche, die für die vorliegende Bachelorarbeit betrieben wurde, konnte festgestellt werden, dass in den deutschsprachigen Raum ein großes Interesse an diesem Thema besteht (z.B.[11, 12, 13]).
Mithilfe von Netzwerkanalyse können unter anderen die drei wichtigsten Fragen
beantwortet werden, welche sich auf Netzwerke beziehen [14]:
• Was ist ein Netzwerk?
• Wie kann man es beschreiben?
• Was leistet es?
Die Netzwerkanalyse kann als statisches Instrumentarium verstanden werden, das für Untersuchung von Netzwerken angewendet wird. Daneben bietet es
eine theoretische Perspektive. Dadurch wird die Rolle der Netzwerke deutlich,
Zugehörigkeit der verschiedenen Akteuren sowie ihre Handlungsmöglichkeiten
[14]. Die Netzwerkanalyse spielt eine wichtige Rolle bei der Verbindung von
Akteur- und Handlungstheorien mit Theorien über Organisatioen, Strukturen
und Systeme. Darüber hinaus wird eine detaillierte, spezifische und systematische Beschreibung von Netzwerken möglich. Die Netzwerkanalyse findet vor
allem in den soziologischen, politikwissenschaftlichen und ökonomischen Kontext statt.
Unsere Gesellschaft hat sich verändert. Es besteht aus sozialen Netzwerken
zwischen Akteuren. Individuen nutzen die Netzwerke vor allem, um miteinander
kommunizieren zu können und neue Kontakte zu knüpfen. Früher, als es noch
keine Telefone, Internet und andere Medien sowie IKT nicht gab, war ein solcher
Vernetzungsgrad gar nicht möglich. Da sich die Technologie immer weiter und
3
schneller entwickelt, werden auch die bereits existierenden und neuen Netzwerke
immer größer und vielfältiger. Zudem werden ihre Strukturen und Dynamik
immer komplexer [15]. Dadurch entsteht eine große Herausforderung, die in der
Untersuchung und Analyse solcher Netzwerke besteht. Die vorliegende Arbeit
befasst sich mit Datensätzen von Netzwerken, welche KONECT ( The Koblenz
Network Collection) enthält.
KONECT ist ein Projekt, das verschiedene Netzwerkdatensätze sammelt
und mit Werkzeugen der Netzwerkanalyse Netzwerkstatistiken berechnet, repräsentative Diagramme darstellt, und verschiedene Link-Vorhersagealgorithmen
implementiert. Gegenwärtig enthält KONECT 187 verschiedene Netzwerke. Eine der Statistiken, die berechnet sind, beschäftigt sich mit der Länge der Wege
in einem Netzwerk. Das Problem, der bei KONECT häufig anzutreffen ist bezieht sich auf den Durchmesser, denn dieser kann nur mit hohen Aufwand bzw.
nur für kleine Datensätze exakt berechnet werden, und muss deswegen geschätzt
werden. Diese Bachelorarbeit soll einen Beitrag für die Lösung dieses Engpasses
bzw. Problems leisten. Im Folgenden wird das Problem näher beschrieben.
Im KONECT-Projekt sind derzeitig 187 Datensätze enthalten [1]. Die Statistiken und Diagramme, welche die Netzwerke abbilden sollen, können mit einem
Algorithmus generiert werden, der in Matlab implementiert ist. Die aktuell verfügbaren Statistiken können auf der KONECT-Webseite abgerufen werden. Alle
Größenklassen von Netzwerken, die man auf dieser Seite finden kann, sind vertreten. Unter anderem befindet sich dort das Netzwerk des sozialen Netzwerks
Twitter“, das aus 52 Millionen Knoten und 1.9 Milliarden Kanten besteht.
Gegenwärtig enthält KONECT 187 verschiedene Netzwerke wobei:
41
67
79
79
79
sind ungerichtet
sind gerichtet
sind bipartite
sind ungewichtet
erlauben multiple Kanten
6 haben gewichtete Kanten
12 haben bewertete Kanten
1 erlaubt multiple gewichtete Kanten
4 erlauben positive gewichtete Kanten
72 haben Kanten mit Ankunftszeiten
Ungefähr 51% der Netzwerke in KONECT besitzen Durchmesserstatistiken,
die für sie berechnet bzw. erfasst worden sind. Die anderen 49% konnten bis
jetzt noch nicht berechnet werden, da die Anzahl von Knoten und/oder Kanten
zu groß ist und die Software, die sich mit der Berechnung beschäftigt, keine
dem Stand der Dinge entsprechenden Algorithmen verwendet. Dies bietet einen
großen Spielraum für die Implementierung von neuen Algorithmen (in der Programmiersprache C), die es ermöglichen sollen, möglichst große Netzwerke, die
in KONECT vorhanden sind, bearbeiten zu können [1]. Der Durchmesser ist zur
Zeit in KONECT für Netzwerke mit bis zu 463,670 Knoten (Netzwerk “Notre
Dame”) und mit bis zu 2,985,790 Kanten (Netzwerk “Wikipedia Conflict”) berechnet. Falls Netzwerke eine größere Anzahl an Knoten und Kanten haben, sind
sie noch nicht in KONECT bearbeitet. Ein Beispiel dafür stellt das Netzwerk
“EU Institution” mit 300,069 Knoten und 420,045 Kanten dar.
4
In der Literatur wird der Durchmesser außerdem zumeist nur für einzelne
Netzwerke berechnet; eine großangelegte vergleichende Studie über den Durchmesser von Netzwerken aus heterogenen Kategorien existiert dabei noch nicht.
In dieser Arbeit wurde eine solche Studie mit den KONECT-Netzwerken möglich gemacht.
1.1
Motivation
Unter dem Begriff Netzwerk versteht man eine Konstellation von Objekten, z.B.
Knoten, die miteinander durch Kanten verbunden sind. Heutzutage haben wir
sehr oft mit Netzwerken zu tun. Jedoch ist es uns oft nicht bewusst, dass wir gerade mit einem Netzwerk zu tun haben, oder dass wir gerade ein Teil von einem
Netzwerk sind. Die in dem Kapitel 1.1. genannten Beispiele machen es deutlich,
wie oft wir an solchen Netzwerken beteiligt sind und dass dieser Begriff nicht
unbedingt mit einem komplizierten Inhalt zusammenhängen muss. Die bisher
übliche Analysemethoden erweisen sich immer häufiger als nicht ausreichend,
um die gewünschten Aufgaben zu erfüllen. Dies liegt daran, dass die Netzwerke
umfassender und größer werden.
Netzwerkanalyse kann bei der Erfassung und Untersuchung von allen möglichen Netzwerken. Mit ihrer Hilfe können Strukturen und die Interaktionen
zwischen Individuen beschrieben werden. Netzwerkstatistiken stellen eine Möglichkeit dar, Informationen über ein Netzwerk in kompakter Form darzustellen.
Die Aufgabe, die in der Beschreibung der Eigenschaften von Knoten und Kanten
sowie des ganzen Graphen besteht, gewinnt immer mehr an Bedeutung. Mithilfe von Netzwerkstatistiken soll es einfach sein, die wichtigsten Eigenschaften
eines Netzwerkes zu beschreiben und es somit von anderen zu unterscheiden.
Solche Statistiken sind eine wichtige Basis für Algorithmen und Anwendungen,
die unter anderem dabei helfen, zwischen unterschiedlichen Netzwerken zu unterscheiden [2].
In dem KONECT-Projekt sind bereits viele Statistiken für Netzwerke vorhanden. Mithilfe von KONECT kann der Durchmesser jedoch nur für kleine
Datensätze berechnet werden. Diese Bachelorarbeit soll einen Beitrag für die
Lösung dieses Engpasses bzw. Problems leisten. Durch die Implementierung von
den nachfolgend dargestellten Algorithmen soll es am Ende möglich sein, dass
der Durchmesser auch für größere Datensätze berechnet bzw. geschätzt werden
kann:
• Dijkstra-Algorithmus
• iFub-Algorithmus
• HyperANF-Algorithmus
• Sampling-Algorithmus
Somit wird die Herausforderung, die mit der zunehmender Komplexität von
Netzwerken zumindest teilweise aufgehoben.
5
1.2
Zielsetzung
Ziel der Bachelorarbeit ist es, eine Toolbox in C zu entwickeln mit der möglichst
Distanzen und Hop-Distributionen von große Netzwerke berechnen. Nachdem
die Toolbox entwickelt und implementiert wird, sollen möglichst viele Netzwerke
aus KONECT mit dessen Hilfe untersucht werden. Dies wird im Rahmen einer
Evaluation erfolgen. Um die Effektivität der implementierten Algorithmen zu
messen sollen folgende Experimente durchgeführt werden:
• Für exakte Algorithmen soll die Laufzeit anhand mehrerer Netzwerkdatensätze gemessen werden. Es soll ermittelt werden, welcher exakte Algorithmus der schnellste ist.
• Für approximative Algorithmen muss sowohl die Laufzeit als auch die
Approximationsgenauigkeit evaluiert werden. In diesem Fall kann durch
geeignete Wahl von Parametern ein Trade-off zwischen Laufzeit und Genauigkeit gemacht werden. Es soll evaluiert werden, welcher Algorithmus
für eine gegebene Approximationsgenauigkeit der effzienteste ist.
• Es soll ermittelt werden, inwiefern Eigenschaften eines Netzwerks die Laufzeit der einzelnen Algorithmen beeinflusst. Zum Beispiel soll getestet werden, ob bestimmte Algorithmen effizienter arbeiten, wenn der Durchmesser
eines Netzwerks größer oder kleiner ist, oder wenn andere Netzwerkeigenschaften gegeben sind, wie zum Beispiel ein besonders hoher ClusteringKoeffzient oder eine Gradverteilung, die einer Power-Law folgt. Es soll
auch getestet werden, ob die einzelnen Algorithmen für bestimmte Netzwerktypen (soziale Netzwerke, Straßennetzwerke, usw.) besser oder schlechter geeignet sind.
Es soll weiterhin herausgefunden werden, wie viele Netzwerke aus KONECT
bearbeitet werden können und darüber hinaus soll die Größe des größten Netzwerkes festgestellt werden, für das dies möglich ist. Die berechneten Durchmesser sollen mit denen aus der Literatur verglichen werden. Außerdem soll durch
die große Anzahl an Netzwerken in KONECT, für die der Durchmesser berechnet wird, der Vergleich des Durchmessers in einer großen Zahl von heterogenen
Netzwerken durchgeführt werden, um somit Aussagen über die Struktur von
Netzwerken von verschiedenen Typen machen zu können, die bei Studien über
nur einige wenige Netzwerke nicht möglich wären.
In diesem Experiment soll auch ermittelt werden, inwiefern Netzwerke aus
verschiedenen Kategorien (z.B. soziale Netzwerke, Rechnernetzwerke, Straßennetzwerke) unterschiedliche Durchmesserwerte besitzen. Durch die große Anzahl
an Netzwerken sollen hier auch statistisch signifikante Aussagen gemacht werden
können.
Die Bachelorarbeit ist einerseits für KONECT gedacht, d.h. die Berechnung von möglichst vielen und großen Netzwerken soll umsetzbar werden. Somit werden mehr Informationen über Netzwerke zur Verfügung gestellt, wovon
KONECT profitieren kann. Es ist aber auch für alle anderen Personen bzw.
Studien gedacht, die Interesse an Netzwerktheorie und Netzwerkanalyse haben.
6
1.3
Forschungsmethoden und Aufbau der Arbeit
Um Instrumente als Mittel der Zielerreichung auswählen zu können, ist es sehr
wichtig für eine Forschungsarbeit wie diese, eine Art und Weise des Vorgehens
auszuwählen. Für die vorliegende Arbeit wurde einerseits die Literaturanalyse
als Forschungsmethode eingesetzt. Dadurch kann der aktuelle Forschungsstand
festgestellt werden und neue Erkenntnisse über das Thema gewonnen werden.
Die Literaturrecherche bildet eine Grundlage für den theoretischen Teil der Arbeit. In dieser Bachelorarbeit wird unter anderem untersucht, wie sich die Eigenschaften (z.B. Clustering- Koeffzient, Durchmesser, Gradverteilung u.ä.) eines
Netzwerks auf die Laufzeit der einzelnen Algorithmen, die im Kapitel 1.2. genannt wurden, auswirken. Im Rahmen des durchzuführenden Experiments soll
festgestellt werden, welcher der einzelnen Algorithmen am schnellsten ist. Darüber hinaus soll es möglich sein, eine Aussage über die Effizient der Algorithmen
zu machen. Diese Methode hilft dabei, neue Erkenntnisse über das Thema zu
gewinnen und zu der Minderung der Herausforderung beizutragen, die aus der
zunehmenden Komplexität der Netzwerke resultieren.
Die vorliegende Arbeit gliedert sich zur Darstellung der vorgenommenen
Schritte in mehrere Abschnitte: Im nun folgenden zweiten Kapitel werden die
theoretischen Grundlagen dargestellt. Die wichtigsten Begriffe werden erläutert
und mithilfe von Beispielen erklärt, um somit Verständnis für die nachfolgenden
Kapitel zu entwickeln. In dem dritten Kapitel werden die Verfahren präsentiert,
die bei der Problemlösung angewendet werden. Für den exakten Algorithmus
wird der Dijkstra-Algorithmus und iFub-Algorithmus benutzt, und für den approximativen Algorithmus werden ein Sampling-Algorithmus und HyperANFAlgorithmus verwendet. Im nächsten Kapitel werden die Experimente gezeigt,
die im Rahmen der vorliegenden Arbeit durchgeführt wurden. Was genau im
Rahmen der Experimente gemacht werden soll, wurde bereits im Kapitel 1.2.
beschrieben. In diesem Kapitel werden darüber hinaus die Ergebnisse der Experimente präsentiert. Kapitel 6 schließt die Arbeit ab. Hierbei wird das Thema
zusammengefasst und zudem wird ein Ausblick für die zukünftige Forschung
gegeben.
2
Theoretische Grundlagen
In diesem Kapitel werden die theoretischen Konzepte und die Begriffe präsentiert, die bei der vorliegenden Arbeit eine Schlüsselrolle spielen. Entwicklung
von dem Verständnis ist dabei sehr wichtig, denn ansonsten kann der Leser
nicht den Inhalten der vorliegenden Arbeit folgen. An manchen Stellen werden
die Begriffe mit Beispielen illustriert, um ihre Rolle zu verdeutlichen.
2.1
Netzwerk
In der Literatur wird darauf hingewiesen, dass die Begriffe Netzwerk und Graph
synonym verwendet werden können [9]. Es kommt darauf an, aus welcher Perspektive das Thema betrachtet wird. Diestel (2006) beschreibt einen Graphen
7
als ein Paar G = (V, E) disjunkter Mengen. Die Bestandteile von E können
als 2-elementige Teilmengen von V bezeichnet werden. Anders formuliert, unter
dem Begriff Netzwerk versteht man eine Menge von Elementen, die als Knoten (V ) bzw. Ecken genannt werden. Zudem besteht ein Netzwerk aus Kanten
(E), die als Beziehungen oder Verbindungen zwischen den Knoten fungieren
[9, 16]. Es sind zahlreiche Systeme in der realen Welt vorhanden, die in Form
von Netzwerken auftreten. In der mathematischen Literatur werden die Netzwerke eher als Graphen bezeichnet aber im Grunde genommen handelt es sich
um den gleichen Begriff.
Die Netzwerke können graphisch dargestellt werden, in dem die Knoten als
Punkte gezeichnet werden und diese dann mit einer Linie (Kante) verbindet
[16]. Die Knoten repräsentieren dabei Akteure, die nicht nur Menschen sein
müssen, sondern auch Organisationen, Unternehmen, Länder usw. [10]. Mithilfe von Kanten werden die Beziehungen zwischen den Knoten abgebildet. Die
formale Definition eines Netzwerkes ist unabhängig von seiner graphischen Darstellung. Diese ist dem Zeichner frei überlassen, d.h. es spielt keine Rolle, ob sich
die Linien (Kanten) überkreuzen oder ob sie gerade oder geschwungen gezeichnet werden. Die Abbildung 1 präsentiert einen Beispiel für ein kleines Netzwerk,
das aus acht Knoten und sieben Kanten besteht.
Knoten
0
Kanten
1
2
3
5
4
6
7
Abbildung 1: Ein Beispiel für kleines Netzwerk (eigene Darstellung).
Es gibt zahlreiche Beispiele von Systemen, welche in Form von Netzwerken
dargestellt werden können. Um einen Überblick zu verschaffen sowie Beweis
für diese These zu liefern, werden einige von vielen Netzwerkbeispielen genannt:
Facebook, Twitter, flickr, XING, Netzwerke von Geschäftsbeziehungen, Routen,
welche Briefzustellungen abbilden, Netzwerke der Zitierungen zwischen wissenschaftlichen Artikeln, Internet und viele mehr. In der Abbildung 2 wird ein
Netzwerk präsentiert, das eins von vielen Gegenständen der vorliegenden Arbeit
ist. Dabei handelt es sich um Netzwerk „Highland tribes“. Dies ist das soziale
Netzwerk der Bündnisstruktur von Stämmen des Gahuku-Gama der östlichen
zentralen Hochland von Neuguinea, von Kenneth Read (1954). Das Netzwerk
enthält sechzehn Stämme, die entweder durch Freundschaft (Rova") oder Feindschaft ("hina") verbunden sind. Dieses Beispiel macht es deutlich, dass praktisch
8
jede Situation aus dem Alltag, an der mehrere Akteure beteiligt sind und miteinander interagieren, als Netzwerk präsentiert werden kann [15].
Abbildung 2: Graphische Darstellung des Netzwerkes „Highland tribes“, von der
KONECT-Webseite.
Die Untersuchung der Netzwerken in Form von mathematischen Graphentheorie bildet eine Grundlage für diskrete Mathematik [9]. Neben Mathematik
gibt es auch andere Wissenschaften, die sich mit Analyse von Netzwerken befassen. Dazu zählt unter anderem Soziologie, die sich mit diesem Thema ausführlich auseinandersetzt. Typisch für Analysen in diesem Wissenschaftsbereich
ist, dass die Grundlagen mithilfe von Fragebögen herausgearbeitet werden. Die
Teilnehmer dieser Umfragen werden häufig nach ihren Interaktionen mit anderen Individuen befragt. Im Nachhinein werden die Ergebnisse solcher Studien
benutzt, um ein Netzwerk aufzubauen, in dem die Knoten die Teilnehmer und
die Kanten die Interaktionen zwischen ihnen repräsentieren. Hauptthema solcher Studien ist oft die Zentralität, d.h. welche Individuen sind am besten mit
anderen vernetzt bzw. verbunden oder welche Individuen haben den größten
Einfluss in dem gesamten Netzwerk. Andererseits wird häufig die Konnektivität
untersucht, um herauszufinden, ob und auf welche Art und Weise die Individuen
über das Netzwerk miteinander verbunden sind [10].
In den letzten Jahren konnten einige Veränderungen in der Netzwerkforschung beobachtet werden. Die wichtigste Veränderung ist, dass nicht mehr nur
einzelne und kleine Netzwerke und die Eigenschaften von einzelnen Knoten oder
Kanten analysiert werden. Vielmehr konzentriert sich die aktuelle Forschung auf
umfangreiche statistische Charakteristika von Graphen. Diese neue Ausrichtung
wurde vor allem durch die allgemeine Zugänglichkeit zu Computern oder Kommunikationsnetzwerken vorangetrieben. Dadurch ist es möglich, die Daten in
viel größeren Ausmaß zu analysieren als es früher möglich war. Früher wurden
Netzwerke erfasst, die vielleicht maximal 100 Knoten hatten. Gegenwärtig ist
es nicht selten, dass sich die Forscher mit Graphen beschäftigen, die Millionen
von Knoten enthalten. Viele Fragen, die früher bei der Analyse von den kleinen
Netzwerken gestellt wurden, erscheinen jetzt in den großen Netzwerken nicht
mehr sinnvoll. Auch die Analysemethoden haben sich verändert bzw. mussten
9
an die neuen Herausforderung und Bedingungen angepasst werden, welche aus
den großen und komplexen Netzwerken resultieren. Als Beispiel kann die womöglich älteste Methode der Netzwerkanalyse [9] aufgeführt werden, die darin
besteht, dass der Graph mit seinen Elementen einfach gezeichnet wird und auf
dieser Grundlage nachfolgend Fragen beantwortet werden (z.B. welcher Knoten
in diesen Netzwerk wurde den größten Schaden für die Netzwerkkonnektivität
anrichten, wenn er aus diesen Netzwerk entfernt würde?). Es wird aber schnell
klar, dass bei einem Netzwerk, wie z.B. Twitter, diese Methode sich als nutzlos
erweisen wird. Die neusten Entwicklungen auf diesen Wissenschaftsfeld zeigen,
dass die Forscher die statistischen Methoden zu entwickeln versuchen, die solche
Probleme umgehen.
Die Netzwerkanalyse setzt sich mit drei Eigenschaftsaspekten, die in solche
Analyse einbezogen werden können:
• attributionale oder kategoriale Eigenschaften: Merkmale von Akteuren,
Objekten, Organisationen;
• relationale Eigenschaften: z.B. Stärke, Symmetrie/Asymmetrie, Transitivität;
• Eigenschaften der Netzwerkstruktur: Dichte, Verbundenheit, Differenzierung
Die Netzwerkanalyse kann z.B. so durchgeführt werden, dass zuerst statistische Eigenschaften identifiziert werden, z.B. Weglängen, Gradverteilung, welche
die Struktur und das Verhalten des Netzwerks aufzeigen und Möglichkeiten präsentieren, wie solche Eigenschaften gemessen werden können. Außerdem wird es
versucht, Netzwerkmodelle aufzubauen, welche die Bedeutung der Eigenschaften transparent machen. Zudem beschäftigt es sich mit Vorhersagen, welche das
Verhalten von Netzwerksystemen betreffen.
In der Praxis und Forschung existieren verschiedene Arten von Netzwerken.
Die Unterschiede, die zwischen den Netzwerken bestehen lassen sich auf Art
der Knoten oder Kanten zurückführen. Darüber hinaus können sie verschiedene
Merkmale haben. Wenn ein soziales Netzwerk betrachtet wird, können die Knoten für Frauen oder Männer stehen oder für verschiedene Nationalitäten oder
ähnliches. Die Kanten dagegen können für Freundschaft, Berufsbekanntschaften oder geographische Entfernung stehen. Das sind nur wenige von zahlreichen
Möglichkeiten, die vorhanden sind.
Die Graphen können gerichtet (Kanten verlaufen nur in eine Richtung) oder
ungerichtet sein. Ein Beispiel für einen gerichteten Graph ist ein Graph, welches
telefonische Verbindungen repräsentiert, da ein Anruf nur in eine Richtung gehen
kann. Die graphische Darstellung spielt ebenfalls eine wichtige Rolle, wenn es um
Stärke der Beziehungen geht. Wenn eine Kante, die Freundschaft repräsentiert,
dick aufgezeichnet wird und eine andere dagegen dünn, kann davon ausgegangen
werden, dass die dickere eine enge Freundschaft symbolisiert. Die Bezeichnung
gerichtetes oder ungerichtetes Netzwerk bezieht sich also auf die Ausrichtung
10
der Kanten. Gerichtete Graphen können zyklisch oder azyklisch sein. In dem ersten Fall bedeutet dies, dass die Kanten zu sogenannten geschlossenen Schleifen
werden und in dem zweiten Fall kommt es nicht zu solcher Situation [9]. In der
Literatur werden auch Hypergraphen unterschieden, die dadurch gekennzeichnet sind, dass eine Kante (auch Hyperkante genannt) nicht nur zwei, sondern
gleichzeitig mehrere Knoten verbindet. Solche Hypergraphen können verwendet
werden, um z.B. Familienverbindungen in einem sozialen Netzwerk aufzuzeigen.
Zudem unterscheidet man auch zwischen gewichteten und ungewichteten Graphen. Bei dem gewichteten Graphen werden die Kanten mit Gewichten bzw.
mit Bewertungen versehen. Ein kantengewichteter Graph liegt vor, wenn jeder
Kante eine reele Zahl als Kantengewicht zugeordnet ist. Darüber hinaus häufig
anzutreffende Graphen sind sogenannte bipartite Graphen. Hierbei handelt es
sich um Netzwerke die nicht nur aus einer Art von Knoten bestehen (z.B. Menschen und Bücher). In solchen Netzwerken verlaufen die Kanten nur zwischen
den unterschiedlichen Arten von Knoten. In dem genannten Beispiel werden also nicht Menschen mit Menschen verbunden oder Bücher mit Büchern, sondern
Menschen mit Büchern. Beispiele für solche bipartite Graphen, die aus dem
täglichen Leben kommen sind:
Nutzer
Foto
Nutzer
Song/Band
Abbildung 3: Beispiele für bipartite Graphen (eigene Darstellung).
Die Netzwerke können sich im Laufe der Zeit verändern. Es kann zu Situationen kommen, in denen die Knoten aus dem Graphen ausscheiden oder dass
immer mehr Knoten zu dem Netzwerk gehören möchten und an diesen auch teil
nehmen, in dem sie sich mit anderen Knoten verbinden. Die Abbildung 4 präsentiert verschiedene Beispiele für Netzwerke [9]. Beispiel A zeigt ein ungerichtetes
Netzwerk mit nur einen Knotentyp und nur einen Kantentyp. In dem Beispiel
B werden verschiedene Knoten und Kantentypen abgebildet. In dem Beispiel C
handelt es sich um Knoten und Kanten, die verschiedene Gewichtung haben. Es
könnte sich z.B. um Städte handeln, die unterschiedlich groß sind und welche
über unterschiedlich viele Straßenverbindungen verfügen. In dem Beispiel D wir
ein gerichteter Netzwerk präsentiert, in dem jede Kante in eine bestimmte Richtung verläuft. Die Abbildung macht es deutlich, dass praktisch alle Situationen
aus dem täglichen Leben in Form von Netzwerken dargestellt werden, weil es
11
eben so viele unterschiedliche Darstellungsvarianten vorhanden sind.
Abbildung 4: Beispiele für verschiedene Netzwerktypen, adaptiert aus [9]
Nachfolgend werden weitere Begriffe erläutert, die eine wichtige Rolle für die
vorliegende Arbeit spielen.
2.2
Weg und Distanz
Ein Weg kann als eine Folge von aufeinander folgenden Knoten und Kanten
in einem Netzwerk verstanden werden [17]. Die Knoten müssen dabei durch
eine Kante verbunden werden. An dieser Stelle muss ein Unterschied zwischen
einem Weg und einer Kantenfolge erklärt werde. Eine Kantenfolge kann ein Weg
sein, wenn jeder Knoten maximal einmal in dieser Folge anzutreffen ist. Somit
lässt sich feststellen, dass die Knoten in einer Kantenfolge mehrmals vorkommen
können und bei einem Weg nicht. Darüber hinaus darf in einem Weg eine Kante
ebenfalls nur einmal auftreten. In einem Weg gibt es einem Anfangs-, Endund innere Knoten. In der Literatur wird der Begriff manchmal mit dem Wort
„Pfad“ gleichgesetzt [10]. Eine Ausnahme von der vorhin bestehenden Regel
bildet der Fall, wenn der Start- mit dem Endknoten identisch ist und dies somit
der einzige wiederholte Knoten in der Kantenfolge ist. In solchem Fall spricht
man von Zyklus oder Kreis.
Distanz wird als die Länge des kürzesten Weges zwischen zwei Knoten in
einem Graph verstanden. Häufig kommt es vor, dass mehrere kürzeste Pfade
zwischen zwei Knoten vorhanden sind [9]. Dies ist vor allem der Fall in großen
Netzwerken. Eine Abwandlung des Falls existiert, wenn keine solche Distanz
vorhanden ist. In solchen Fall setzt man die Distanz auf Null. Die Distanz eines
Knoten zu sich selbst beträgt null. Bei gerichteten Graphen, welche in diesem
12
Kapitel beschrieben sind, muss unbedingt beachtet werden, dass die Distanz von
der Richtung des Pfades abhängig ist. Die Rolle, welche die Berechnung von Distanzen spielt, spiegelt sich z.B. in der Routenplanung wieder. Der Algorithmus
von Dijkstra bietet sich hierbei als eine optimale Lösung. Wenn die Distanz in
dem Graphen endlich ist, wird ein solcher Graph als verbunden genannt.
2.3
Durchmesser, Exzentrizität und Grad
der größten Distanz zwischen allen Knotenpaaren wird als den Durchmesser
bezeichnet. Die Exzentrizität von einem Knoten v ist die maximale Distanz
zwischen v und alle anderen Knoten in einem Graph. Die Anzahl der Kanten,
welche mit einem Knoten verbunden sind, werden als Grad genannt. Der Grad
eines Knotens v ist nicht unbedingt gleich mit der Knotenanzahl, welche mit
v benachbart sind. Das lässt sich darauf zurückführen, dass zwischen beliebigen zwei Knoten mehr als eine Kante bestehen kann. In der Literatur wird
der Grad mit der Konnektivität eines Knotens zusammengebracht [9]. Das soll
aber vermieden werden, denn die Konnektivität eine andere Bedeutung in der
Graphentheorie hat. Darunter wird verstanden, dass z.B. ein gerichteter Graph
dann stark verbunden ist, wenn für jeden Knotenpaar u und v ein Weg von u
zu v und von v zu u vorhanden ist. Bei ungerichteten Graphen spricht man von
Konnektivität, wenn für jeden Knotenpaar u und v ein Weg zwischen u und v
vorhanden ist. Ein direkter Graph verfügt über zwei Sorten von Grad. Hiermit
wird gemeint, dass die Knoten in solchen Graph Eingangs- und Ausgangskanten
haben und deswegen über In- und Ausgangsgrad verfügen.
2.4
Größte Zusammenhangskomponente
Für diese Arbeit wurde eine Methode angewendet, welche die größte Menge von
verbundenen Knoten herausarbeitet, für einen Fall, dass nicht alle Knoten verbunden sind. Außerdem verarbeitet sie die einfachen, ungewichteten und ungerichteten Graphen. Diese Arbeit bezieht sich auf ungewichteten und gewichteten
Graphen, wobei alle Knoten verbunden sind.
Nachdem die begrifflichen Grundlagen präsentiert wurden, werden in den
nächsten Kapiteln der Arbeit Inhalte präsentiert, die im Kapitel 1.4 beschrieben
wurden.
3
Verfahren
Nachfolgend werden die Verfahren präsentiert, die bei der Problemlösung angewendet wurden. Die Tabelle 1 gibt einen Überblick über die Anwendung der
einzelnen Algorithmen: Für den exakten Algorithmus wurden der DijkstraAlgorithmus und iFub-Algorithmus benutzt, und für den approximativen Algorithmus wurden ein Sampling-Algorithmus und HyperANF-Algorithmus verwendet.
13
Durchmesser
Hop Distribution
Exakte Algorithmen
Dijkstra, iFub
Dijkstra
Approximative Algorithmen
HyperANF, Sampling
Sampling
Tabelle 1: Darstellung der implementierten Algorithmen.
3.1
Dijkstra-Algorithmus
Ein einfaches Beispiel soll die Aufgaben bzw. den Schwerpunkt des DijkstraAlgorithmus wiedergeben. Man könnte sich vorstellen, dass eine Person A in
einer großen Stadt wohnt und berufstätig ist. A möchte eine neue Wohnung
suchen und unter den wichtigeren Kriterien befindet sich die Länge des Weges
von der Wohnung zu der Arbeit. A möchte, dass der Weg so kurz, wie möglich ist,
da er morgens gerne länger schläft. Um sein Problem zu lösen kann der DijkstraAlgorithmus angewendet werden. Sein Name verdankt der Algorithmus seinem
Erfinder, Edsger W. Dijkstra.
Der Algorithmus von Dijkstra basiert auf dem Greedy-Prinzip und stellt
eine Lösungsmöglichkeit für das Problem dar, das sich mit der Bestimmung
des kürzesten Pfade in einem kantengewichteten Graph von einem beliebigen
Startknoten zu allen anderen beschäftigt [18]. Dabei ist es untersagt, dass die
Kantengewichte des Graphen negativ sind. Greedy Algorithmen sind spezielle
Algorithmen, die in der Informatik vorkommen. Ihre wohl bekannteste Eigenschaft basiert auf dem Überlegung, schrittweise den Folgezustand auszuwählen,
der zu diesem Zeitpunkt mit dem größten Erfolg verbunden ist (z.B. Gradientenverfahren). Eine Bewertungsfunktion bildet die Grundlage für die Auswahl
des besten Folgezustandes [3]. Im Gegensatz zu anderen Greedy Algorithmen
berechnet Dijkstra-Algorithmus immer die optimale Lösung.
Das Optimierungsproblem, das mit dem Finden des kürzesten Pfades von
einem beliebigen Startknoten zu einem oder allen anderen Knoten in einem
Graph zusammenhängt, kommt sehr häufig in der Forschung vor [19]. DijkstraAlgorithmus ist bis jetzt die beste sowie weit verbreitete Lösung für dieses Problem, da es auch als sehr stabil gilt. Die Laufzeit der Implementierung von
diesem Algorithmus ist durch Kantenuntersuchung (jede Kante wird höchstens
einmal überprüft) und durch Vorgänge gekennzeichnet, welche sich auf die Prioritätsschlange beziehen (z.B. insert, extract-min und decrease-key).
Dijkstra-Algorithmus basiert auf folgenden Arbeitsschritten [20]:
• Aufteilung der Knoten in drei Gruppen
– Tree-Vertices: die kürzesten Pfade zu ihnen sind bekannt
– Fringe-Vertices: benachbart mit Tree-Vertices; die kürzesten Pfade
sind noch nicht bekannt
– Distant-Vertices: nicht benachbart mit Tree-Vertices; werden nicht
betrachtet
14
• Wiederholung n-Mal
• Finden des Fringe-Vertex, das die kleinste Distanz von dem Startknoten
aufweist
• Bewegung von Fringe zu Tree
• Aktualisierung aller Knoten, die zu Fringe-Vertices geworden sind
Darüber hinaus wird es bei dem Vorgehen versucht nur derjenigen Kanten zu
folgen, die den kürzesten Pfad aus der Sicht des Startknotens darstellen könnten.
Alle anderen Kanten werden erst dann beachtet, wenn alle kürzeren Pfade bereits verfolgt wurden. Mithilfe eines solchen Vorgehens wird eine Art Garantie
abgegeben, dass bei Erreichen eines Knotens kein kürzerer Pfad zu ihm vorhanden ist. Eine Distanz, die zwischen dem Startknoten und einem erreichten
Knoten berechnet wurde, wird im späteren Verlauf nicht mehr geändert. Der
vorher beschriebene Arbeitsschritt „Wiederholung n-Mal“ wird solange fortgesetzt, bis die Distanz des Zielknotens berechnet wurde (single-pair shortest path)
oder die Distanzen aller Knoten zum Startknoten ermittelt worden sind (singlesource shortest path) [21]. Bei diesen Algorithmus kann die Verwandtschaft zur
Breitensuche festgestellt werden.
Mithilfe von Zeigerstrukturen oder Matrizen lassen sich die Knoten bzw. die
Kanten abbilden, die zu dem betrachteten Graph gehören. Die Abstände der
Knoten können in Feldern gespeichert werden. Um den Dijkstra-Algorithmus
effizienter zu machen, wurde dieses mit eine Binary Heap-Struktur als Priority Queue implementiert, welche wie eine sortierte Liste arbeitet, d.h. dass die
kleinste Distanz die erste in der Liste und die größte die Letzte ist. Der Aufwand vom Dijkstra-Algorithmus hängt von den Operationen der Warteschlange
ab. Dabei handelt es sich um das Erzeugen einer leeren Prioritätschlange, das
Einfügen von Elemente in die Schlange, das Aussuchen des minimalen Elementes und das Löschen von Elementen [3]. Für die Prioritätsschlange beträgt der
Aufwand: O(n log n + m).
Für die Berechnung der Distanzen zwischen allen Knotenpaaren wurde der
Algorithmus von Dijkstra einmal pro Knoten benutzt. Jedes mal, wenn die Distanzen von einen Knoten zu allen anderen berechnet werden, werden diese
Distanzen zu einem Vektor V hinzugefügt. Wenn die Distanzen zwischen allen
Knotenpaaren berechnen sind, enthält der Vektor V die Hop Distribution des
Graphen:
V [n] für n ∈ {0, 1, 2, ..., δ}.
(1)
der für jede Position n die Anzahl von Knotenpaaren in Distanz n repräsentiert. In diesen Fall ist V [0] gleich der Anzahl von Distanzen, die gleich 0
sind, also ist V [0] gleich der Knotenanzahl. V [1] stellt die Anzahl von Distanzen
dar, die gleich 1 sind, also ist V [1] gleich der Kantenanzahl usw. bis V[δ] die
Distanzenanzahl repräsentiert, die gleich dem Durchmesser sind.
Der Algorithmus von Dijkstra wurde für die Berechnung der Distanzen zwischen allen Knotenpaaren einmal pro jeden Knoten benutzt. Somit ergibt sich
15
Algorithm 1 Dijkstra-Algorithmus mit Prioritätschlange in Pseudocode
Require: Ein Graph G und eine StartKnoten s
Ensure: Die distanzen von s zu alle anderen Knoten
1: //Der Vektor abstand[] wird die Distanzenwerten speichern.
2: //Q ist eine leere Prioritätschlange.
3: for all u ∈ V [G] do
4:
abstand[u] := ∞
5:
vorgänger[u] := null
6: end for
7: abstand[s] := 0
8: hinzufügen(Q, (s, abstand[s]))
9: while Q nicht leer ist do
10:
u :=Extrahieren der Knoten mit kleinstem Distanz in Q
11:
for all Nachbarn v von u do
12:
if abstand[v] > (abstand[u] + 1) then
13:
abstand[v] := (abstand[u] + 1)
14:
vorgänger[v] := u
15:
hinzufügen(Q, (v, abstand[v]))
16:
end if
17:
end for
18: end while
Algorithm 2 Benutzung der Dijkstras-Algorithmus um die distanzen zwischen
alle Knotenpaaren zu berechnen, in Pseudocode.
1: for all s ∈ V [G] do
2:
abstand[] :=dijkstra(G, s)
3:
hinzufügen(V [], abstand[])
4: end for
eine Laufzeit von: O(nm + n2 log n) [3]. Diese Methode ermöglicht Ermittlung
von bestimmten Informationen über den Durchmesser und die Hop Distribution für viele Netzwerke von KONECT und es zeigt sich, dass die Laufzeit immer kleiner wird, als diejenige, die von den aktuellen KONECT-Tools benötigt
wird. Obwohl mit diese Methode zur Berechnung bzw. Feststellung der Laufzeit
schneller ist, es ist nicht möglich im Rahmen dieser Arbeit alle Netzwerke von
KONECT zu bearbeiten, weil es sein kann, dass die Berechnung bzw. Feststellung Laufzeit mehrere Wochen oder sogar Monate dauern kann. Aus diesem
Grund werden hier die 50% von allen Netzwerken von KONECT mithilfe des
Dijkstra-Algorithmus berechnet, obwohl der Algorithmus mehrere Netzwerken
bearbeiten könnte.
16
3.2
Sampling-Algorithmus
Wie schon früher erwähnt ist das Ausführen des Dijkstra-Algorithmus nicht immer für alle Knoten möglich, da manchmal die Netzwerken zu groß und/oder zu
komplex sind und es würde zu viel Zeit in Anspruch nehmen, um sie alle zu analysieren. Aus diesem Grund wird oft ein Sampling-Algorithmus implementiert,
was auch in der vorliegenden Arbeit getan wird. Der Sampling-Algorithmus benutzt die Dijkstra-Algorithmus um die Exzentrizitäten für eine zufällige Menge
von Knoten aus dem Graphen berechnen zu können. Die größte Exzentrizität
ist dann eine untere Schranke für den Durchmesser. Diese Methode erhält nicht
exakte Lösung sondern eine Approximativ Hop Distribution. Die Approximationsgenauigkeit ist abhängig von der Größe der Menge und von dem Netzwerketyp, wie später in den graphischen Darstellungen gezeigt wird. Außerdem kann
der Sampling-Algorithmus auch eine obere Schranke für den Durchmesser berechnen, weil der Diameter immer gleich oder kleiner als zwei mal der Radius
wird. Somit ist es manchmal möglich den genauen Durchmesser zu erhalten,
ohne dass alle Distanzen von allen Knotenpaaren berechnet werden müssen.
Das ist der Fall, wenn die untere Schranke genauso groß wie obere Schranke
und somit gleich als der Durchmesser ist. In dieser Arbeit wurde der SamplingAlgorithmus für jeden Netzwerk mit dem Parameter s ausgeführt, welcher 75%,
50% 25%, 20%, 15%, 10%, 9%, 8%, 7%, 6%, 5%, 4%, 3%, 2% und 1% von der
Knotenanzahl beträgt.
3.3
HyperANF-Algorithmus
Der HyperANF-Algorithmus bietet eine effiziente Annäherung der Hop Distribution, und kann innerhalb von wenigen Stunden die Verteilung von paarweisen Distanzen in einem Netzwerk, welches sogar mehr als eine Milliarde Knoten
enthält, mit einer kleinen Fehlerrate berechnen [5]. HyperANF stellt eine Verbesserung von ANF dar und ist mit HyperLogLog Counters implementiert [4].
Dadurch ist eine exponentielle Reduzierung des Speicherbedarfs und somit des
Speicherzugriffs möglich. Jedes Counter enthält ein Anzahl von Register, und
diese Anzahl hängt nur von der benötigten Präzision ab. Die Größe von jedem
Register ist doppelt logarithmisch in der Knotenanzahl in dem Graph. Dadurch
ist es möglich, dass HyperANF fast nur linear wächst.Zudem zählt ein HyperLogLog Counter die Anzahl von verschiedenen Elementen in einem Stream [5, 6].
Der HyperANF-Algorithmus benutzt für jeden Knoten i ∈ n ein Leere HyperLogLog Counter ci . Die Funktion union (−, −) maximiert zwei Counter register
für register.
Der Algorithmus berechnet in jeder Iteration, wie viele Distanzen gleich t
sind und speichert diesen Wert in s[t]. Somit enthält der Vektor s[] am Ende eine
Annäherung der Hop Distribution. In dieser Arbeit war es möglich, alle Netzwerke, die KONECT enthält, mit dem HyperANF-Algorithmus zu bearbeiten.
17
Algorithm 3 HyperANF-Algorithmus in Pseudocode.
1: for all i ∈ V do
2:
c[i] := i
3: end for
4: t := 0
5: for t = 1...∞ do
6:
for all i ∈ V do
7:
m[i] := c[i]
8:
for all Nachbarn j von i do
9:
m[i] = union(m[i], c[j])
10:
end for
11:
end for
P
12:
s[t] := i∈V size(m[i])
13:
if c = m then
14:
break
15:
end if
16:
c := m
17:
t := t + 1
18: end for
3.4
iFub-Algorithmus
Der iterative Fringe Upper Bound oder kurz iFub-Algorithmus ist ein Algorithmus zur Bestimmung des Durchmessers in ungewichteten und ungerichteten
Graphen. Er basiert auf der Breitensuche (BFS) und ist eine Generalisierung
des iFub-Algorithmus [7].
Dieser Algorithmus benutzt die Methode 4-Sweep, um einen Startknoten u
zu finden. Der Startknoten u ist dabei ein Mittelknoten von den Graph. Die
Methode braucht vier Breitensuchen um diesen Mittelknoten zu finden. Um das
zu erreichen, sucht zuerst der 4-Sweep-Algorithmus einen Knoten r1 von solchen
Knoten aus, welche die maximale Anzahl von Nachbarn haben. Daraufhin wird
der Knote a1 ausgesucht, welcher der am meisten entfernten Knoten von r1 ist
und b1 , welcher einer von den am meisten entfernten Knoten von a1 ist. Als
nächstes wird der Knote r2 gefunden, welcher der Mittelknoten auf dem Weg
zwischen a1 und b1 ist. Anschließend wird der Knote a2 ausgesucht, welcher
der am meisten entfernten Knoten von r2 ist und b2 , welcher einer von den am
meisten entfernten Knoten von a2 ist. Somit ist der Startknoten u gefunden,
welcher der Mittelknoten auf dem Weg zwischen a2 und b2 ist. Der Startknote ist ein Knote, dessen Exzentrizität nah an dem Radius (die Hälfte von die
Exzentrizität) liegt. Der Maximalwert von der Exzentrizität von a1 und der Exzentrizität von b2 ist eine initiale untere Beschränkung für die Berechnung der
Durchmesser.
Nachdem die Startknoten ausgesucht wurden, fängt ein iterarives Verfahren
an, welches eine untere Schranke lb (lower bound) und eine obere Schranke
ub(upper bound) veredlet, so dass: lb ≤ δ ≤ ub.
18
Algorithm 4 4-Sweep in Pseudocode
Require: Ein Graph G
Ensure: Eine untere Beschrenkung für die Durchmesser und ein Knoten mit
niedrige Exzentrizität
1: r1 := ein Knote, von denen die die maximale Anzahl von Nachbarn haben
2: a1 := argmaxv∈V d(r1 , v)
3: b1 := argmaxv∈V d(a1 , v)
4: r2 :=der Mittelknoten zwischen a1 und b1
5: a2 := argmaxv∈V d(r2 , v)
6: b2 := argmaxv∈V d(a2 , v)
7: u :=der Mittelknoten zwischen a2 und b2
8: lowerb := max{ecc(a1 ), ecc(a2 )}
9: return lowerb und u
Unter Fi (u) wird die Menge von Knoten mit Distanzen i von u verstanden und unter Bi (u) = maxz∈Fi (u) ecc(z) die größte Exzentrizität von diesen
Knoten. Diese Methode endet, wenn lb = ub oder ub – ul ≤ k, für einen bestimmten Schwellwert k beträgt. Im schlechtesten Fall ist die Komplexität des
Algorithmus-iFub gleich O(nm), im allgemeinen Fall muss ifub aber nicht alle
Breitensuchen durchführen [7]. Der iFub-Algorithmus berechnet den genauen
Durchmesser, obwohl es nicht die Distanzen zwischen allen Knotenpaar berechnet.
Algorithm 5 iFub-Algorithmus in Pseudocode
Require: Ein Graph G, ein Knote u, ein untere Schranke l für die Durchmesser,
und eine ganze Zahl k
Ensure: Ein Wert M so dass δ - M ≤ k
1: i := ecc(u)
2: lb := max{ecc(u), l}
3: ub := 2ecc(u)
4: while ub - lb > k do
5:
if max{lb, Bi (u)} > 2(i − 1) then
6:
return max{lb, Bi (u)}
7:
else
8:
lb := max{lb, Bi (u)}
9:
ub := 2(i − 1)
10:
end if
11:
i := i − 1
12: end while
13: return lb
Mit dem Schwellwert k ist es möglich; eine Schätzung von dem Durchmesser
in sehr großen Netzwerken vorzunehmen und somit die Laufzeit zu reduzieren,
wobei die Berechnung von genauen Durchmesser zu viel (Lauf)Zeit in Anspruch
nehmen würde. Es konnte für einige Netzwerke festgestellt werden, dass die
19
Laufzeit für den Wert k von mehreren Stunden bis auf einige Sekunden reduziert
werden konnte, wenn der Wert k z.B. um eine Einheit erhöht würde.
In dieser Arbeit wurde der iFub-Algorithmus für die 61% von allen Netzwerken, die KONECT enthält, ausgeführt. Dabei ergab sich, dass für jedes Netzwerk
der Schwellenwert zwichen 0 und 4 variierte.
4
Experimente
Anschließend werden die Laufzeiten analysiert, die für jeden Algorithmen verbraucht wurden. Die Algorithmen wurden in dem dritten Kapitel beschrieben.
Es wird gezeigt, wie die Laufzeit und die Präzision des berechneten Ergebnisses
in Abhängigkeit von dem Wert des Parameters k (in dem Fall von dem iFubAlgorithmus) und in Abhängigkeit von dem Parameter s (in dem Fall von dem
Sampling-Algorithmus) variieren können. Darüber hinaus wird untersucht, ob
ein Verhältnis zwischen der Laufzeit von den Algorithmen und den Merkmalen
von den Graph, wie z.B. Size (Knotenanzahl), Volume (Kantenanzahl) oder die
Art von den Netzwerken, existiert.
4.1
Die Laufzeit
Um die Laufzeit zu reduzieren, welche zum Ausführen des Dijkstra-Algorithmus
benötigt wird, und zwar einmal für jeden Knoten von einem Graph, wurde ein
Sampling-Algorithmus implementiert. Dieser führt den Dijkstra-Algorithmus
nur für eine Knotenmenge von dem Graph aus. Der Parameter s stellt den
Prozentsatz von der Knotenanzahl von einem Netzwerk dar, für welchen der
Dijkstra-Algorithmus ausgeführt ist. In der Abbildung 5 ist die Laufzeit von
der Dijkstras Algoritmus für s ∈ {1, ..., 75} vorgestellt. Mit einer roten Linie ist
die Laufzeit von der Dijkstra-Algorithmus gezeigt. Anders ausgedrückt, handelt
es sich hierbei um die Laufzeit des Sampling-Algorithmus für den Parameter
s = 100. Es kann auch beobachtet werden, wie sich die Laufzeit des SamplingAlgorithmus zu der Laufzeit von Dijkstra-Algorithmus annähert. Dies geschieht
in der Abhängigkeit davon, wie sich der Parameter s erhöht.
Zudem kann beobachtet werden, dass die blaue Linie, welche die Werte von
s miteinander verbindet, nicht gänzlich eine gerade Linie ist, sondern eine eher
irreguläre Form hat. Dies zeigt sich z.B. bei der Abbildung 5 (c), welche die Darstellung des Netzwerks „Eurorad“ präsentiert. Der Grund dafür ist, dass nicht
alle Knoten den gleichen Grad haben. Daraus kann abgeleitet werden, dass die
Laufzeit nicht nur von der Anzahl der Ausführungen des Dijkstra-Algorithmus
abhängig ist, sondern auch von den Grad von jeden einzelnen Knoten. Wie die
5 zeigt, kann der Grad von jeden Knoten die Laufzeit beeinflussen, die für die
Analyse des Netzwerks verwendet wird, jedoch nicht in solchen Ausmaß wie die
Größe der Knotenanzahl.
Mit dem Algorithmus von Dijkstra wurden 97 von den 187 Netzwerken berechnet, die das KONECT enthält. In der Abbildung 6 ist die verbrauchte Laufzeit für jedes verarbeitetes Netzwerk in Abhängigkeit von der Knotenanzahl
20
3
0
10
10
2
Runtime
Runtime
10
−1
10
1
10
Dijkstra n times
sampling for s
−2
10
0
10
1
10
s for sampling
Dijkstra n times
sampling for s
0
10 0
10
2
10
(a) U. Rovira i Virgili
1
10
s for sampling
2
10
(b) arXiv astro-ph
0
2
10
10
1
Runtime
Runtime
10
−1
10
0
10
Dijkstra n times
sampling for s
−2
10
0
10
1
10
s for sampling
Dijkstra n times
sampling for s
−1
10
2
0
10
10
(c) Euroroad
1
10
s for sampling
2
10
(d) Prosper.com
5
5
10
10
4
4
Runtime
10
Runtime
10
3
3
10
10
Dijkstra n times
sampling for s
2
10 0
10
1
10
s for sampling
Dijkstra n times
sampling for s
2
10 0
10
2
10
(e) WikiSigned
1
10
s for sampling
2
10
(f) Wikipedia, simple en (dynamic)
4
5
10
10
3
4
Runtime
10
Runtime
10
2
3
10
10
Dijkstra n times
sampling for s
1
10 0
10
1
10
s for sampling
Dijkstra n times
sampling for s
2
2
10
(g) Facebook friendships
10 0
10
1
10
s for sampling
2
10
(h) WordNet
Abbildung 5: Die Laufzeit von Dijkstra und Sampling-Algorithmus für verschiedene Netzwerke.
21
gezeigt. Es kann nochmals mit Deutlichkeit erkannt werden, dass die Laufzeit
von dem Dijkstra-Algorithmus größer ist, wenn die Knotenanzahl von den Netzwerken auch größer ist. Die Laufzeit, die für Bearbeitung von jeden Netzwerk
benötigt wurde, wurde in Abhängigkeit von der Kantenanzahl in der Abbildung
7 präsentiert. In dieser graphischen Darstellung befinden sich verschiedene zerstreute Werte. Es lässt sich erkennen, dass für die Netzwerke von der Art „Contact“ einen großen Unterschied zwischen Volume von diesen Netzwerken gibt.
Dagegen gibt es keinen großen Unterschied in der Laufzeit.
6
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
5
10
4
10
Runtime
3
10
2
10
1
10
0
10
−1
10
−2
10
1
10
2
10
3
4
10
10
5
10
6
10
Size [vertices]
Abbildung 6: Die Laufzeit von dem Dijkstras-Algorithmus in Abhängigkeit von
Knoten anzahl.
Wie schon im Absatz 3.4 erwähnt, wird ein iteratives Verfahren bei dem
iFub-Algorithmus durch eine untere Schranke lb (lower bound) und eine obere
Schranke ub (upper bound) veredelt, so dass: lb ≤ δ ≤ ub. Der iFub-Algorithmus
endet, wenn ub – ul ≤ k ist. Aus diesen Grund berechnet der iFub-Algorithmus
für k = 0 den genauen Durchmesser von einem Netzwerk. Um die Laufzeit zu
analysieren, sind in der Abbildung 8 verschiedene graphische Darstellung präsentiert. Diese zeigen die Laufzeit, welche von dem iFub-Algorithmus abhängig
von k ∈ {0, ..., 8} gebraucht wird. Allgemein kann festgestellt werden, dass die
Laufzeit von iFub-Algorithmus größer ist, wenn eine größere Genauigkeit gefragt
wird. Wie die Abbildung 8 zeigt, ist das nicht immer befriedigt. In vielen Fällen
verändert sich die Laufzeit nicht, obwohl der Schwellwert k variieren.
Darüber hinaus kann auch bei die Abbildung 8 (g) und (f) beobachtet werden, dass die Laufzeit des Algorithmus gleich für k = 0 und für k = 5 ist. Dies ist
vor allem dann der Fall, wenn der Algorithmus einen Wert gleich oder sehr nah
22
6
10
5
10
4
10
Runtime
3
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
2
10
1
10
0
10
−1
10
−2
10
2
10
3
10
4
5
10
10
6
10
7
10
8
10
Volume [edges]
Abbildung 7: Die Laufzeit von dem Dijkstras-Algorithmus in Abhängigkeit von
Kanten anzahl.
an dem Diameter findet. In solchen Fall ändert sich sie Laufzeit nicht, obwohl
der Wert von k kleiner wird. Das liegt daran, dass die Bedingung ub – ul ≤ k
erfüllt wurde und deswegen dieser Wert von dem iFub-Algorithmus gefunden
werden konnte. Wenn der Schwellenwert k größer als der Diameter ist, beträgt
die Laufzeit 0.
Der iFub-Algorithmus wurde für 114 Netzwerke ausgeführt, die in KONECT
enthalten sind. In der Abbildung 9 ist auf der y-Achse die für die Bearbeitung
der Netzwerke benötigte Laufzeit abgebildet und auf der x-Achste kann die Knotenanzahl abgelesen werden. In der Abbildung 10 bildet die y-Achse, ebenfalls
wie die Abbildung 9, die Laufzeit ab und die x-Achse stellt die Kantenanzahl
dar.
In beiden Abbildungen sind die Werte sehr zerstreut aber es hat sich herausgestellt, dass die Netzwerke von der Art „Physical“ und „Ratings“ eine höhere
Laufzeit als die anderen Netzwerke mit einer größeren oder gleichen Knotenund Kantenanzahl benötigen.
Mit Hilfe der HyperANF-Algorithmus wurden die Hop-Distribution Annäherungen und daher die Durchmesser Annäherungen für 158 Netzwerke aus
KONECT berechnet. Die Laufzeit die der HyperANF-Algorithmus verbraucht
ist sehr geringer vergleicht mit der Laufzeit die der Dijkstra-Algorithmus verbraucht hat. Wie in die Kapitel 3.3 beschrieben wurde, der HyperANF berechnet
eine Annäherungen von die Hop-Distribution. In der Absatz 4.3 wird gezeigt wie
die Genauigkeit von die Approximation ist. In der Abbildung 11 ist gezeigt die
23
4
4
10
10
Dijkstra
iFub for k
Dijkstra
iFub for k
Runtime
Runtime
2
10
2
10
0
10
0
10
0
2
4
k for iFub
6
8
(a) Route views
0
2
4
k for iFub
6
8
(b) Edinburgh Associative Thesaurus
4
4
10
Dijkstra
iFub for k
Runtime
Runtime
10
2
10
Dijkstra
iFub for k
2
10
0
10
0
10
0
2
4
k for iFub
6
8
0
(c) arXiv cond-mat
4
k for iFub
6
8
(d) Slashdot Zoo
4
4
10
10
Dijkstra
iFub for k
Dijkstra
iFub for k
2
2
Runtime
Runtime
2
10
10
0
10
0
10
0
2
4
k for iFub
6
8
0
(e) Digg
2
4
k for iFub
6
8
(f) MovieLens user–tag
4
10
4
10
Dijkstra
iFub for k
Dijkstra
iFub for k
2
Runtime
Runtime
10
2
10
0
10
0
10
−2
10
0
2
4
k for iFub
6
8
(g) OpenFlights
0
2
4
k for iFub
6
8
(h) vi.sualize.us user–tag
Abbildung 8: Die Laufzeit von dem iFub-Algorithmus für verschiedene Netzwerke.
24
5
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
4
10
3
Runtime
10
2
10
1
10
0
10
−1
10
−2
10
1
2
10
3
10
4
10
5
10
6
10
10
Size [vertices]
Abbildung 9: Die Laufzeit von dem iFub-Algorithmus in Abhängigkeit von der
Knoten anzahl.
5
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
4
10
3
Runtime
10
2
10
1
10
0
10
−1
10
−2
10
2
10
3
10
4
5
10
10
6
10
7
10
8
10
Volume [edges]
Abbildung 10: Die Laufzeit von dem iFub-Algorithmus in Abhängigkeit von der
Kanten anzahl.
25
Laufzeit von HyperANF gegen die Knotenanzahl für jede Netzwerke und bei die
Abbildung 12 gegen die Kantenanzahl. Es kann auch beobachtet werden, dass,
die Laufzeit von Knotenanzahl und Kantenanzahl abhängig ist, aber wie bei der
Dijkstra-Algorithmus, die Große der Knotenanzahl hat mehr Einfluss.
5
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
4
10
3
Runtime
10
2
10
1
10
0
10
−1
10
−2
10
1
10
2
10
3
4
10
10
5
10
6
10
7
10
Size [vertices]
Abbildung 11: Die Laufzeit von dem HyperANF-Algorithmus in Abhängigkeit
von Knoten anzahl.
26
5
10
Authorship
Communication
Contact
Co−occurrence
Features
Folksonomy
Interaction
Physical
Ratings
Reference
Social
Affiliation
Text
Lexical
4
10
3
Runtime
10
2
10
1
10
0
10
−1
10
−2
10
2
10
4
10
6
8
10
10
10
10
Volume [edges]
Abbildung 12: Die Laufzeit von dem HyperANF-Algorithmus in Abhängigkeit
von der Kantenanzahl.
4.2
Präzisition des Durchmessers
Die Schätzungen von die Durchmesser, die mit der Sampling-Algorithmus, mit
der iFub-Algorithmus und mit der HyperANF-Algorithmus berechnet wurden,
werden anschließend analysieren.
Bei die Abbildung 13 ist gezeigt die berechnete Werte mit der SamplingAlgorithmus, für die verschiedenen Netzwerken Arten. Der Sampling-Algorithmus
wurde für s ∈ {1, ..., 75} ausgeführt, es ist auch gezeigt der Schätzungswert die
der HyperANF berechnet hat, und die echte Durchmesser.
Auf den Abbildung 13 für die Netzwerke (b) (c) (d) (f) (g) (h) es kann sich
beobachten dass das Fehler was der Sampling-Algorithmus begehen ist immer
gleich oder kleiner als das Fehler die HyperANF begeht, aber das ist nicht immer
so. Der Sampling-Algorithmus such zufällig aus die Knoten die dafür Dijkstra
bearbeiten wird, daher es kann sein das wenn der Algorithmus mehrmals ausgeführt für das selber Netzwerk und das selber Wert für s ist, der Algorithmus
gibst unterschiedliche Lösungen zurück. Allgemein das Wert die der SamplingAlgorithmus berechnet sollte genauer wenn das Wert von s höher ist, mit andere
Worte der Dijkstra-Algorithmus für mehrere Knoten berechnet. Aber das ist nur
Wahrscheinlichkeit und der Algorithmus kann nicht garantiert dass das so funktioniert. Wie in 13(e) sich sehen kann, für k=1, d.h. Als der Algorithmus die
1% von die Knotenanzahl bearbeitet wurde, hat der die genau Durchmesser
berechnet, wiederum für k=3 die Durchmesserwert ist geschätzt mit ein Feh-
27
ler höher als die Fehler das der HyperANF-Algorithmus begehen hat. Es ist
hervorzuheben, dass das Fehler die der Sampling-Algorithmus beheben um das
Durchmesserwert schätzen mit k=1, ist in den meisten Fällen kleiner oder gleich
als die Fehler die der HyperANF begehet.
Bei die Abbildung 14 sind die berechnete Werte von der Durchmesser gezeigt,
für verschiedene Netzwerkern mit der iFub-Algorithmus, sowie das Durchmesserwert die der HyperANF berechnet hat, und die echte Durchmesser. Wenn
der iFub-Algorithmus mit der Sampling-Algorithmus sich vergleichen, der iFubAlgorithmus hat eine die Vorteil dass mit der Parameter k, es ist möglich die
Größe des Fehler kontrollieren. Wie auf die Abbildung 14 gezeigt ist, die nahe
Durchmesser wird immer oder kleine als k sein. Außerdem in viele Fälle es ist
möglich die genaue Durchmesser berechnet ohne alle Knoten von der Graph
bearbeiten. Die Nachteil das der iFub-Algorithmus vergleicht mit der SamplingAlgorithmus hat, ist dass, der iFub-Algorithmus berechnet das Wert von die
Durchmesser aber nicht die Hop Distribution, deshalb es kann sich nicht Information über die verschiedenen Distanzen erhalten.
4.3
Präzisition der Hop Distribution
Wie in vorherige Absatz beschrieben wurde, mit der Sampling-Algorithmus y
mit der HyperANF-Algorithmus es ist möglich eine Schätzung von die Hop
Distribution berechnen. Anschließend wird die Ergebnisse gezeigt.
In die Abbildungen 15 und 16 sind die berechnete Ergebnisse mit der SamplingAlgorithmus für verschiedene Netzwerken und verschiedene Werte für der Parameter s gezeigt. Es kann sich beobachten das die Schätzenswert ist genauer
wenn das Wert von s sich erhöhe. Trotzdem für kleine Werte von s ist die Approximationsfehler sehr klein, wie in der Abbildung15(c) und 16(a) sich sehen
kann.
In Abbildung 17 wies die Genauigkeit von die Ergebnissen auf, die, der
HyperANF-Algorithmus von die Hop Distribution berechnet hat. Obwohl der
HyperANF macht in viele Fälle ein Größeres Fehler als der Sampling-Algorithmus
um die Durchmesserwert berechnen, der HyperANF-Algorithmus ist fähig zu
eine Gute Annäherung von die Durchmesser berechnen für Netzwerken die der
iFub-Algorithmus und der Sampling-Algorithmus nicht berechnen konnten in
der Zeit das die Arbeit gemacht wurde.
5
Zusammenfassung und Ausblick
Viele tägliche Situationen können mithilfe von Netzwerken dargestellt werden.
Oft kommt es dazu, ohne dass es den betroffenen Personen bewusst ist. Es konnte festgestellt werden, dass derzeitige Netzwerke immer komplexer und größer
werden. Dies wird vor allem durch freien Internetzugang sowie Verbreitung und
Weiterentwicklung von Informations- und Kommunikationstechnologien (IKT)
möglich. Mithilfe von Netzwerkanalyse können viele wichtige Informationen aus
den Netzwerken abgeleitet und verstanden werden.
28
10
6
5.5
Actual
HyperANF
Sampling for s
4.5
Actual
HyperANF
Sampling for s
4
Diameter
Diameter
9
5
8
7
3.5
3 0
10
6 0
10
1
10
s for sampling
(b) Advogato
25
15
24
14
23
Actual
HyperANF
Sampling for s
22
Diameter
Diameter
(a) David Copperfield
21
20 0
10
13
10 0
10
1
10
s for sampling
(c) Pretty Good Privacy
1
10
s for sampling
(d) arXiv hep-ph
17
16
59
Actual
HyperANF
Sampling for s
58
Diameter
60
Diameter
Actual
HyperANF
Sampling for s
12
11
61
15
14
Actual
HyperANF
Sampling for s
13
57
56 0
10
1
10
s for sampling
12
11 0
10
1
10
s for sampling
(e) Writers
1
10
s for sampling
(f) Epinions trust
11
9
8.5
Diameter
Diameter
10
9
8
7.5
7
8
7 0
10
Actual
HyperANF
Sampling for s
Actual
HyperANF
Sampling for s
6.5
6 0
10
1
10
s for sampling
(g) Prosper.com
1
10
s for sampling
(h) U. Rovira i Virgili
Abbildung 13: Präzision des Durchmessers von Sampling und HyperANFAlgorithmus
29
4
12
3.5
11
3
Diameter
Diameter
13
10
9
2.5
2
Actual
HyperANF
iFub for k
8
7
0
2
4
k for iFub
1.5
6
1
0
8
(a) Wikinews (en)
2
4.5
2
4
k for iFub
6
7
0
8
(c) MovieLens 100k
4
4
k for iFub
6
8
(d) Gnutella
9
Diameter
3
Diameter
2
10
Actual
HyperANF
iFub for k
3.5
2.5
8
Actual
HyperANF
iFub for k
7
2
6
1.5
2
4
k for iFub
6
5
0
8
2
(e) Hypertext 2009
17
7
16
6
Actual
HyperANF
iFub for k
2
4
k for iFub
(f) Flickr
8
Diameter
Diameter
8
Actual
HyperANF
iFub for k
9
8
3.5
4
0
6
10
4
5
8
11
Diameter
5
1
0
6
12
Actual
HyperANF
iFub for k
5.5
3
0
4
k for iFub
(b) Reality Mining
6
Diameter
Actual
HyperANF
iFub for k
Actual
HyperANF
iFub for k
15
14
13
4
k for iFub
6
8
(g) Wikipedia elections
12
0
2
4
k for iFub
6
8
(h) Gowalla
Abbildung 14: Präzision des Durchmessers von iFub und HyperANFAlgorithmus
30
8
6
Φ−1(H(d))
4
2
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
0
−2
−4
−6
0
1
2
3
4
5
Distance (d) [edges]
(a) David Copperfield
20
15
Φ−1(H(d))
10
5
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
0
−5
−10
−15
0
5
10
15
20
Distance (d) [edges]
(b) CAIDA
10
Φ−1(H(d))
5
0
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
−5
−10
−15
0
1
2
3
4
5
6
Distance (d) [edges]
(c) Last.fm band
Abbildung 15: Präzision der Hop Distribution von dem Sampling-Algorithmus
31
25
20
Φ−1(H(d))
15
10
5
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
0
−5
−10
−15
0
2
4
6
8
10
12
14
16
Distance (d) [edges]
(a) WordNet
8
6
Φ−1(H(d))
4
2
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
0
−2
−4
−6
0
1
2
3
4
5
Distance (d) [edges]
(b) Manufacturing emails
5
4
3
Φ−1(H(d))
2
1
0
Actual
Sampling for s=75
Sampling for s=50
Sampling for s=20
Sampling for s=15
Sampling for s=10
Sampling for s=5
Sampling for s=3
Sampling for s=1
−1
−2
−3
−4
−5
0
0.5
1
1.5
2
2.5
3
Distance (d) [edges]
(c) Florida ecosystem wet
Abbildung 16: Präzision der Hop Distribution von dem Sampling-Algorithmus
32
20
30
15
20
Φ−1(H(d))
Φ−1(H(d))
10
5
0
10
0
−5
−10
−10
−15
0
Actual
HyperANF
2
4
6
8
Distance (d) [edges]
10
−20
0
12
Actual
HyperANF
10
15
20
10
10
0
−10
−20
0
0
−5
Actual
HyperANF
10
20
30
40
Distance (d) [edges]
50
−10
0
60
(c) Writers
Actual
HyperANF
10
20
30
Distance (d) [edges]
40
50
(d) US power grid
20
10
15
10
5
Φ−1(H(d))
Φ−1(H(d))
50
5
15
0
−5
5
0
−5
−10
−15
0
40
(b) Producers
30
Φ−1(H(d))
Φ−1(H(d))
(a) CiteULike user–tag
20
30
Distance (d) [edges]
−10
Actual
HyperANF
1
2
3
4
Distance (d) [edges]
5
Actual
HyperANF
−15
0
6
5
10
Distance (d) [edges]
(e) Edinburgh Associative Thesaurus
15
(f) Enron
3
15
2
10
Φ−1(H(d))
Φ−1(H(d))
1
0
−1
0
−5
−2
−3
−4
0
5
−10
Actual
HyperANF
1
2
3
Distance (d) [edges]
4
(g) Southern women
−15
0
Actual
HyperANF
2
4
6
8
Distance (d) [edges]
10
12
(h) vi.sualize.us user–tag
Abbildung 17: Präzision der Hop Distribution von dem HyperANF-Algorithmus
33
Durch die ständig zunehmende Komplexität der Netzwerke wird deutlich,
dass herkömmliche Analysemethoden nicht ausreichen, um diese Netzwerke zu
untersuchen. Unter dem Begriff der Netzwerkanalyse wird eine empirische Untersuchungsmethode verstanden, die dabei helfen soll, ein Netzwerk zu erfassen.
Diese Methode ermöglicht eine Beschreibung von Strukturen und Interaktion
von Individuen bzw. Akteuren.
Unsere Gesellschaft hat sich verändert. Es besteht aus sozialen Netzwerken
zwischen Akteuren. Individuen nutzen die Netzwerke vor allem, um miteinander kommunizieren zu können und neue Kontakte zu knüpfen. Früher, als es
noch keine Telefone, Internet und andere Medien sowie IKT nicht gab, war
solcher Vernetzungsgrad gar nicht möglich. Da sich die Technologie immer weiter und schneller entwickelt, werden auch die bereits existierenden und neuen
Netzwerke immer größer und vielfältiger. Zudem werden ihre Strukturen und
Dynamik immer komplexer. Dadurch entsteht eine große Herausforderung, die
in der Untersuchung und Analyse solcher Netzwerke besteht. Die vorliegende
Arbeit befasste sich mit Datensätzen von Netzwerken, welche KONECT ( The
Koblenz Network Collection) enthält. Ein großer Teil von ihnen (49%) konnten bis vor kurzem noch nicht berechnet werden, da die Anzahl von Knoten
und/oder Kanten zu groß war und die Software, die sich mit der Berechnung
beschäftigte, keine dem Stand der Dinge entsprechenden Algorithmen verwendete. Dadurch hat sich ein großes Spielraum für die Implementierung von neuen
Algorithmen (in der Programmiersprache C) ergeben, die es ermöglichen sollten, möglichst große Netzwerke, die in KONECT vorhanden sind, bearbeiten zu
können.
Ziel dieser Bachelorarbeit war es, eine Toolbox in C zu entwickeln mit der
möglichst große Netzwerke bearbeitet werden können. Nachdem die Toolbox entwickelt und implementiert wurde, war es möglich, viele Netzwerke aus KONECT
mit dessen Hilfe zu untersuchen.
Um die Effektivität der implementierten Algorithmen zu messe, wurden folgende Experimente durchgeführt:
• Für exakte Algorithmen wurde die Laufzeit anhand mehrerer Netzwerkdatensätze gemessen. Es wurde ermittelt, dass der HyperANF-Algorithmus
am schnellsten ist, da er die meisten Netzwerke in der kürzesten Zeit berechnen konnte.
• Für approximative Algorithmen wurde sowohl die Laufzeit als auch die
Approximationsgenauigkeit evaluiert. Es konnte nicht eindeutig festgestellt werden, welcher-Algorithmus für eine gegebene Approximationsgenauigkeit der effzienteste ist., da z.B. der HyperANF-Algorithmus der
schnellst war aber gleichzeitig nicht immer den Durchmesser gut geschätzt
hat.
• Es wurde ermittelt, inwiefern Eigenschaften eines Netzwerks die Laufzeit
der einzelnen Algorithmen beeinflussen. Unter anderem konnte festgestellt
werden, dass die Algorithmen nicht effizienter arbeiten, wenn der Durchmesser eines Netzwerks größer oder kleiner ist. Bis auf iFub-Algorithmus
34
waren alle Algorithmen schneller, wenn die Knotenanzahl klein war. Zudem konnte festgehalten werden, dass die Netzwerktypen die einzelnen
Algorithmen nicht beeinflussen können.
Nachfolgend werden die Ergebnisse präsentiert, die im Rahmen der vorliegenden Arbeit ausgearbeitet wurden.
• Durch die Nutzung von Dijkstra-Algorithmus (einmal pro jeden Knoten),
konnten genaue Informationen über die Hop Distribution und den Durchmesser von 97 Netzwerken aus KONECT gewonnen werden. Dank dem
aktuellen KONECT-Tool waren die Ergebnisse für die Mehrheit von diesen Netzwerken bekannt. Jedoch durch die Implementierung von DijkstraAlgorithmus konnte die Laufzeit reduziert werden, die für die Gewinnung
von diesen Ergebnissen benötigt wurde. Dadurch können in der Zukunft
mehr Netzwerke mit diesem-Algorithmus bearbeitet werden.
• Der implementierte Sampling-Algorithmus bietet eine Möglichkeit an, um
die Laufzeit für die Netzwerke zu reduzieren, in welchen der DijkstraAlgorithmus hohe Laufzeiten ergeben hat. Der Algorithmus berechnet
nicht immer den genauen Durchmesser aber in vielen Fällen sind die Werte sehr nah an der Hop Distribution. In dieser Arbeit wurde der Sampling
Algoritmus in 88 Netzwerken ausgeführt. Mit dem Vorsatz die verschiedenen Schätzenswerte zu analysieren, wurde der Algorithmus nur für diese 88
Netzwerke mehrmals ausgeführt. In der Zeit, in der die Arbeit geschrieben
wurde, war es nicht möglich mehr Netzwerke zu bearbeiten.
• Der HyperANF-Algorithmus berechnet eine Schätzung von der Hop Distribution und daher auch den Wert von dem Durchmesser. Mit diesen
Algorithmus wurden 158 Netzwerke aus KONECT bearbeitet und es konnten Informationen über viele Netzwerke gewonnen werden, die bis jetzt in
KONECT noch nicht berechnet werden konnten.
• Mithilfe des iFub-Algorithmus ist es möglich den genauen Wert von den
Durchmesser zu berechnen oder ein Approximationswert zu schätzen. In
dieser Arbeit wurden die Durchmesser für 114 Netzwerke aus KONECT
berechnet. Genauso wie bei dem Sampling-Algorithmus wurde auch diesesAlgorithmus mehrmals für jeden Netzwerk mit verschiedenen Parameter
ausgeführt. Dies hat die Analyse der Ergebnisse ermöglicht.
Diese Arbeit hat viele neue Informationen über den Durchmesser von den
betrachteten Netzwerken ergeben hat. In der Zukunft sollte auf Basis von diesen
neuen Erkenntnissen weitere Forschung betrieben werden, um möglichst viele
Netzwerke weiter zu bearbeiten.
Mit dem Dijkstra-Algorithmus können noch mehrere Netzwerke bearbeitet
werden und für die Netzwerke, bei denen eine hohe Laufzeit zu erwarten ist,
kann womöglich die Laufzeit mit dem Sampling-Algorithmus reduziert werden.
Für Netzwerke, die ungefähr mehr als 1.000.000 Knoten besitzen, kann der
35
HyperANF-Algorithmus eine Schätzung von der Hop Distribution berechnen.
Dies kann durch den iFub-Algorithmus ergänzt werden, in dem mit seiner Hilfe
die genauen Werte von dem Durchmesser berechnet werden können.
Eine wichtige Begrenzung von der vorliegenden Arbeit war der begrenzter
Zeithorizont (6 Monate). Innerhalb von einem längeren Zeitraum könnten sicherlich mehr Netzwerke bearbeitet werden und möglicherweise mehr Informationen erzielt werden. Die Algorithmen bearbeiten immer noch mehr Netzwerke,
d.h. ihre Arbeit ist noch nicht vervollständigt. Aus diesem Grund konnte nicht
festgestellt werden, wo sich die Grenze von den Algorithmen befindet. Bei der
Netzwerkanalyse handelt es sich um ein relativ neues Wissenschaftsbereich und
deswegen sollte ihre weitere Entwicklung verfolgt werden. Erst wenn sich die
Netzwerkanalyse etablieren wird, wird sich herausstellen, welche Netzwerkeigenschaften eine Schlüsselrolle hierbei spielen und welche Methoden von Bedeutung
sind.
36
Anhang
Liste der Netzwerke und der dafür angewendeten Algorithmen
Code
Name
n
m
HT
SW
ZA
RM
Highland tribes
Southern women
Zachary karate club
Reality Mining
16
32
34
96
58
89
78
1,086,404
AN
HY
David Copperfield
Hypertext 2009
112
113
425
20,818
FD
FW
RA
HA
Florida ecosystem dry
Florida ecosystem wet
Manufacturing emails
Haggle
128
128
167
274
2,137
2,106
82,927
28,244
IF
PM
A@
ET
UF
Infectious
Caenorhabditis elegans
U. Rovira i Virgili
Euroroad
UC Irvine forum
410
453
1,133
1,174
1,421
17,298
4,596
5,451
1,417
33,72
AF
UC
M1
EF
US airports
UC Irvine messages
MovieLens 100k
Facebook (NIPS)
1,574
1,899
2,625
2,888
28,236
59,835
100
2,981
OF
UG
Dj
DJ
OpenFlights
US power grid
JUNG and javax dependency
JDK dependency
2,939
4,941
6,12
6,434
30,501
6,594
138,706
150,985
AS
AD
PS
EL
M2
PG
Mui
Pi
Route views
Advogato
Prosper.com
Wikipedia elections
MovieLens 1M
Pretty Good Privacy
MovieLens user–movie
DBLP
6,474
6,551
7,595
8,297
9,746
10,68
11,61
12,591
13,895
51,332
21,017
107,071
1,000,209
24,34
95,58
49,793
SB
GC
SX
AP
Mut
TH
EA
CC
TL
Spanish book
Google.com internal
Sexual escorts
arXiv astro-ph
MovieLens user–tag
arXiv hep-th
Edinburgh Associative Thesaurus
Cora citation
Twitter lists
12,643
15,763
16,73
18,771
20,537
22,908
23,132
23,166
23,37
57,772
171,206
50,632
198,05
95,58
2,673,133
312,342
91,5
33,101
Dijkstra Sampling HyperANF iFub
GP
PW
Google+
Prosper.com
23,628
23,965
39,242
35,377
Mti
IN
nfr
th
THc
PH
DG
bfr
PHc
TO
AC
MovieLens tag–movie
CAIDA
Wikinews, French
arXiv hep-th (KDD Cup)
arXiv hep-th
arXiv hep-ph
Digg
Wikibooks, French
arXiv hep-ph
Internet topology
arXiv cond-mat
24,129
26,475
26,546
27,77
27,77
28,093
30,398
30,997
34,546
34,761
38,741
95,58
53,381
193,618
352,807
352,807
4,596,803
87,627
201,727
421,578
171,403
58,595
Ff
Ow
J2
SD
Filmtipset
Facebook wall posts
Jester 150
Slashdot threads
39,199
46,952
50,832
51,083
87,415
876,993
1,728,847
140,778
BK
R2
GN
Ol
Brightkite
Reuters-21578
Gnutella
Facebook friendships
58,228
60,234
62,586
63,731
214,078
978,446
147,892
1,269,502
J1
Fc
SZ
M3
EN
Jester 100
Filmtipset
Slashdot Zoo
MovieLens 10M
Enron
73,521
75,36
79,12
80,555
87,273
4,136,360
1,266,753
515,581
10,000,054
1,148,072
Vut
Us
FI
qen
vi.sualize.us user–tag
Wikipedia, Simple English (dynamic)
Flickr
Wikiquote, English
99,157
100,312
105,938
116,363
2,298,816
1,627,472
2,316,948
549,21
CO
WR
YG
EP
Wikipedia conflict
Writers
YouTube
Epinions trust
118,1
123,781
124,325
131,828
2,917,785
132,965
293,36
841,372
W2
Fr
ST
WO
mde
ben
nen
Lb
WikiSigned
Filmtipset
Movies
WordNet
Wiktionary, German
Wikibooks, English
Wikinews, English
Last.fm band
138,592
144,671
144,73
146,005
151,982
167,525
173,772
175,069
740,397
19,554,219
256,719
656,999
1,229,501
1,164,576
901,416
19,150,868
PR
Cut
GH
RL
LO
GW
Producers
CiteULike user–tag
Github
Record labels
Location
Gowalla
175,479
175,992
177,386
180,163
191,298
196,591
192,658
2,411,819
440,237
222,314
249,117
950,327
OC
WU
Occupation
WebUni Magdeburg
201,304
206,35
223,599
3,312,112
But
LI
Ds
GE
Bx
EU
Dr
EX
SF
ND
TM
BibSonomy user–tag
Libimseti.cz
Discogs label–style
DBpedia genre
BookCrossing (ratings)
EU institution
Discogs label–genre
Wikipedia, English
Stanford
Notre Dame
Teams
210,467
220,97
244,147
253,33
263,757
265,214
270,786
276,739
281,903
325,729
397,007
2,555,080
17,359,346
5,255,950
432,1
433,652
420,045
4,147,665
2,941,902
2,312,497
1,497,134
890,109
AM
BAr
BX
Ws
Amazon
Baidu related pages
BookCrossing (implicit)
Twitter (ICWSM)
403,394
415,641
445,801
465,017
3,387,388
3,284,387
1,149,739
835,423
NX
FG
Vui
CN
Netflix
Flickr
vi.sualize.us user–picture
Countries
497,959
499,61
512,524
550,522
100,480,507
8,545,307
2,298,816
596,614
Vti
SO
YD
BS
Wut
vi.sualize.us tag–picture
Stack Overflow
Yahoo advertisers
Berkeley/Stanford
Twitter user–hashtag
577,437
641,876
653,26
685,23
705,632
2,298,816
1,302,439
2,931,708
7,600,595
4,664,605
CS
Cui
Bui
Dui
CiteSeer
CiteULike user–publication
BibSonomy user–publication
Delicious user–URL
723,131
754,484
777,084
834,679
1,764,929
2,411,819
2,555,080
301,254,171
GO
ER
Cti
Bti
Google
Epinions product ratings
CiteULike tag–publication
BibSonomy tag–publication
875,713
876,252
885,046
975,963
5,105,039
13,668,320
2,411,819
2,555,080
Up
Ud
RE
Ls
R2
Ui
Pc
R1
Wikipedia, Polish (dynamic)
Wikipedia, Dutch (dynamic)
Reuters
Last.fm song
Pennsylvania
Wikipedia, Italian (dynamic)
DBLP
Texas
1,033,050
1,039,252
1,065,176
1,085,612
1,088,092
1,204,009
1,248,427
1,379,917
25,026,208
20,070,561
60,569,726
19,150,868
1,541,898
34,826,283
17,631,144
1,921,660
Wti
WT
Dt
YS
SK
Wpl
Twitter hashtag–URL
TREC WT10g
Discogs artist–style
Yahoo songs
Skitter
Wikipedia links, PL
1,502,611
1,601,787
1,618,326
1,625,951
1,696,415
1,699,752
2,635,885
8,063,026
24,085,580
256,804,235
11,095,298
50,408,364
LF
TR
Flickr links
TREC (disks 4–5)
1,715,255
1,729,302
15,555,042
83,629,405
Da
WP
mfr
ZHi
RO
HUi
Dl
WC
men
BAi
Ug
Discogs artist–genre
Wikipedia, English
Wiktionary, French
Chinese Wikipedia internal links
California
Hudong internal links
Discogs
Wikipedia, English
Wiktionary, English
Baidu internal links
Wikipedia, German (dynamic)
1,754,838
1,870,709
1,912,264
1,930,275
1,965,206
1,984,484
2,025,594
2,036,440
2,133,892
2,141,300
2,166,669
19,033,891
39,953,145
7,399,298
9,359,108
2,766,607
14,869,484
14,414,659
3,795,796
8,998,641
17,794,839
86,337,879
Wja
Uf
FL
it
Wikipedia links, JA
Wikipedia, French (dynamic)
Flickr
Wikipedia, Italian
2,179,542
2,212,682
2,302,925
2,393,568
66,276,972
59,008,831
33,140,017
26,241,217
WK
HUr
Wpt
Wa
Wikipedia, English
Hudong related pages
Wikipedia links, PT
Twitter
2,394,385
2,452,715
2,910,050
2,919,613
5,021,410
18,855,235
55,102,696
12,887,063
Wit
Wru
DB
OR
YT
Wikipedia links, IT
Wikipedia links, RU
DBpedia
Orkut
YouTube
2,936,413
2,938,422
3,026,246
3,072,441
3,223,589
104,673,033
72,029,142
11,324,343
117,185,083
12,223,774
es
AR
de
PC
Wikipedia, Spanish
Amazon ratings
Wikipedia, German
US patents
3,288,398
3,376,972
3,620,990
3,774,768
27,011,506
5,838,041
57,323,775
16,522,438
Wde
fr
LJ
Pa
Wikipedia links, DE
Wikipedia, French
LiveJournal
DBLP
3,930,109
4,310,551
4,847,571
4,957,679
75,126,809
46,168,355
68,475,391
7,779,975
Wfr
Dut
Wui
LG
OG
DL
en
Wen
Wikipedia links, FR
Delicious user–tag
Twitter user–URL
LiveJournal
Orkut
Wikipedia, English
Wikipedia, English
Wikipedia links, EN
5,115,915
5,368,293
9,374,206
10,690,276
11,514,053
17,170,893
25,323,882
27,154,798
113,122,279
301,254,171
12,656,613
112,307,385
327,037,487
158,373,970
266,769,613
601,038,301
Dti
TW
TF
FSG
Delicious tag–URL
Twitter (WWW)
Twitter (MPI)
Facebook social graph
33,792,611
41,652,230
52,579,682
59,216,214
301,254,171
1,468,365,182
1,963,263,821
92,522,012
Literatur
[1] Jérôme Kunegis, KONECT - The Koblenz Network Collection., In Proc.
Int. Web Observatory Workshop, 2013.
[2] Johannes Weyer, Soziale Netzwerke. Konzecte und Methoden der sozialwissenschaftlichen Netzwerkforschung. München/Wien: Oldenburg Verlag,
2000.
[3] Sven Oliver Krumke, Hartmut Noltemeier, Graphentheoretische
Konzepte und Algorithmen Teubner, Wiesbaden 2005.
[4] Lars backstrom, Paolo Boldi, Marcos Rosa, Johan Ugander,
and Sebastiano Vigna, Four degrees of separation. In ACM Web Science
2012: Conference Proceedings, pages 45-54. ACM Press, 2012.
[5] Paolo Boldi, Marcos Rosa, and Sebastiano Vigna, HyperANF: Approximating the neighbourhood function of very large graphs on a budget.
In Proceedings of the 20th international conference on World Wide Web,
pages 625-634. ACM, 2011.
[6] Marianne Durand and Philippe Flajolet, LogLog counting of large
cardinalities In Annual European Symposium on Algorithms, pages 605-617,
2003.
[7] Pierluigi Crescenzi, Roberto grossi, Claudio Imbrenda, Leonardo Lanzi, Andrea Marino, Finding the diameter in real-world graphs:
experimentally turning a lower bound into an upper bound In Proc. Annual
European Symposium on Algorithms, pages 302-313, 2010.
[8] A.-L. Barabási, R. Albert, Emergence of scaling in random networks
Science Vol. 286, pages 509–512, 1999.
[9] MEJ Newman, The structure and function of complex networks. Society
for Industrial and Applied Mathematics (SIAM) Review 45, pages 167-256,
2003.
[10] Christian Stegbauer, Netzwerkanalyse und Netzwerktheorie: Ein neues
Paradigma in den Sozialwissenschaften VS Verlag für Sozialwissenschaften,
Wiesbaden, 2010.
[11] Roger Häusling, Ein netzwerkanalytisches Vierebenenkonzept zur
struktur- und akteursbezogenen Deutung sozialer Interaktionen. In: Qualitative Netzwerkanalyse: Konzepte, Methoden, Anwendungen, VS Verlag
für Sozialwissenschaften, Wiesbaden, 2005.
[12] Betina Hollstein Quantitative Methoden und Netzwerkanalyse – ein Widerspruch? In: Qualitative Netzwerkanalyse: Konzepte, Methoden, Anwendungen, VS Verlag für Sozialwissenschaften, Wiesbaden, 2005.
41
[13] Keno Frank, Andreas Wald Möglichkeiten der Triangulation quantitativer und qualitativer Methoden in der Netzwerkanalyse. In: Qualitative
Netzwerkanalyse: Konzepte, Methoden, Anwendungen, VS Verlag für Sozialwissenschaften, Wiesbaden, 2005.
[14] Dorothea Jansen Einführung in die Netzwerkanalyse: Grundlagen, Methoden, Forschungsbeispiel VS Verlag für Sozialwissenschaften, Wiesbaden,
3. Auflage, 2003.
[15] Rainer Diaz-Bone Eine kurze Einführung in die sozialwissenschaftliche
Netzwerkanalyse. Mitteilungen aus dem Schwerpunktbereich Methodenlehre
Nr. 57. Berlin: Institut für Soziologie, Freie Universität Berlin, 2006.
[16] Reinhard Diestel Graphentheorie Springer-Verlag, Berlin/Heidelberg,
2006.
[17] Peter Tittmann Graphentheorie. Mathematik-Studienhilfen. Hanserverlag, München und Wien, 2011.
[18] Edsger W. Dijkstra A note on two problems in connexion with graphs.
Numerische Mathematik, 1: 269-271, 1959.
[19] A. V. Goldberg and R. E. Tarjan Expected Performance of Dijkstra’s
Shortest Path. Algorithm Princeton University Technical Reports, 1996.
[20] Steve S. Skiena The Algorithm Design Manual Springer-Verlag, London,
2008.
[21] Robert Sedgewick Algorithms in C++ Addison-Wesley, 1992.
42
Herunterladen