具有定义容量的资源
Posted
技术标签:
【中文标题】具有定义容量的资源【英文标题】:Resources with a defined capacity 【发布时间】:2020-08-22 01:26:34 【问题描述】:我在使用 Anylogic 时遇到了这个问题:
我有一个资源池,它是我的电梯,最大容量为 5 个批次。
电梯应该走 第一批,如果有其他就回头看,拿第二批,如果有其他就回头看,等等。然后 它应该上升。每次我有一个托盘时我都不能上去,同时我不能等待太多 直到我把所有的 5 个托盘放在里面。 我应该使用队列来执行此操作吗? 请帮助我,因为我不知道如何实现它。
【问题讨论】:
实现这一点的最佳方式取决于您是否 (a) 只希望电梯在有 5 个托盘时上升; (b) 最多等待 X 秒(大概是从它再次可用时开始)并取走在该期间到达的所有内容(如果 5 已经到达,则立即离开)。我怀疑你想要 (b)。 没错,我需要b场景。也可能是电梯只需要一个托盘,但它必须先检查是否有托盘,或者如你所说,最多等待一分钟才能上升。希望清楚 【参考方案1】:像往常一样,有很多不同的选择,这个怎么样:
有一个“批处理”元素,可以将您的托盘分批成一个新的代理类型“电梯托盘”。然后,您的 ResourcePool 会占用那些,而不是直接占用托盘。
或者,在您的电梯前使用“等待”元素,并定期将循环事件清空到电梯中 (myWaitObject.freeAll()
)
或者不使用 ResourcePool,而是将电梯建模为直接代理,其中状态图更详细地管理“查看和等待,但不要太长”...
...
【讨论】:
以上是关于具有定义容量的资源的主要内容,如果未能解决你的问题,请参考以下文章
java中定义HashSet时能否指定其容量?若能,如何定义?
Google OR-Tools:具有多种货物类型和容量的 CVRP