有没有比python中的networkx更有效的方法来计算最短路径问题?
我用networkx和single_source_dijkstra在加权图上计算从一个源到一个目标的最短路径 然而,我遇到了内存问题 有没有更有效的计算方法?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算法计
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。在更高的维度中(这与大多数网络更相似),减少的次数甚至更多