我目前正在实现一个导航系统来穿越欧洲。到目前为止,我已经实现了最短路径(Dijkstra 和 A*)。这是最简单的部分,现在我需要一些最快路径的算法。它必须快速可靠。
我知道这可以通过为道路质量分配值(例如 1 条高速公路,2 条主干道......),然后将这些值乘以路线成本并最终使用 Dijkstra 或 A* 来完成,但这并不复杂够了。
我正在寻找更准确的算法。 map 本身包含各种数据,如道路质量、限速、红绿灯位置等,我想用它。
有什么好的算法吗?或者至少是对 A* 的良好修改?
最佳答案
在最短路径的实现中,您选择距离作为边的权重。
现在,如果您想找到最快的路径,您只需选择预期行程时间作为边的权重。同样,如果您想要最可靠的路径,您可以选择一些“可靠性”度量作为边缘的权重。
A*(尽管并不总是最优的,因为它依赖于启发式函数)可能是此类应用程序的最佳选择。如果您的 A* 不够准确,我建议您要么选择 Dijkstras,要么花一些时间调整和改进您的启发式函数。
关于algorithm - 最快路径算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825142/