【问题标题】:Resources with a defined capacity具有定义容量的资源
【发布时间】:2020-08-22 01:26:34
【问题描述】:

我在使用 Anylogic 时遇到了这个问题:

我有一个资源池,它是我的电梯,最大容量为 5 个批次。

电梯应该走 第一批,如果有其他就回头看,拿第二批,如果有其他就回头看,等等。然后 它应该上升。每次我有一个托盘时我都不能上去,同时我不能等待太多 直到我把所有的 5 个托盘放在里面。 我应该使用队列来执行此操作吗? 请帮助我,因为我不知道如何实现它。

【问题讨论】:

  • 实现这一点的最佳方式取决于您是否 (a) 只希望电梯在有 5 个托盘时上升; (b) 最多等待 X 秒(大概是从它再次可用时开始)并取走在该期间到达的所有内容(如果 5 已经到达,则立即离开)。我怀疑你想要 (b)。
  • 没错,我需要b场景。也可能是电梯只需要一个托盘,但它必须先检查是否有托盘,或者如你所说,最多等待一分钟才能上升。希望清楚

标签: anylogic


【解决方案1】:

像往常一样,有很多不同的选择,这个怎么样:

有一个“批处理”元素,可以将您的托盘分批成一个新的代理类型“电梯托盘”。然后,您的 ResourcePool 会占用那些,而不是直接占用托盘。

或者,在您的电梯前使用“等待”元素,并定期将循环事件清空到电梯中 (myWaitObject.freeAll())

或者不使用 ResourcePool,而是将电梯建模为直接代理,其中状态图更详细地管理“查看和等待,但不要太长”...

...

【讨论】:

    猜你喜欢
    • 2015-11-15
    • 1970-01-01
    • 2021-11-19
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多