anylogic - 代理不离开队列进入禁区开始,这是可用的

问题描述 投票:0回答:1

我有一个最大容量的队列。之后我有一个限制区域开始(容量= 3)来访问资源(3个银行家)。我放置了一个选择输出来选择合适的银行家:客户会去找有空的银行家。这是所选输出中的代码:enter image description here 之后,客户接受服务并离开禁区。那是块enter image description here

这个想法是客户端在队列中轮流等待。当其中一位银行家有空时(由于禁区开始而闻名),客户就会去找他。由于选择输出中的条件,他选择了正确的银行家。 此逻辑适用于模型,但不适用于所有代理。即使禁区开始未满,仍有一些客户留在队列中。 这是一个例子:enter image description here

只有当新的座席到达同一队列时,座席才会离开队列。这很奇怪,因为它只是有时发生。但所有代理都是以相同的方式创建的 我该如何解决?

queue anylogic agent
1个回答
0
投票

首先,如果您已经知道如何制作自定义块并且您有 3 个完全相同的流程,为什么不为它们使用自定义块呢?

其次,当代理进入队列时,会检查 selectoutput 块条件,并且此后不会更改,当模型中其他地方发生某些情况时,不会自动重新计算。这与你的想法相反

  • 第 1 步:代理进入队列
  • 第2步:输出块条件为 计算过
  • 第 3 步:代理将在可能的情况下采取该路径 拿走吧

这并不是说当一个代理到达队列时会发生事情,实际上,当一个代理到达队列并且你看到队列中的某个人选择了其中一条路径时,这是同一个到达的代理,其他代理在队列中队列仍在等待先前计算出的空闲路径。

对此进行建模的正确方法是抓住您有队列块并且只有一个流而不是 3 个流的医生,并删除限制访问的东西。

© www.soinside.com 2019 - 2024. All rights reserved.