如何根据 Anylogic 中网络中代理的距离从一种状态转换到另一种状态

问题描述 投票:0回答:1

我正在尝试开发一种基于代理的模型,其中患者根据最近的医院距离到达医院。我在主线上有两个特工人口,

  1. 患者(10人)
  2. 医院(2人)

这是我的网络。看图

这是转换条件,

distanceTo(getNearestAgent(main.hospitals(0))) < distanceTo(getNearestAgent(main.hospitals(1)))

这将返回错误,“Agent 类型中的方法 getNearestAgent(Iterable) 不适用于参数 (Hospital)”。

anylogic
1个回答
0
投票

函数

getNearestAgent()
用于查找群体中最近的代理,但您收到错误是因为您在单个代理上调用它。由于您只有两家医院需要计算距离,因此您可以使用

distanceTo(main.hospitals(0)) < distanceTo(main.hospitals(1))
(医院(0)比医院(1)更近吗?)

getNearestAgent(main.hospitals).equals(main.hospitals(0))
(最近的医院(0)是吗?)

(但如果您需要扩展模型以包括两家以上的医院,则需要稍微不同的方法)

© www.soinside.com 2019 - 2024. All rights reserved.