def Mass_Diffusion_Centrality(G):
#???
Mass_Diffusion_Centrality = {}
for nid in G.nodes():
Mass_Diffusion_Centrality[nid] = 1.0
#end for
#?????????
def Iterative_Update_Mass_Diffusion(G, Resource_Centrality):
Count = 0
while Count > 0.95 * len(G.nodes()):
for nid in G.nodes():
neighbors = G.neighbors(nid)
Updated_Resource_Nid = 0.0
for ngb in neighbors:
Updated_Resource_Nid = Updated_Resource_Nid + Resource_Centrality[ngb] * (1.0/G.degree(ngb)) #?????????????
#end for
#Update
if math.abs(Resource_Centrality[nid] - Updated_Resource_Nid) < 0.000001:
Count = Count + 1
Resource_Centrality[nid] = Updated_Resource_Nid
#end for
#end while
return Resource_Centrality
#????Mass Diffusion??
Mass_Diffusion_Centrality = Iterative_Update_Mass_Diffusion(G, Mass_Diffusion_Centrality)
#print sorted(Mass_Diffusion_Centrality.iteritems(), key=lambda d:d[1], reverse = True)
return Mass_Diffusion_Centrality
#**********************************************************************************
评论列表
文章目录