NetLogo在特定条件下继续搜索
我在模拟雌性动物从它们母亲的领地上散开,寻找它们自己的领地。基本上,她们需要找到其他女性领地未占用的区域。补丁有一个变量NetLogo在特定条件下继续搜索,netlogo,Netlogo,我在模拟雌性动物从它们母亲的领地上散开,寻找它们自己的领地。基本上,她们需要找到其他女性领地未占用的区域。补丁有一个变量owner fem,用于识别它属于哪个女性。理想情况下,我想要女性: 移动到补丁 在该斑块周围的某个半径范围内搜索任何其他区域,并在该半径范围内搜索是否有其他女性的区域 移动到另一个修补程序以再次启动搜索过程。下面是到目前为止我所拥有的,但我认为我没有正确地使用radius中的 我不确定最好的方法是告诉雌性继续搜索,直到满足条件。任何帮助都将不胜感激 to female-dis
owner fem
,用于识别它属于哪个女性。理想情况下,我想要女性:
to female-disperse
move-to one-of patches with [owner-fem = nobody]
if [owner-fem] of patches in-radius 3 != nobody
[
move-to one-of patches with [owner-fem = nobody]
]
end
如果您想在“一次性”中使用它,您可以让他们直接移动到合适的补丁:
to female-disperse
move-to one-of patches with [
not any? patches in-radius 3 with [owner-fem != nobody]
]
end
请注意,patches
包括海龟所在的补丁,因此不需要单独的移动到[owner fem=nobody]的补丁之一
我不知道你的模型需要什么,但如果我是你,我可能会试着让它们慢慢散开。下面是另一个版本,您可以从go
过程(或任何其他“永远”运行的过程)调用该版本:
在这个版本中,所有不在自己拥有的补丁上的雌性都会移动到相邻的补丁之一。然后检查新补丁是否合适。如果是,他们就成为它的主人。如果不是,他们现在就到此为止:他们将在下一次迭代中继续搜索
go
。你不必这样做;它可能只是沿着这些线松散的东西。这正是我所需要的。谢谢
to female-disperse
ask females with [owner-fem != self ] [
move-to one-of neighbors ; or however you want them to move
if not any? patches in-radius 3 with [owner-fem != nobody] [
set owner-fem self
]
]
end