最短路解差分约束得到的解的性质(未补完)


引入

如题。

首先,建一个超级源点 0 并向所有点连权值为 0 的边是为了求一组非正数的可行解, 因为这些边所代表的约数即为 \(x_i\le 0\), 然后依据 \(\{x_1,\cdots,x_n\}\) 可行则 \(\{x_1+\Delta,\cdots,x_n+\Delta\}\) 可行的定理就可以构造出别的可行解。

至于为什么求出的是可行解: 第一轮更新后所有 \(x_i\) 都变成了 \(0\), 则超级源点代表的约束全部被满足。

通过算法导论的习题可以了解到, 这样求出的解,满足 \(\sum\limits_i x_i\) 最大, 同时满足 \(max\{x_i\}-min\{x_i\}\) 最小, 即和最大同时极差最小。


和最大的证明

首先,第一轮更新后, \(x_i\le 0\) 的约束已经被满足, 且此时是最大的。

之后对于每个形如 \(x_i\le x_j + w(j,i)\) 的约束, 在最短路更新时如果不满足, 则 \(x_i\) 会被赋值成 \(x_j + w(j,i)\), 而这显然是最大的满足条件的解。

总的来说, 最短路算法通过减小 \(x_i\) 的值使得被满足的约束越来越多(首先明确被满足的约束的数量是一定不会在最短路的过程中变少的), 在此基础上使得 \(x_i\) 减小的值尽量小


极差最小的证明

不会,死了


怎么让和最小

改成让 \(-\left(\sum\limits_{i}x_i\right)\) 最大, 这就要求对原先的约束变形,具体地:\(x_i\le 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)\)

于是, 和最小就是把约束反着连边, 然后最后把求得的解变为相反数即可。

例题


怎么让极差最大

不会,死了。
不过也不像是有这种东西。

posted @ 2020-11-29 12:25  xwmwr  阅读(106)  评论(0编辑  收藏  举报