【发布时间】:2021-05-19 11:36:03
【问题描述】:
我是 AnyLogic 新手,我想知道是否可以根据占用代理的位置从资源池中占用资源。因此,如果代理位于节点 1 中,它将占用资源 1,否则将占用资源 2?如果是,我可以使用什么代码?
我曾尝试使用“自定义资源选择”和“资源选择条件”,但没有成功。
【问题讨论】:
标签: java simulation anylogic
我是 AnyLogic 新手,我想知道是否可以根据占用代理的位置从资源池中占用资源。因此,如果代理位于节点 1 中,它将占用资源 1,否则将占用资源 2?如果是,我可以使用什么代码?
我曾尝试使用“自定义资源选择”和“资源选择条件”,但没有成功。
【问题讨论】:
标签: java simulation anylogic
其实有一个很简单的方法。资源池字段是动态的。单击服务属性中的等号会将等号变为圆形箭头,这意味着该字段是动态的,因此可以根据代理属性动态定义。
现在,您可以在此字段中输入您的代码。这里的代码不是你的常规代码,所以你不应该使用“if”,而是使用以下语法:
<statement> ? <value if true> : <value if false>
最后,要引用代理,您只需要使用代理一词即可。下面是一个包含三个资源池的示例:
node1.contains(agent) ? ResourcePool1 : node2.contains(agent) ? ResourcePool2 : ResourcePool3
【讨论】: