Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有比python中的networkx更有效的方法来计算最短路径问题?_Python_Networkx_Shortest Path_Dijkstra - Fatal编程技术网

有没有比python中的networkx更有效的方法来计算最短路径问题?

有没有比python中的networkx更有效的方法来计算最短路径问题?,python,networkx,shortest-path,dijkstra,Python,Networkx,Shortest Path,Dijkstra,我用networkx和single_source_dijkstra在加权图上计算从一个源到一个目标的最短路径 然而,我遇到了内存问题 有没有更有效的计算方法?Networkx的替代方案?请参阅我的代码: cost, shortestpath = nx.single_source_dijkstra(graph, startpointcoords, secondptcoords,cutoff=10000000) 显然networkx的A*算法效率更高。然后,我用我发布的dijkstra算法计

我用networkx和single_source_dijkstra在加权图上计算从一个源到一个目标的最短路径

然而,我遇到了内存问题

有没有更有效的计算方法?Networkx的替代方案?请参阅我的代码:

   cost, shortestpath = nx.single_source_dijkstra(graph, startpointcoords, secondptcoords,cutoff=10000000)

显然networkx的A*算法效率更高。然后,我用我发布的dijkstra算法计算出结果路径的长度。

也许可以尝试使用其他算法?您的图形可能有太多的顶点,但边很少,在这种情况下,您可以在networkX中使用Bellman Ford
Bellman\u Ford\u path()

另一个解决方案是使用另一个python包,例如,答案有不同的可能库


最后一个解决方案是实现您自己的算法!也许是Gabow的算法,但您必须非常高效,例如,通过使用numpy和numba

双向dijkstra算法应该会产生显著的改进。这是

一个很好的类比是在3D中:将一个气球放置在点x处,并将其展开,直到它到达点y。你放入的空气量与它们之间距离的立方成正比。现在在每一点上放一个气球,并充气,直到它们接触。空气的总体积只有原来的1/4。在更高的维度中(这与大多数网络更相似),减少的次数甚至更多