如果另一个资源位于特定节点中,则占用资源

Seize resource if another resource is located in a specific node

我是 AnyLogic 的新手。如果另一个资源单元位于特定的注释中,我如何使用占用块中的动态资源池字段来占用特定的资源单元?

示例:
如果 ResourcePool1 中的单元位于 node1 内部,则从 ResourcePool2 中获取资源单元。否则不要抓住。这可能吗?

这个问题的答案不是很简单。我将逐步描述它。不幸的是,AnyLogic 不允许您单独访问单独的资源单元(有一些功能,例如访问被占用的特定单元,但这不是您所需要的)。请按照以下步骤操作:

  1. 转到“代理”面板,然后拖放第一个名为“代理”的元素

  2. 选择“代理数量”,然后选择“我要创建新的代理类型”。

  3. 根据需要命名并填写如下所示的属性,然后单击完成。

  4. 单击资源池并指定突出显示的属性,如下所示:

  5. 创建函数(通过从代理面板拖放)

  6. 按如下所示设计函数。这个函数的作用是检查资源池的任何单元是否位于 node1 中。如果至少有 1 个位于 node1,则 returns 为真,否则 returns 为假

  7. 最后去服务里面写下下面的。这意味着每次代理进入服务时,它都会检查功能。如果returns为true,则占用一个resourcePool单元,否则占用一个单元resourcePool1。

当然,这些步骤是相当通用的,您需要进行调整以匹配资源池、节点等的数量。但我能回答的已经很详细了。