0

我正在寻找一种路径搜索算法,它可以让我找到已知点 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

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

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

4

2 回答 2

2

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

于 2012-11-28T01:11:24.747 回答
0

试试Dijkstra 算法Boost::Graph实现了它。

于 2012-11-19T11:24:04.617 回答