在一个模型中,我让病人去医院。这些特工生活在连续的空间中。更具体地说,它们放置在折线中。初始患者人数为零,但事件不断产生新患者。医院的初始人口为10,之后没有新的人口。我想要实现的是,在生成新患者时,他选择了距离患者最近的医院,并将该医院设置为myHospital。
要选择最近的医院,我试图在“患者”中创建功能,并在状态图中使用myHospital将患者转移到myHospital:
Hospital myHospital = this.getNearestAgent(main.hospitals);
return myHospital;
到目前为止,所有患者都选择了与最近的医院相同的医院,这是错误的,特别是考虑到我可以检查患者的X和Y坐标。
哪种方法可以解决此问题?
答案 0 :(得分:1)
当您调用该函数以获取最近的医院时,您的代理可能仍处于x = 0 y = 0,因此您将获得到该地点的最近的医院。
在活动中应该执行的操作顺序如下:
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); //
这肯定可以工作