Visualisierung2
FastCommunity Class Reference

#include <FastCommunity.h>

Public Member Functions

 FastCommunity (void)
 
 ~FastCommunity (void)
 
myListclusterAndOrder (std::string path)
 Die Hauptmethode dieser Klasse. Sie liest den Graphen aus der Datei, clustert ihn, fuehrt die Tiefensuche durch und gibt die Reihenfolge der Knoten als Liste zurueck. More...
 

Public Attributes

netparameters gparm
 Struktur mit verschiedenen Informationen ueber den Graphen gefuellt wird. More...
 
groupstats gstats
 Struktur mit informationen der Cluster. More...
 
std::vector< unsigned int > edgeList
 eine Liste aller Kanten die im Graphen vorkommen More...
 

Private Types

enum  { NONE }
 

Private Member Functions

void readInputFile (std::string path)
 Liest den Graphen aud der angegeben Datei. More...
 
void buildDeltaQMatrix ()
 Erzeugt die Matrix fuer die Moadalitaeten. More...
 
void groupListsSetup ()
 Erzeugt und initialisiert eine Clasterliste. More...
 
void mergeCommunities (int i, int j)
 Verschmilzt zwei Cluster mit Index i und j zu einem. More...
 
void groupListsUpdate (const int x, const int y)
 Updatet die Clusterliste, indem die Clusterliste von x in die Clusterliste von y eingegliedert wird. More...
 
void groupListsStats ()
 Bestimmt die Eigenschaften der Cluster. More...
 
void recordNetwork ()
 Gibt die Eigenschaften des Graphen aus. More...
 
int getClusterIndex ()
 Im Projekt wird, dadurch, dass eine Tiefensuche verwirklicht werden soll, alle Cluster verschmolzen bis es nur mehr einen gibt. Der Index dieses Clusters wird zurueckgegeben. More...
 

Private Attributes

char pauseme
 Variable die benutz wird, damit sich das Fenster Im fehlerfall nicht schliesst. More...
 
myEdgee
 Anfangs Adjazenzmatrix. Spaerlich besetzt da viele Knoten keine Kanten zueinander haben. More...
 
myEdgeelist
 Kantenliste der Adjazenzmatrix um Laufzeit bei den Berechnungen zu sparen. More...
 
nodenubdq
 Matrix fuer die Modalitaeten zwischen den Clustern. More...
 
myMaxheaph
 Heap zum speichern der maximalen Modalitaeten zwischen den Clustern (max_i{dQ_ij}) More...
 
double * Q
 Ablage fuer die Modalitaeten zum Zeitpunkt t. More...
 
myDpair Qmax
 Maximale Modalitaet zum Zeitpunkt. More...
 
double * a
 Zwischenspeicher fuer Werte aus der Adjazenzmatrix. More...
 
myStubc
 Enthaellt die Liste von Clustern. More...
 
apairjoins
 Enthaellt die Liste von durchgefuerten Vereinigungen. More...
 

Detailed Description

Diese Klasse uebernimmt das Clustering und die Tiefensuche und haellt verschiedene Informationen ueber den Graphen und die Cluster darin. Da der erste Versuch mit den Clustern uber die Adjazenzmatrix zu langsam war (wegen der vielen 0en in der Matrix) bin ich auf diese Variante umgestiegen. In dieser wurden Teile der Implementierung von Aaron Clauset (http://www.cs.unm.edu/~aaron/research/fastmodularity.htm) verwendet die statt der Matrix auf Knotenlisten arbeitet. Sie wurde aber an einigen Stellen angepasst und veraendert.
Problem das im sehr spaeten Verlauf aufgeschienen ist:
-) Dieser Algorithmus kann leider nicht mit "self loops" umgehen
-) Der Graph muss zusammenhaengend sein

Definition at line 87 of file FastCommunity.h.

Member Enumeration Documentation

anonymous enum
private
Enumerator
NONE 

Definition at line 109 of file FastCommunity.h.

Constructor & Destructor Documentation

FastCommunity::FastCommunity ( void  )

Definition at line 9 of file FastCommunity.cpp.

FastCommunity::~FastCommunity ( void  )

Definition at line 14 of file FastCommunity.cpp.

Member Function Documentation

void FastCommunity::buildDeltaQMatrix ( )
private

Erzeugt die Matrix fuer die Moadalitaeten.

Definition at line 198 of file FastCommunity.cpp.

myList * FastCommunity::clusterAndOrder ( std::string  path)

Die Hauptmethode dieser Klasse. Sie liest den Graphen aus der Datei, clustert ihn, fuehrt die Tiefensuche durch und gibt die Reihenfolge der Knoten als Liste zurueck.

Definition at line 18 of file FastCommunity.cpp.

int FastCommunity::getClusterIndex ( )
private

Im Projekt wird, dadurch, dass eine Tiefensuche verwirklicht werden soll, alle Cluster verschmolzen bis es nur mehr einen gibt. Der Index dieses Clusters wird zurueckgegeben.

Definition at line 508 of file FastCommunity.cpp.

void FastCommunity::groupListsSetup ( )
private

Erzeugt und initialisiert eine Clasterliste.

Definition at line 278 of file FastCommunity.cpp.

void FastCommunity::groupListsStats ( )
private

Bestimmt die Eigenschaften der Cluster.

Definition at line 552 of file FastCommunity.cpp.

void FastCommunity::groupListsUpdate ( const int  x,
const int  y 
)
private

Updatet die Clusterliste, indem die Clusterliste von x in die Clusterliste von y eingegliedert wird.

Definition at line 490 of file FastCommunity.cpp.

void FastCommunity::mergeCommunities ( int  i,
int  j 
)
private

Verschmilzt zwei Cluster mit Index i und j zu einem.

Definition at line 297 of file FastCommunity.cpp.

void FastCommunity::readInputFile ( std::string  path)
private

Liest den Graphen aud der angegeben Datei.

Definition at line 104 of file FastCommunity.cpp.

void FastCommunity::recordNetwork ( )
private

Gibt die Eigenschaften des Graphen aus.

Definition at line 528 of file FastCommunity.cpp.

Member Data Documentation

double* FastCommunity::a
private

Zwischenspeicher fuer Werte aus der Adjazenzmatrix.

Definition at line 106 of file FastCommunity.h.

myStub* FastCommunity::c
private

Enthaellt die Liste von Clustern.

Definition at line 107 of file FastCommunity.h.

nodenub* FastCommunity::dq
private

Matrix fuer die Modalitaeten zwischen den Clustern.

Definition at line 102 of file FastCommunity.h.

myEdge* FastCommunity::e
private

Anfangs Adjazenzmatrix. Spaerlich besetzt da viele Knoten keine Kanten zueinander haben.

Definition at line 100 of file FastCommunity.h.

std::vector<unsigned int> FastCommunity::edgeList

eine Liste aller Kanten die im Graphen vorkommen

Definition at line 94 of file FastCommunity.h.

myEdge* FastCommunity::elist
private

Kantenliste der Adjazenzmatrix um Laufzeit bei den Berechnungen zu sparen.

Definition at line 101 of file FastCommunity.h.

netparameters FastCommunity::gparm

Struktur mit verschiedenen Informationen ueber den Graphen gefuellt wird.

Definition at line 92 of file FastCommunity.h.

groupstats FastCommunity::gstats

Struktur mit informationen der Cluster.

Definition at line 93 of file FastCommunity.h.

myMaxheap* FastCommunity::h
private

Heap zum speichern der maximalen Modalitaeten zwischen den Clustern (max_i{dQ_ij})

Definition at line 103 of file FastCommunity.h.

apair* FastCommunity::joins
private

Enthaellt die Liste von durchgefuerten Vereinigungen.

Definition at line 108 of file FastCommunity.h.

char FastCommunity::pauseme
private

Variable die benutz wird, damit sich das Fenster Im fehlerfall nicht schliesst.

Definition at line 99 of file FastCommunity.h.

double* FastCommunity::Q
private

Ablage fuer die Modalitaeten zum Zeitpunkt t.

Definition at line 104 of file FastCommunity.h.

myDpair FastCommunity::Qmax
private

Maximale Modalitaet zum Zeitpunkt.

Definition at line 105 of file FastCommunity.h.


The documentation for this class was generated from the following files: