我正在寻找一种路径搜索算法,它可以让我找到已知点 A 和 B 之间的最短路径,这些点是节点,并且连接到其他节点。
在我的情况下,大约有 20,000 个节点,其中每个节点最多可以有 16 个连接(链接),这些连接(我的意思是,如果节点 A 连接到节点 B,这并不意味着节点 B 连接到节点A,这是用于右车道驾驶和左车道驾驶,用于高速公路)
为避免出现问题,这是我对连接(以及定向)的意思的图像:
示例地图:
从 A 到 D 最短的路线是 A->C->D,从 D 到 A 就是 D->A
我知道每个链接之间的所有距离,并且没有距离是负数。(因为我知道我的节点的所有 XYZ 位置)
简而言之:
- 对于我的情况,C 或 C++(我可以同时使用)中最快的算法是什么?
-当然我需要检索路线,但我还需要(计算/或)检索从 A 点到 B 点的距离)
- 有没有可以满足我需要的图书馆
- 可选:是否有一个带有多线程(支持)的库(如果有,是哪一个)?
- 是否有可用的代码示例?
为什么我问这个问题是因为我想改进一些非常慢的代码。我想通过重写代码来做到这一点,因为目前使用的是 Dijkstra 而不是针对这种情况。
我目前使用的代码在这里:
https://gpb.googlecode.com/files/RouteConnector_180.zip
这里也是代码在现实生活中的一个示例用法: