Community Discovery algorithms

CDlib collects implementations of several Community Discovery algorithms.

To maintain the library organization as clean and resilient to changes as possible the exposed algorithms are grouped following a simple rationale:

  1. Algorithms designed for static networks, and
  2. Algorithms designed for dynamic networks.

Moreover, within each category, CDlib groups together approaches sharing a same set of high-level characteristics.

In particular, static algorithms are organized into:

  • Those searching for a crisp partition of the node set;
  • Those searching for an overlapping clustering of the node set;
  • Those that search for a fuzzy partition of the node set;
  • Those that cluster edges;
  • Those that are designed to partition bipartite networks;
  • Those that are designed to cluster feature-rich (node attributed) networks;
  • Those that search for antichains in DAG (directed acyclic graphs).

Dynamic algorithms, conversely, are organized to resemble the taxonomy proposed in [Rossetti18]

  • Instant Optimal,
  • Temporal Trade-off

This documentation follows the same rationale.

If you need a summary on the available algorithms and their properties (accepted graph types, community characteristics, computational complexity) refer to:

[Rossetti18]Rossetti, Giulio, and Rémy Cazabet. “Community discovery in dynamic networks: a survey.” ACM Computing Surveys (CSUR) 51.2 (2018): 1-37.