Finding communities, or clusters, or modules, in networks can be done by optimizing an objective function defined globally and/or by specifying conditions which must be satisfied by all communities. Radicchi et al. [Proc. Natl. Acad. Sci. U.S.A. 101, 2658 (2004)] define a susbset of vertices of a network to be a community in the strong sense if each vertex of that subset has a larger inner degree than its outer degree. A partition in the strong sense has only strong communities.
In this paper we first define an enumerative algorithm to list all partitions in the strong sense of a network of moderate size. The results of this algorithm are given for the Zachary karate club dataset, which is solved by hand, as well as for several well-known real-world problems of the literature. Moreover, this algorithm is slightly modified in order to apply it to larger networks keeping only partitions with the largest number of communities. It is shown that some of the partitions obtained are informative, although they often have only a few communities, while they fail to give any information in other cases, having only one community. It appears that degree two vertices play a big role in forcing large inhomogeneous communities. Therefore, a weakening of the strong condition is proposed and explored: we define a partition in the almost-strong sense by substituting a non-strict inequality to a strict one in the definition of strong community for all vertices of degree two. Results, for the same set of problems as before, then give partitions with a larger number of communities and are more informative.
Published December 2011 , 22 pages