gpt4 book ai didi

java - 出于测试目的,如何在 Repast Simphony 中删除随机化?

转载 作者:行者123 更新时间:2023-12-04 09:46:04 25 4
gpt4 key购买 nike

我想从我的 Repast 模型中删除所有随机化,以便我可以自信地重构功能不变。但是,我无法通过使用 RandomHelper.setSeed(1) 设置种子来消除随机化。顶部 myBuilder.build() ,并确保我的“默认随机种子”参数种子设置为 1在初始化时的 GUI 中。

因此,我尝试从示例 JZombies 模型中删除随机化并遇到了同样的问题。再次,我设置 RandomHelper.setSeed(1)顶部 JZombiesBuilder.build() ,并确保默认随机种子设置为 1 .有时输出是相同的,有时不是。

在这两种情况下,我都使用文本接收器来记录恒定数量的聚合代理计数和聚合代理属性作为我的数据。我发现使用 Windows 的 FC 的输出文件存在差异& FCIV .

我需要进行哪些更改以确保确定性行为?

编辑:

我还通过放置 RandomHelper.setSeed(1); 在 JZombies 演示模型中获得了确定性行为在每个类的构造函数的顶部。在我的实际模型中做同样的事情使第一步始终相同。从第二个刻度开始仍然存在差异。我认为问题是随机调度,现在?

最佳答案

你不应该两次设置你的随机种子,所以我会从删除 RandomHelper.setSeed(1) 开始。调用你的 builder (和其他地方)。
您提到的 GUI 随机种子是通过 JZombies_Demo.rs/parameters.xml 文件设置的。

关于你的实际问题。如果您对代码中的所有随机元素使用 RandomHelper 调用,您应该会看到可重现的结果。如果不是,这可能表明存在一些无法解释的随机性,例如,使用了非 RandomHelper 调用或诸如遍历 HashMap 之类的东西。例如,当您在 DefaultContext 上使用 for 循环进行迭代时,迭代发生在 HashSet 上,但是当使用 Context.getObjects() 方法时,内部迭代在 LinkedHashMap 上进行,因此可确保可重复性。

关于java - 出于测试目的,如何在 Repast Simphony 中删除随机化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62106908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com