我有一个网络,并在netlogo中进行模拟。在我的网络中,我有n个节点,其中包含来自[0.1,2,...,19]的随机数据。
在开始时,一个随机节点变为接收器,并且3个随机节点开始将其数据发送到sink.i声明一个名为gamma的变量。在节点将其数据发送到接收器之后,接收器决定是将该数据存储在其存储器空间中还是不基于gamma.after 0.5s这个过程重复。每次有些节点下沉并想要一些数据。这就是我在网络中分发数据的方式。
毕竟我必须将伽玛从0改为1以确定最佳值。并且每次运行我的代码来绘制something的数量。我的意思是:首先用gamma = 1运行我的代码然后再用gamma = 0.98运行它...
if Entropy <= gamma
[
do something
]
如果我每次更改伽玛时都按下设置按钮,我的网络设置会发生变化,我无法将同一网络与另一个伽玛进行比较。
我如何比较我的网络与多值的gammas?
我的意思是可以保存我的所有进程并再次以相同的方式运行它吗?
答案 0 :(得分:1)
如果您首先设计一些测试,当您每次按下设置时放置随机数据时,前一个图形与新图形不同,因此您可能需要在每次需要时加载相同的数据测试。
一个想法:
使用节点数据和gamma值创建文本文件。对于4个节点,您可以使用以下内容:
<强> dat1.txt 强>
1 3 2 9
1
<强> dat2.txt 强>
1 3 2 9
0.98
<强> dat3.txt 强>
1 3 2 9
0.96
等等......
您可以使用过程和特定种子生成此文件(请参阅random-numbers),这意味着如果您要生成30个测试(在上面的示例中有30组4个节点),您可以使用需要30种不同的种子。
答案 1 :(得分:1)
您可以使用random-seed
始终创建相同的网络,然后使用新种子(使用random-seed new-seed
创建和设置)生成随机数并询问订单等以进行处理。使用BehaviorSpace工具可以使用不同的gamma值进行多次运行。
使用此方法可以保证您使用相同的网络。但是,仅仅因为一个特定的伽玛值对于一个网络来说是最好的,并不能使其成为其他网络的最佳选择。因此,您可以创建具有不同种子的多个网络,并让NetLogo选择每个网络(如@David建议的那样),或者您可以简单地允许NetLogo创建不同的网络并运行许多模拟,以便您有一个更强大的答案,适用于&# 39;平均&#39;网络