Overlapping Community Detection Based on Strong Tie Detection and Non-Overlapping Link Clustering
Algorithm 1
BCluster.
Input: The complex network G
Output: The overlapping node clusters
(1)
FOREACH (ego, x) IN G
(2)
IF path(ego, x) = = 1 THEN
//judging whether a pathway exists between the ego //and Node x
(3)
IF S ego,x > φ && directLink(ego, x) = = 0 THEN
//judging whether the ego and Node x are adjacent
(4)
link(ego, x)
(5)
ELSE continue
(6)
END FOREACH
(7)
FOREACH path(t, k) = = 1 IN G
(8)
AttriLink_tk=Attrit∪Attrik
//computing the edge attribute
(9)
END FOREACH
(10)
FOREACH (Linkxe, Linkxd) IN edgelist
(11)
IF overlap(AttriLink_xe, AttriLink_xd) ≥ Θ1 FOREACH
(12)
put Linkxe and Linkxd into the same cluster
(13)
ELSE
(14)
divide Linkxe and E = Linkxd separately
(15)
END FOREACH
(16)
sort C in descending order by the size of node sets
//merging from the core collection
(17)
UNTIL C′ is unchanged DO
//C′ is the combined clustering sets
(18)
combine temporary clusters of high tie strength by analyzing the indicative clusters
(19)
END UNTIL
(20)
delete clusters in which all nodes are covered by other clusters in C′
(21)
judge whether ci in C and in C′ meet the combination conditions:(a)IF C′ is null THEN add ci into C′(b)IFcover(ci, ) ≥ Θ2 && length(ci) > 2 THEN merge ci and (c)IF cover(ci, ) < Θ2 && length(ci) > 2 THEN add ci into C′ as a separate cluster