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

问题描述

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

agent.goToPopulation(expeditedCases);

enter image description here

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

enter image description here

解决方法

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

enter image description here

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

,

您的方法确实有效,但是,由于您在队列之后没有任何东西可以容纳您的座席,他们会立即进入 Sink,此时他们会从他们所在的人群中移除。

默认情况下,Source 块将代理添加到隐藏的默认群体中(您可以很好地将其移至另一个群体):您可以通过 getDefaultPopulation() 访问它。如果您需要尚未分配到队列的代理也存在于特定命名的群体中,您可以使用 Source 块将它们添加到定义的自定义群体中。

然而,在像这样的“纯”过程模型中,这种对代理群体的使用并不是正常的方法。如果需要,您无论如何都可以访问每个队列中的代理(通过队列的 agents 函数)。并且,例如,这也可能/相反是您希望通过代理的动画直观地显示的内容(例如,根据他们所在的队列/状态使用不同的颜色)。这需要使用空间标记(或为代理分配坐标),以便在它们在流程中移动时使它们存在于空间的某处。