假设您有一个加权无向完整图,其中n个节点具有非负权重Cij,其中i = j Cii = 0,并且对于i!= j Cij>假设您必须找到任意两个节点i和j之间的最大最短路径。在这里,你可以轻松地使用Floyd-Warshall,或者使用Dijkstra n次,或者其他任何东西,然后在所有n ^ 2个最短路径中找到最大值。
现在假设Cij不是常数,而是可以取两个值,Aij和Bij,其中0 <= Aij&lt; = Bij。我们也有Aii = Bii = 0.假设您还需要找到最大最短路径,但是约束条件m边必须取值Bij和其他Aij。并且,如果m> n ^ 2,则所有边都等于Bij。但是,当找到最短路径i - > p1 - &gt; ... - &gt; pk - &gt; j,你对最坏的情况感兴趣,因为在那条路径上你需要选择那些边来获取Bij的值,这样如果你的方向上有固定的节点,那么路径值是最大的。
例如,如果你有长度为4的路径i-k-l-j,并且在该路径上的最佳解决方案中,只有一个权重变为Bij,其他权重变为Aij。并且令m1 = Bik + Akl + Alj,m2 = Aik + Bkl + Alj,m3 = Aik + Akl + Blj,该路径的值是max {m1,m2,m3}。因此,在i和j之间的所有路径中,您必须选择一个最大值(在此示例中描述)最小(这是最短路径定义的变体)。你必须为所有对i和j做这件事。
您没有给出每条路径上需要改变多少的约束,而是给出m的值,m是在完整图形中应该改变的一些权重。问题是要找到最短路径的最大值,如上所述。
另外,我的问题是:这是NP难问题,还是存在一些多项式解?