EoN.get_infected_nodes¶
-
EoN.
get_infected_nodes
(G, tau, gamma, initial_infecteds=None, initial_recovereds=None)[source]¶ Finds all eventually infected nodes in an SIR simulation, through a percolation approach
From figure 6.15 of Kiss, Miller, & Simon. Please cite the book if using this algorithm
Assumes that the intial infecteds are as given and transmission occurs with rate tau and recovery with rate gamma.
Note that the output of this algorithm is stochastic.
This code has similar run-time whether an epidemic occurs or not. There are much faster ways to implement an algorithm giving the same output, for example by actually running one of the epidemic simulation tools.
Warning: why are you using this command? If it’s to better understand the relationship between percolation and SIR epidemics, that’s fine. But this command IS NOT an efficient way to calculate anything. Don’t do it like this. Use one of the other algorithms. Try
fast_SIR
, for example.Arguments: - G networkx Graph
- The network the disease will transmit through.
- tau positive float
- transmission rate
- gamma positive float
- recovery rate
- initial_infecteds node or iterable of nodes
- if a single node, then this node is initially infected if an iterable, then whole set is initially infected if None, then a randomly chosen node is initially infected.
- initial_recovereds node or iterable of nodes
- if a single node, then this node is initially recovered if an iterable, then whole set is initially recovered
Returns: - infected_nodes set
- the set of nodes infected eventually in a simulation.
SAMPLE USE: import networkx as nx import EoN G = nx.fast_gnp_random_graph(1000,0.002) finalR = EoN.get_infected_nodes(G, 2, 1, initial_infecteds=[0, 5]) #finds the nodes infected if 0 and 5 are the initial nodes infected #and tau=2, gamma=1