使用Netlogo“Go”程序抑制过渡
我有两个程序Levy Walk和相关的随机行走移动策略,每个程序都有自己的按钮用于调试,并且在netlogo界面上有自己的参数设置,但我还将上述两个过程嵌入了一个单Go过程中,用于以下代码实现中的批模拟处理:使用Netlogo“Go”程序抑制过渡,netlogo,Netlogo,我有两个程序Levy Walk和相关的随机行走移动策略,每个程序都有自己的按钮用于调试,并且在netlogo界面上有自己的参数设置,但我还将上述两个过程嵌入了一个单Go过程中,用于以下代码实现中的批模拟处理: to setup clear-all create-turtles 100 [ setxy random-xcor random-ycor ] reset-ticks end to Correlated-Random-Walk
to setup
clear-all
create-turtles 100 [ setxy random-xcor random-ycor ]
reset-ticks
end
to Correlated-Random-Walk
rt random 360
fd 1
end
to Levy-Walk
rt random 90
fd 2
end
to go
Correlated-Random-Walk
tick
if ticks = 1000 [
setup
stop
Levy-Walk
if ticks = 1000 [
setup
stop
]
]
end
Go程序代码的上述部分应采用相关随机游走程序,并在整个模拟持续时间内执行1000次,然后停止,重置设置世界,并在整个模拟持续时间内执行levy游走程序,也就是100次,然后停止。现在,代码针对相关随机游动执行,但不继续执行levy游动过程。它只是重复相关的随机游走过程。可能是什么问题?您的stop命令将停止go过程。见文件。以下各项是否满足您的需要
to go1000each
repeat 1000 [Correlated-Random-Walk tick]
setup
repeat 1000 [Levy-Walk tick]
end
如果你为此制作了一个按钮,它不应该是一个永久按钮。Alan下面的修复程序将实现你想要的功能,一次行走1000次,另一次行走1000次,但滴答计数器将从0运行到2000。由于您将在“滴答1000”处放弃该位置,然后在另一个场景中重新开始,您是否考虑过只需选择或甚至切换使用哪种行走方法,然后手动或在BehaviorSpace中运行模型两次?这种方法将保持初始化ie设置和模拟ie go操作之间的基本代码分离。如果你想要更多类型的散步,它也会推广得更好。