网络流建模

不等式

考虑模型:

  • \(S\)\(T\) 有两条除了起点和重点不相交的路径:\(S\to a\to b\to T\)\(S\to c\to d\to T\)

  • 对于 \(x\in(a,b)\)\(y\in(c,d)\),添加一条边 \((x,y)\),流量为 \(+\infty\)

\[ \begin{matrix} a \to &x \to b \\ &\downarrow \tiny{f=+\infty} \\ c \to &y \to d \end{matrix} \]

考虑这个模型上的最小割,假设我们同时割掉 \((c,y)\)\((x,b)\),此时还存在一条路径 \((a,x,y,d)\)

  • 割掉 \((a,x)\):那么不割 \((x,b)\) 一定更优;
  • 割掉 \((y,d)\):那么不割 \((c,y)\) 一定更优。

所以 \((x,y,f=\infty)\) 限制了 \((c,y)\)\((x,b)\) 不可同时割去。

一选一不选

给定 \(n\) 个物品,每个物品有 \(x_i\) 的收益(\(x_i\) 可正可负)。再给出 \(m\) 对限制,如果 \(u_i\) 选择,\(v_i\) 不选,则有 \(w_i\) 的损失。求最大收益。

\(x_i=1/0\) 表示物品 \(i\) 选或不选。

对于每个限制 \(u,v\),考虑利用最小割从总收益中减去。

\(\neg(x_u=1\land x_v=0)\iff x_u\not=1\lor x_v\not=0\iff x_u=0\lor(x_u=1\land x_v=1)\)

由于 \(x_u=0\)\(x_u=x_v=1\) 一定不会同时满足,我们可以将其拆成两个限制,互不影响。

\(x_u=0\),即 \(u\overset{f=w}{\to}T\)\(x_u=x_v=0\),即 \(S\overset{f=w}{\to}i'\overset{f=\infty}{\to}u/v\)

由于两个限制中至少有一个不满足,至少会减去一个 \(w\),所以 \(Ans=\sum x_i+\sum w_i-mincut\)

两个同选

要求构造长度为 \(n\) 的 01 向量 \(a_i\),最小化 \(\sum a_i(\sum a_jb_{ij}-c_i)\)\((n\le 500)\)

观察发现,这是一个若干物品选择,若同时选择有额外贡献的模型。

由于有 \(n^2\) 对限制,对每个限制建一个点的做法点数太多,考虑改变。

由于每个限制是两个元素,可以考虑建模:

  • \(S\overset{f=x_i}{\to}i\)\(S\overset{f=x_j}{\to}j\)
  • \(i\overset{f=y_i}{\to}T\)\(j\overset{f=y_j}{\to}T\)
  • \(i\overset{f=z_{ij}}{\leftrightarrow}j\)

可得:\[ \displaystyle \begin{cases} x_i+x_j=b_{ii}+b_{jj}+b_{ij}+b_{ji} \\ y_i+y_j=c_i+c_j \\ x_i+z_{ij}+y_j=b_{ii}+b_{ij}+b_{ji}+c_j \\ x_j+z_{ij}+y_i=b_{jj}+b_{ij}+b_{ji}+c_i \end{cases} \]

可凑出一组解:\[ \displaystyle \begin{cases} x_i=b_{ii}+\frac{b_{ij}+b_{ji}}{2} \\ x_j=b_{jj}+\frac{b_{ij}+b_{ji}}{2} \\ y_i=c_i \\ y_j=c_j \\ z_{ij}=\frac{b_{ij}+b_{ji}}{2} \\ \end{cases} \]

这样可以最小割求了。由于分数的存在,可以将所有流量乘 \(2\),则 \(\displaystyle Ans=\sum b_{ij}-\frac{mincut}{2}\)

你可能感兴趣的:(网络流建模)