Anylogic - 由条件触发的代理位置
Posted
技术标签:
【中文标题】Anylogic - 由条件触发的代理位置【英文标题】:Anylogic - agent location triggered by condition 【发布时间】:2018-11-06 20:32:56 【问题描述】:我的一个 Anylogic 模拟中的代理位置存在问题。我想设置一个条件来定义代理将在我的模拟可视化中采用的路径。
在我写的主代理的延迟块中
if(agent.previousStation==1)
path01;
else
path21;
进入代理位置字段。
在构建模型时,anylogic 出现以下错误:
说明:语法错误,插入“VariableDeclarators”完成 本地变量声明。地点:FVMerkmale/shopfloor/wegzeit1 - 延迟
和
描述:标记的语法错误,错误的构造。 位置:FVMerkmale/shopfloor - 代理类型
在路径前面写“return”也无济于事,并给出不同的错误:
描述:标记的语法错误,错误的构造。 位置:FVMerkmale/shopfloor - 代理类型
说明:path21 无法解析为变量。地点: FVMMerkmale/shopfloor/wegzeit1 - 延迟
说明:无效方法不能返回值。地点: FVMMerkmale/shopfloor/wegzeit1 - 延迟
说明:代理无法解析为变量。地点: FVMMerkmale/shopfloor/wegzeit1 - 延迟
路径元素在主代理中。使用值编辑器选择正确的路径将起作用。
根据anylogic的帮助,可以将代理位置绑定到一个条件:
否则,如果你想在这里为代理设置不同的节点,你可以 编写一个 Java 表达式,根据不同的节点返回不同的节点 一些条件。 https://help.anylogic.com/index.jsp?topic=%2Fcom.anylogic.help%2Fhtml%2Fagentbased%2FContinuous_Layouts.html
如何编写将路径或节点定义为代理位置的条件?
【问题讨论】:
【参考方案1】:这是正确的代码,它是 if 语句的压缩版本,使用 ? and : 运算符(不使用分号)
agent.previousStation==1 ? path01 : path21
有关这些运算符的更多信息,请点击此处: http://www.cafeaulait.org/course/week2/43.html
【讨论】:
以上是关于Anylogic - 由条件触发的代理位置的主要内容,如果未能解决你的问题,请参考以下文章
SelectOutPut (AnyLogic) 中代理类型的条件
在 AnyLogic 中使用代理名称作为 selectOutput 的条件