Anylogic - 将多个项目合并回原始所有者[已关闭]

问题描述 投票:-2回答:1

我正在努力构建一个简单的机场安全通道。

我有一个'loadService',乘客分开了许多行李。 (自定义分发中随机挑选行李数量)。

然后行李在传送带上行进,而乘客则通过金属探测器。

然而,在那之后,我有我的问题。

我尝试过组合,皮卡和比赛,但无法弄清楚如何让乘客拿起他们分开的所有行李。它通常最终只从皮带上拿起一个随机包。

有关如何确保乘客留在revestService的任何想法,直到他们收集了他们拥有的袋子......

谢谢你的帮助,

-Karl

My Current Setup

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

anylogic
1个回答
1
投票

我就是这样做的。

  1. 显然你会有代理人类型:乘客和包
  2. 你将在这两个代理之间建立一个连接:乘客将有一个链接1到你的行李...我们称之为bagsLink和行李将与乘客1到1链接...让我们称之为passengerLink如果你有不知道连接是什么,请查看这篇文章:benjamin-schumann.com/blog/2017/10/21/anylogic-agent-links-a-hidden-gem-for-your-connections并学习如何使用连接
  3. 你将用等待块替换queue和queue1(passengerWait和bagsWait)
  4. 在乘客等上,在onEnter动作中,您将检查连接到乘客的所有行李是否都在行李箱上...如果他们是......那么您将免费(等待(代理人))乘客和行李
  5. 在行李上等待,在onEnter动作中,您将检查连接到行李的乘客是否在乘客等待区域,如果连接到乘客的所有行李都在行李箱上等待...如果他们是......那么您将免费(wait.free(代理人))乘客和行李
  6. 在乘客座位后添加一小段延迟,表示乘客拿起行李所需的时间
  7. 在乘客延迟后使用一个拾取块(袋子后面需要一个新的队列等待)
  8. 使用以下条件拿起袋子... agent.passengerLink.getConnectedAgent().equals(container)

很多事要做,但它应该工作,因为我之前做过这样:)

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