引入
如题。
首先,建一个超级源点 0 并向所有点连权值为 0 的边是为了求一组非正数的可行解, 因为这些边所代表的约数即为 (x_ile 0), 然后依据 ({x_1,cdots,x_n}) 可行则 ({x_1+Delta,cdots,x_n+Delta}) 可行的定理就可以构造出别的可行解。
至于为什么求出的是可行解: 第一轮更新后所有 (x_i) 都变成了 (0), 则超级源点代表的约束全部被满足。
通过算法导论的习题可以了解到, 这样求出的解,满足 (sumlimits_i x_i) 最大, 同时满足 (max{x_i}-min{x_i}) 最小, 即和最大同时极差最小。
和最大的证明
首先,第一轮更新后, (x_ile 0) 的约束已经被满足, 且此时是最大的。
之后对于每个形如 (x_ile x_j + w(j,i)) 的约束, 在最短路更新时如果不满足, 则 (x_i) 会被赋值成 (x_j + w(j,i)), 而这显然是最大的满足条件的解。
总的来说, 最短路算法通过减小 (x_i) 的值使得被满足的约束越来越多(首先明确被满足的约束的数量是一定不会在最短路的过程中变少的), 在此基础上使得 (x_i) 减小的值尽量小
极差最小的证明
不会,死了
怎么让和最小
改成让 (-left(sumlimits_{i}x_i ight)) 最大, 这就要求对原先的约束变形,具体地:(x_ile x_j + w(j,i)) 变成 (-x_i ge -x_j - w(j,i)) ,若令 (y_i = -x_i), 则原式子即为 (y_i ge y_j - w(j,i)), 在变形一次即得 (y_j le y_i-w(j,i))。
于是, 和最小就是把约束反着连边, 然后最后把求得的解变为相反数即可。
怎么让极差最大
不会,死了。
不过也不像是有这种东西。