Anylogic - 将多个项目合并回原始所有者

Anylogic - Combined multiple items back to original owner

我正在尝试构建一个简单的机场安检通道。

我有一个 'loadService' 乘客分批携带多个行李。 (袋子数量是从自定义分发中随机挑选的)。

然后行李会被传送到传送带上,而乘客会通过金属探测器。

但是,在那之后我遇到了问题。

我试过合并、取件和匹配,但无法弄清楚如何让乘客取走他们分开的所有行李。 通常情况下,他们只会从腰带上随机拿走 1 个袋子。

关于如何确保乘客在领取他们自己的行李之前留在 revestService 的任何想法...

感谢您的帮助,

-卡尔

*两张反对票?如果需要,我很乐意澄清更多。

这就是我要做的。

  1. 显然您将有代理类型:乘客和行李
  2. 您将在这两个代理之间创建连接: passenger 将有一个 link 1 to many to your bags...让我们称之为 bagsLink 和包将与乘客有 link 1 对 1...我们称之为 passengerLink 如果您不知道什么是连接,请查看这篇文章: benjamin-schumann.com/blog/2017/10/21/anylogic-agent-links-a-hidden-gem-for-your-connections 并学习如何使用连接
  3. 您将用等待块(passengerWait 和 bagsWait)替换 queue 和 queue1
  4. 在 passengerWait 上,在 onEnter 操作中,您将检查是否所有连接到 passenger 的行李都在 bagWait 块上...如果是...那么您将释放 (wait.free(agent )) 乘客和行李
  5. 在 bagsWait 上,在 onEnter 操作中,您将检查与行李相连的乘客是否在 passengerWait 块中,以及与乘客相连的所有行李是否都在 bagsWait 块中......如果它们...... . 然后你将释放 (wait.free(agent)) 乘客和行李
  6. 在passenger block之后添加一个小的延迟,表示乘客提取行李所花费的时间
  7. 在乘客端延误后使用接载区(行李后您需要一个新队列在行李端等待)
  8. 使用以下条件来领取行李... agent.passengerLink.getConnectedAgent().equals(container)

有很多事情要做,但应该可以,因为我以前像这样做过:)