Algorithm 带约束的最短路径算法

Algorithm 带约束的最短路径算法,algorithm,dynamic-programming,dijkstra,shortest-path,Algorithm,Dynamic Programming,Dijkstra,Shortest Path,我想解决最短路径算法的一个变种。我不知道如何处理额外的限制 很少有城市(可以使用Dijkstra来解决这个问题,首先需要创建一个状态图,其中包含每个状态 表示城市和剩余时间。因此,在每个州(城市A,时间t)和州(城市B,时间t1)之间,只有在给定时间为(t1-t)的情况下,从城市A移动到城市B时,才能有一条边。每个边的值将是通行费。使用标准Dijkstra解决此问题很简单。您可以尝试此方法,创建表示城市之间时间和通行费的图表副本。然后一起解决这些图表,而在步骤i中,您将能够最小化所有这些约束。我

我想解决最短路径算法的一个变种。我不知道如何处理额外的限制


很少有城市
(可以使用Dijkstra来解决这个问题,首先需要创建一个状态图,其中包含每个状态

表示城市和剩余时间。因此,在每个州(城市A,时间t)和州(城市B,时间t1)之间,只有在给定时间为(t1-t)的情况下,从城市A移动到城市B时,才能有一条边。每个边的值将是通行费。使用标准Dijkstra解决此问题很简单。

您可以尝试此方法,创建表示城市之间时间和通行费的图表副本。然后一起解决这些图表,而在步骤i中,您将能够最小化所有这些约束。我认为可以,因此您的dp状态为[剩余时间][城市]?剩余时间条件将帮助您的程序避免无限循环,应该没问题!@Phamtrong是的,我考虑过相同的方法,但不确定这是否是我在IA考试中遇到的最好的方法,正确的答案是设置一个启发式来结合这两个约束。这可能不是最优的想法。请看一下。这可能会给您带来好处你是谷歌的理想主义者。它会给你一大堆关于这个问题的论文。这个问题显然是NP难的。