首页 文章

图中的单个目标最短路径

提问于
浏览
7

给定图形和目标节点,如何找到从所有其他顶点到目标顶点的所有最短路径 .

4 回答

  • 16

    Dijkstra的算法 . 您可以向后工作,就像您的目的地是您的起始顶点一样 . 这将为您提供到任何其他节点的距离和路径 .

    • PS:只需记住一件事 . 在将Dijkstra作为起始顶点应用Dijkstra之前,您需要反转边缘才能使其工作 .
  • 1

    假设它是双向的,你可以从目的地开始向外工作 . 这通常称为广度优先搜索(BFS) .

    链接到dest的任何内容的距离都是1.链接到任何节点(尚未计算)的任何内容的距离都为2.重复直到您没有节点 .

    即使它不是双向的,你仍然可以通过一次性通过节点“伪装”其双向性来轻松地做到这一点 .

    无论如何,它的顺序是(V E),其中V是节点数,E是边数 .

  • 0

    如果你有加权边并想要最小化路径上权重的总成本,那么Dijkstra的算法是好的,但是在未加权的图中(所有边具有相同的成本),简单的广度优先搜索将成功 .

  • 0

    只是为了完成上面最有用的答案 .

    为了使该解决方案起作用,您需要在应用Dijkstra并将目标作为起始顶点之前反转图形的边缘 .

相关问题