  Communities are not static; they evolve, split and merge, appear and
disappear, i.e. they are product of dynamical processes that govern the
evolution of the network. A good algorithm for community detection should not
only quantify the topology of the network, but incorporate the dynamical
processes that take place on the network. We present a novel algorithm for
community detection that combines network structure with processes that support
creation and/or evolution of communities. The algorithm does not embrace the
universal approach but instead tries to focus on social networks and model
dynamic social interactions that occur on those networks. It identifies
leaders, and communities that form around those leaders. It naturally supports
overlapping communities by associating each node with a membership vector that
describes node's involvement in each community. This way, in addition to
overlapping communities, we can identify nodes that are good followers to their
leader, and also nodes with no clear community involvement that serve as a
proxy between several communities and are equally as important. We run the
algorithm for several real social networks which we believe represent a good
fraction of the wide body of social networks and discuss the results including
other possible applications.
