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

Optimization 我如何处理Anylogic中输出的可变性?,optimization,simulation,anylogic,random-seed,Optimization,Simulation,Anylogic,Random Seed,我一直在为Anylogic中的电池更换开发一个仿真模型。到目前为止,我已经开发了仿真模型、优化实验和参数变化实验 模型中没有错误,但输出值不符合要求。微小的变化,如改变决策变量的步长,会导致每次实验后获得的最佳值发生剧烈的变化。虽然目标变化不大,但我关心的是随着每次运行而变化的其他变量。即使进行多次优化运行,也很难得出结论 作为参考,我在这里发布了参数变化实验的输出。我用一个优化的值进行了实验,但我得到了可行的结果(百分位>95%)与预期的输入值相差甚远。虽然总体结果是正确的(随着充电时间的增加

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

模型中没有错误,但输出值不符合要求。微小的变化,如改变决策变量的步长,会导致每次实验后获得的最佳值发生剧烈的变化。虽然目标变化不大,但我关心的是随着每次运行而变化的其他变量。即使进行多次优化运行,也很难得出结论

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


有人能帮忙吗?

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

一些建议:

  • 将此作为一个简单的单一场景运行,您可以手动更新输入。当您使用低输入值范围和高输入值范围运行此操作时,您在动画或其他输出上看到了与预期不同的内容,或者可以解释总体输出趋势?尝试运行几个中间点
  • 添加额外的输出指标。如果你看看队列大小、资源利用率、周转时间等;你在这个层面上看到了与预期不同的东西吗
  • 添加“复制”日志。当您为多个场景运行一组输入时,是否有任何单个复制突出显示为异常值?如果是这样,请使用该组输入和该随机种子重新运行场景

  • 理解底层系统行为是无可替代的,如果不理解这些动态,研究优化或参数变化实验的总体相关性往往会导致公司做出错误的政策决策。

    无法解决“我无法获得我想要的输出”问题电池交换听起来好像输出数据是一个时间序列,所以它们不是独立的观察结果。这从两个方面影响分析。1) 可能存在一个“预热”期,称为初始化偏差,在此期间,模型的启动条件会影响观察到的行为。2) 输出的序列相关性会极大地影响方差,因此使用s^2估计方差可能会有很大的偏差(如数量级)。有关这些问题的概述,请参见的第6节。您可能想看一看这篇专门介绍这些问题的教程论文。最后,但并非最不重要的一点是,如果您想了解结果与多个输入之间的关系,您应该申请最大限度地获得与所花费工作相关的信息。感谢您的回复。代理的到达模式是以费率表的形式。从几次跑步后我观察到:1。每次运行(在某种程度上)的费率计划都会发生变化2。我无法控制特工们到达系统的确切时间。(我可以控制每小时的费率,但不能控制准确的到达时间)。到目前为止,我认为这可能是高可变性的原因。这里有一个简短的例子:两辆车在两小时内到达车站(每小时1辆)。最初只有一个电池可用,充电时间为60分钟。在第一个小时内到达的汽车将使用该电池,并让另一辆进行充电。现在,当第二辆车到达时,很难说它是否需要等待。这取决于汽车到达的时间。如果到达时间的差异超过60分钟,则无需等待,否则第二辆车将不得不等待电池充电。考虑到随机性,听起来是一个非常现实的模型。