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]