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

AnyLogic实验结果导出及多轮运行结果保存合并咨询

第一步:先找到默认的实验数据存储路径

如果你用的是AnyLogic自带的参数变化/蒙特卡洛实验类,运行后的数据默认存储在:

  • Windows系统:C:\Users\<你的用户名>\.anylogic\<AnyLogic版本号>\workspace\.metadata\.plugins\com.anylogic.experiment\experiments\<你的实验名称>
  • macOS系统:~/.anylogic/<AnyLogic版本号>/workspace/.metadata/.plugins/com.anylogic.experiment/experiments/<你的实验名称>
    默认存储的是二进制格式,直接读取比较麻烦,更推荐用自定义导出的方式控制数据格式,适配后续多轮结果比对需求。
第二步:单轮运行结果自动保存配置

你不需要调整参数即可获得差异化运行结果,直接使用*蒙特卡洛实验(Monte Carlo Experiment)*是最高效的方案,按以下步骤配置即可:

  • 首先在你模型的顶层代理(通常命名为Main)里定义好需要导出的所有输出指标,比如平均修复时长、系统可用率、总停机时间等,用变量/参数存储对应计算结果。
  • 新建蒙特卡洛实验,设置迭代次数为你需要的多轮运行次数,每轮会自动调用你设置的正态分布随机数生成不同运行结果。
  • 在实验设置的「Java 操作」板块的迭代结束时代码框中,添加追加写入CSV的代码,直接把每轮结果写入同一个文件,示例代码如下:
// 首轮运行时先写入表头,表头字段替换为你自己的指标名称
if( getIteration() == 1 ){
    writeFile("运行轮次,平均修复时长,系统可用率,总停机时间\n", "multi_run_result.csv", false);
}
// 写入当前轮次的结果,变量替换为你在Main中定义的输出变量
String currentLine = getIteration() + "," + main.avgRepairTime + "," + main.systemAvailability + "," + main.totalDowntime + "\n";
writeFile(currentLine, "multi_run_result.csv", true);

writeFile是AnyLogic自带的文件操作函数,第三个参数设为true即为追加写入模式,不会覆盖之前轮次的结果。

第三步:多轮结果整合验证
  • 所有迭代运行完成后,生成的multi_run_result.csv文件默认保存在你的模型文件所在的根目录,所有轮次的结果会按行顺序存储,直接用Excel、Python Pandas、R等工具都可以读取做差异比对分析。
  • 如果你需要导出更细粒度的逐时间步数据,可以在Main代理的「每时间步」或者对应事件触发逻辑中增加写入逻辑,每条记录前加上当前轮次编号做区分即可。

如果你是用自定义实验或者手动单轮运行的方式,只需要给每轮设置一个自增的轮次编号,同样用上述追加写入的逻辑,就可以把所有运行结果都汇总到同一个数据文件中,不会出现数据覆盖问题。

内容的提问来源于stack exchange,提问作者Simon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:09:03