【发布时间】:2015-05-20 08:35:29
【问题描述】:
我有一个包含三个无向链接品种的网络
undirected-link-breed [ parentals parental ]
undirected-link-breed [ diffusions diffusion ]
undirected-link-breed [ simdiffusions simdiffusion ]
我已经修复了种子并运行我的 go 过程调用不同的过程,这些过程总是重现输出,正如给定种子所期望的那样。我的 go 过程只是选择了一个海龟,然后这个海龟执行一个可用的过程。这些过程都没有调用任何与链接相关的东西。一切正常,我可以在给定种子的情况下重现运行,所以我非常有信心代码可以正常工作。
然后我有一个最后一个程序,当被选中时,它会破坏随机序列并且无法在不同的运行中重现输出。这次在 GO 中选择的调用海龟调用如下过程:
to network-mechanisms
;; THIS LINE BREAKS THE RNG
let innovator-nei parental-neighbors with [typeof = "potter"]
;; THIS LINE DOES NOT BREAK THE RNG
;let innovator-nei other turtles with [typeof = "potter"]
ask innovator-nei [
let my-nei parental-neighbors with [typeof = "potter"]
if any? my-nei [
set attribute sum [centrality] of my-nei with [adopted-now?] / count my-nei
set attribute 1 / (1 + exp (4 - 8 * attribute))
]
]
ask innovator-nei [
if random-float 1 < attribute [
adopt
create-simdiffusion-with myself [set color red]
]
]
end
如果调用乌龟寻找它的父母邻居,那么奇怪的事情就会发生,并且每次运行时RNG序列都会改变,无论种子如何;而如果调用海龟调用所有其他海龟,则 RNG 序列在运行中是相同的......这是使用链接品种时的已知问题吗?
【问题讨论】:
标签: netlogo