voterank#

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

Select a list of influential nodes in a graph using VoteRank algorithm

VoteRank [1] computes a ranking of the nodes in a graph G based on a voting scheme. With VoteRank, all nodes vote for each of its in-neighbours and the node with the highest votes is elected iteratively. The voting ability of out-neighbors of elected nodes is decreased in subsequent turns.

Parameters:
Ggraph

A NetworkX graph.

number_of_nodesinteger, optional

Number of ranked nodes to extract (default all nodes).

Returns:
voteranklist

Ordered list of computed seeds. Only nodes with positive number of votes are returned.

Notes

Each edge is treated independently in case of multigraphs.

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]

The algorithm can be used both for undirected and directed graphs. However, the directed version is different in two ways: (i) nodes only vote for their in-neighbors and (ii) only the voting ability of elected node and its out-neighbors are updated:

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