一旦在 Anylogic 中可用,如何将代理发送到房间

How to send an agent to a room once it becomes available in Anylogic

我正在创建一个诊所的模拟,我目前有病人在等候室,一旦他们在延迟块中的等待时间结束,就会被送到检查室。然而,房间通常在代理的等待时间结束之前就可用了。如何触发代理从延迟块移出并移动到可用房间?

创建一个每秒运行一次的事件来检查是否有可用空间。如果满足条件,使用命令 myDelay.remove(myDelay.get(0)).

Delay 块中删除第一个代理

您真正需要做的是将可用的房间定义为资源,因此您没有延迟时间,而是使用将房间作为资源的占用块。使用占用块,代理将根据需要等待,直到有可用房间。

现在,如果你无论如何都需要病人等待一段时间,那么你可以在 seize block 之后添加一个延迟,以便在进入房间之前等待那个时间......但是房间会已经保留给抓住的那个病人。