专栏文章

对偶原理小记

算法·理论参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miph7z6w
此快照首次捕获于
2025/12/03 11:57
3 个月前
此快照最后确认于
2025/12/03 11:57
3 个月前
查看原文
对偶原理是线性规划中的一个类似 trick 的东西,给出了线性规划问题的一个转化思路。其基本形式为: maxwTx,Axc,x0 \max w^{\mathrm{T}}x,\,Ax \preceq c,\,x \succeq \vec{0} 对应: mincTy,ATyw,y0\min c^{\mathrm{T}}y,\,A^{\mathrm{T}}y \succeq w,\,y \succeq \vec{0} 这两个线性规划问题互为对偶问题。注意 max,min\max,\min,\preceq,\succeq 的互换,同时不要忘记变量与 0\vec{0} 的偏序关系。
当对偶问题与原问题的最优解同时存在时,两者的解相等。当原问题无解时对偶问题无界,反之亦然。这使得我们可以在解决一个问题时同时解决其对偶问题。
考虑最大流与最小割,我们可以尝试说明其对偶性,从而得到他们相等的经典结论。对于最大流,我们令 xe0x_e \geq 0eEe \in E 上的流量,则可以得到以下约束: uV{S,T},eIuxeeOuxe0 \forall u \in V\setminus\set{S,T} , \sum_{e\in I_u} x_e-\sum_{e\in O_u} x_e \leq 0 以及 uV{S,T},eOuxeeIuxe0 \forall u \in V\setminus\set{S,T} , \sum_{e\in O_u} x_e-\sum_{e\in I_u} x_e \leq 0 还有 eE,xecape \forall e \in E,\,x_e \leq cap_e 所求为: maxeITxe \max \sum_{e \in I_T} x_e 考虑将其对偶,则令 pu0p_u \geq 0 对应第一类约束,qu0q_u \geq 0 对应第二种约束,ae0a_e \geq 0 对应第三种约束,则有约束: e=(uv)E,pu+pv+quqv+ae[v=T]\forall e=(u\rightarrow v) \in E, -p_u+p_v+q_u-q_v+a_e\geq [v=T] 而所求为: mineEcapeae \min \sum_{e \in E} cap_ea_e 但我们没有考虑 S,TS,T 的特殊地位。若 u=Su=S,约束改写作: e=(Sv)E,pvqv+ae[v=T]\forall e=(S\rightarrow v) \in E,\, p_v-q_v+a_e\geq [v=T] v=Tv=Te=(uT)E,pu+qu+ae1\forall e=(u\rightarrow T) \in E,\,-p_u+q_u+a_e\geq 1 此时考虑一条从 SSTT 的简单路径 PP,将其上的边对应的约束加起来,可以得到: ePae1 \sum_{e\in P} a_e\geq 1 即在这条路径上至少有一条边被选择。此时我们发现这个模型对应的正好是最小割,自此我们得到了最大流与最小割的对偶关系。
另外一个例子是 luogu P6631,对于三种操作分别设立变量 xl,r,yl,r,zl,rx_{l,r},y_{l,r},z_{l,r},则可以列出约束: i=2k,lirxl,r+zl,rai \forall i=2k,\sum_{l\leq i\leq r} x_{l,r}+z_{l,r}\geq a_i i=2k,lirxl,rzl,rai \forall i=2k,\sum_{l\leq i\leq r} -x_{l,r}-z_{l,r}\geq -a_i i=2k+1,lirxl,r+yl,rai \forall i=2k+1,\sum_{l\leq i\leq r} x_{l,r}+y_{l,r}\geq a_i i=2k+1,lirxl,ryl,rai \forall i=2k+1,\sum_{l\leq i\leq r} -x_{l,r}-y_{l,r}\geq -a_i 所求为: minl,rxl,r+yl,r+zl,r \min \sum_{l,r} x_{l,r}+y_{l,r}+z_{l,r} 考虑其对偶,设四种约束对应 pi,qi,ui,vip_i,q_i,u_i,v_i,则所求为: maxi=2kai(piqi)+i=2k+1ai(uivi) \max \sum_{i=2k} a_i(p_i-q_i)+\sum_{i=2k+1} a_i(u_i-v_i) 对应约束为: lr,i=2klir(piqi)+i=2k+1lir(uivi)1\forall \,l\leq r, \sum_{\substack{i=2k\\l\leq i\leq r}} (p_i-q_i)+\sum_{\substack{i=2k+1\\l\leq i\leq r}} (u_i-v_i) \leq 1 lr,i=2k+1lir(uivi)1,i=2klir(piqi)1\forall \,l\leq r,\sum_{\substack{i=2k+1\\l\leq i\leq r}} (u_i-v_i) \leq 1,\sum_{\substack{i=2k\\l\leq i\leq r}} (p_i-q_i) \leq 1
p_i-q_i,i=2k\\ u_i-v_i,i=2k+1 \end{cases}$$ 改写上述结果: $$\forall \,l\leq r, \sum_{l\leq i\leq r} f_i \leq 1,\sum_{\substack{i=2k\\l\leq i\leq r}} f_i \leq 1,\sum_{\substack{i=2k+1\\l\leq i\leq r}} f_i \leq 1$$ $$ \max \sum a_if_i$$ 注意到到约束形状类似最大子段和,于是我们可以进行 dp:令 $dp_{i,j,k,l}$ 表示当前已经考虑了前 $i$ 个元素,而且当前 $f$ 最大后缀和是 $j$,偶数位置最大后缀和是 $k$,奇数位置最大后缀和是 $l$ 时 $\sum a_if_i$ 的最大值。如果我们承认 $f$ 只能取整数(可以通过说明约束系数矩阵为全幺模矩阵证明),则显然 $j,k,l\in\set{0,1}$,进一步得到 $f_i\in\set{-1,0,1}$,所以这个 dp 是线性的。

评论

0 条评论,欢迎与作者交流。

正在加载评论...