Algorithm 加权图与所有对路径

Algorithm 加权图与所有对路径,algorithm,shortest-path,Algorithm,Shortest Path,我正在尝试解决此链接中的一个问题: (这不是家庭作业问题) 考虑一个有n个顶点和e条边的加权有向图G,其权重为整数。假设G不包含负循环,并且对于G中的每对顶点u和v,对于某个正整数d,从u到v的距离在[-2d,2d]范围内。我们将在G中固定一个特定的边(x,y),并考虑G中的距离发生了什么变化,当我们改变与该边相关的权重时(剩下的所有边权值都固定)。 设计一个以G为输入的算法,以及以G为单位的指定边(x,y)。该算法的输出应为该边(x,y)的权重可采用的整数值范围,以便以G为单位的所有距离保持

我正在尝试解决此链接中的一个问题:

(这不是家庭作业问题)

考虑一个有n个顶点和e条边的加权有向图G,其权重为整数。假设G不包含负循环,并且对于G中的每对顶点u和v,对于某个正整数d,从u到v的距离在[-2d,2d]范围内。我们将在G中固定一个特定的边(x,y),并考虑G中的距离发生了什么变化,当我们改变与该边相关的权重时(剩下的所有边权值都固定)。 设计一个以G为输入的算法,以及以G为单位的指定边(x,y)。该算法的输出应为该边(x,y)的权重可采用的整数值范围,以便以G为单位的所有距离保持不变。请注意,此范围将不为空,因为它必须包括边的原始重量(x,y)。还请注意,无穷大可能作为范围的端点出现(即范围可能不是有限的)。为此,您可以返回“∞” 作为端点。算法的运行时间必须是n、e和d中的多项式(因此,您的运行时间不应将这些参数中的任何一个显示为指数)。请证明算法的正确性

我一直在思考以下几点:
由于距离在一个范围内,权重也应该在一个范围内。一个选项是我们运行Djkstra的多次。我们如何对此进行优化?

是的,您可以运行Dijkstra n次。或者您可以运行Floyd Warshall,这是专为这些问题设计的。总体而言,它们具有类似的复杂性边界。

此图中的边权重为负值它,Djikstra的算法将不起作用。@moreON是的,如果有负边Dijkstra将不起作用。问题清楚地表明有负边权重。