有没有实施LeaderRank的人?我尝试用Python对其进行编程,但没有结果-有人可以帮助我吗?
这是我尝试的代码:
def leaderrank(G):
# Nombre de nœuds
num_nodes = G.number_of_nodes()
nodes = G.nodes()
# Ajouter le nœuds au réseau et se connecter à tous les nœuds
G.add_node(0)
for node in nodes:
G.add_edge(0, node)
# Initialisation de la valeur LR
LR = dict.fromkeys(nodes, 1.0)
LR[0] = 0.0
# Itération pour que la condition d'arrêt soit remplie
while True:
tempLR = {}
for node1 in G.nodes():
s = 0.0
for node2 in G.nodes():
if node2 in G.neighbors(node1):
s += 1.0 / G.degree([node2])[node2] * LR[node2]
tempLR[node1] = s
# Conditions de résiliation : pas de changement de la valeur du LR
error = 0.0
for n in tempLR.keys():
error += abs(tempLR[n] - LR[n])
if error == 0.0:
break
LR = tempLR
# La valeur LR du nœud g est divisée en parts égales entre les autres nœuds et le nœud est supprimé.
avg = LR[0] / num_nodes
LR.pop(0)
for k in LR.keys():
LR[k] += avg
return LR