Я не понимаю разницу между event() и timeout() в nxsim
Я начал изучать пакет Python nxsim - https://pypi.python.org/pypi/nxsim
Основной пример, который они приводят там, выглядит следующим образом:
import random
from nxsim import BaseNetworkAgent
class ZombieOutbreak(BaseNetworkAgent):
def __init__(self, environment=None, agent_id=0, state=()):
super().__init__(environment=environment, agent_id=agent_id, state=state)
self.bite_prob = 0.05
def run(self):
while True:
if self.state['id'] == 1:
self.zombify()
yield self.env.timeout(1)
else:
yield self.env.event()
def zombify(self):
normal_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in normal_neighbors:
if random.random() < self.bite_prob:
neighbor.state['id'] = 1 # zombie
print(self.env.now, self.id, neighbor.id, sep='\t')
break
и я не совсем понял, в чем разница между:
yield self.env.timeout(1)
а также:
yield self.env.event()
Кроме того, как работает симуляция? Он зацикливается на каждом узле / агенте и делает ли тайм-аут только после того, как доберется до "больного" узла?
заранее спасибо