2012-07-22 151 views
1

我正面对的是我认为的图形上最短路径问题。图最短路径?

我需要找到从节点A到B的最短路径,因为所有的边都对连接的顶点有正的权重,∞对于没有连接的顶点。

顶点具有可变的正面权重。

考虑路径中涉及的所有顶点,路径的代价是具有最大权重的顶点的权重。

我应该在这种情况下应用Dijkstra吗?如果是的话,考虑到每个顶点的权重根据以前访问过的顶点而变化?

你能指出我如何解决这个问题吗?

+0

Dijkstra不断发现新路径并更新节点权重,如果在制作树的时候如果大于以前的权重,Dijkstra是做这件事的好方法。您可能还想看看A * :) – 2012-07-22 09:54:47

+1

“我应该在这种情况下应用Dijkstra吗?如果是这样,考虑到每个顶点的权重会根据以前访问过的顶点而变化?” - >是每个顶点的重量可能会改变。这不是问题,该算法用于解决你粘贴的问题:) – 2012-07-22 10:08:23

+0

好吧,所以基本上我会尝试在每个步长的每个步长上用我的函数max(weight(path_vertexes))应用Dijkstra计算,而不是简单地添加边并将顶点权重视为当前路径成本,就像问题的基本版本一样。 – 2012-07-22 10:15:51

回答

0

我不能理解你是否应该考虑边缘的权重,因为你说你希望顶点上的最大/最小权重的路径从A到B. 我的解决方案是将每个顶点上的权重,到边上的权重,就像在图像中一样:enter image description here

现在您想要找到从A到B的路径,其中边缘上的最大权重是最小/最大值。 您可以使用MST algotirhm,因为您不关心路径长度,而只关注最大/最小边缘成本。