Anylogic:如何仅对同一资源池的某些工作人员执行停机

Anylogic: How to execute a downtime for only some workers of a same resourcePool

我必须对一个任务建模,在这个简化示例中,两个工作人员在他们拥有的对象队列上做一些工作。但他们的工作班次可能不同,我的模型应该支持这一点。

有什么简单的方法可以做到同一个资源池的每个单元有不同的工作时间表?

我尝试了一个自己开发的解决方案,我使用了两个独立的资源池,每个资源池的容量为一个,并将两个资源池分配给服务块。但问题是新配置的输出速率低于使用容量为2的单个资源池时的输出速率。

在如下图资源池的系统中,两个worker同时在两个不同的部分工作,在350个时间单位后,5个agent已经通过服务块。

在容量为二的资源池上使用时 使用一个资源池时的模型。

本系统输出

使用两个容量为1的资源池时 使用两个资源池时的模型。

新系统输出

如上图所示,在使用两个资源池时,在 350 个时间单位后,3 个代理已通过服务块。另一个区别是同时处理的零件数量。当我们使用一个资源池时,数量是两个,当我们使用两个不同的资源池时,一次只处理一个部分。

有人知道为什么会这样吗?我的主要问题是否有任何方法或我自己开发的方法有任何解决方案来使处理速率相等?一种使用两个资源池时同时处理的数字部分像以前的方式一样变成两个的方式。

提前致谢。

看,在你的第二个模型中,你告诉服务你需要两种资源来工作一个代理......你应该做的是点击你忽略的“添加列表”按钮,然后添加两者resourcePools 作为替代方案,如下图所示:

通过这样做,您不是告诉服务使用每个资源池的一个单元,而是告诉它使用来自 resourcePool 的一个单元或(这是一个非常重要的或)来自 resourcePool1 的一个单元,在没有来自 resourcePool1 的资源可用的情况