Если все, что вы хотите, это способ отслеживания ссылок на число, используйте вместо count my-links
вместо пользовательской переменной.
В общем, наименьшая ошибка, связанная с обновлением значения при изменении количества ссылок, заключается в вычислении этого значения, когда вам это нужно. Для количества ссылок это просто count my-links
. Для более сложных вещей, завернуть их в репортеру:
to-report energy-of-neighbors
report sum [ energy ] of link-neighbors
end
Если это не работает по какой-либо причине (агенты должны реагировать на ссылку исчезающие или вы видите, серьезный, измеряемое падение производительности из расчета на на лету), вам нужно будет сделать обновления самостоятельно, когда количество ссылок изменится. Лучший способ сделать это, чтобы инкапсулировать поведение в команде:
to update-on-link-change [ link-being-removed ] ;; turtle procedure
; update stuff
end
, а затем инкапсулировать вещи, которые могут вызвать количество ссылок на изменение (например, смерть черепахи) в командах, а также:
to linked-agent-death ;; turtle procedure
ask links [
ask other-end [ update-on-link-change myself ]
]
die
end
спасибо! Я не сделал именно то, что вы предложили, но вы дали мне идею просто дать ссылкам атрибут «значение», скажем 1, а затем установить число ссылок на 'sum [value] моих ссылок: D Приветствия! – ULM