The social network analysis literature contains a massive amount of community detection algorithms, and so it is impossible to list them all. In our work, we considered the following methods, which represent important classes of algorithms. Some of these methods partition a network into disjoint sets, while others find overlapping communities. Some find one community at a time, while others return "all" of the communities in a network. Some are simple and well-understood, while others are complex and sophisticated.

We encourage you to find and try algorithms other than the ones listed below!

In our work, we use the following algorithms:

In addition to these more sophisticated community detection algorithms, we also used simple breadth-first-search and random walk (with and without restart) methods. We additionally implemented an algorithm to find α-β communities (described in N. Mishra, R. Schreiber, I. Stanton, and R. Tarjan. Finding strongly knit clusters in social networks. Internet Mathematics, 5(1):155-174, Jan. 2008.) Our script is available here. Our implementation does not always find exact α-β communities; further details are available in the header comments of the script.

Some other interesting algorithms include: