Research Article

Efficient Data Transmission for Community Detection Algorithm Based on Node Similarity in Opportunistic Social Networks

Algorithm 1

Initialize community detection.
Input: ,
Output:
(1) Begin
(2) Initialize every node as a cluster;
(3) Calculate the encounter probability and times of node m and node n in a period of time t;
(4) Get Network topology (, , )
(5) Get Social relationship (, , )
(6)//Compute the node similarity
 First_phase:
(7) Initialize (self, nodes, edges):
(8) for (i = 0; i ≤ n; i++)
(9) self.communities = {n1, n2, n3};
(10) partition = self.first_phase (network);
(11)q = q + self.s_in[i]/2l-self.s_tot[i]/2l;
(12) End for
(13) Compute modularity_gain (self, node, c, k_i_in):
(14) return 2 k_m_in - self.s_tot[c] self.k_m[node]/self.m;
(15) If (gain > best modularity_gain)
(16) best_community = community;
(17) best_partition[best_community].append (node);
(18) self.communities[node] = best_community;
(19) End If
 Second_phase:
(20) for (i = 0; i < partition.length; i++)
(21) Self.communities = (nodes, edges);
(22) In_order (nodes, edges);
(23) If (modularity_gain>0)
(24) return C = {C1, C2, ..., Cn};
(25) else
(26) return First_phase:
(27) End If
(28) End for
(29) END