NetLogo要求海龟在随机大小的活动范围内移动

NetLogo要求海龟在随机大小的活动范围内移动,netlogo,Netlogo,在NetLogo中,我设置了一个模型,这样雄性捕食者就可以创建一个在一定范围内变化的活动范围。我之前曾向stackoverflow寻求帮助,了解如何做到这一点 这很有效。当捕食者在周围移动时,我要求捕食者检查它是否在其特定的活动范围之外(由于随机过程,这些大小不同),如果是,则面向活动范围的中心my base。我可以让捕食者检查它是否在一个具有特定半径的圆之外,但是,我很难让捕食者检测它在设置时创建的特定家乡范围。我想我可以让“本垒打”成为捕食者的特征,然后让他们看看他们自己的本垒打,但我还是

在NetLogo中,我设置了一个模型,这样雄性捕食者就可以创建一个在一定范围内变化的活动范围。我之前曾向stackoverflow寻求帮助,了解如何做到这一点

这很有效。当捕食者在周围移动时,我要求捕食者检查它是否在其特定的活动范围之外(由于随机过程,这些大小不同),如果是,则面向活动范围的中心
my base
。我可以让捕食者检查它是否在一个具有特定半径的圆之外,但是,我很难让捕食者检测它在设置时创建的特定家乡范围。我想我可以让“本垒打”成为捕食者的特征,然后让他们看看他们自己的本垒打,但我还是遇到了麻烦。有什么建议吗?下面是我的设置和“随机移动”过程的代码片段

to setup
ca
clear-all-plots
clear-output
clear-turtles
create-males 20  
    [
      move-to one-of patches with [is-park?] ;inside a National Park
      if any? males in-radius (((sqrt ((54.4 * 1000000)/ pi))/ 100) * 0.4) ;avoid other males
      [move-to one-of patches with [is-park?] ] 
      set size 4
      set shape "harimau"
      set my-base patch-here
      set homerange patches in-radius (((sqrt ((random-normal-in-bounds 54.4 35.8 19 151 * 1000000)/ pi))/ 100) * 0.4)
      set numberofAdultMale ( numberofAdultMale + 1)
      ]
reset-ticks
end

to-report random-normal-in-bounds [mid dev mmin mmax]
  let result random-normal mid dev
  if result < mmin or result > mmax
     [report random-normal-in-bounds mid dev mmin mmax] 
  report result
end

to random-movement
if-else my-base != no-patches[if distance my-base > (((sqrt ((54.4 * 1000000)/ pi))/ 100) * 0.4) ;this checks within a certain radius but not within the specific home range of the male 
                                                                                  [ face my-base]
                                                                                  ]
                                                                                  [ ] 
rt random 180
lt random 180
fd time-step * random-gamma((meansRandomMove * meansRandomMove)/((deltaRandomMove)^ 2)) (1 / (((deltaRandomMove)^ 2) / meansRandomMove))
end
设置
ca
清除所有情节
净输出
透明海龟
创造男性20
[
搬到一个有[是公园吗?]的地方;在国家公园内
如果有?半径范围内的雄性((sqrt((54.4*1000000)/pi))/100)*0.4);避免其他雄性
[使用[is park?]移动到其中一个修补程序]
套装尺寸4
设置形状“harimau”
在这里设置我的基本补丁
以半径设置homerange面片(((sqrt((边界内的随机法线54.4 35.8 19 151*1000000)/pi))/100)*0.4)
设置numberofAdultMale(numberofAdultMale+1)
]
重置滴答声
结束
报告边界内的随机法线[mid dev mmin mmax]
让结果随机正态分布
如果结果mmax
[报告中期开发mmin mmax中的随机正常边界]
报告结果
结束
随机运动
否则我的基地!=无贴片[如果距离我的基准>((sqrt((54.4*1000000)/pi))/100)*0.4);这将在一定半径内检查,但不在雄性的特定家庭范围内
[面对我的基地]
]
[ ] 
rt随机180
lt随机180
fd时间步长*随机伽马((平均随机移动*平均随机移动)/((deltaRandomMove)^2))(1/((deltaRandomMove)^2)/平均随机移动))
结束

在上面的代码中,我让捕食者根据预定义的家庭范围大小来分配自己
((sqrt((54.4*1000000)/pi))/100)*0.4)
。一个相关的问题是,如何让捕食者根据半径范围内的实际居住地来分配自己((sqrt((随机正态边界54.4 35.8 19 151*1000000)/pi))/100)*0.4)根据随机分布创建?

我想我已经找到了答案。首先,我将homerange设置为男性的属性。然后,在设置时,
以半径设置homerange修补程序(((sqrt((随机法向边界HomerangeSizeMales 35.8 19 151*1000000)/pi))/100)*0.4)
。然后,在移动过程中,使用
sqrt(count homerange/pi)