“原始变量表示是否购买顶点,对偶变量把预算装入边;每个顶点承受的相邻边总价不能超过其权重。任何合法装价都给出整数顶点覆盖成本的下界,因为整数可行域包含在 LP 松弛中。原始—对偶方法会提高这些…”
形式陈述
原始—对偶方法联合构造原问题的方案与对偶问题的界,具体算法必须声明每一步维护哪一侧的可行性。例如覆盖问题常始终保持对偶可行,而原始解从空集合开始,到终止时才覆盖全部需求;不能要求两侧从一开始都可行。
依据弱对偶与互补松弛,对最小化问题,任意原始可行解
直觉
原始解给出可实现方案,对偶解给出任何方案都不能突破的界。原始—对偶方法不先完整求出原问题再检查对偶,而是在构造原始可行解的同时提升对偶变量;当某些约束变紧时,算法据此选择原始对象,最终用互补松弛或近似版本比较两边成本。两者相遇时就得到可验证的最优性。对偶变量常可解释为资源价格,价格上涨直到某个选择“付得起”。
例子与边界
匈牙利算法维护顶点势与紧边匹配;最短路和最小费用流也可用势函数解释。仅写出一个对偶变量并不构成算法,必须说明如何更新和为何终止。原始—对偶内点法给出连续优化中的具体实现:联合线性化原始、对偶和互补残差,再用保正步长更新;它不同于下面逐边抬价、在顶点约束变紧时选点的组合构造。对整数规划,分数原始解与 LP 对偶相等只证明松弛最优;若相等的原始解本身整数可行,则同时证明整数最优。
顶点覆盖:从抬价到证书
给无向图每个顶点一个非负权重
从
例如路径 a—b—c,权重分别为 2、3、2。先把边 ab 的价格升到 2,选入 a;再把 bc 的价格升到 1,b 的总负载变为 3,选入 b。所得覆盖成本为 5,对偶总价为 3,且每个顶点都没有超预算。只选 b 的成本为 3,说明过程不一定精确最优。
对一般输出,每个已选顶点都保持变紧,于是
原始可行、对偶可行与互补松弛三者必须分清;只让目标值接近却违反约束,不构成证书。整数问题的 LP 对偶可能有 integrality gap,因此原始—对偶算法常给近似而非精确解。
推论与应用
该框架统一匹配、覆盖与流算法,也出现在设施选址和网络设计的近似方案中,常能同时产生构造解、对偶下界和近似比证明。不同问题里“价格变紧”对应的对象并不相同:可以是匹配边、被覆盖约束、流的势,或开放设施与连接客户的费用,因此仍须逐题证明可行性和计费关系。对偶拟合允许构造过程中暂时得到不可行对偶,再按统一因子缩放成合法下界;Christofides 算法则把 MST 与最小权完美匹配组合成度量 TSP 的
Goemans–Williamson Max-Cut先解 SDP 松弛,再做随机超平面舍入,近似比来自角度概率与松弛值,而不是线性互补松弛。packing/covering 线性规划中,乘法权重更新又可通过可分离 oracle 调整权重。原始—对偶、对偶拟合、SDP 舍入和乘法更新都借助下界证书,但其可行性不变量、随机性和保证类型必须分别陈述。
参考资料
-
David P. Williamson and David B. Shmoys, The Design of Approximation Algorithms, Cambridge University Press, 2011,§7.1、Algorithm 7.1 与 Theorem 7.1:保持对偶可行、由紧约束选择原始对象及按出现频率计费;顶点覆盖中该频率为 2。
-
Bernhard Korte and Jens Vygen, Combinatorial Optimization, 6th ed., Springer, 2018,Chs. 4–11。