繁体   English   中英

在 AnyLogic 中为同一资源的多个 Seize Blocks 分配优先级

[英]Assign priorities for multiple Seize Blocks for the same resource in AnyLogic

我有一个不太典型的场景,我不确定如何进行:

  • 有两个车站位于两个不同的位置。
  • 两个站都需要相同的资源。
  • 一旦释放,资源就会从一个站移动到另一个站。 所以它不断地从1号站到2号站再到1号站,以此类推,直到再次被抓住。 这是通过从释放块的资源进程端口添加链接来建模的。 所以除非有条件,否则它不会完全释放。 条件是在同一资源的 seize 块的队列中有代理正在等待。 所以它应该继续移动,直到再次需要它。 棘手的部分是该资源有两个捕获块,每个站一个。 代理可能已准备就绪,并在两个站点的资源占用元素中等待。 我在发布时添加了资源过程的图像。 所以在“selectOuput4”它检查站1的seize元素是否有代理等待,如果是,则资源被释放并且可以被占用。 否则,它移动到站 2 并检查相同但站 2。

在此处输入图片说明

我担心可能会出现两个站点都有代理在各自的占用块中等待的情况。 我如何确保资源将被站点 1 的占用元素占用而不是站点 2 的元素,反之亦然。 在两个 seize 元素正在等待资源的情况下,有没有办法控制资源的去向? 还是总是随机的?

我为这篇长文章道歉,我希望我能正确地表达我的想法。

首先,我认为你的设计有点奇怪,因为你总是抓住资源。

我要做的是首先在资源中有一个状态图来控制资源从一个地方到另一个地方的移动,这样你就可以更好地控制它。 状态图仅在未被占用时用于移动您的资源。 这将允许您的资源从站 1 移动到站 2 但有东西进入站 1 队列并且资源可以立即做出反应并在到达站 2 之前返回站 2(如果您认为这是一个好这样做的想法)

第二个是seize块定义了当agent到达seize块时任务的优先级,你的情况需要动态改变该优先级,据我所知这是无法做到的,所以在seize之前的wait块不幸的是,阻止是一个不错的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM