问题描述:
给定adjacencyMatrix和adjacencyList中的图G,其中存在源顶点s和目标顶点d。使用约束找到从s到d的最短路径。约束条件是最短路径成本c具有下限,即,成本c必须大于指定的下限N,但是在大于或等于N的可能路径的所有成本中最小。
我理解这种约束传统的SSSP算法如Bellman ford无法正常工作。如何为这个问题找到最有效的算法?
答案 0 :(得分:0)
我想你想要散步,因为路径不能有循环。
不幸的是,这个问题很容易被建模为变革问题,也就是NPC。
变更问题:给定N种类型的c_i值的硬币,是否可以用这N个硬币改变数字X?
建模:假设所有c_i都是偶数(所有c_i都加倍,如果不是,则加上X)。创建N + 2个顶点,其中第i个顶点表示1< = i< = N的第i个硬币。此外,第(N + 1)个和第(N + 2)个顶点具有所有边缘成本硬币(c_i / 2)。这个问题等同于找到至少为X的最短成本路径,即NPC。减少应该是显而易见的,但如果需要进一步解释,我可以编辑我的答案。