具有一定约束的最短路径算法

时间:2014-05-27 04:48:31

标签: algorithm dynamic-programming dijkstra shortest-path

我想解决最短路径算法的变化。我无法弄清楚如何处理其他限制。

  

很少有城市(<=50)和两个(N * N)矩阵一起被提供   表示城市之间的旅行时间和城市之间的收费。现在给出   在时间t (<10000),我们必须选择从城市0到达的路径   到城市N-1,以便收费成本最低,我们完成旅行   在给定时间内t

我知道只有一个参数,例如只有时间,我们可以使用最短路径算法,例如Bellman–Ford algorithmDijkstra's algorithm。但是如何修改它以包含两个约束?我们如何为问题制定动态规划解决方案?

我正在尝试使用DP +完整搜索来解决它。我是正确的方向,还是有比这些方法更好的算法?

1 个答案:

答案 0 :(得分:2)

可以使用Dijkstra来解决这个问题,首先需要创建一个状态图,每个状态  代表城市和剩余时间。因此,在每个州(城市A,时间t)和州(城市B,时间t1)之间,如果您可以从城市A移动到城市B,并且给定时间是(t1-t),则只能存在边缘。并且每条边的价值都是收费。使用标准Dijkstra解决这个问题很简单。