voterank#

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

使用 VoteRank 算法选择图中的一组有影响力的节点

VoteRank [1] 根据投票机制计算图 G 中节点的排名。使用 VoteRank,所有节点都为其每个入邻居投票,得票最高的节点被迭代地选出。在随后的回合中,已选节点的外邻居的投票能力会降低。

参数:
G

一个 NetworkX 图。

number_of_nodes整数,可选

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

返回:
voterank列表

计算出的种子的有序列表。只返回得票数为正的节点。

注意

在多重图的情况下,每条边都被独立处理。

参考

[1]

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

示例

>>> 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]