如何在计算顶点时找到最短路径没有边缘?

时间:2014-03-11 21:19:08

标签: algorithm graph shortest-path

我有一个Graphs的任务,我需要找到最短的路径。

它不是正常的算法,因为你不需要计算路径,你需要计算顶点。

规则就像通过特定Vertex的成本一样:

| P = costOfPathFromThePreviousVertex - costOfPathToTheNextVertex |

所以例如当你有Graph时:       A-> B-> C->

,费用是

  A->B = 10 ;
  B->C = 15 ;

通过Vertex B的成本将是:       P = | 10 - 15 |

假设根和目标顶点的成本= 0。

因此,在上述情况下,通过B从A到C的成本将是5.

很容易说,但我不知道在有x顶点时我需要实现哪些算法来获得结果。我正在考虑Dijkstra的算法和DFS,但在这种情况下它们是不正确的。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

我会添加一个连接到实际起点和终点的虚拟起始点和目标顶点。

然后将图表转换为line graph,其中每个边都有一个顶点,例如V1 ="&A- GT; B"和v2 =" B-> C"。

根据您的公式为新图表中的边缘指定权重。

例如,连接v1到v2的边将具有权重| 10-15 |。

然后在此线图上使用Dijkstra算法找到虚拟起始边和虚拟结束边之间的最短路径。