首页 > 解决方案 > 如何获得蒙特卡洛实验中每次模拟运行的种子值?

问题描述

我正在使用“随机种子”选项进行多次迭代的蒙特卡洛实验,以进行独特的模拟运行。似乎在其中一些运行中发生了奇怪的事情,这由输出数据表明。

我想收集每个蒙特卡洛运行的种子值,以便使用“固定种子”选项手动重现实验后的奇怪运行。由于我没有找到“getSeedValue”功能 - 我该怎么做?

我已经尝试了以下建议的解决方案: 参数变化:已修复,但运行的种子不同,但出现空指针异常。

种子价值期权

从链接复制解决方案的错误

标签: anylogicseed

解决方案


我会说,如果不能 100% 确定你不能获得随机种子,你需要使用你可以控制的种子,使用你自己的随机性......通常你可以在自定义随机生成器中使用类似的东西

new Random(getCurrentIteration()*100000+getCurrentReplication())

随机的

然后,如果您遇到错误,您可以知道该错误发生在哪个迭代和哪个复制中,并且您可以在模拟实验中使用相同的种子。

因此,如果它发生在迭代 143 和复制 5 中,那么您将在主模拟实验中将以下内容放入随机生成器中>

new Random(143*100000+5)

推荐阅读