python - 我想要一个 LeaderRank 算法的实现
问题描述
有没有人实施了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
解决方案
推荐阅读
- python - 使用 flopy 加载 MODFLOW-USG 模型时遇到 ValueError
- airflow - 每天在特定时间运行 DAG
- react-native - 如何在反应原生的动态链接中添加查询参数
- python - 马修斯相关系数。总是返回 1
- python - 循环遍历 pandas 和每个月的变量,计算 OHLC 并将数据存储到新数据框的列中
- python - 路径中的连接 使用 Unet 进行深度学习
- r - 如何处理 R 函数中的多个输出?
- c - 如何使 ALE 与混合的 Windows/Cygwin 和 tricore-gcc 一起使用?
- typescript - 在 ES6 TypeScript API 中使用 PIXI.JS 依赖项
- java - 序列化和反序列化中用小写字母响应 Jackson