【问题标题】:Dijkstras Algorithm SetsDijkstra 算法集
【发布时间】:2017-05-04 16:20:55
【问题描述】:

我目前正在为我的一项考试进行复习,并且遇到了这个问题, “一步一步地展示使用 Dijkstra 算法找到从顶点 A 到图中每个顶点的最短路径。在每一步都应该清楚地指出已知集和边界集。” 我了解如何找到最短路径,但我不确定边界集是什么? 谢谢!

【问题讨论】:

    标签: algorithm set dijkstra


    【解决方案1】:

    Dijkstra 算法的制定方法有很多种,但大多数版本背后的核心思想是将节点分成三组:

    1. 您已经知道从起点开始的最短路径的节点。这最初只是开始节点,并且随着算法运行时间越来越长而增长。

    2. 边界中的节点。这些是与第一组中的节点相邻的节点,您可以在其中猜测到节点的距离,但不一定能确定猜测是否正确。在算法的每一步中,您选择边界中成本最低的节点,并将其移动到您知道最短路径的节点组中。

    3. 未探索的节点。这些都是剩下的节点。

    如果您使用优先级队列实现 Dijkstra 算法,则边界节点通常是优先级队列中的节点。如果您维护到节点的候选距离列表,而是在每个点选择最便宜的距离,则边界由候选距离不是无穷大的所有节点组成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-13
      • 2011-06-27
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多