我知道simpy是一个基于进程的离散事件仿真框架。我有几个代理可能会同时做不同的事情。我仍然可以使用simpy来模拟我的代理吗?例如,一辆汽车到达停车场。然后司机下车。走到购物中心的入口并进入。一些购物者可能会同时离开。也可能会有几辆汽车同时到达停车场。当事件触发时,该事件使用
env.timeout(time)
时间执行。然而,这会增加环境的模拟时钟。因此,所有代理都会受到影响吗?有没有办法模拟这种情况?你能否建议我一个模拟框架/库来模拟这种情况?
由于@Michael的答案进行编辑:我通过使用env.process
启动代理(2种类型的代理)。这些过程中的While循环函数在代理创建时产生env.timeout
,并使用env.process(foo(A,B,C))
创建新的过程。在这些过程中,我有几个yield env.process
。在它们内部,又有一些yield env.process
。我在后面的函数上使用了yield
,因为代理必须等待事件完成。所有代理都使用一些共享资源和存储器,或者等待一些代理到达。不同类型的代理之间也有一些关联。因此,我使用外部字典来存储有关代理、资源和存储器的所有信息。我得到了一些有趣的结果,让我想知道我是否正在使用正确的库或代码结构来实现我想要做的事情。在阅读@Michael的答案后,我相信我走上了正确的道路。我可以启动多个代理创建过程,并使它们同时工作。