17 #ifndef mitkConnectomicsSimulatedAnnealingPermutationModularity_h
18 #define mitkConnectomicsSimulatedAnnealingPermutationModularity_h
40 itkFactorylessNewMacro(Self)
44 virtual
void Initialize() override;
47 virtual
void Permutate(
double temperature ) override;
50 virtual
void CleanUp() override;
56 int getNumberOfModules( ToModuleMapType *vertexToModuleMap ) const;
59 int getNumberOfVerticesInModule( ToModuleMapType *vertexToModuleMap,
int module ) const;
62 void SetMapping( ToModuleMapType mapping );
65 ToModuleMapType GetMapping();
68 void SetDepth(
int depth );
71 void SetStepSize(
double size );
77 ~ConnectomicsSimulatedAnnealingPermutationModularity();
80 void permutateMappingSingleNodeShift(
81 ToModuleMapType *vertexToModuleMap,
85 void permutateMappingModuleChange(
86 ToModuleMapType *vertexToModuleMap,
87 double currentTemperature,
91 void joinTwoModules( ToModuleMapType *vertexToModuleMap,
int moduleA,
int moduleB );
97 ToModuleMapType *vertexToModuleMap,
98 double currentTemperature,
104 void extractModuleSubgraph(
105 ToModuleMapType *vertexToModuleMap,
109 VertexToVertexMapType* graphToSubgraphVertexMap,
110 VertexToVertexMapType* subgraphToGraphVertexMap );
113 void removeModule( ToModuleMapType *vertexToModuleMap,
int module );
117 void randomlyAssignNodesToModules(ToModuleMapType *vertexToModuleMap,
int numberOfIntendedModules );
120 double Evaluate( ToModuleMapType* mapping ) const;
123 bool AcceptChange(
double costBefore,
double costAfter,
double temperature ) const;
126 ToModuleMapType m_BestSolution;
140 #endif // mitkConnectomicsSimulatedAnnealingPermutationModularity_h
std::map< VertexDescriptorType, VertexDescriptorType > VertexToVertexMapType
DataCollection - Class to facilitate loading/accessing structured data.
A class providing permutations for the calculation of modularity using simulated annealing.
Base class of a permutation to be used in simulated annealing.
std::map< VertexDescriptorType, int > ToModuleMapType
#define mitkClassMacroItkParent(className, SuperClassName)
boost::graph_traits< NetworkType >::vertex_descriptor VertexDescriptorType
mitk::ConnectomicsNetwork::VertexDescriptorType VertexDescriptorType
Connectomics Network Class.