Communities

Loosely stated, community detection is the problem of finding the natural divisions of a network into groups of vertices, called communities or clusters, such that there are many edges within groups and few edges between groups. What exactly we mean by "many" or "few", however, is debatable, and a wide variety of different definitions have been proposed, leading to a correspondingly wide variety of different algorithms for community detection.

The most common use for community detection is as a tool for the analysis and understanding of network data. For instance, in social networks, the community structure can give us clues about the nature of the social interactions that exist within the community. Clusters of nodes in a web graph for instance might indicate groups of related web pages. Clusters of nodes in a metabolic network might indicate functional units within the network.