Child pages
  • SLM Community Detection

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Our The smart local moving (SLM)  community detection algorithm (Waltman & Van Eck, 2013) is an algorithm for performing community detection (or clustering) in large networks. The SLM algorithm maximizes a so-called networks by maximizing a modularity function. The algorithm has been successfully applied to networks with tens of millions of nodes and hundreds of millions of edges. See Links section for more informationSLM  algorithm can be used to detect communities in very large networks within short computing times. The SLM algorithm builds on ideas from the Louvain community detection algorithm proposed by Blondel et al. (2008), but it includes a number of enhancements of this algorithm. Because of these enhancements, the SLM algorithm generally yields higher modularity values, but it also requires more computing time.

Adjust the following parameters to optimize the algorithm (See the paper for more detail):


WeightAn integer attribute of the edge that will be used as weight parameter
Modularity FunctionThe Standard modularity function has been proposed by Newman and Girvan (2004) and Newman (2004). The Alternative modularity function has been proposed by Traag, Van Dooren, and Nesterov (2011)
ResolutionThe resolution parameter determines the granularity level at which communities are detected. Use a value above (below) 1.0 if you want to obtain a larger (smaller) number of communities.
Random StartNumber of random starts
IterationsNumber of iterations per random start
Random SeedSeed of the random number generator


If the input network has numeric edge attributes, one can be chosen as edge weight. If no edge weight (attribute) is specified, all edges default to having a weight of 1.

The output network will be structurally be the same as the input network, but the nodes will be annotated with new attributes labeled "community_level_x", where x is a community level. The value of each of these attributes is the id of a community. 


The output of this algorithm can be visualized well with the Circular Hierarchy visualization or using Gephi.

  • Source Code: Link
  • Original Java implementation: Link
  • Paper: Link