顶点覆盖问题
2015-11-25 17:45
218 查看
输入:无向图G(V,E)
输出:C属于V,C中点数最小,满足E中任意一条边中的两个顶点至少有一个在C中
APPROX_Vertex_Cover(G)
1 C=空集
2 E' = E
3 While E' != 空集 Do
4 任选{u,v}属于E'
5 C = C U {u,v}
6 删除E'中所有与u,v相连的边
7 Return C
Ratio Bound(近似比)
设A为算法第四步中选中的边集,由算法第六步可知,A中无邻接边
第五步中每次增加两个节点到C,因此|C| = 2|A|
设C*是优化解,则C*必须覆盖A
由于A中无邻接边,C*至少包含A中每条边的一个节点,
于是|A|<=|C*|,|C| = 2|A| <= 2|C*|
即|C| / |C*| <= 2.
因此,算法近似比为2.
输出:C属于V,C中点数最小,满足E中任意一条边中的两个顶点至少有一个在C中
APPROX_Vertex_Cover(G)
1 C=空集
2 E' = E
3 While E' != 空集 Do
4 任选{u,v}属于E'
5 C = C U {u,v}
6 删除E'中所有与u,v相连的边
7 Return C
Ratio Bound(近似比)
设A为算法第四步中选中的边集,由算法第六步可知,A中无邻接边
第五步中每次增加两个节点到C,因此|C| = 2|A|
设C*是优化解,则C*必须覆盖A
由于A中无邻接边,C*至少包含A中每条边的一个节点,
于是|A|<=|C*|,|C| = 2|A| <= 2|C*|
即|C| / |C*| <= 2.
因此,算法近似比为2.
相关文章推荐
- 近似算法-欧几里得旅行商问题JAVA语言
- 01背包-近似算法
- 并行机器最短调度问题
- 贪心算法之近似算法(格雷厄姆算法)初识
- [bzoj 1011] [HNOI2008]遥远的行星:近似算法(一种正确性显然的非乱搞的科学做法)
- [bzoj3680] 吊打XXX:模拟退火 or 模拟力学情景
- BZOJ 2306 [Ctsc2011] 幸福路径 [倍增+floyd做法]
- 0x0a算法设计与分析复习(三):求解困难问题
- ComputeColStats UDF中 近似算法的介绍
- 团队需要的6种人
- 如何装win10 1511最新官方版(U盘装新系统)16年3月30日更新了可用激活
- iOS开发——App集成短信验证码
- C语言开发总结(四)
- 文件下载、打包下载的问题汇总
- SpringMvc下载文件
- append_zero 浮点和double补充0 库函数PK自己写的函数效率对比
- zk 原理 watcher 监听
- Freemarker 使用
- Meteor methods call apply 使用
- RUNTIME_CLASS(运行时间类)