使用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

我有两个程序Levy Walk和相关的随机行走移动策略,每个程序都有自己的按钮用于调试,并且在netlogo界面上有自己的参数设置,但我还将上述两个过程嵌入了一个单Go过程中,用于以下代码实现中的批模拟处理:

    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操作之间的基本代码分离。如果你想要更多类型的散步,它也会推广得更好。