近似算法之——顶点覆盖的原始对偶算法

这篇具有很好参考价值的文章主要介绍了近似算法之——顶点覆盖的原始对偶算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

顶点覆盖的原始对偶算法

许多具有实际意义的问题都是NP完全问题。我们不知道如何在多项式时间内求得最优解。但是,这些问题往往十分重要,我们不能因此而放弃对它们的求解,即使一个问题是NP完全的,也有它的求解方法。实际应用中,近似最优解一般都能满足要求。返回近似最优的方法称为近似算法。


前言

顶点覆盖问题是一个NP完全判定问题的最优化形式。虽然在一个图G中寻找最优顶点覆盖比较困难,但是找出近似最优的顶点覆盖还是相对容易的。在没有权重的图里面顶点覆盖问题,只考虑每个边至少与一个顶点覆盖的点相连,但对有权重的顶点覆盖问题是找出带顶点权重和的最小值。

问题描述

给定一个赋权无向图G=(V,E),每个顶点v∈V都有一个权值c(v)。如果U⊆V,且对任意(u,v)∈E有u∈U或v∈U,就称U为图G的一个顶点覆盖。G的最小权顶点覆盖是指G中所含顶点权之和最小的顶点覆盖。

理论回顾

到现在为止,我们前面知道如何机械地寻找任何 L P LP LP的对偶的一切。然而,这里有一些直觉来帮助这个过程。我们从覆盖线性规划 L P LP LP开始,就像上面的一样,首先给 L P LP LP中的每个约束赋予一个变量 y i y_i yi(不包括 x j ≥ 0 x_j\ge0 xj0的约束)。写下目标很容易。唯一棘手的部分是对偶约束,
y ⊤ A ≤ c ⊤ \mathbf{y}^\top A\le \mathbf{c} ^\top yAc
现在,让我们固定一个坐标 c c c,比如说 j j j,并计算出形式 ∑ ( . . . ) ≤ c j \sum(...)\le c_j (...)cj,注意 y ⊤ A \mathbf{y}^\top A yA是一个行向量,它的第 j j j个坐标是 y y y A A A的第 j j j列的点积,我们用 a j c a_{j}^{c} ajc来表示,该列包含变量 x j x_j xj的系数。这样我们得到约束 y ⊤ a j c ≤ c j \mathbf{y}^\top a_{j}^{c}\le c_j yajccj,最后,我们保证 y i y_i yi是非负的。为了使具体化,我们考虑顶点覆盖问题 ( L P ) (LP) LP,这里,我们给定了一个无向图 G = ( V , E ) G=(V,E) G=(V,E),它的边是顶点的集合,每个顶点的大小为2,我们将变量 x v x_v xv与每个顶点相关联,并将 x v x_v xv解释为解中包含顶点 v v v,顶点覆盖问题的原始规划问题如下:
顶点覆盖问题,近似算法,组合最优化,离散数学,算法,动态规划,线性代数

我们将对偶变量 y e y_e ye赋予约束 ∑ v ∈ e x v ≥ 1 \quad \sum_{v\in e}x_v \ge1 vexv1,因为对于所有的 e e e b e = 1 b_e=1 be=1,所以对偶目标是 m a x ∑ e y e ⋅ 1 max\sum_e y_e\cdot 1 maxeye1现在考虑 v v v对应的对偶约束, y ⊤ a v c ≤ c v \mathbf{y}^\top a_{v}^{c}\le c_v yavccv我们可以把这个写成 ∑ e y e a e , v ≤ c v \sum_e y_ea_{e,v}\le c_v eyeae,vcv,因为当 e e e v v v相关联, a e , v = 1 a_{e,v}=1 ae,v=1,否则 a e , v = 0 a_{e,v}=0 ae,v=0,我们可以把约束条件写成 ∑ e ∈ δ ( v ) y e ≤ c v \sum_{e\in \delta(v)}y_e\le c_v eδ(v)yecv,最后的结果
顶点覆盖问题,近似算法,组合最优化,离散数学,算法,动态规划,线性代数
在我们讨论原始对偶算法之前,观察强对偶性作为极大极小关系是有用的。事实上,许多极大极小关系都可以相对容易地由它证明。例如,冯洛伊曼的极大极小定理可以很容易地由它推导出来,如果你意识到最大流与最小割对偶,并且最小割具有整数基本可行解,那么最大流最小割定理也正好来自于LP对偶性。考虑顶点覆盖,如果对于某些对偶可行解 y y y,我们可以用 ρ ⋅ ∑ e y e \rho \cdot\sum_e y_e ρeye限定某些定点覆盖 S S S的代价,那么我们立即通过弱对偶性得到一个 ρ \rho ρ近似。
∑ v ∈ S c v ≤ ρ ⋅ ∑ e y e ≤ ρ ⋅ O P T V C L P ≤ ρ ⋅ O P T V C I P \sum_{v\in S}c_v\le\rho\cdot\sum_e y_e\le\rho\cdot OPT_{VC_{LP}}\le\rho\cdot OPT_{VC_{IP}} vScvρeyeρOPTVCLPρOPTVCIP
所以我们把对偶变量看做是提供金钱,特别是 ∑ e y e \sum_e y_e eye,并允许算法花费最多 ρ ⋅ ∑ e y e \rho \cdot\sum_e y_e ρeye来购买一个顶点的覆盖。
作为一个简单的例子,考虑我们有一个未加权的顶点覆盖实例 G G G,我们找到一个匹配 M M M的最大基数,并设 y y y M M M的特征向量,即如果 e ∈ E e \in E eE,则 y e = 1 y_e=1 ye=1,否则 y e = 0 y_e=0 ye=0。注意 y y y是对偶可行的,现在,我们用 y y y来决定买什么顶点来做我们的顶点覆盖,如下所示:如果 v v v M M M的某个顶点相关联,买它,否则不买。设 S S S是顶点的输出集合,那么 S S S是一个顶点覆盖,因为如果它不是,一些边 e e e可以添加到 M M M,这与它是最大基数的事实相矛盾。现在,每条边 e = { u , v } ∈ M 有 y e = 1 e=\{u,v\}\in M有y_e=1 e={u,v}Mye=1,所以如果我们把 u u u v v v的成本记在 e = { u , v } e=\{u,v\} e={u,v}上,我们花费有 2 y e 2y_e 2ye。得出 ∑ v ∈ S c v ≤ 2 ⋅ ∑ e y e \sum_{v\in S}c_v\le2\cdot\sum_e y_e vScv2eye
我们通常按照以下方式使用原始对偶模式设计算法(用于最小化问题):
(1)写下一个LP松弛问题,并找出它的对偶。试着为对偶变量找到一些直观的意义。
(2)从向量 x = 0 x=0 x=0 y = 0 y=0 y=0开始,这是对偶可行的,但原始不可行。
(3)直到原始可行
a a a.以某种控制的方式增加对偶值 y i y_i yi,直到某些对偶约束变紧 ( ∑ i y i a i j = c j ) (\sum_i y_i a_{ij} =c_j) iyiaij=cj,同时始终保持 y y y的对偶可行性。
b b b.选择紧对偶约束的某个子集,并将其对应的原始变量增加一个整数。
(4)为了进行分析,证明输出向量对 ( x , y ) (x,y) (x,y) ρ \rho ρ值尽可能小的情况下满足 c ⊤ x ≤ ρ ⋅ y ⊤ b \mathbf{c}^\top x\le \rho\cdot\mathbf{y}^\top b cxρyb,在决定如何提高对偶变量和原始变量时,要记住这个目标。

顶点覆盖的原始对偶算法

我们将应用原始-对偶模式来给出带有加权顶点代价的顶点覆盖的2-近似。得到以下算法:
顶点覆盖问题,近似算法,组合最优化,离散数学,算法,动态规划,线性代数

x x x y y y是上述算法输出的向量,那么 x x x是原始可行的, y y y是对偶可行的。

证明:
E E E中删除的每条边都与某个顶点 v v v相关联,使得 x v = 1 x_v=1 xv=1。只有当每条边都被删除时,算法才会终止。因此,对于所有的 e ∈ E e\in E eE,有
∑ v ∈ e x v ≥ 1 \sum_{v\in e}x_v\ge1 vexv1, x x x是可行的,至于 y y y,没有违反任何约束,因为一旦约束变紧,约束中的边将被删除,因此它们的 y e y_e ye值不会进一步提高。

x x x y y y为上述算法输出的向量,那么
c ⊤ x ≤ 2 ⋅ ( y ⊤ ⋅ 1 ) \mathbf{c}^\top x\le 2\cdot(\mathbf{y}^\top \cdot1) cx2(y1)

证明:设 A = { v ∣ x v = 1 } A=\{v|x_v=1\} A={vxv=1},则
顶点覆盖问题,近似算法,组合最优化,离散数学,算法,动态规划,线性代数
第二行遵循的事实是,我们只对紧对偶约束对应的顶点 v v v设置 x v = 1 x_v=1 xv=1。也就是说, v ∈ A v\in A vA隐含着 ∑ e ∈ δ ( v ) y e = c v \sum_{e\in \delta(v)}y_e= c_v eδ(v)ye=cv,第三行只是简单地调换了求和的顺序,最后一行是根据所有 e e e ∣ e ∣ = 2 |e|=2 e=2得出的结论。

上面是的算法是加权顶点覆盖的2-近似。

证明 :观察到如果我们选择 E ′ E^{\prime} E为单个边,那么我们就得到了顶点覆盖的局部比算法。注意,在这种情况下,近似保证的证明是很简单的,不需要归纳。然而,我们可以用一个归纳证明来说明,在任何时候,我们所付出的成本都不超过我们从对偶中“收集“到的代价的两倍。 c ⊤ x ≤ 2 ⋅ ( y ⊤ ⋅ 1 ) \mathbf{c}^\top x\le 2\cdot(\mathbf{y}^\top \cdot1) cx2(y1),而不仅仅是在执行结束时,这种思想在分析一些原始对偶算法时很有用。

顶点覆盖的原始对偶算法起源于Bar Yehuda和Even(1981)[1] ,尽管它最初并没有被描述为一个原始-对偶算法,但回想起来,这是第一次在近似算法中使用该模式。Kuhn(1955) [4] 给出了第一个原始的对偶算法,用于加权二分匹配问题,然而,他用“匈牙利方法”来描述他的算法。Dantzig、Ford和Fulkerson (1956)[5] 用这种方法给出了求解线性规划的另一种方法,并称之为原始对偶方法。尽管该模式在求解线性规划方面并不十分成功,但它很快在组合优化中得到了广泛的应用,Agrawal、Klein和Ravi (1995)[8] 以及Goemans和Williamson (1995)[7] 的作品在后一种情况下恢复了这种模式的使用,并引入了以同步方式生长对偶的强大思想。放松互补松弛条件的机制首先在Williamson、Goemans、Mihail和Vazirani(1995) [9] 中形成。更多历史信息,请读者参见Goemans和Williamson(1997)[6] 。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了原始对偶模式在顶点覆盖问题中的使用,而原始对偶模式提供了大量能使我们快速解决NP-难问题的近似算法。

参考文献

[1] R. Bar-Yehuda and S. Even. A linear time approximation algorithm for the weighted vertex
cover problem. Journal of Algorithms, 2:198–203, 1981.
[2] Michel X. Goemans and David P. Williamson. The primal-dual method for approximation algorithms and its application to network design problems. In Dorit Hochbaum, editor, Approximation algorithms for NP-hard problems, chapter 4, pages 144–191. PWS Publishing Co., Boston, MA, USA, 1997.
[3] D. Williamson. The primal-dual method for approximation algorithms. Mathematical Programming, Series B, 91(3):447–478, 2002.
[4] H.W. Kuhn. The Hungarian method for the assignment problem. Naval Research Logistics Quarterly, 2:83–97, 1955.
[5] G.B. Dantzig, L.R. Ford, and D.R. Fulkerson. A primal–dual algorithm for linear programs. In H.W. Kuhn and A.W. Tucker, editors, Linear Inequalities and Related Systems, pages 171–181. Princeton University Press, Princeton, NJ, 1956.
[6] M.X. Goemans and D.P. Williamson. The primal–dual method for approximation algorithms and its applications to network design problems. In D.S.
Hochbaum, editor, Approximation Algorithms for NP-Hard Problems, pages 144–191. PWS Publishing, Boston, MA, 1997.
[7] M.X. Goemans and D.P. Williamson. A general approximation technique for constrained forest problems. SIAM Journal on Computing, 24:296–317, 1995.
[8] A. Agrawal, P. Klein, and R. Ravi. When trees collide: an approximation algorithm for the generalized Steiner network problem on networks. SIAM Journal on Computing, 24:440–456, 1995.
[9] D.P. Williamson, M.X. Goemans, M. Mihail, and V.V. Vazirani. A primal– dual approximation algorithm for generalized Steiner network problems. Combinatorica, 15:435–454, 1995.文章来源地址https://www.toymoban.com/news/detail-776240.html

到了这里,关于近似算法之——顶点覆盖的原始对偶算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包