Anylogic - 由条件触发的代理位置

时间:2018-05-28 09:28:24

标签: location conditional-statements simulation agent anylogic

我的一个Anylogic模拟中有关于代理位置的问题。我想设置一个条件来定义代理将在模拟的可视化中采用的路径。

在我写的主代理的延迟块中

if(agent.previousStation==1){
    path01;
    }
else {
    path21;
    }

进入座席位置字段。

构建模型时,anylogic会向我显示以下错误:

  

描述:语法错误,插入“VariableDeclarators”完成   LocalVariableDeclaration。地点:FVMMerkmale / shopfloor / wegzeit1 -   延迟

  

描述:令牌上的语法错误,错位的构造。   地点:FVMMerkmale / shopfloor - 代理类型

在路径前面写“return”也无济于事,并给出了不同的错误:

  

描述:令牌上的语法错误,错位的构造。   地点:FVMMerkmale / shopfloor - 代理类型

     

描述:path21无法解析为变量。地点:   FVMMerkmale / shopfloor / wegzeit1 - 延迟

     

描述:Void方法不能返回值。地点:   FVMMerkmale / shopfloor / wegzeit1 - 延迟

     

描述:代理无法解析为变量。地点:   FVMMerkmale / shopfloor / wegzeit1 - 延迟

路径元素位于主代理中。使用值编辑器选择正确的路径将起作用。

根据anylogic帮助,可以将代理位置绑定到条件:

  

否则,如果要在此处为​​代理设置不同的节点,则可以   编写一个Java表达式,它将依赖于返回不同的节点   一些条件。   https://help.anylogic.com/index.jsp?topic=%2Fcom.anylogic.help%2Fhtml%2Fagentbased%2FContinuous_Layouts.html

如何编写将路径或节点定义为代理位置的条件?

1 个答案:

答案 0 :(得分:0)

这是正确的代码,这是if语句的压缩版本使用?和:运算符(不使用semicollon)

agent.previousStation==1 ? path01 : path21

有关这些运营商的更多信息: http://www.cafeaulait.org/course/week2/43.html