C++ 在我的场景中,哪种路径搜索算法的实现速度最快?
我正在寻找一种路径搜索算法,该算法将允许我找到已知点a和B之间的最短路径,这些点是节点,并且与其他节点相连 在我的例子中,大约有20000个节点,每个节点最多可以有16个定向连接(链路)(我的意思是,如果节点a连接到节点B,并不意味着节点B连接到节点a,这是用于右车道驾驶和左车道驾驶,用于高速公路) 为了避免出现问题,以下是我对连接(以及定向连接)的理解: 示例地图: 从A到D这里最短的路线是A->C->D,从D到A的路线是D->A 我知道每个链接之间的所有距离,没有距离是负的。 (因为我知道节点的所有XYZ位置) 简言之: < > C或C++中最快的算法(我可以同时使用)? -当然,我需要检索路线,但我还需要(计算/或)检索从A点到B点的距离) -有适合我需要的图书馆吗 -可选:是否有支持多线程的库(如果有,是哪一个) -是否有可用的代码示例 我问这个问题是因为我想改进一些非常慢的代码。我想通过重写代码来做到这一点,因为目前使用的是Dijkstra,而不是这种情况下的默认值 我目前使用的代码如下: 下面是代码在实际生活中的用法示例:C++ 在我的场景中,哪种路径搜索算法的实现速度最快?,c++,c,path-finding,C++,C,Path Finding,我正在寻找一种路径搜索算法,该算法将允许我找到已知点a和B之间的最短路径,这些点是节点,并且与其他节点相连 在我的例子中,大约有20000个节点,每个节点最多可以有16个定向连接(链路)(我的意思是,如果节点a连接到节点B,并不意味着节点B连接到节点a,这是用于右车道驾驶和左车道驾驶,用于高速公路) 为了避免出现问题,以下是我对连接(以及定向连接)的理解: 示例地图: 从A到D这里最短的路线是A->C->D,从D到A的路线是D->A 我知道每个链接之间的所有距离,没有距离是负的。 (因为我知
试试看。也有。A*已被证明是解决一般问题的最快路径查找算法。20k节点?16条可能的路线?听起来太多可能的组合16从一个节点到另一个节点的连接你所说的“Dijkstra在这种情况下被使用而不是使用”是什么意思,然后节点之间的欧几里德距离是最短路径长度的下限,你可以使用a*。我的意思是我知道这两个点的位置,Dijkstra计算从a到每个其他节点的距离,这使得它做的工作比需要的多。”对于给定的源顶点(节点)在图中,算法查找该顶点与其他每个顶点之间成本最低的路径(即最短路径)。它还可用于查找从单个顶点到单个目标顶点的最短路径的成本,方法是在确定到目标顶点的最短路径后停止算法。”我建议使用boost的A*搜索