【发布时间】:2021-07-19 06:21:09
【问题描述】:
我正在尝试为使用单个码头的静态资源(使用流程图)的船舶队列建模。 队列中有三种类型的代理 A、B 和 C,它们的优先级分别为 1、2 和 3(这意味着船舶 C 在队列中具有优先使用码头的权限)。 现在我需要对以下两种与抢占相关的行为进行建模:
- 卸船任务(扣押时码头的任务)必须在 C 船到达时抢占,但在 A 或 B 船到达时不能。这意味着“任务优先级”字段中定义的优先级对于定义关注的队列顺序是有效的,但对于抢占无效。抢占的优先级应该是:优先级为 1 的船舶 A 和 B,优先级为 2 的船舶 C。 如何将队列的优先级“评级”与用于确定抢占的优先级区分开来?
shows the issue of having the same priority for queue and preemption
- 任务抢占时,我需要将当前正在使用码头的船移动到等待区,当导致抢占的任务结束时,抢占的船必须返回静态资源所在的位置(码头)并恢复其延迟块。我怎样才能做到这一点? 我尝试使用 Seize 块的 outPreempted 端口添加一个 moveTo 块以将代理移动到等待区域,但该端口似乎仅在抢占导致任务结束时才起作用(终止服务选项)。 我正在尝试建模的所描述队列的流程图显示在图像上,其中一些红线试图直观地解释(但错误)我正在尝试做什么:
【问题讨论】:
-
我刚刚使用 agent.moveTo(...) 函数通过“任务暂停”和“任务恢复”字段解决了第 2 点。
标签: anylogic