首先重温线性规划问题的一般形式(之一):
当所有限制都形如 \(x_i-x_j\ge b\) 的时候,矩阵 \(A\) 的每一行都至多有一个 \(+\) 和一个 \(-\)。设向量 \(x\) 的长度为 \(n\),矩阵 \(A\) 的大小为 \(m\times n\)。
考虑构造一个 \(n\) 个点 \(m\) 条边的网络流图(不包括源汇),令 \(y_i\) 表示第 \(i\) 条边流过的流量。那么 \(\textbf{maximize }y^Tb\) 的条件就代表第 \(i\) 条边的费用是 \(b_i\),即连一条 \((u,v,+\infty,b_i)\) 的边,然后求最大费用流。
对于 \(yA\le c^T\),可以发现 \(y\) 乘上 \(A\) 的每一列的信息可以视为关于那个节点的信息,\(+\) 代表从这个节点流出,\(-\) 表示流入。那么,如果 \(c_i\ge 0\),条件即为 \(out-in\le c_i\),可以用 \((S,i,c_i,0)\) 和 \((i,T,+\infty,0)\) 表示;如果 \(c_i< 0\),条件即为 \(in-out\ge -c_i\),可以用 \((i,T,[-c_i,+\infty),0)\) 表示。