Эффективность модели: по очереди поливайте номера ВОЗ

Я написал код NetLogo, чтобы черепахи по очереди меняли значение. Черепахи - это фермеры, расположенные вдоль ручья. У них будут различия в пространственной доступности воды в зависимости от их численности, и они будут забирать воду в соответствии с их очередностью в зависимости от того, кто их числится. Коды все в порядке. Каждый тик занимает больше времени, чем обычно. Я вижу, что для запуска полной модели потребуется еще больше времени. Можно ли изменить эти коды, чтобы модель эффективно работала в соответствии с установленным шаблоном, приведенным на прилагаемом рисунке? Спасибо за помощь

введите описание изображения здесь

Коды приведены ниже

Breed [farmers farmer]
Farmers-own [water irrigation-turn]
to setup
  clear-all
  create-farmers 30 [ set irrigation-turn [0]

     ask farmer 0 [ setxy min-pxcor + 1 0]
     ask farmer 1 [ setxy min-pxcor + 1 2]
     ask farmer 20 [ setxy min-pxcor + 1 4]
     ask farmer 2 [ setxy min-pxcor + 3 0]
    ask farmer 3 [ setxy min-pxcor + 3 2]
    ask farmer 21 [ setxy min-pxcor + 3 4]
    ask farmer 4 [ setxy min-pxcor + 5 0]
    ask farmer 5 [ setxy min-pxcor + 5 2]
    ask farmer 22 [ setxy min-pxcor + 5 4]
    ask farmer 6 [ setxy min-pxcor + 7 0]
    ask farmer 7 [ setxy min-pxcor + 7 2]
    ask farmer 23 [ setxy min-pxcor + 7 4]
    ask farmer 8 [ setxy min-pxcor + 9 0]
    ask farmer 9 [ setxy min-pxcor + 9 2]
    ask farmer 24 [ setxy min-pxcor + 9 4]
    ask farmer 10 [ setxy min-pxcor + 11 0]
    ask farmer 11 [ setxy min-pxcor + 11 2]
    ask farmer 25 [ setxy min-pxcor + 11 4]
    ask farmer 12 [ setxy min-pxcor + 13 0]
    ask farmer 13 [ setxy min-pxcor + 13 2]
    ask farmer 26 [ setxy min-pxcor + 13 4]
    ask farmer 14 [ setxy min-pxcor + 15 0]
    ask farmer 15 [ setxy min-pxcor + 15 2]
    ask farmer 27 [ setxy min-pxcor + 15 4]
    ask farmer 16 [ setxy min-pxcor + 17 0]
    ask farmer 17 [ setxy min-pxcor + 17 2]
    ask farmer 28 [ setxy min-pxcor + 17 4]
    ask farmer 18 [ setxy min-pxcor + 19 0]
    ask farmer 19 [ setxy min-pxcor + 19 2]
    ask farmer 29 [ setxy min-pxcor + 19 4]
    ask farmers [ set label who
     set size 2]
    ]





  reset-ticks

end
to go
   define-irrigation-turn
  irrigate
 tick


end

to define-irrigation-turn ; 11 turtle ; 24 hours irrigation policy

 ask farmers [set irrigation-turn [0]
  ask farmer 0 [
      repeat 235 [
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
         ]]
ask farmer 1 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
       ]]
  ask farmer 2 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
  ask farmer 3 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
  ask farmer 4 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
       ]]

  ask farmer 5 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
       set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
   ask farmer 6 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
         ]]
   ask farmer 7 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
       ]]
   ask farmer 8 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
    ask farmer 9 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
     ask farmer 10 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
     ask farmer 11 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
     ask farmer 12 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]
    ; Turtles 13-16 will follow the same pattern
]
   ask farmer 17 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
       ]]
     ask farmer 18 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]

   ask farmer 19 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
     ask farmer 20 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]

   ask farmer 21 [
        repeat 235 [
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 1 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        set irrigation-turn lput 0 irrigation-turn
        ]]
  
    ; farmers from 26-29 will follow the same pattern as of 20 t0 21
  ]

end
to irrigate
  foreach [0 1 2 3 4 5 6 7 8 9 10 12 14 16 18  11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
  [ ?1 ->
      ask farmers with [who = ?1] [
        if (item ticks irrigation-turn) = 1
          [ set color red
           set shape "person"
            
  ]]]
end

person Sadaf    schedule 24.10.2020    source источник
comment
Что define-irrigation-turn должен делать? В настоящий момент каждый фермер добавляет 4935 (повторяется 235 раз, добавляя 21 цифру) номеров по одному в конец своего списка. И они делают это каждый ход, поэтому списки должны очень быстро стать очень большими, я не думаю, что вы хотите это сделать. Если это так, есть гораздо лучшие способы сделать это. Итак, поясните, пожалуйста, цель.   -  person JenB    schedule 24.10.2020
comment
Спасибо JenB за комментарий. Моя цель - заставить фермеров производить забор воды путем орошения 47 раз за год. Каждый фермер будет повторять свой ход через неделю, когда поменяется галочка. За 5 лет фермер будет выполнять 235 очередей. Мне интересно, что я написал это правильно в соответствии с требованиями.!   -  person Sadaf    schedule 25.10.2020


Ответы (2)


Проблема со скоростью связана с тем, что вы создаете длинный список, используя:

set irrigation-turn lput 1 irrigation-turn

Вам нужно убедиться, что список не растет линейно по отношению к отметкам.

person mattsap    schedule 25.10.2020

Вы совершенно не понимаете, как работает время в этих моделях. Команда tick предписывает модели перевести часы. Это встроено в процедуру go, и эта процедура (предположительно) запускается каждый тик. Что вам нужно в процедуре go, так это то, что происходит во время ОДНОГО временного шага. Вместо этого в настоящий момент вы добавляете еще один пятилетний график.

Если вам нужно составить расписание, потому что вы хотите, чтобы каждая черепаха выполняла свой ход, а затем переходила к следующей черепахе в следующем тике, составляйте расписание во время процедуры настройки, а не процедуры перехода. Вероятно, вам также следует использовать оператор mod, поскольку это цикл, поэтому вам не нужно пятилетнее расписание, вы можете сохранить только один цикл. Вам также не нужно использовать lput для добавления каждого элемента по отдельности, просто укажите весь список сразу.

Что-то вроде этого (обратите внимание, что я полностью отказался от расписания и просто использую mod для цикла):

breed [farmers farmer]
farmers-own [water irrigation-turn]

to setup
  clear-all
  create-farmers 30
  [ set label who
    set size 2
  ]
  ask farmer 0 [ setxy min-pxcor + 1 0 set irrigation-turn 0]
  ask farmer 1 [ setxy min-pxcor + 1 2 set irrigation-turn 1]
  ask farmer 20 [ setxy min-pxcor + 1 4 set irrigation-turn 2]
  ; and similarly for remaining farmers
  reset-ticks
end

to go
 irrigate
 tick
end

to irrigate
  ask turtles with [irrigation-turn = (ticks mod count farmers)]
  ; do whatever it is they do when it's their turn
  ask turtles with [irrigation-turn != (ticks mod count farmers)]
  ; do whatever it is they do when it's not their turn
end

Или, если вы хотите сохранить расписание (например, потому что есть несколько недель, которые не соответствуют циклу), составьте его напрямую. Например, если вам нужна 3-я неделя из 4-недельного цикла, вы можете просто сделать:

set irrigation-turn [ 0 0 1 0]

Есть и другие методы, использующие reduce sentence n-values для создания гораздо более длинных списков, но я думаю, что ваша проблема эффективности может быть решена без них.

person JenB    schedule 25.10.2020
comment
Спасибо за большую помощь. Вы внесли поправку в мое обучение. Выполнение команды ask turtles с [not irrigation-turn = (ticks mod count farmers)] приводит к появлению ошибки: НЕ ожидалось, что ввод будет ИСТИНА / ЛОЖЬ, но вместо этого получил номер 0. Я не могу понять, в чем проблема! - person Sadaf; 25.10.2020