I am not a mathematician but out of curiosity I am trying to implement the SIS epidemic model when the nodes have mobility to understand how it will change the results. I understand how to perform this simulation in an analytical fashion. However, things get rather confusing when nodes are mobile. To give a background, all models that I have come across do not consider that nodes are mobile.
The model assumes that each node can infect any node and hence the equations (differential or difference) are valid. But when nodes are mobile, each node is not able to infect every other node (the other node might not be within the range) and has to explicity send a message to a node that is susceptible in order to infect it. In that case, give an infection rate B
, how do I simulate this when the nodes are mobile?
Currently, the way I am doing this is in the following way:
def Controller():
for i in range(1,100):
randNum = getRand()
if (randNum <= InfectionRate):
neighbors = getNeighbors(i)
ScheduleTransmission(getCurrentTime(), i, neighbors)
Schedule(getCurrentTime() + 1, Controller)
My problem is that I am not understanding if the infection rate can now be captured through a single value (which was previously B
). If not, how does one analyze this scenario? Do I set the InfectionRate
as B/numNodes
so that the overall probability will be B
? Any suggestions?
UPDATE: Making it more realistic
def Controller():
for i in range(1,100):
neighbors = getNeighbors(i)
for j in neighbors:
randNum = getRand()
if (randNum <= InfectionRate):
ScheduleTransmission(getCurrentTime(), i, j)
Schedule(getCurrentTime() + 1, Controller)