一个只有乌龟的可变数字可以分配给补丁吗



我正在尝试设计一个感染在人与环境之间传播的模型。海龟有一个手部污染变量,它显示了它们手部被污染的百分比。我想把这个数字给他们正在通过的补丁,但我收到了一个错误,说这是一个只针对乌龟的变量。是否可以为贴片提供手部污染编号?这是我代码的一部分:

turtles-own [hand contamination]
patches-own [p-contamination]
ask patches [set p-contamination hand-contamination]

补丁永远不能直接引用海龟变量:如果有不止一只海龟。。。哪一个?如果没有呢?

但是,乌龟可以访问其所在补丁的变量。所以你可能会从海龟的角度来做这件事:我认为从逻辑上讲,这也是有道理的,因为这是海龟访问补丁并污染它

;; turtles contaminate the patch they are standing on
ask turtles [ set p-contamination hand-contamination]

请注意,如果一个补丁上有多个乌龟,它们将覆盖彼此的值。因此,您可能需要添加数量,或者以其他方式混合这两个值,而不是替换它

如果海龟比补丁多,或者你真的想让补丁成为控制对象,补丁可以查找海龟并用OF:访问它们的变量

ask patches
[ let visitors turtles-here
if any? visitors
[ set p-contamination ..some expression.. 

所以,这取决于你的需求,你必须决定这个价值是什么

  • 最多只有一只乌龟:
    • [ Contamination ] of one-of visitors
  • 即使有很多乌龟,也要随机挑选一只:
    • [ contamination ] of one-of visitors
  • 使用受污染最严重的访问者的价值:
    • (max (sentence [ contamination ] of visitors))
  • 平均污染值
    • (mean (sentence [ contamination ] of visitors))
  • 。。。或者您选择的其他表达式

同样,这一切都覆盖了补丁变量。如果你需要获取该变量的补丁的当前值,你需要决定如何:

如果已经被污染,是否应该:

  • 忽略值
  • 将乌龟值添加到P-污染的当前值
  • 保存两个值的最大值
  • 保存两个值的平均值
  • 用其他方式混合

相关内容

最新更新