我如何找到从任何节点到集合A的最短路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何找到从任何节点到集合A的最短路径相关的知识,希望对你有一定的参考价值。

我在图G中有一个无向图'G'和一组节点'A'

我正在努力寻找一种有效的算法,该算法可以找到从图G中的任何节点到集合'A'中最近的节点的最短路径

[我考虑过:到所有节点的距离都最小,在集合A中的每个节点上运行BFS算法,并且在BFS完成后,如果找到较短的路径,则更新数组,这时的复杂度为O(k(n + m))-当K增长时,这是很多事情,我被告知我可以使用更有效的算法。请注意,本练习仅允许我使用BFS算法

答案

[创建一个额外的节点,该节点的'A'中的每个节点都具有边缘。从这个额外的节点运行BFS。从每个节点到“ A”中最近的节点的距离比到这个额外节点的距离小1。

以上是关于我如何找到从任何节点到集合A的最短路径的主要内容,如果未能解决你的问题,请参考以下文章

找到两个节点(顶点)之间的最短路径

如何在 Floyd-Warshall 算法中找到最短路径和最短成本

使用 Floyd 算法找到最短路径

彩色边图中的最短路径

具有动态边缘成本的最短路径(算法)

算法导论——单元最短路径