anylogic - 如何在自定义路由中使用 ILocation 源和目标?
解决方案
修复基础
正如这里所解释的,你不能实例化一个 Java 列表,因为它是一个interface
. 但是,您可以实例化 List 的任何实现类,例如 ArrayList。
考虑到这一点,您的代码将如下所示:
List<Path> myPath = new ArrayList<Path>();
myPath.add(path14);
myPath.add(path8);
myPath.add(path);
myPath.add(path1);
myPath.add(path4);
myPath.add(path13);
return myPath;
到目前为止,基础知识。
从这往哪儿走
要让它考虑路线规划的实际来源和目的地,请在函数的属性中将两者定义为 ILocation 类型的输入参数。
现在到了真正棘手的部分:编写您自己的或导入一个路由算法,该算法可以根据您定义的标准自动为您提供路径列表。然而,对于这个问题来说,这个话题太宽泛了。基本步骤将是:
- 创建一个代表您的 AnyLogic 路径网络的图形
- 使用图、起点和终点,通过求解算法(例如Dijkstra 算法)解决图路由问题
- 将您从求解器获得的解决方案再次转换回您可以在 AnyLogic 中使用的 ArrayList
您可以自己执行这些步骤,例如。通过自己实现 Dijkstra 算法,或者将可用的图形求解 Java 包之一(如JUNG或Graphhopper)导入 AnyLogic 。在本文中,我将逐步解释如何使用 JUNG 进行操作。
推荐阅读
- javascript - 预加载器 v-cloak 不显示文本加载
- aurelia - Aurelia 商店 - 状态正在改变的 UI 指示器
- angular-material - Angular Material Autocomplete - 无法读取未定义的属性“过滤器”
- terminal - 有人可以解释这个用于查找图像的终端命令是如何工作的吗?
- java - 添加scanf使Java中的processInputStream消失
- python - 为什么在这种情况下 feed_dict 使用更少的内存?
- python - 使用 PIL 将不同像素保存的图像复制到原始图像
- node.js - 尝试在谷歌表格 API 中使用“附加”时出现无效值错误
- javascript - JS错误:
.contains 不是函数,不知道为什么 - c# - 将“任何 CPU/首选 32 位”设置为 VS 中的默认构建设置背后的基本原理