尝试在分层模型中移动代理时出现 AnyLogic 错误
AnyLogic Error while trying to move agents in hierarchical model
任务描述:模型包含两种类型的代理,一种类型的代理生活在另一种中。为了在更高阶的代理之间移动代理,我使用了以下代码(找到随机连接的代理,然后尝试增加其数量,然后定义内部位置):
City destinationCity = (City) city.getRandomConnectedAgent();
this.goToPopulation(destinationCity.population);
double newX = uniform(-50, 50);
double newY = uniform(-50, 50);
this.setXY(newX, newY);
代码编译成功,但是anylogic
本身抛出错误:
java.lang.RuntimeException: root.cities[0].population[40]:
INTERNAL ERROR: moving shape from one owner directly to another: com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation@566dc332 -> com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation@f8b9090
at com.anylogic.engine.Engine.error(Unknown Source)
at com.anylogic.engine.Agent.error(Unknown Source)
at com.anylogic.engine.Utilities.error(Unknown Source)
at com.anylogic.engine.Utilities.error(Unknown Source)
at com.anylogic.engine.internal.ac.l(Unknown Source)
at com.anylogic.engine.presentation.Shape.l(Unknown Source)
at com.anylogic.engine.presentation.Shape3D.l(Unknown Source)
at com.anylogic.engine.presentation.ShapeTopLevelPresentationGroup.setOwner_xjal(Unknown Source)
at com.anylogic.engine.Agent.setOwnerShape_xjal(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.setEmbeddedObject_xjal(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.<init>(Unknown Source)
at hierarchicalmodel__mobility_.City._population_presentation_createShapeWithStaticProperties_xjal(City.java:366)
at hierarchicalmodel__mobility_.City.createShapeWithStaticProperties_xjal(City.java:388)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.createShapes(Unknown Source)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.Presentable.l(Unknown Source)
at com.anylogic.engine.Presentable.updateShapeDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.Presentable.l(Unknown Source)
at com.anylogic.engine.Presentable.updateShapeDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.Panel.d(Unknown Source)
at com.anylogic.engine.presentation.Panel.j(Unknown Source)
at com.anylogic.engine.presentation.Panel$c.run(Unknown Source)
问题出在这条线里面,没有这条线agent在移动,但是population number的参数不变:
this.goToPopulation(destinationCity.population);
将不胜感激(可能您知道在高阶代理之间移动代理的不同方式)!
这是 AnyLogic 8.0-8.2 的一个错误。 AFAIK,如果目标人口位于 Main,则会出现错误。有一个解决方法:将目标人群放在 Main 的虚拟代理中(见屏幕截图):
该错误应在 AnyLogic 8.3 或 8.4 中修复。
任务描述:模型包含两种类型的代理,一种类型的代理生活在另一种中。为了在更高阶的代理之间移动代理,我使用了以下代码(找到随机连接的代理,然后尝试增加其数量,然后定义内部位置):
City destinationCity = (City) city.getRandomConnectedAgent();
this.goToPopulation(destinationCity.population);
double newX = uniform(-50, 50);
double newY = uniform(-50, 50);
this.setXY(newX, newY);
代码编译成功,但是anylogic
本身抛出错误:
java.lang.RuntimeException: root.cities[0].population[40]:
INTERNAL ERROR: moving shape from one owner directly to another: com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation@566dc332 -> com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation@f8b9090
at com.anylogic.engine.Engine.error(Unknown Source)
at com.anylogic.engine.Agent.error(Unknown Source)
at com.anylogic.engine.Utilities.error(Unknown Source)
at com.anylogic.engine.Utilities.error(Unknown Source)
at com.anylogic.engine.internal.ac.l(Unknown Source)
at com.anylogic.engine.presentation.Shape.l(Unknown Source)
at com.anylogic.engine.presentation.Shape3D.l(Unknown Source)
at com.anylogic.engine.presentation.ShapeTopLevelPresentationGroup.setOwner_xjal(Unknown Source)
at com.anylogic.engine.Agent.setOwnerShape_xjal(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.setEmbeddedObject_xjal(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.<init>(Unknown Source)
at hierarchicalmodel__mobility_.City._population_presentation_createShapeWithStaticProperties_xjal(City.java:366)
at hierarchicalmodel__mobility_.City.createShapeWithStaticProperties_xjal(City.java:388)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.createShapes(Unknown Source)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.Presentable.l(Unknown Source)
at com.anylogic.engine.Presentable.updateShapeDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeEmbeddedObjectPresentation.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeAgentPopulationGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.ShapeGroup.updateDynamicProperties(Unknown Source)
at com.anylogic.engine.Presentable.l(Unknown Source)
at com.anylogic.engine.Presentable.updateShapeDynamicProperties(Unknown Source)
at com.anylogic.engine.presentation.Panel.d(Unknown Source)
at com.anylogic.engine.presentation.Panel.j(Unknown Source)
at com.anylogic.engine.presentation.Panel$c.run(Unknown Source)
问题出在这条线里面,没有这条线agent在移动,但是population number的参数不变:
this.goToPopulation(destinationCity.population);
将不胜感激(可能您知道在高阶代理之间移动代理的不同方式)!
这是 AnyLogic 8.0-8.2 的一个错误。 AFAIK,如果目标人口位于 Main,则会出现错误。有一个解决方法:将目标人群放在 Main 的虚拟代理中(见屏幕截图):
该错误应在 AnyLogic 8.3 或 8.4 中修复。