如何解决Anylogic,根据一定条件从池中抢占资源
问题之前已被提出和回答,请参阅Anylogic - dynamic specification of resources to seize。但是,stackoverflow 上的多个巨魔要求我再次提出同样的问题,无论如何.. - 因为在那里问它被视为“答案”而不是“问题”。
Anylogic 8.7.2.
我创建了一个资源池 myworkers
。
代理类型workers
。
打开 workers
代理并添加变量 offloadBay
(或参数,无所谓),INT,default value 0
。
在 main 中,我使用 seize
块从该池中获取 4 个资源,但它们需要满足条件 offloadBay == 0
。
在 seize 块中,我选择 Customise resource choice == true ; Recource choice condition = (unit.offloadBay == 0)
。
在运行项目时,我收到错误 - “offloadBay 无法解析或不是字段”。
似乎对关键字 unit
的引用实际上并未引用资源单元 - 在引用 unit's
时,没有任何 unit.
参数、变量、函数等可供调用
请建议我做错了什么?或者,如何根据资源的特定条件或属性从 ResourcePool 中选择资源? (可根据要求提供演示项目,请告知发送至何处)
解决方法
尝试强制执行资源类型。发生这种情况是因为您处于 seize 块中,并且当您使用“单元”时,您可能指的是不同的资源代理类型。并非所有这些都可能具有“offloadBay”变量。所以,使用:
((Worker)unit).offloadBay == 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。