繁体   English   中英

在Netlogo中,我可以要求补丁在乌龟环境中做什么吗?

In Netlogo, can I ask the patches to do something within a turtle context?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

当每个乌龟在命令中移动时,我都需要使用Ask turtles上下文进行补丁更新。 因此,本质上,我想让补丁在乌龟环境中做某事。 我知道您可以让海龟在该特定补丁程序上访问补丁程序变量,但是我需要的是补丁程序计算所有补丁程序的“边际值”(由我组成的补丁程序变量),包括那些没有补丁程序的补丁程序有乌龟。 我的目标是每当海龟在“问海龟”命令中移动时,边际值都会更新。 因此,在这种情况下,乌龟可以访问其位于补丁变量上的补丁这一事实似乎无济于事。 这可能吗? 如果是这样,您如何建议我解决?

例如,我现在无法使用,但是可能有助于理解我正在尝试执行的操作:

 ask turtles
  [ ask patches
    [ calculate-marginal-vaule ]]

to calculate-marginal-vaule
   ifelse
    count turtles-here > 0
    [ set possible-consumption ( quality ) / ( strength-of-competition * count turtles-here ) ]
    [ set possible-consumption quality ]
  set marginal-value mean [ possible-consumption ] of patches
end
2 个回复

NetLogo专门禁止使用诸如ask turtles [ ask patches [ <do something> ] ]代码,因为这种格式的代码几乎总是错误(并且是效率低下的主要根源)。 但是,您可以要求满足某些条件的补丁程序子集来执行某项操作,如以下代码所示。

to testme
  clear-all
  create-turtles 10
  ask patches [ set pcolor 15 ]
  ask turtles
  [ ask patches with [ pxcor >= 0 ] [ set pcolor pcolor + 5 ]
  ]
end

如果您有10只乌龟,那么ask turtles [ ask patches [ ] ]会使补丁执行10次操作。 那真的是你想要的吗? 从所有补丁程序访问信息都没有问题,只需执行一些操作即可。

如果使用patch-set报告patches将特殊patches代理集转换为“常规”补丁程序代理patch-set则可以绕开Jen解释的限制:

ask turtles [
  ask patch-set patches [
    calculate-marginal-value
  ]
]

现在这样做是否明智是另一个问题。

我不确定我是否理解您要设法解决的问题足以解决您的问题,但是我可以告诉您您当前要执行的操作在计算上会非常昂贵。 如果可以的话,您至少应该尝试考虑解决该问题的另一种方法。

1 Netlogo:让特定的海龟做某事

我正在尝试使用称为carriers机器人模拟汽车工厂。 在我的 go 方法中,我试图让一个没有工作的承运人找到一个cutter并去那里。 我如何要求特定的承运人做某事? 这是我到目前为止所做的: ...

2020-05-01 10:49:13 1 199   netlogo
2 NetLogo-如何获得乌龟面对的所有补丁?

如何获得包含乌龟面临的所有补丁的补丁集? 我知道提前补丁会报告特定距离的补丁。 但是,如果我想沿这个方向获取所有补丁,而不是特定距离的单个补丁,该怎么办? ...

2018-11-26 16:11:40 1 44   netlogo
4 NetLogo:如果“至少有一个网络成员”如何要求乌龟做某事

我想请乌龟在两种情况下做一些事情:1)如果其网络的所有成员都显示特定功能,2)如果至少其网络的一个成员显示特定功能。 对于第一种情况,我尝试过 而且有效。 对于第二种情况,我尝试了 要么 但它不起作用。 你能帮我吗? ...

2018-10-03 11:21:24 1 28   netlogo
5 NetLogo中乌龟形状占用的补丁

我希望在理解和使用补丁形状和大小与来源方面有所帮助。 我正在尝试标记特定乌龟形状下的补丁。 例如,如果乌龟是(wxh)的矩形,则我想更改该形状下所有补丁的颜色或属性,而不仅是原始补丁。 当然,使用矩形也许我可以手动为其下的色块着色,但是是否可以选择在更复杂的乌龟形状下修改色块? 谢谢。 ...

6 要求多个补丁在不使用“询问补丁”的情况下做某事

我正在尝试更改一个区域(由滑块控制的数字)中许多补丁的颜色。 if语句检查坐标在ask patches命令中。 当我说set pcolor为变量时,它可以完美运行。 但是,当我在if语句中添加另一个ask patches以询问可变数量的补丁以设置其颜色时,我得到一个错误,即只有观察者才能要 ...

2016-11-06 15:38:28 1 605   netlogo
7 询问与许多人在Netlogo中做某事的海龟

现在我有下一个问题。 假设我有一个包含不同数字的列表,例如: 我想使用此数字列表,例如海龟的身份。 更准确地说,我希望只有与列表中任何数字均相等的海龟才能进行处理。 我试图直接应用“ with”命令,如下所示:用[who = mylist]问乌龟,但不起作用,我认为问题是我正在使用 ...

8 当其中一只乌龟找到目标时,我如何要求所有乌龟向目标移动?-Netlogo

我创建了一个随机目标(绿色补丁),并且有许多海龟,一旦海龟到达补丁,它就会变黑。 但是一个绿色补丁​​非常安静,一个目标需要花费一些时间才能将所有补丁变成黑色。 目标就像大片的绿草。 我试图做的是随机移动海龟,一旦其中一只海龟找到了目标,所有海龟都应向该位置移动,直到整个区域变黑为止。 我不知道 ...

2021-01-17 10:36:18 0 28   netlogo
9 如何在Ask turtle环境中获取孵出的龟的孩子ID?

我刚刚开始使用netlogo,并且试图从OOP过渡,所以如果我的编码范例是我的问题的根源,我深表歉意。 问题 在ask turtle程序中,我孵出了一只乌龟。 我想创建一个与孵化的乌龟的链接。 我不需要记住家庭关系。 试图解决问题 但是舱口给了我一个错误,因为它期望 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM