在我的场景中哪种路径搜索算法最快?

时间:2012-11-19 11:17:52

标签: c++ c path-finding

我正在寻找一种路径搜索算法,它允许我找到已知点A和B之间的最短路径,它们是节点,并且连接到其他节点。

在我的情况下,大约有20,000个节点,每个节点最多可以有16个连接(链接)指向(我的意思是,如果节点A连接到节点B,它并不意味着节点B连接到节点A,这是用于右车道驾驶和左车道驾驶,高速公路)

为了避免出现问题,这里有一个关于连接(以及指示)的意思的图像:

enter image description here

示例地图: enter image description here

从A到D,这里最短的路线是A-> C-> D,从D到A,它只是D-> A

我知道每条链路之间的距离都是负的。 (因为我知道节点的所有XYZ位置)

简而言之:

- 对于我的案例,C或C ++中最快的算法(我可以同时使用)?

-ofcourse我需要检索路线,但我还需要(计算/或)检索从A点到B点的距离。

- 是否有可满足我需求的图书馆

- 可选:是否有一个具有多线程(支持)的库(如果是,哪一个)?

- 是否有可用的代码示例?

为什么我问这个问题是因为我想改进一些非常慢的代码。我想通过重写代码来做到这一点,因为目前正在使用Dijkstra而不是这种情况。

我目前使用的代码在这里:

https://gpb.googlecode.com/files/RouteConnector_180.zip

这里是代码现实生活中的一个示例用法:

http://www.youtube.com/watch?v=EHj7GavsbqQ&t=40

2 个答案:

答案 0 :(得分:2)

A *已被证明是解决一般问题的最快寻路算法。

答案 1 :(得分:0)