Performance evaluation of different methods to detect community structure in scale-free complex networks

A property that seems to be common to many networks is community structure, the division of network nodes into groups within which the network connections are dense, but between which they are sparser [5]. Many algorithms were developed to identify the community structure of a network [5], [2]. These algorithms presents different characteristics that results in different accuracy and computational cost, and therefore can be used in different situations, regarding the objectives of the research. A well-known method to generate a scale-free network is the preferential attachment [1], in which links are added to nodes based on their degree. We developed a method that takes the opposite way to generate a scale-free network, inspired by [4]. We start by setting the number of nodes in the network, N. For each node, we randomly sort a degree k, based on a power-law distribution P(k) ~ k, where α is the exponent. This sort is based on the following formula: k = u (1) where k is the degree of each vertex, u is a random number from a uniform distribution between 0 and 1 and α is the exponent of the power-law, always greater than 1. This generates a random real number greater than 1, with a distribution of P(k) ~ k. The closest integer is taken as the node's degree. We create a vector of size N, which is a list with all nodes degrees. For a node with a degree k, let us define h as the open connections of that node (which, in the initial state, equals k). The algorithm to create the networks is as follows: 1. Choose the node with the higher available degree (h) in the network; 2. Connect that node with h other nodes, randomly selected from a list with available nodes, thus exhausting the links of the chosen node; 3. Subtract one link from the available number of links (h) of the nodes connected; Repeat steps 1, 2 and 3 until there are no more nodes with open connections. To create a community structure, we generate a number of networks equals to the desired number of communities, and then connect them to each other, thus creating a network with M communities (being M the amount of initial networks). The quantity of links between communities is very important to community structure detection [5], so let us define ξ as the fraction between intra-communities connections and inter-communities connections, or the number of edges between vertices of different communities divided per the number of edges between vertices that belongs to the same community. We set a value for ξ for each network, calculate the number of edges between communities for that ξ, and then select (randomly) pairs of vertices from different communities that will be connected, creating a network with welldefined (or not, if ξ is too high) community structure. We have chosen to test the hereafter called Newman [5] and Clauset [2] methods to find communities within a network. Both algorithms were implemented in R statistical software [6] by [3]. We have tested those algorithms in scale-free networks generated by the algorithm described above. Both methods were tested in undirected networks with 500 vertices, 5 communities (with 100 nodes each), α = 1.5 (what creates, in general, networks with 10.000 edges), and varying from ξ 10 to 50%. For each case, we generate 100 networks, in order to determine execution time and