乌龟只能将可变编号分配给补丁吗?

can a turtle only variable number be assigned to patches?

我正在尝试设计一个模型,用于将感染从人传播到环境。 海龟有一个手部污染变量,显示它们手部被污染的百分比。我想将这个数字提供给他们正在传递的补丁,但我收到一条错误消息,说它是一个仅限海龟的变量。 是否可以为贴片提供手部污染编号? 这是我的代码的一部分:

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

ask patches [set p-contamination hand-contamination]

补丁永远不能直接引用海龟变量:如果那里有不止一只海龟怎么办……哪一只?如果有none怎么办?

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

;; 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
  • 使用 most-contaminated 访问者的值:
    • (max (sentence [ contamination ] of visitors))
  • 平均污染值
    • (mean (sentence [ contamination ] of visitors))
  • ...或您选择的其他表达方式

同样,这都是覆盖补丁变量。如果您需要为该变量获取补丁的当前值,您需要决定如何:

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

  • 保留价值
  • 将 turtle 值添加到 P-Contamination
  • 的当前值
  • 保存两个值中的最大值
  • 保存两个值的平均值
  • 以其他方式混合它们