Anylogic - 如何在模拟实验中实现 CRN (Common Random Numbers) 方法?

Posted

技术标签:

【中文标题】Anylogic - 如何在模拟实验中实现 CRN (Common Random Numbers) 方法?【英文标题】:Anylogic - How to implement CRN (Common Random Numbers) method in the simulation experiment? 【发布时间】:2019-06-27 07:43:51 【问题描述】:

想在Anylogic仿真软件中实现CRN方法,但是不知道怎么设置。

我的理解是:

1) 我必须创建自己的自定义随机数生成器。

2) 此外,每次模拟复制后,必须从编码中输入指定的种子号(每次模拟运行后种子号都会改变)。

例如:我的模型每次迭代有 5 次复制

运行 #1 种子值 = 10

运行 #2 种子值 = 20

运行 #3 种子值 = 30

运行 #4 种子值 = 40

运行 #5 种子值 = 50

我会将此设置用于两个仿真模型。 如何进行设置?

【问题讨论】:

【参考方案1】:

我不完全确定这是否会完全按预期工作...但在实验属性的随机性部分,您可以选择自定义生成器并使用以下内容:

new Random(10+10*getCurrentReplication())

【讨论】:

感谢您的建议。我将尝试在我的模型中实现代码。 输入您建议给我的代码时出现错误。错误是:未为 Simulation 类型定义 getCurrentReplication() 方法。很抱歉再次打扰您....您有什么建议可以解决这个问题吗? 该代码仅对允许复制的实验有用...如果您使用模拟类型,则不能使用复制...。复制实验例如参数变化或蒙特卡罗... 啊,是的,应用参数变化实验的代码没有错误。我很抱歉我的误解。非常感谢!

以上是关于Anylogic - 如何在模拟实验中实现 CRN (Common Random Numbers) 方法?的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic“如何”问题

如何设置 Anylogic 优化实验?

anylogic:如何查看模拟日期和时间

如何从 Main 获取文本数据集并使用 anylogic 在参数变化实验中运行?

在 Anylogic 中灵活更改模拟持续时间

Anylogic/如何关闭动画?