Add_people() 函数在 agent population 和 SD housing example of anylogic
Add_people() function in Agent population and SD housing example of anylogic
我曾尝试在 运行 agent population 和 SD housing example of anylogic 期间的事件中使用 add_people() ,以便在模拟期间向模型添加更多代理,但我面对这个错误。
我该如何解决这个问题?
[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)]
这是因为在 Person 代理中,有一个名为 district 的变量,其初始值为 -1...(意味着它没有分配的地区)。
要解决这个问题,您需要为您正在创建的新人分配一个地区:
此代码:
Person p=add_people();
p.district=3;
将创建一个人并分配一个等于 3 的地区......我随意选择了 3,你必须自己弄清楚你想要那个人特别是哪个地区。
我曾尝试在 运行 agent population 和 SD housing example of anylogic 期间的事件中使用 add_people() ,以便在模拟期间向模型添加更多代理,但我面对这个错误。 我该如何解决这个问题?
[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)]
这是因为在 Person 代理中,有一个名为 district 的变量,其初始值为 -1...(意味着它没有分配的地区)。
要解决这个问题,您需要为您正在创建的新人分配一个地区: 此代码:
Person p=add_people();
p.district=3;
将创建一个人并分配一个等于 3 的地区......我随意选择了 3,你必须自己弄清楚你想要那个人特别是哪个地区。