zoukankan      html  css  js  c++  java
  • 差分约束系统相关证明(存在负环则无解证明)

    先引用网上的关于差分约束的解释:

    一、引例

    1、一类不等式组的解

    给定n个变量和m个不等式,每个不等式形如 x[i] – x[j] <= a[k] (0 <= i, j < n, 0 <= k < m, a[k]已知),求 x[n-1] – x[0] 的最大值。例如当n = 4,m = 5,不等式组如图一-1-1所示的情况,求x3 – x0的最大值。

    图一-1-1

    观察x3 – x0的性质,我们如果可以通过不等式的两两加和得到c个形如 x3 – x0 <= Ti 的不等式,那么 min{ Ti | 0 <= i < c } 就是我们要求的x3 – x0的最大值。于是开始人肉,费尽千辛万苦,终于整理出以下三个不等式:

    1. (3) x3 – x0 <= 8

    2. (2) + (5) x3 – x0 <= 9

    3. (1) + (4) + (5) x3 – x0 <= 7

    这里的T等于{8, 9, 7},所以min{ T } = 7,答案就是7。的确是7吗?我们再仔细看看,发现的确没有其它情况了。那么问题就是这种方法即使做出来了还是带有问号的,不能确定正确与否,如何系统地解决这类问题呢?

    让我们来看另一个问题,这个问题描述相对简单,给定四个小岛以及小岛之间的有向距离,问从第0个岛到第3个岛的最短距离。如图一-1-2所示,箭头指向的线段代表两个小岛之间的有向边,蓝色数字代表距离权值。

    图一-1-2

    这个问题就是经典的最短路问题。由于这个图比较简单,我们可以枚举所有的路线,发现总共三条路线,如下:

    1. 0 -> 3 长度为8

    2. 0 -> 2 -> 3 长度为7+2 = 9

    3. 0 -> 1 -> 2 -> 3 长度为2 + 3 + 2 = 7

    最短路为三条线路中的长度的最小值即7,所以最短路的长度就是7。这和上面的不等式有什么关系呢?还是先来看看最短路求解的原理,看懂原理自然就能想到两者的联系了。

    若有负环,则不等式组解不存在:

    若存在负环,则已知a+b+c<0。

    又已知:

    B-A<=c……1

    C-B<=a……2

    A-C<=b……3

    假设存在解A,B,C

    2+3得:A-B<=a+b

    和1联立得:-c<=A-B<=a+b

    又因为:a+b<-c

    所以:a+b<a+b,明显不符合,所以解不存在

    解的存在性

    上文提到最短路的时候,会出现负权圈或者根本就不可达的情况,所以在不等式组转化的图上也有可能出现上述情况,先来看负权圈的情况,如图三-3-1,下图为5个变量5个不等式转化后的图,需要求得是X[t] – X[s]的最大值,可以转化成求s到t的最短路,但是路径中出现负权圈,则表示最短路无限小,即不存在最短路,那么在不等式上的表现即X[t] – X[s] <= T中的T无限小,得出的结论就是 X[t] – X[s]的最大值 不存在。

    图三-3-1

    再来看另一种情况,即从起点s无法到达t的情况,如图三-3-2,表明X[t]和X[s]之间并没有约束关系,这种情况下X[t] – X[s]的最大值是无限大,这就表明了X[t]和X[s]的取值有无限多种。

    图三-3-2

    在实际问题中这两种情况会让你给出不同的输出。综上所述,差分约束系统的解有三种情况:1、有解;2、无解;3、无限多解;

  • 相关阅读:
    ubuntu-18.04自动配置脚本
    Nodejs on windows 10
    终端接收FFMEPG推送的流出现音频卡顿问题
    FFMPEG 4.0 版本 支持PSI设置
    FFMPEG 支持https协议
    FFmpeg修改AC3编码的描述子
    FFMPEG 设置socket缓冲区
    将 h264 格式转换为YUV数据
    将 YUV 数据 编码为 h.264 格式
    将 PCM 数据编码为AAC格式
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270916.html
Copyright © 2011-2022 走看看