Функция add_people() в примере с населением Агента и в SD-хранилище anylogic
Я пытался использовать add_people() в событии во время выполнения примера anylogic для населения Агента и размещения на SD, чтобы добавить больше агентов в модель во время моделирования, но я сталкиваюсь с этой ошибкой. Как я могу решить эту проблему?
[Exception during discrete event execution:
-1
java.lang.ArrayIndexOutOfBoundsException: -1
at com.anylogic.engine.Dimension.getIndexPosition(Unknown Source)
at com.anylogic.engine.HyperArray.getPosOf(Unknown Source)
at com.anylogic.engine.HyperArray.get(Unknown Source)
at agent_population_and_sd_housing.Person.makeDecision(Person.java:428)
at agent_population_and_sd_housing.Person.executeActionOf(Person.java:408)
at com.anylogic.engine.EventRate.execute(Unknown Source)
at com.anylogic.engine.Engine.m(Unknown Source)
at com.anylogic.engine.Engine.jd(Unknown Source)
at com.anylogic.engine.Engine.h(Unknown Source)
at com.anylogic.engine.Engine$g.run(Unknown Source)]
1 ответ
Решение
Это связано с тем, что в агенте Person есть переменная под названием район, которая имеет начальное значение -1... (что означает, что у нее нет назначенного района).
Чтобы это исправить, вам нужно назначить район новому человеку, которого вы создаете: Этот код:
Person p=add_people();
p.district=3;
Создадим человека и назначим район, равный 3... Я выбрал 3 произвольно, и вы должны выяснить, какой район вы хотите для этого человека, в частности, для себя.