Anylogic中基于优先级的队列

Priority based queue in Anylogic

我正在使用基于优先级的队列从托盘货架上挑选代理。代理的优先级可以是 0 或 1。如果 palletRack 中有 10 个代理,我想先挑选所有优先级 = 1 的代理。我在当前流程图中的问题是:优先级=0 的代理在优先级=1 的代理之前被接走。可能是因为座席是一个一个进出Queue block,多个agent不会同时出现在Queue block中,所以可以对他们进行排序。如何解决?

在 queueStorage2 和 pickFromStorage1 之间放置一个保持块,并在 queueStorage2 的 on enter 操作上检查所有代理是否都在那里,如果他们在那里(无论您需要检查什么条件以确保一切都在那里)您使用 hold.unblock();

解除锁定