Я не понимаю разницу между 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()

Кроме того, как работает симуляция? Он зацикливается на каждом узле / агенте и делает ли тайм-аут только после того, как доберется до "больного" узла?

заранее спасибо

0 ответов

Другие вопросы по тегам