A New Algorithm and Its Application in Detecting Community of the Bipartite Complex Network
Algorithm 1
Detecting community from the bipartite network based on generalized suffix tree.
Input: The matrix of relation of a bipartite graph .
Output: The initial communities.
(1)
Begin
(2)
// Step 1: Get the adjacent node sequences.
(3)
fordo
(4)
Calculate the adjacent node sequences .
(5)
Let be the set of all adjacent node sequences, that is, .
(6)
end for
(7)
(8)
Step 2: Integrate the adjacent node sequences into a linked list to facilitate the establishment of a generalized suffix tree.
(9)
Create a node class with two attributes, and .
(10)
fordo
(11)
Convert to .
(12)
end for
(13)
Create a suffix linked list according to the node linked list:
(14)
fordo
(15)
Convert each to .
(16)
end for
(17)
(18)
Step 3: Establish a generalized suffix tree according to the linked list of adjacent node sequences.
(19)
Create a class with two attributes, and . Since the number of child nodes of the generalized suffix tree is uncertain, is an array of , which stores all its child nodes.
(20)
node is null node.
(21)
Insert all the linked lists of adjacent node sequence into the generalized suffix tree, the process is:
(22)
fordo
(23)
(24)
whiledo
(25)
ifthen
(26)
Insert the linked lists from to the node.
(27)
else
(28)
; .
(29)
end if
(30)
end while
(31)
end for
(32)
(33)
Step 4: Get the bipartite cliques through the generalized suffix tree.
(34)
fordo
(35)
if is a leaf node, that is, , or is a branch node, that is, then
(36)
Create the bipartite clique .
(37)
end if
(38)
end for
(39)
(40)
// Step 5: Adjust the bipartite cliques.
(41)
(42)
// Step 6: Merging the bipartite cliques to form the initial communities.
(43)
while true do
(44)
Calculate the tightnesses of bipartite cliques: .
(45)
ifthen
(46)
Merge the bipartite cliques.
(47)
end if
(48)
end while
(49)
(50)
Step 7: Adjust the isolated edges and divide them into communities.
(51)
Taking the isolated edge as bipartite cliques, and calculate the tightness .
(52)
Divide the isolated edges into the communities with the highest tightness.