Порядок агентов в агентском наборе не совпадает

Я сомневаюсь и прошу прощения, если ответ очень очевиден. Я создал следующий код. Довольно просто и понятно:

patches-own [ tl ls ls2 ls3 ls4 tsl]
turtles-own [mysize]

to setup
  clear-all
  reset-ticks
  crt 5
  ask turtles [ set heading random 360 jump random 20 set mysize random-float 1]
  asd
  inspect patch 0 0
end

to asd
  let old sum [mysize] of turtles
  ask patches [ set tl other turtles
    set tsl [self] of tl
    set ls [distance myself] of tl 
    set ls2 [distance myself ^ 2] of tl
    set ls3 [(mysize) / old] of tl
    ]
  ;print tl

end

to initial
  set heading random 360 jump random 20 set mysize 1
end

to go
  inspect patch 0 0
  ask turtles [ fd 1 set mysize mysize + random-float 1]
  let qwe random-float 1
  print qwe
  if qwe < 0.2 and count turtles > 2 [ask one-of turtles [die]]
  if qwe > 0.8 [ ask one-of patches [sprout 1 [initial]]]
  asd
  tick
end

Как вы можете видеть, у меня есть функция проверки в коде и ниже снимок:

введите описание изображения здесь Мой вопрос: почему ls а также ls2 агенты вышли из строя. Agentset TSL показывает порядок черепах, поэтому другие наборы агентов, созданные на его основе, не должны следовать тому же порядку.

1 ответ

Решение

Если вы не сортируете их каким-либо образом, Netlogo будет запрашивать агентов в наборе агентов в случайном порядке. Функционально ask tl следует той же логике, что и ask turtlesи то же самое касается извлечения переменных из набора агентов. Например, если вы используете командный центр, чтобы попробовать код ниже несколько раз (после запуска вашего setup а также asd), вы заметите, что порядок запрашиваемых агентов не всегда одинаков.

ask patch 0 0 [ print [distance myself] of tl ]

Все это говорит о том, что создание списка "tsl" патча не зависит от создания других ваших списков. Это не упорядоченный список, это список случайно названных черепах из набора агентов "tl". Один из способов получить последовательный порядок набора агентов - это использовать один из sort примитивы.

Другие вопросы по тегам