它们的差是不变的,
那么这个差分
约束系统中的所有不等式都不会被破坏。
差分约束系统的解法利用到了单源最短路径问题中的三角形不等式。
即对于
任何一条边
u -> v
,都有:
d(v)
<=
d(u)
+
w(u,
v)
其中
d(u)
和
d(v)
是从源点分别到点
u
和点
v
的最短路径的权值,
w(u, v)
是边
u -> v
的权值。
显然以上不等式就是
d(v) - d(u) <= w(u, v)
。这个形式正好和差分约束
系统中的不等式形式相同。于是我们就可以把一个差分约束系统转化成一张图,
每个未知数
Xi
对应图中的一个顶点
Vi
,把所有不等式都化成图中的一条边。对
于不等式
Xi - Xj <= c
,把它化成三角形不等式:
Xi <= Xj + c
,就可以化成
边
Vj
->
Vi
,权值为
c
。最后,我们在这张图上求一次单源最短路径,这些三角
形不等式就会全部都满足了,因为它是最短路径问题的基本性质嘛。
话说回来,
所谓单源最短路径,
当然要有一个源点,
然后再求这个源点到其
他所有点的最短路径。
那么源点在哪呢?我们不妨自已造一个。
以上面的不等式
组为例,我们就再新加一个未知数
X0
。然后对原来的每个未知数都对
X0
随便加
一个不等式
(这个不等式当然也要和其它不等式形式相同,
即两个未知数的差小