当前位置: 首页 > 知识库问答 >
问题:

为了测试目的,如何消除Repast Simphony中的随机性?

姬心思
2023-03-14

我想从我的就餐模型中删除所有随机化,这样我就可以放心地进行重构,确保功能不变。然而,我无法通过使用RandomHelper设置种子来移除随机化。在myBuilder的顶部设置种子(1)。build(),并确保初始化时在GUI中将我的“默认随机种子”参数Seed设置为1

所以,我试图从样本JZombies模型中移除随机化,但也遇到了同样的问题。再次设置RandomHelper。在JZombiesBuilder的顶部设置seed(1)。build(),并确保默认的随机种子设置为1。有时输出是相同的,有时是不同的。

在这两种情况下,我都使用文本接收器来记录聚合代理计数和聚合代理属性的恒定数量的滴答声作为我的数据。我发现使用两个Windows的FC

我需要做什么改变来确保确定性行为?

编辑:

我在JZombies演示模型中通过加入RandomHelper获得了确定性行为。固定种子(1) 位于每个类的构造函数顶部。在我的实际模型中做同样的事情会使第一步保持一致。与第二个滴答声仍有差异。我觉得现在的问题是随机安排?


共有1个答案

黄仲渊
2023-03-14

您不必设置两次随机种子,因此我将从删除RandomHelper开始。设置种子(1)调用构建器(以及其他地方)。您提到的GUI随机种子是通过JZombies_演示设置的。rs/参数。xml文件。

关于你的实际问题。如果你在代码中使用的是你所有的随机元素的随机Helper调用,你应该会看到可重现的结果。如果没有,这可能表明有一些下落不明的随机性,例如,使用非随机Helper调用或类似HashMap的迭代。例如,当你在DefaultContext上使用for循环迭代时,迭代发生在HashSet上,但是当使用Context.getObject()方法时,内部迭代是在LinkedHashMap上,因此确保了可重复性。

 类似资料:
  • 问题内容: 我在Python-Django网站上工作。我使用GIT作为我的VCS。对于持续集成,我使用Jenkins CI。我已经使用Python设置了两个虚拟环境,一个用于开发,另一个用于预生产。 我的问题:我为网站编写了许多单元测试,回归测试和冒烟测试。我的开发和预生产虚拟环境都连接到Jenkins CI。 最近,每当将代码更改推送到Jenkins CI中的两种环境时,测试都会随机失败。有时,

  • 本文向大家介绍如何在测试中消除不确定性?相关面试题,主要包含被问及如何在测试中消除不确定性?时的应答技巧和注意事项,需要的朋友参考一下 不确定性测试(NDT)基本上是不可靠的测试。因此,它们有时可能会通过,显然有时也可能会失败。当它们失败时,会重新运行以通过。 从测试中排除不确定性的一些方法如下: 隔离 异步 远程服务 分离 时间 资源泄漏

  • 问题内容: 该命令仅覆盖一个目录中的文件。 我想要整个项目,这意味着测试应覆盖dir中的所有文件以及该dir下的所有千岁树dir 。 这样做的命令是什么? 问题答案: 这应该在当前目录及其所有子目录中运行所有测试: 这应该针对给定的特定目录运行所有测试: 这应该以前缀为的导入路径运行所有测试: 这应该运行所有带有前缀的测试导入路径: 这应该在$ GOPATH中运行所有测试:

  • 用例:测试一个系统,它将消息发送到一个真正的JMS队列,这个队列(在测试设置中)不会被任何其他程序读出。(我不想模仿JMS队列,以使测试环境尽可能接近生产环境。出于同样的原因,在客户端为消息设置“生存时间”也不是一个有效的解决方案。)

  • 问题内容: 我有一个很大的数据集,想将其分为训练(50%)和测试集(50%)。 假设我有100个示例存储了输入文件,每一行包含一个示例。我需要选择50条线作为训练集和50条线测试集。 我的想法是首先生成一个长度为100(值范围从1到100)的随机列表,然后将前50个元素用作50个训练示例的行号。与测试集相同。 这可以在Matlab中轻松实现 但是如何在Python中完成此功能?我是Python的新

  • 我对Java还是有点陌生,有一个实验室需要模拟一个彩票游戏,生成一个介于1到10之间的数字。它首先询问用户想要购买多少张彩票,然后询问他们是否希望计算机为他们生成猜测,如果是,则会生成猜测并显示中奖号码。如果用户说不,那么用户将自己输入猜测,并显示中奖号码。 我在弄清楚当有人输入是或否时如何执行代码时遇到了问题。我应该做一个do while循环吗? 这是我现在的代码。 以下是算法:1。获取购票数量