我如何处理 Anylogic 中输出的可变性?

问题描述

我一直在研究 Anylogic 中电池交换的仿真模型。到目前为止,我已经开发了仿真模型、优化实验和参数变化实验。

模型中没有错误,但输出值不令人满意。微小的变化,例如改变决策变量的步长,会导致每次实验后获得的最佳值发生剧烈变化。尽管目标没有太大变化,但我担心每次运行都会发生变化的其他变量。即使进行多次优化运行,也很难得出结论。

作为参考,我在这里发布了参数变化实验输出。我使用优化值运行了实验,但我得到了可行的结果(百分位数 > 95%) 与预期的输入值相差甚远。虽然总体结果是正确的(随着充电时间的增加百分位数减少),但很难理解变化。

有人可以帮忙吗?enter image description here

解决方法

在构建模型时,这是查看高水平整体输出时会遇到的常见问题。您可能存在模型错误,但同样可能(如果不是更有可能)您的系统存在一些在简单 Excel 电子表格或心智模型中不清楚的动态。 DES 可能会告诉我们一些关于系统行为的真正有趣的事情,但如果没有额外的输出,就无法理解那是什么。

一些建议:

  1. 将此作为一个简单的单一场景运行,您可以在其中手动更新输入。当您使用低范围的输入值然后使用高范围的输入值运行此程序时,您在动画或其他输出中看到了什么与您的预期不同或可以解释整体输出趋势?尝试运行多个中间点。
  2. 添加额外的输出指标。如果您查看队列大小、资源利用率、周转时间等;您是否在该级别看到与预期不同的任何内容?
  3. 添加“复制”日志。当您为多个场景运行一组输入时,是否有任何单个复制作为异常值脱颖而出?如果是这样,请使用该组输入和随机种子重新运行该场景。

了解底层系统行为是不可替代的,如果不了解这些动态,则查看与优化或参数变化实验的整体相关性通常会导致公司做出错误的政策决策。