【问题标题】:Anylogic - agent location triggered by conditionAnylogic - 由条件触发的代理位置
【发布时间】: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

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

【问题讨论】:

    标签: location conditional-statements simulation agent anylogic


    【解决方案1】:

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

    agent.previousStation==1 ? path01 : path21
    

    有关这些运算符的更多信息,请点击此处: http://www.cafeaulait.org/course/week2/43.html

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2016-12-19
      • 2021-04-10
      • 1970-01-01
      • 2020-06-07
      • 2021-05-19
      • 2012-01-22
      • 2021-07-10
      • 2020-02-05
      相关资源
      最近更新 更多