首页 > 解决方案 > 添加 links-own 和 turtles-own netlogo

问题描述

turtles-own [ a ]
patches-own [b ]
links-own [ c ]

to a+b
ask turtles with [ pxcor = x and pycor = y ][ set a + b ]
end

这是有效的,因为 a + b 在该补丁坐标处添加了 b 的值。

我正在尝试对链接做同样的事情。

标签: netlogo

解决方案


简短的回答,你不能。

您的示例有效(或者如果您有set a a + b并提供 x、y 等值)的原因是因为您要求海龟这样做(在 NetLogo 术语中,在海龟上下文中完成)。也就是说,乌龟知道它自己的“a”值并且可以访问唯一的“b”值,因为乌龟只站在一个补丁上。如果您尝试使用ask patches而不是执行相同的代码ask turtles,则会收到错误消息。这是因为补丁无法识别站在其上的潜在众多海龟中的哪一个来为“a”提供值。

因为一个海龟可以链接到任意数量的其他海龟,它可以有很多链接。这意味着没有足够的信息让海龟知道哪个链接提供'c'的值。但是有些事情你可以做。

选项1:随机选择它所连接的链接之一

turtles-own [ a ]
links-own [ c ]

to a+b
  ask turtles [ set a a + [c] of one-of my-links ]
end

选项 2:将它连接到的所有链接的“c”值相加

turtles-own [ a ]
links-own [ c ]

to a+b
  ask turtles [ set a a + sum [c] of my-links ]
end

或者你可以选择'c'等的最大值。

为了解决你的编码问题,你需要弄清楚海龟应该如何选择一个或多个链接来提供要添加的值。


推荐阅读