#netlogo
#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 в этой координате исправления.
Я пытаюсь сделать то же самое со ссылками.
Ответ №1:
Короткий ответ, вы не можете.
Причина, по которой ваш пример работает (или работал бы, если бы у вас были set a a b
и предоставлялись значения для x, y и т. Д.), Заключается в том, что вы просите turtles сделать это (в терминах NetLogo, выполняемых в контексте turtle). То есть черепаха знает о своем собственном значении ‘a’ и имеет доступ к уникальному значению ‘b’, потому что черепаха стоит на одном и только одном патче. Если вы попытаетесь выполнить тот же код с ask patches
помощью instead of 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’ и т.д.
Чтобы решить вашу проблему с кодированием, вам нужно выяснить, как черепаха должна выбирать ссылку или ссылки для предоставления добавляемых значений.
Комментарии:
1. Как бы вы обновили переменную link и переменную ask turtles одновременно, если есть корреляция
2. Я не понимаю. Пожалуйста, задайте новый вопрос (не редактируйте этот) с примером того, что вы хотите сделать, и попыткой кода для этого