Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 用有向图实现最短路径算法的最佳方法_Algorithm_Graph_Shortest Path - Fatal编程技术网

Algorithm 用有向图实现最短路径算法的最佳方法

Algorithm 用有向图实现最短路径算法的最佳方法,algorithm,graph,shortest-path,Algorithm,Graph,Shortest Path,假设我有一个带边的加权无向图,想要找到最短路径,以及从起点到终点的所有可能路径,并且有距离,那么实现这一点的最佳方法是什么?广度-深度搜索和k路径算法似乎提供了合理的解决方案,尽管我不确定哪一个是最好的抱歉,不能将此作为评论发布 如果您需要所有可能的路径,那么不可能比“树”遍历(例如BFS或DFS)做得更好。注意,你需要考虑每一个节点的次数,从一开始就可以达到(树)比原来的图大很多——即使在你的图表中有循环,即使是无限的,但是假设你没有。 要获得最小路径,您可以在最后的列表中查找它;或者,您可以


假设我有一个带边的加权无向图,想要找到最短路径,以及从起点到终点的所有可能路径,并且有距离,那么实现这一点的最佳方法是什么?广度-深度搜索和k路径算法似乎提供了合理的解决方案,尽管我不确定哪一个是最好的

抱歉,不能将此作为评论发布

如果您需要所有可能的路径,那么不可能比“树”遍历(例如BFS或DFS)做得更好。注意,你需要考虑每一个节点的次数,从一开始就可以达到(树)比原来的图大很多——即使在你的图表中有循环,即使是无限的,但是假设你没有。
要获得最小路径,您可以在最后的列表中查找它;或者,您可以使用类似Dijkstra的顺序进行树遍历,这样最短路径将首先出现。

Dijkstra并通过检查距离是否等于两点之间的距离差来重建路径。请尝试,因为您要求“所有可能的路径”您可能希望在周期中指定您的期望值。但我认为这个问题现在已经离题了。因为您选择了“所有可能的路径”,请注意,这些路径的数量可能会随着输入的大小呈指数增长,因此通常的效率度量(即多项式有界的运行时间)可能不适用。请注意,一旦图形中存在循环,则“所有路径”很快增加到无穷大,除非您明确排除包含循环的路径。