Netlogo 如何让海龟避免;土地";在仍然向预定义目标面片移动的情况下进行面片?

Netlogo 如何让海龟避免;土地";在仍然向预定义目标面片移动的情况下进行面片?,netlogo,Netlogo,我正在努力让海龟们避开某些绿色的补丁,同时仍然朝着目标补丁前进 我的netlogo模型模拟了一个国家的海洋捕鱼,渔船(海龟)从港口驶入大海,然后返回。目前,每艘船只根据基础GIS捕鱼努力数据点(斑块变量)在海洋中设置一个目标斑块 目前,在前往目标的途中,一些船只必须驶出半封闭的港口,如果使用现场线路,将穿越陆地(绿色区域)。我不知道如何让船只选择一条既能避开绿色斑块,又能朝着同一目标斑块行进的路径 我在这里找到的大多数答案只适用于相对随机的运动,如果绿色斑块位于圆锥体X内或前方,则航向会发生变化

我正在努力让海龟们避开某些绿色的补丁,同时仍然朝着目标补丁前进

我的netlogo模型模拟了一个国家的海洋捕鱼,渔船(海龟)从港口驶入大海,然后返回。目前,每艘船只根据基础GIS捕鱼努力数据点(斑块变量)在海洋中设置一个目标斑块

目前,在前往目标的途中,一些船只必须驶出半封闭的港口,如果使用现场线路,将穿越陆地(绿色区域)。我不知道如何让船只选择一条既能避开绿色斑块,又能朝着同一目标斑块行进的路径

我在这里找到的大多数答案只适用于相对随机的运动,如果绿色斑块位于圆锥体X内或前方,则航向会发生变化。我正在尝试找出一种路径技术,它不涉及头朝向X,直到你撞到绿色,然后随机向左或向右,但是这个模型需要能够确定在撞到绿色区域(在圆锥体中)后向左或向右的方向是正确的。非常困惑

Patches-own
land

vessels-own
home-port ; patch of the home port
target ; target patch for fishing

ask patches ; sets the color of land and sea patches
[ ifelse (land = 1)
[set pcolor green]
[set pcolor blue]
]

to choose-target
set target one-of patches in-radius 60 with [(fishing- 
effort > 100) and (fishing-effort < 1010)] ; sets the 
fishermen target to one of the patches with a fishing 
effort score 
end

to movement 

ifelse distance target < 1
[stop] ;
[ face target
forward 1
set fuel fuel - 1] ; uses one fuel per movement forwards
if distance target < 1 [ stop]
end
自己的补丁程序
土地
船只拥有
母港;母港补丁
目标;捕鱼靶区
询问补丁;设置陆地和海洋斑块的颜色
[ifelse(土地=1)
[将颜色设置为绿色]
[设置颜色为蓝色]
]
选择目标
使用[(打捞-
努力>100)和(捕鱼努力<1010)];设定
渔夫们瞄准其中一块带着渔具的区域
努力得分
结束
移动
ifelse距离目标<1
[停止];
[面对目标
转发1
设置燃油-1];每次向前移动使用一个燃料
如果距离目标小于1[停止]
结束

谢谢

看看这是否有帮助。一个选择是在每个水补丁上放置一个节点(建立一个新的代理),然后在节点之间建立链接。使所有节点和链接不可见(使用
隐藏
)。然后,您可以使用网络扩展的最短路径,并使用路径上的海龟来计算路径。你可以通过删除所有基本上在一条直线上的节点和链接来清理这种方法。看看这是否有帮助。一种方法是在每个水补丁上放置一个节点(设置一种新的代理),然后在节点之间放置链接。使所有节点和链接不可见(使用
隐藏
)。然后,您可以使用网络扩展的最短路径,并使用路径上的海龟来计算路径。通过删除所有基本上在一条直线上的节点和链接,您可以稍微清理一下这种方法。