Добавление ссылок -собственный и turtles-собственный netlogo

#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. Я не понимаю. Пожалуйста, задайте новый вопрос (не редактируйте этот) с примером того, что вы хотите сделать, и попыткой кода для этого