voterank#

voterank(G, number_of_nodes=None)[source]#

使用VoteRank算法选择图中的重要节点列表

VoteRank [1] 根据投票方案计算图G中节点的排名。通过VoteRank,所有节点为其每个入邻居投票,节点根据获得的票数迭代地被选出。被选出节点的出邻居的投票能力在后续轮次中减少。

Parameters:
G

一个NetworkX图。

number_of_nodes整数, 可选

要提取的排名节点数量(默认所有节点)。

Returns:
voterank列表

计算出的种子节点有序列表。 仅返回具有正投票数的节点。

Notes

在多重图中,每条边被独立处理。

References

[1]

Zhang, J.-X. et al. (2016). Identifying a set of influential spreaders in complex networks. Sci. Rep. 6, 27823; doi: 10.1038/srep27823.

Examples

>>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 4)])
>>> nx.voterank(G)
[0, 1]

该算法既可用于无向图,也可用于有向图。然而,有向图版本在两个方面有所不同: (i) 节点仅为其入邻居投票, (ii) 仅更新被选出节点及其出邻居的投票能力:

>>> G = nx.DiGraph([(0, 1), (2, 1), (2, 3), (3, 4)])
>>> nx.voterank(G)
[2, 3]