hms {CommKern}R Documentation

Hierarchical multimodal spinglass algorithm

Description

Description of the hierarchical multimodal spinglass algorithm function.

Usage

hms(input_net, spins, alpha, coolfact, tol, max_layers)

Arguments

input_net

a spinglass_net object (see matrix_to_df for more details)

spins

an integer indicating the maximum number of spins, or communities, that can be used

alpha

a double parameter balancing the use of the guidance matrix in modularity calculation

coolfact

a double parameter that indicates how quickly (or slowly) to cool the heatbath algorithm, typically set to be 0.95-0.99

tol

a double parameter that indicates the tolerance level of accepting the proposed changes within a temperature; at the end of each sweep, the number of proposed changes to the partition is assessed to see if it exceeds a threshold determined as a function of tol and spins, typically set to be 0.01-0.05

max_layers

an integer parameter that specifies the maximum number of layers of communities within the network

Details

This is the main function of the algorithm. After running checks on the input parameters, the algorithm begins on the first layer of the network, finding the optimal configuration of nodes to communities using the heatbath algorithm. Once the community assignments have been finalized, the set of nodes within each of these communities is broken up and become their own subnetworks, on which the algorithm is applied again to get further subnetwork community assignments. This continues until the maximum number of layers is reached.

Value

a list of two components: comm_layers_tree, a dataframe whose first column is the node id and all subsequent columns are the partitioning of the nodes to communities across the number of pre-specified layers; and best_hamiltonian, a vector of the optimized Hamiltonian values for each run of the algorithm

See Also

matrix_to_df, community_plot

Examples


hms_object <-
  hms(input_net = SBM_net, 
      spins = 4,
      alpha = 0,
      coolfact = 0.90,
      tol = 0.05,
      max_layers = 1)

str(hms_object)
str(hms_object$comm_layers_tree)
str(hms_object$net)

identical(SBM_net, hms_object$net)
hms_object$net$vertexes

community_plot(hms_object)
  

[Package CommKern version 1.0.1 Index]