添加链接拥有和乌龟拥有的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的值相加。

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

解决方法

答案很简单,不能。

您的示例起作用的原因(或者如果您有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'等的最大值。

要解决编码问题,您需要确定乌龟应该如何选择一个或多个链接以提供要添加的值。