agent.goToPopulation 使用 AnyLogic 进入队列时不工作

agent.goToPopulation not working when entering a Queue using AnyLogic

我希望能够使用队列的 On Enter 操作,使用以下方法将代理添加到特定人群:

agent.goToPopulation(expeditedCases);

但是在 运行 时间,我看到队列已满,但没有代理进入任何代理集合?

你的方式 运行 你的模型到目前为止是纯 DES,所以你的代理不属于任何群体,这就是你使用的函数不起作用的原因。相反,在源代码处执行以下操作:

当然,使用所需的代理类型代替 A。

您的方法确实有效,但是,因为您在排队后没有任何东西可以让您的代理人进入,他们立即进入Sink,此时他们被从他们所属的人口中移除。

默认情况下,Source 块将代理添加到隐藏的默认种群(并且您可以从那里将其移动到另一个种群):您可以通过 getDefaultPopulation() 访问它。如果您需要尚未分配到队列的代理也存在于特定命名的群体中,您可以获取源块将它们添加到定义的自定义群体中。

但是,在这样的 'pure' 流程模型中,这种代理群体的使用不是正常方法。如果需要,您无论如何都可以访问每个队列中的代理(通过队列的 agents 函数)。并且,例如,这可能 also/instead 是您想通过代理的动画以视觉方式显示的内容(例如,根据他们所在的 queue/state 使用不同的颜色)。这需要使用 space 标记(或为代理分配坐标),以便使它们在流程中移动时存在于空间某处。