卡在Djikstra算法上

时间:2018-12-02 13:12:03

标签: algorithm graph graph-theory

我正在尝试从我的教科书中将此图应用Djikstra的算法,但是当尝试从G-> C遍历时,我一直陷在顶点A上。这是图形图像的链接: LINK

我将在下面概述我的步骤:

  1. 我从初始顶点(G)开始。

  2. A的成本为6,E的成本为1,H的成本为4,因为它们最初都是无穷大。 G被标记为已访问。

  3. 我花最少的钱去邻居。在这种情况下,它是E。

  4. 在E处,我将B的成本设置为1 + 2 = 3,而将F的成本设置为1 + 2 =3。然后将E标记为已访问。

  5. 我以最低的成本拜访E的邻居:由于B和F的成本相同,因此我开始陷入困境。假设我选择了B。
  6. 在B处,我将C的成本设置为3 + 7 = 10,将A的成本设置为5。
  7. 现在A是成本最低的邻居,但是访问它会使我陷入困境,因为我无法离开。

如果我处理不正确,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

由于G已被标记为已访问,因此不再考虑该节点,因此也考虑了A,因为不再有可能的连接。

答案 1 :(得分:0)

在第6步中,已访问的节点是G,E和B。现在,您必须选择最小距离值(即F)的节点。因此,第7步中的缺陷是实际上是假设它必须是邻居节点。

从步骤7继续:

  1. 选择F。将C的距离更新为6。访问F。
  2. 选择H。将D的距离更新为6。访问H。
  3. 现在选择A。不需要更新。马克A来了。
  4. 以任意顺序选择C或D,并将它们标记为已访问。这里不需要更新。