在为特定生物体编写相关随机游走代码(根据包裹的柯西分布)时,我在某种程度上处于概念和实践的僵局。在景观中,有机体的运动将根据其位置(栖息地内、栖息地外和边缘边界内)来确定。相关随机游走代码如下,其中 rho 和步长将根据生物体是在栖息地还是栖息地外来确定。
set heading ((heading * pi / 180 + 2 * atan (( (1 - rho) / (1 + rho)
) * tan(pi * ( random-float 1 - 0.5 ))) 1)) * 180 / pi
set step-size random-gamma alpha lambda
set xc xc + (step-size * dx)
set yc yc + (step-size * dy)
棘手的部分,也是我被卡住的地方,在边缘边界。在这里,有机体的运动受到有机体到最近栖息地斑块的方向的影响。该方向乘以一个参数以产生修改后的相关随机游走代码。为了编写这段代码,有必要知道每只海龟前往景观中最近的栖息地。一旦知道了,我相信我可以修改相关随机游走代码如下:
set heading [(EdgeParameter * TurtleDirectionToClosestHabitat) + [(1 -
EdgeParameter)*[((heading * pi / 180 + 2 * atan (( (1 - rho) / (1 +
rho) ) * tan(pi * ( random-float 1 - 0.5 ))) 1)) * 180 / pi]]]
在浏览了 NetLogo 字典、浏览了几个示例模型、浏览了 Internet 之后,我还没有找到一种优雅的方法来计算 TurtleDirectionToClosestHabitat。“朝向”原语似乎是一张票,尽管我无法推断出一种方法来指定原语以仅将景观边缘边界中的海龟的航向返回到最靠近它们的栖息地斑块。这就是我的概念和实践僵局所在。
欢迎提出建议、建议、批评和潜在的代码片段。谢谢你们。