AnyLogic中基于智能体距离的状态转换代码报错问题咨询
问题解决:AnyLogic智能体模型距离判断报错
错误原因
你写的代码里,getNearestAgent()方法的参数类型不匹配。这个方法要求传入智能体群体(Iterable类型,比如main.hospitals这类集合),但你直接传了单个Hospital对象(main.hospitals(0)是群体中的第一个医院实例),触发参数类型不兼容的报错。
修正方案
方案1:直接对比到两个医院的距离
既然已经明确要对比到两个特定医院的距离,不需要嵌套getNearestAgent,直接用distanceTo()计算单个医院的距离即可:
distanceTo(main.hospitals(0)) < distanceTo(main.hospitals(1))
方案2:通用写法(适配多医院场景)
如果后续医院数量可能增加,可先获取当前患者的最近医院,再判断是否为目标医院:
getNearestAgent(main.hospitals) == main.hospitals(0)
这个写法会自动从所有医院中筛选出最近的那个,再与指定医院做对比,适用性更强。
内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib
相关产品推荐
相关产品推荐

