anylogic - 参数变化 : Fixed, 但运行的种子不同

标签 anylogic seed

所以我用许多概率参数运行了一个参数变化实验。我使用随机种子,这会产生各种不同的结果,这基本上就是我想要的。在我的案例中,一个实验包含 200 次运行。

但是,在随机建模中,对相同的运行使用相同的种子是一种很好的做法,即当我运行两个每次运行 200 次的实验时,我希望每个实验的第一次运行使用相同的种子,第二次运行每个实验运行使用相同的种子(但与第一次运行不同),第三次……等等直到 200。这意味着我可以将两个实验相互比较,因为它们使用相同的种子。

Anylogic 我怎样才能做到这一点?当我使用随机种子选项时,每次运行都会得到不同的种子。当我使用固定种子时,我每次都会得到相同的结果,因为从概率参数中选择的值总是相同的。 这可以通过在参数变化实验的“随机性”属性中使用“自定义生成器”来实现吗?或者这可以与复制选项一起使用吗?

非常感谢,如果您需要更多详细信息,请告诉我。

最佳答案

在参数变化实验中 --> 在“模拟运行前”下的 Java 操作中,您可以为每个复制手动设置种子,

例如root.getDefaultRandomGenerator().setSeed(listOfSeeds.get(getCurrentReplication()));

listOfSeeds 是您的 ParametersVariation 中的一个集合,您可以在界面中或在“初始实验设置”中生成它,它存储每次复制的所有种子。

关于anylogic - 参数变化 : Fixed, 但运行的种子不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61736879/

相关文章:

c++ - 重新发明轮子 : Random Number Generator

AnyLogic 模型运行配置文件

java - 将代理群体移至顶层

java - AnyLogic 汇编程序作为网关

random - 不同进程使用不同的随机生成器

java - 使用for循环解锁 "hold"的方法?

ruby-on-rails - 如何使用 Capistrano gem 为生产数据库播种?

java - 如果 1+ 个实例具有相同(最小)值,如何从确定最小值的循环中随机选择一个对象?

java - 什么是随机种子?

c++ - 如何使用 time() 和 key(string) 为 srand 播种