Visualisierung2
|
#include <FastCommunity.h>
Public Member Functions | |
FastCommunity (void) | |
~FastCommunity (void) | |
myList * | 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. 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... | |
myEdge * | e |
Anfangs Adjazenzmatrix. Spaerlich besetzt da viele Knoten keine Kanten zueinander haben. More... | |
myEdge * | elist |
Kantenliste der Adjazenzmatrix um Laufzeit bei den Berechnungen zu sparen. More... | |
nodenub * | dq |
Matrix fuer die Modalitaeten zwischen den Clustern. More... | |
myMaxheap * | h |
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... | |
myStub * | c |
Enthaellt die Liste von Clustern. More... | |
apair * | joins |
Enthaellt die Liste von durchgefuerten Vereinigungen. More... | |
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.
|
private |
Enumerator | |
---|---|
NONE |
Definition at line 109 of file FastCommunity.h.
FastCommunity::FastCommunity | ( | void | ) |
Definition at line 9 of file FastCommunity.cpp.
FastCommunity::~FastCommunity | ( | void | ) |
Definition at line 14 of file FastCommunity.cpp.
|
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.
|
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.
|
private |
Erzeugt und initialisiert eine Clasterliste.
Definition at line 278 of file FastCommunity.cpp.
|
private |
Bestimmt die Eigenschaften der Cluster.
Definition at line 552 of file FastCommunity.cpp.
|
private |
Updatet die Clusterliste, indem die Clusterliste von x in die Clusterliste von y eingegliedert wird.
Definition at line 490 of file FastCommunity.cpp.
|
private |
Verschmilzt zwei Cluster mit Index i und j zu einem.
Definition at line 297 of file FastCommunity.cpp.
|
private |
Liest den Graphen aud der angegeben Datei.
Definition at line 104 of file FastCommunity.cpp.
|
private |
Gibt die Eigenschaften des Graphen aus.
Definition at line 528 of file FastCommunity.cpp.
|
private |
Zwischenspeicher fuer Werte aus der Adjazenzmatrix.
Definition at line 106 of file FastCommunity.h.
|
private |
Enthaellt die Liste von Clustern.
Definition at line 107 of file FastCommunity.h.
|
private |
Matrix fuer die Modalitaeten zwischen den Clustern.
Definition at line 102 of file FastCommunity.h.
|
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.
|
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.
|
private |
Heap zum speichern der maximalen Modalitaeten zwischen den Clustern (max_i{dQ_ij})
Definition at line 103 of file FastCommunity.h.
|
private |
Enthaellt die Liste von durchgefuerten Vereinigungen.
Definition at line 108 of file FastCommunity.h.
|
private |
Variable die benutz wird, damit sich das Fenster Im fehlerfall nicht schliesst.
Definition at line 99 of file FastCommunity.h.
|
private |
Ablage fuer die Modalitaeten zum Zeitpunkt t.
Definition at line 104 of file FastCommunity.h.
|
private |
Maximale Modalitaet zum Zeitpunkt.
Definition at line 105 of file FastCommunity.h.