【发布时间】:2014-04-11 20:44:23
【问题描述】:
我一直在寻找解决方案,但被卡住了。
我需要在无向图中找到最短路径。作为输入,我得到了一组无向边(x,y,p),其中x 和y 是节点,p 是x 和y 之间的边的权重。
路径的长度定义为每个节点的相邻边之间的绝对差之和。
边缘示例:
1 2 1
1 3 5
2 4 5
3 4 5
4 6 2
从1到6有多个路径:
1 -> 2 -> 4 -> 6 weight = |5 - 1| + |2 - 5| = 7
1 -> 3 -> 4 -> 6 weight = |5 - 5| + |2 - 5| = 3
因此最短路径的长度为3,应该是算法的输出。
【问题讨论】:
-
权重是节点还是边?听起来您有节点权重并使用绝对差作为边权重。在这种情况下,您可以使用 Dijkstra。
-
权重在边缘,在练习中定义为计算节点 f.e y 的权重,其中存在路径 x->y->z 然后 y 的权重 =|xy -yz| (xy 是 x 和 y nddes 之间的边的权重)
-
但是你有正权重。您可以在找到最短路径之前转换图表。
-
我说我不知道权重是否为正 :) 我对权重和周期一无所知
-
您使用绝对差来查找路径的成本,因此您具有非负权重,因为绝对差是非负的。
标签: algorithm graph depth-first-search shortest-path