Функция Add_people () в населении Агента и на примере SD-хранилища anylogic - PullRequest
0 голосов
/ 03 мая 2018

Я пытался использовать add_people () в событии во время выполнения примера заполнения логики заселения агентами и SD-карты anylogic, чтобы добавить больше агентов в модель во время симуляции, но я сталкиваюсь с этой ошибкой. Как я могу решить эту проблему?

 [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 Ответ

0 голосов
/ 04 мая 2018

Это связано с тем, что в агенте Person есть переменная под названием район, которая имеет начальное значение -1 ... (что означает, что у нее нет назначенного района).

Чтобы исправить это, вам нужно назначить район новому человеку, которого вы создаете: Этот код:

Person p=add_people();
p.district=3;

Создаст человека и назначит район, равный 3 ... Я выбрал 3 произвольно, и вы должны выяснить, какой район вы хотите для этого человека, в частности для себя.

...