【发布时间】:2010-09-29 19:31:45
【问题描述】:
我目前正在实施一个导航系统,用于通过欧洲进行路由。到目前为止,我已经实现了最短路径(Dijkstra 和 A*)。这是最简单的部分,现在我需要一些最快路径的算法。它必须快速可靠。
我知道这可以通过为道路质量(例如 1 条高速公路、2 条主干道......)分配值来完成,然后将这些值与路线成本相乘,最后使用 Dijkstra 或 A*,但这并不复杂够了。
我正在寻找更准确的算法。地图本身包含各种数据,比如道路质量、限速、红绿灯位置等,我想用它。
有没有什么好的算法呢?或者至少是对 A* 的良好修改?
【问题讨论】:
-
“最快”路径算法只是一种最短路径算法,其中边缘权重是加权旅行时间而不是距离。 A* 仍然是你最好的选择,你只需要想出一个好方法来根据可用数据估计权重(并想出一个启发式方法)。
-
为什么在计算边缘成本时不能将所有因素都考虑在内(就像您建议的道路质量一样)?
-
我认为必须有更好的方法。但如果每个人都认为修改后的 A* 是最好的解决方案,那么我会接受它。
-
A* 中没有规定你应该选择什么作为边权重。所以从某种意义上说,它仍然不是 A* 的修改版。