Решения на основе памяти в NetLogo

#memory #netlogo

#память #netlogo

Вопрос:

Привет, щедрые люди,

Я пишу модель для принятия решений фермером, основанную на урожае за последний период. Первоначально земельные участки (небольшие или большие) позволяют фермеру использовать либо грунтовые, либо поверхностные воды. В более поздних случаях фермер будет решать, использовать ли воду грунтовую или поверхностную, в зависимости от урожая. Высокий уровень растениеводства заставляет фермеров иметь память больше, чем число X, например, и если память больше, чем X; фермер выберет стратегию, которую он использовал, чтобы получить более высокий урожай. Я не могу понять, как будет создаваться память фермера для использования в качестве входных данных в том же цикле / блоке кода, который я написал для начального выхода. Эксперты на борту, пожалуйста, окажите свою помощь.

   Globals [ surface-water surface-water  maximum-yield water-demand  water-used ]
Turtle-own [ yield memory]
to setup
  clear-all
  create 5 [ set yield 0
    set memory 0
  set surface-water 10
  set maximum yield 60
  set groundwater 20
  set water-demand 17
  set land random 5   3]
  reset-ticks
end

    to go 
      tick
      ask turtles with land >= 4 [ ifelse random 1 = 0 [set  groundwater-use groundwater - water-demand 
                                                        set yield 0.8 * maximum-yield
                                                        set memory  % of yield   ]
                                                       [ set groundwater-use  0.5 * water-demand 
                                                       set surfacewater-use groundwater-use  0.5 * water-demand
                                                         set yield 0.85 * maximum-yield 
                                                         set memory  % of yield]
      ask  ask turtles with land < 4 [ set groundwater-use  0.5 * water-demand 
                                       set surfacewater-use groundwater-use  0.5 * water-demand
                                                         set yield 0.85 * maximum-yield 
                                                         set memory  % of yield]
    end
 

Комментарии:

1. Я не уверен, что полностью понимаю ваш вопрос. Если вы создадите две переменные для каждого фермера, которые хранят наилучшую урожайность и стратегию, используемую для достижения этой урожайности, ответит ли это на ваш вопрос?

2. Я думаю, да. как это будет записано / включено?

3. Вам нужно попробовать написать некоторый код самостоятельно, и мы поможем вам исправить это, если это не сработает. Но общая идея состоит в том, чтобы иметь две переменные в farmers-own (например, наилучшую доходность и наилучшую стратегию), а затем обновлять их, если доходность этого тика лучше, чем текущее значение наилучшей доходности.