微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

  1. 转到 Agent 面板,然后拖放名为 Agent 的第一个元素

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

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

  4. 点击资源池并指定突出显示的属性如下: enter image description here

  5. 创建一个函数(通过从 Agent Palette 中拖放它)

  6. 设计如下所示的功能。该函数的作用是检查资源池的任何单元是否位于 node1 中。如果至少有 1 个位于 node1 中,则返回 true,否则返回 false enter image description here

  7. 最后去服务,写如下。这意味着每次代理进入服务时,它都会检查该功能。如果返回true,则占用一个resourcePool 单元,否则占用一个resourcePool1 单元。 enter image description here

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。