“节点势维护约化费用非负,最短路增广同时更新原始流和对偶势,因此该算法是原始—对偶方法:可行流是原始对象,势与零约化费用边给出对偶互补条件。”
形式陈述 ​
原始—对偶方法同时维护线性规划原问题与对偶问题的部分可行解,并利用弱对偶与互补松弛逐步缩小对偶间隙。若原始和对偶均可行且目标相等,则两者都最优。组合算法常把违反互补条件的边或约束作为下一步更新对象;具体更新必须保持所需可行性不变量。
直觉
原始解给出可实现方案,对偶解给出任何方案都不能突破的界。原始—对偶方法不先完整求出原问题再检查对偶,而是在构造原始可行解的同时提升对偶变量;当某些约束变紧时,算法据此选择原始对象,最终用互补松弛或近似版本比较两边成本。两者相遇时就得到可验证的最优性。对偶变量常可解释为资源价格,价格上涨直到某个选择“付得起”。
例子与边界
匈牙利算法维护顶点势与紧边匹配;最短路和最小费用流也可用势函数解释。仅写出一个对偶变量并不构成算法,必须说明如何更新和为何终止。对整数规划,线性对偶相等通常只证明松弛最优,不能自动证明整数解最优。
加权顶点覆盖的 LP 对偶是边打包:逐步提高未覆盖边的对偶变量,直到某个端点的对偶负载达到其权重,就选入该顶点。最终每条边被覆盖,而所选顶点权重可由相邻对偶值计费,得到经典
原始可行、对偶可行与互补松弛三者必须分清;只让目标值接近却违反约束,不构成证书。整数问题的 LP 对偶可能有 integrality gap,因此原始—对偶算法常给近似而非精确解。
推论与应用
该框架统一匹配、覆盖与流算法,也出现在设施选址和网络设计的近似方案中,常能同时产生构造解、对偶下界和近似比证明。不同问题里“价格变紧”对应的对象并不相同:可以是匹配边、被覆盖约束、流的势,或开放设施与连接客户的费用,因此仍须逐题证明可行性和计费关系。对偶拟合允许构造过程中暂时得到不可行对偶,再按统一因子缩放成合法下界;Christofides 算法则把 MST 与最小权完美匹配组合成度量 TSP 的
Goemans–Williamson Max-Cut先解 SDP 松弛,再做随机超平面舍入,近似比来自角度概率与松弛值,而不是线性互补松弛。packing/covering 线性规划中,乘法权重更新又可通过可分离 oracle 调整权重。原始—对偶、对偶拟合、SDP 舍入和乘法更新都借助下界证书,但其可行性不变量、随机性和保证类型必须分别陈述。
参考资料
- Bernhard Korte and Jens Vygen, Combinatorial Optimization, 6th ed., Springer, 2018,Chs. 4–11。
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Parts I–VI。