You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决AnyLogic中Select Output块的‘result cannot be resolved to a variable’错误

解决AnyLogic Select Output块的变量错误并实现排序与指标统计

一、修复‘result cannot be resolved to a variable’错误

错误根源是代码中直接使用了未声明的result变量。Select Output块的代码要求返回布尔值(true/false),用来判断当前实体走哪个输出端口。你需要替换为具体的排序判断逻辑,比如按拖期时间或流转时间的比较:

假设你的产品实体有dueDate(交货期)和entryTime(进入系统时间)属性,要按拖期时间(time() - dueDate)从大到小排序,代码可以写:

// 比较当前实体与队列首项的拖期时间,当前实体拖期更久则走第一个出口
time() - dueDate > ((Product)main.myQueue.get(0)).dueDate - time()

注:Product是你的实体类名,main.myQueue是存放待排序实体的队列对象,需根据模型实际名称修改

如果是按流转时间(time() - entryTime)升序排序,代码:

time() - entryTime < ((Product)main.myQueue.get(0)).entryTime - time()

二、实现排序与指标统计需求

要输出产品排序、总流转时间等指标,需结合全局变量和实体属性完成统计:

1. 定义全局统计变量

在模型的Main代理中添加以下变量:

  • totalFlowTime(double,初始0):总流转时间
  • totalTardiness(double,初始0):总拖期时间
  • tardyJobCount(int,初始0):拖期作业数量
  • productSequence(List,初始new ArrayList<>()):产品排序记录

2. 在实体流转节点添加统计逻辑

  • 记录产品排序:当实体进入排序后的流程时(比如Select Output的出口块),添加代码:
    main.productSequence.add(this);
    
  • 统计流转时间:当实体离开系统时(比如Exit块),添加代码:
    double flowTime = time() - entryTime;
    main.totalFlowTime += flowTime;
    
  • 统计拖期相关指标:同样在实体离开时计算:
    double tardiness = Math.max(0, time() - dueDate);
    main.totalTardiness += tardiness;
    if(tardiness > 0){
        main.tardyJobCount++;
    }
    

3. 计算与输出平均拖期时间

平均拖期时间可通过全局变量实时计算,比如在仪表盘或文本框中使用:

main.tardyJobCount > 0 ? main.totalTardiness / main.tardyJobCount : 0

4. 批量输出所有指标

可在模拟结束时通过控制台打印,或用Text组件展示:

// 控制台打印示例
traceln("产品排序:" + main.productSequence.stream().map(p -> p.name).collect(Collectors.toList()));
traceln("总流转时间:" + main.totalFlowTime);
traceln("总拖期时间:" + main.totalTardiness);
traceln("平均拖期时间:" + (main.tardyJobCount > 0 ? main.totalTardiness / main.tardyJobCount : 0));
traceln("拖期作业数量:" + main.tardyJobCount);

三、注意事项

  • 确保实体类(如Product)已定义entryTime、dueDate、name等属性,且在实体生成时正确赋值(比如entryTime = time())
  • 调用队列get(0)前可先判断队列非空,避免空指针异常:!main.myQueue.isEmpty() && 排序逻辑

内容的提问来源于stack exchange,提问作者Shafaa P Al Zahra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:32:40