创建后的奇怪的随机种子行为 - <品种> - 带</品种>

时间:2015-01-20 04:55:51

标签: netlogo

我在模型中遇到一些奇怪的随机种子行为。

以下程序:

to testRNG
  clear-all

  random-seed 10

  type random 100
  type ","

  create-nodes 10

  type random 100
  type ","

  ask nodes[ create-node2node-links-with other nodes in-radius (1000)]

  print random 100
end

生成如下所示的输出:

observer> testRNG
78,78,42
observer> testRNG
78,78,42
observer> testRNG
78,78,40
observer> testRNG
78,78,42
observer> testRNG
78,78,71
observer> testRNG
78,78,52
observer> testRNG
78,78,71
observer> testRNG
78,78,40
observer> testRNG
78,78,97
observer> testRNG
78,78,52
observer> testRNG
78,78,97
observer> testRNG
78,78,52
observer> testRNG
78,78,18
observer> testRNG
78,78,19
observer> testRNG
78,78,27
observer> testRNG
78,78,34
observer> testRNG
78,78,58
observer> testRNG
78,78,52
observer> testRNG
78,78,40

显然,当创建了breeded链接时会发生一些事情,但我真的不确定它是什么。为了完整性,请注意node2node-links是无向的,并声明为:

undirected-link-breed [node2node-links node2node-link]

令人费解的是,虽然对随机100的第三次调用显然不可重现,但它看起来也可能不是伪随机的。

我对此进行了进一步研究,并且发生了一些奇怪的事情 - 这是我实际运行时代码中的另一个例子。在这种情况下,链接是在第5次调用随机100之后创建的,后续调用是不可重现的 - 但是我必须认为RNG生成的几率为34,1,1&#34;十九次中的七次会非常小。

START 66 , 62 , 61 , 21 , 62 , 10 , 67 , 2 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 60 END
START 66 , 62 , 61 , 21 , 62 , 29 , 32 , 41 END
START 66 , 62 , 61 , 21 , 62 , 16 , 71 , 78 END
START 66 , 62 , 61 , 21 , 62 , 10 , 67 , 2 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 29 , 32 , 41 END
START 66 , 62 , 61 , 21 , 62 , 81 , 26 , 63 END
START 66 , 62 , 61 , 21 , 62 , 92 , 11 , 93 END
START 66 , 62 , 61 , 21 , 62 , 88 , 93 , 60 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 1 , 1 END
START 66 , 62 , 61 , 21 , 62 , 34 , 93 , 60 END
START 66 , 62 , 61 , 21 , 62 , 88 , 93 , 60 END
START 66 , 62 , 61 , 21 , 62 , 94 , 11 , 38 END 

我创建了一个只有节点和node2node品种/链接品种的空白模型,这个单一的过程并没有发生这种行为 - 相反,对random 100的所有调用都是可重现的。

我很难将我的所有模型代码都包含在内,因为它很长并且无疑会导致信息过载 - 此外,通过调用clear-all,我认为我可以排除对程序其他部分的依赖。

如果有人对这里可能发生的事情有任何想法,或者可以突出我忽略的一些简单的事情,那将非常感激。

1 个答案:

答案 0 :(得分:1)

评论摘要:

这是由于NW扩展中的一个错误,在监视器中运行nw:weak-component-clusters偶尔推进主随机数生成器。监视器和绘图用于使用自己的RNG,因此您在监视器或绘图中运行的任何代码都不应影响其他代码的结果。

https://github.com/NetLogo/NW-Extension/issues/144