Постоянный выбор в NetLogo - PullRequest
0 голосов
/ 25 ноября 2018

В этой модели, если соблюдены определенные условия, фермеры инвестируют в свою норму производства (RoP).Если выполняются другие условия, они инвестируют в свой уровень жизни (SoL).

В настоящее время это выполняется через несколько операторов if в рамках процедуры To Invest на каждом временном шаге.

Как я могу сделать курсы действий постоянными.Например, если первая ферма на отметке 2 соответствует условиям для инвестирования в RoP, эта ферма должна продолжать делать это на каждом последующем временном шаге, а на отметке 3 не должна быть возможность инвестировать в SoL.Как я могу сделать это действие постоянным?

to invest 
  let p random 100 
  set excess-prev-tick farm-excess
  if ( farm-excess > 0 and p <= 30 ) [
    set farm-RoP ( farm-RoP + farm-excess )] 
  if ( farm-excess > 0 and p > 30 and SoL < SoL-max ) [
    set SoL ( SoL + 0.1 )] 
  if ( farm-excess > 0 and p > 30 ) [
    set farm-RoC ( farm-RoC + ( count patches in-radius farm-size * 2 ))]
  if farm-excess < 0 and SoL >= SoL-min [
    set SoL ( SoL - 0.05) ]
  set farm-excess (farm-ROP - farm-RoC) 
  set RoExp ((farm-excess - excess-prev-tick) / (excess-prev-tick)) 
end

1 Ответ

0 голосов
/ 26 ноября 2018

Самый простой способ - создать переменную для каждого фермера (используя заявление самого фермера), которая инициализируется как «неопределившаяся», а затем становится либо «производственной», либо «живой», когда выполняется условие для одного из них.Затем вы должны организовать свой код инвестирования, чтобы иметь разные расчеты для разных подгрупп фермеров (например, ask farmers with [invest-type = "undecided"][ <do stuff> ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...