В Netlogo, как измерить или исправить собственные переменные в пространстве поведения в пространстве «измерение выполняется с использованием этих репортеров» - PullRequest
0 голосов
/ 24 января 2019

Я использую свою модель Netlogo в пространстве поведения.В моей модели я создал собственную переменную черепах, которая называется скорость потребления.Я хочу экспортировать норму потребления каждой черепахи для каждого тика моего бега.Исходя из моего понимания пространства поведения, я бы как-то поместил показатель потребления в поле с надписью «Измерение выполняется с использованием этих репортеров», чтобы его можно было экспортировать, но я каждый раз получаю разные ошибки.Например, я в основном получаю сообщение об ошибке «Эксперимент прерван из-за синтаксической ошибки: ожидаемый репортер».Мне также нужно экспортировать собственную переменную патчей, которую я создал, называемую качеством, для каждого патча в моей модели на каждом такте, и у меня та же проблема.Все примеры для этой части пространства поведения в Интернете просто показывают «считать черепах» или что-то подобное.Могу ли я экспортировать переменную turtle или patch?Если да, то какой код я бы использовал?

Я сделал снимок и попытался использовать такие примитивы, как «показать уровень потребления» или «сообщить уровень потребления».Я не уверен в формате кода, который я бы даже начал использовать для экспорта.Любой совет или помощь?Я также попытался просто ввести «норма потребления» или «качество» в поле «Измерение выполняется с использованием этих репортеров», но получил сообщение об ошибке, в котором говорится, что я не могу использовать переменную turtle или patch в контексте наблюдателя, как я могу сделатьте в контексте наблюдателя?В любом случае?

   patches-own [ quality ]
   turtles-own [ consumption-rate ]


to setup-patches
  ask patches
  [set quality (2 + random 8)
  set pcolor scale-color green quality 1 10 ]
end 

to Go
  ask turtles
  [ calculate-consumption ] 
end

to calculate-consumption
  set consumption-rate ( [ quality ] of patch-here ) / ( strength-of-competition * count turtles-here )
end

1 Ответ

0 голосов
/ 24 января 2019

У вас есть концептуальное несоответствие.В BehaviorSpace нет проблем с экспортом переменной черепахи или патча, но вы не сказали NetLogo, какую переменную экспортировать.Вам нужно указать, является ли эта переменная для всех черепах, или только для некоторых черепах, или что-то в этом роде.

Вот модифицированная версия вашего кода, чтобы он был полным и автономным.

globals [strength-of-competition]
patches-own [ quality ]
turtles-own [ consumption-rate ]

to setup
  set strength-of-competition 0.4
  ask patches
  [ set quality (2 + random 8)
    set pcolor scale-color green quality 1 10
  ]
  create-turtles 300 [setxy random-xcor random-ycor]
end 

to go
  ask turtles
  [ calculate-consumption ] 
end

to calculate-consumption
  set consumption-rate quality / ( strength-of-competition * count turtles-here )
end

Запустите это с настройкой BehaviourSpace, которая имеет [consumption-rate] of turtles в качестве репортера.Также поставьте 2 в срок.Вы получите запрошенный вывод.

Хороший совет для работы с BehaviorSpace, когда вы новичок в этом, - это настроить монитор на вашем интерфейсе для каждого значения, которое вы хотите сохранить в своем выводе.Получите мониторы, показывающие, что вы хотите экспортировать, а затем просто возьмите код, который вы получили, и поместите его в окно репортера.Преимущество выполнения шага монитора состоит в том, что он заставляет вас правильно мыслить, не углубляясь в кроличью нору того, является ли это проблемой BehaviorSpace.

...