File size: 1,312 Bytes
059f046
 
 
a863869
059f046
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np

def p_exposed(params, substep, state_history, previous_state):
  signal = previous_state["S"]*params["infection_rate"]*previous_state["I"]/(previous_state["S"]+previous_state["E"]+previous_state["I"]+previous_state["R"])
  return {"delta_s":np.ceil(signal)}
  
def p_infected(params, substep, state_history, previous_state):
  signal = params["exposure_rate"]*previous_state["E"]
  return {"delta_i":np.ceil(signal)}
  
def p_recovered(params, substep, state_history, previous_state):
  signal = params["recovery_rate"]*previous_state["I"]
  return {"delta_r":np.ceil(signal)}

def s_susceptible(params, substep, state_history, previous_state, policy_input):
  new_S = previous_state["S"] - policy_input["delta_s"]
  return ("S", max(new_S,0))
  
def s_exposed(params, substep, state_history, previous_state, policy_input):
  new_E = previous_state["E"] + policy_input["delta_s"] - policy_input["delta_i"]
  return ("E", max(new_E,0))

def s_infected(params, substep, state_history, previous_state, policy_input):
  new_I = previous_state["I"] + policy_input["delta_i"] - policy_input["delta_r"]
  return ("I", max(new_I,0))
  
def s_recovered(params, substep, state_history, previous_state, policy_input):
  new_R = previous_state["R"] + policy_input["delta_r"]
  return ("R", max(new_R, 0))