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

时间:2019-02-17 00:44:40

标签: anylogic

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

我有一个'loadService',乘客可以用很多行李分开。 (从“自定义分布”中随机选择袋子数量。

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

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

我曾尝试过组合,捡拾和比赛,但无法弄清楚如何让乘客捡起所有与他们分开的行李。 通常情况下,他们最终只能从皮带上捡起一个随机的袋子。

关于如何确保乘客在领取他们所拥有的行李之前一直停留在revestService的任何想法...

感谢您的帮助

-卡尔

My Current Setup

*两次否决?如果需要,我很高兴澄清更多。

1 个答案:

答案 0 :(得分:1)

这就是我要做的。

  1. 很明显,您将拥有代理商类型:乘客和行李包
  2. 您将在这两个代理之间创建连接: 乘客将有一个1到许多行李的链接...我们称它为BagsLink 行李与乘客之间的链接为1到1。 如果您不知道什么是连接,请查看以下文章: benjamin-schumann.com/blog/2017/10/21/anylogic-agent-links-a-hidden-gem-for-your-connections 并学习如何使用连接
  3. 您将用等待块(passengerWait和bagsWait)替换queue和queue1
  4. 在passenger上,通过onEnter操作,您将检查是否所有与该乘客连接的行李都在bagWait块上...如果它们...则您将释放(wait.free(agent))乘客和袋子
  5. 在bagWait上,在onEnter动作中,您将检查连接到该行李的乘客是否在passengerWait块中,以及所有与该乘客连接的行李是否在bagsWait块上...如果它们在...您将释放(wait.free(agent))乘客和行李
  6. 在乘客区之后添加一小段延迟时间,以表示乘客收拾行李所花费的时间
  7. 在乘客侧延误后使用接机区(在bagsWait之后,您需要在行李侧重新排队)
  8. 使用以下条件来收拾行李... agent.passengerLink.getConnectedAgent().equals(container)

有很多事情要做,但是应该能奏效,因为我以前是这样的:)