【差分约束系统】

一、定义

  • 如果一个系统由n个变量和m个约束条件组成,形成m个形如 a i - a j k 的不等式( i , j [ 1 , n ] , k 为常数),则称其为差分约束系统(systemof difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。

二、解法

  • 在图论求最短路过程中将不断的进行松弛操作 d i = m i n ( d j + c o s t [ i ] [ j ] ) 在求出最短路后会得到所有之间有边的 i j d i <= d j + c o s t [ i ] [ j ] 这个式子就和 a i a j <= k 相似。我们就可以利用这种相似性求解不等式中任意两点的最大值和最小值。
  • 求最小值时把所有的不等式转化为 <= 并且求最短路
  • 求最大值时把所有的不等式转化为 >= 并且求最长路

三、解的分布

  • 上文提到最短路的时候,会出现负权圈或者根本就不可达的情况,所以在不等式组转化的图上也有可能出现上述情况,先来看负权圈的情况,如图三-3-1,下图为5个变量5个不等式转化后的图,需要求得是 X [ t ] X [ s ] 的最大值,可以转化成求s到t的最短路,但是路径中出现负权圈,则表示最短路无限小,即不存在最短路,那么在不等式上的表现即 X [ t ] X [ s ] <= T 中的T无限小,得出的结论就是 X [ t ] X [ s ] 的最大值 不存在。
    这里写图片描述
  • 再来看另一种情况,即从起点s无法到达t的情况,如图三-3-2,表明 X [ t ] X [ s ] 之间并没有约束关系,这种情况下 X [ t ] X [ s ] 的最大值是无限大,这就表明了X[t]和X[s]的取值有无限多种。
    这里写图片描述
  • 在实际问题中这两种情况会让你给出不同的输出。综上所述,差分约束系统的解有三种情况:1、有解;2、无解;3、无限多解;

参考:传送门

猜你喜欢

转载自blog.csdn.net/m0_37953323/article/details/79908197