首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AnyLogic中将一个代理移动到连续空间中的另一个代理时出现意外行为

在AnyLogic中将一个代理移动到连续空间中的另一个代理时出现意外行为
EN

Stack Overflow用户
提问于 2018-12-21 18:11:25
回答 1查看 37关注 0票数 0

在一个模型中,我让病人转移到医院。这些智能体生活在连续的空间中。更具体地说,它们被放置在多段线中。初始患者数量为零,但一个事件会不断生成新的患者。医院的初始人口为10人,此后不会产生新的人口。我想要实现的是,在生成新患者的那一刻,他选择离患者最近的医院,并在参数中将该医院设置为myHospital。

为了选择最近的医院,我尝试在Patient中创建一个函数,并在状态图中使用myHospital让patient移动到myHospital:

代码语言:javascript
复制
Hospital myHospital = this.getNearestAgent(main.hospitals);
return myHospital;

到目前为止,所有患者都选择了与最近的医院相同的医院,这是错误的,特别是考虑到我可以检查患者的X和Y坐标。

什么方法可以解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-21 21:27:49

当您调用该函数以获得最近的医院时,您的代理可能仍在x=0 y=0中,因此您将获得距离该点最近的医院。

您在事件中执行操作的顺序如下:

代码语言:javascript
复制
Patient p=add_patients(); //generate a patient
p.setXY(uniform(0,500),uniform(0,500)); //define your patient initial position FIRST
p.hospital=p.getHospital();// or just do p.getNearestAgent(hospitals);
p.moveTo(p.hospital); //

这肯定能行得通

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53882841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档