常见网络流问题的线性规划形式(持续更新)

发布时间 2023-06-29 15:28:10作者: kyEEcccccc

\(c_e, c_{u, v}\) 表示 capacity,\(w_e, w_{u, v}\) 表示 cost。\(f_e, f_{u, v}\) 表示当前流量,\(d_u\) 表示初始流量,即要求 \(\sum\limits_{p}f_{u, p} - \sum\limits_{q}f_{q, u} = d_u\)

最小割

考虑对于每个点设置 \(X_i \in \{0, 1\}\) 表示是否在 \(S\) 块内。则形式为:

\[\min \sum\limits_{i \neq j} X_i(1 - X_j)c_{i, j} + \infty\cdot(1 - X_S + X_T) \]

(带有初始流量的)最小费用(循环)流

其它费用流问题可以化为这个形式。

\[\begin{cases} -f_{u, v} \ge -c_{u, v}\\ \sum\limits_{p}f_{u, p} - \sum\limits_{q}f_{q, u} \ge d_u\\ \min \sum_{u, v} w_{u, v}f_{u, v} \end{cases} \]

是一个最小化形式的线性规划问题。

费用流对偶

下面考虑它的对偶形式,\(X_{u, v}\) 是边流量限制的对偶,\(Y_u\) 是点流量平衡的对偶。

\[\begin{cases} -X_{u, v} + Y_u - Y_v \le w_{u, v}\\ \max -\sum\limits_{u, v}c_{u, v}X_{u, v} + \sum\limits_{u}d_uY_u \end{cases} \]

显然 \(X_{u, v} = \max\{0, Y_u - Y_v - w_{u, v}\}\),于是:

\[\max -\sum\limits_{u, v}c_{u, v}\max\{0, Y_u - Y_v - w_{u, v}\} + \sum\limits_{u} d_uY_u \]

它的一个常见用法是设 \(c_{u, v} = \infty\),则变成了有若干个限制 \(Y_u - Y_v - w_{u, v} \le 0\)\(\max \sum\limits_u d_uY_u\)