- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 迄今为止,所有的NP完全问题都还没有多项式时间算法。 对于这类问题,通常可采取以下几种解题策略。 (1)只对问题的特殊实例求解 (2)用动态规划法或分支限界法求解 (3)用概率算法求解 (4)只求近似解 (5)用启发式方法求解 9.4 NP完全问题的近似算法 * 9.4.1 近似算法的性能 若一个最优化问题的最优值为c*,求解该问题的一个近似算法求得的近似最优解相应的目标函数值为c,则将该近似算法的性能比定义为?= 。在通常情况下,该性能比是问题输入规模n的一个函数ρ(n),即 ≤ρ(n)。 该近似算法的相对误差定义为?= 。若对问题的输入规模n,有一函数ε(n)使得 ≤ε(n),则称ε(n)为该近似算法的相对误差界。近似算法的性能比ρ(n)与相对误差界ε(n)之间显然有如下关系:ε(n)≤ρ(n)-1。 * 9.4.2 顶点覆盖问题的近似算法 问题描述:无向图G=(V,E)的顶点覆盖是它的顶点集V的一个子集V’?V,使得若(u,v)是G的一条边,则v∈V’或u∈V’。顶点覆盖V’的大小是它所包含的顶点个数|V’|。 VertexSet approxVertexCover ( Graph g ) { cset=?; e1=g.e; while (e1 != ?) { 从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return c } Cset用来存储顶点覆盖中的各顶点。初始为空,不断从边集e1中选取一边(u,v),将边的端点加入cset中,并将e1中已被u和v覆盖的边删去,直至cset已覆盖所有边。即e1为空。 * 9.4.2 顶点覆盖问题的近似算法 图(a)~(e)说明了算法的运行过程及结果。(e)表示算法产生的近似最优顶点覆盖cset,它由顶点b,c,d,e,f,g所组成。(f)是图G的一个最小顶点覆盖,它只含有3个顶点:b,d和e。 算法approxVertexCover的性能比为2。 * 9.4.3 旅行售货员问题近似算法 问题描述:给定一个完全无向图G=(V,E),其每一边(u,v)∈E有一非负整数费用c(u,v)。要找出G的最小费用哈密顿回路。 比如,费用函数c往往具有三角不等式性质,即对任意的3个顶点u,v,w∈V,有:c(u,w)≤c(u,v)+c(v,w)。当图G中的顶点就是平面上的点,任意2顶点间的费用就是这2点间的欧氏距离时,费用函数c就具有三角不等式性质。 旅行售货员问题的一些特殊性质: * 1 满足三角不等式的旅行售货员问题 对于给定的无向图G,可以利用找图G的最小生成树的算法设计找近似最优的旅行售货员回路的算法。 void approxTSP (Graph g) { (1)选择g的任一顶点r; (2)用Prim算法找出带权图g的一棵以r为根的最小生成树T; (3)前序遍历树T得到的顶点表L; (4)将r加到表L的末尾,按表L中顶点次序组成回路H,作为计 算结果返回; } 当费用函数满足三角不等式时,算法找出的旅行售货员回路的费用不会超过最优旅行售货员回路费用的2倍。 * (b)表示找到的最小生成树T;(c)表示对T作前序遍历的次序;(d)表示L产生的哈密顿回路H; (e)是G的一个最小费用旅行售货员回路。 * 2 一般的旅行售货员问题 在费用函数不一定满足三角不等式的一般情况下,不存在具有常数性能比的解TSP问题的多项式时间近似算法,除非P=NP。换句话说,若P≠NP,则对任意常数ρ1,不存在性能比为ρ的解旅行售货员问题的多项式时间近似算法。 * 9.4.4 集合覆盖问题的近似算法 问题描述:给定一个完全无向图G=(V,E),其每一边(u,v)∈E有一非负整数费用c(u,v)。要找出G的最小费用哈密顿回路。 集合覆盖问题的一个实例〈X,F〉由一个有限集X及X的一个子集族F组成。子集族F覆盖了有限集X。也就是说X中每一元素至少属于F中的一个子集,即X= 。对于F中的一个子集C?F,若C中的X的子集覆盖了X,即X= ,则称C覆盖了X。集合覆盖问题就是要找出F中覆盖X的最小子集C*,使得 |C*|=min{|C||C?F且C覆盖X} * 9.4.4 集合覆盖问题的近似算法 集合覆盖问题举例: 用12个黑点表示集合X。F={S1,S2,S3,S4,
您可能关注的文档
- 东北石油大学计算机与信息技术学院计算机网络与通信课件 第十二讲.ppt
- 东北石油大学计算机与信息技术学院计算机网络与通信课件 第四讲.ppt
- 东北石油大学计算机与信息技术学院计算机网络与通信课件 第五讲.ppt
- 东北石油大学计算机与信息技术学院计算机网络与通信英文课件 Chapter1.ppt
- 东北石油大学经济管理学院财务会计课件第八章 流动负债.ppt
- 东北石油大学经济管理学院财务会计课件第二章 货币资金.ppt
- 东北石油大学经济管理学院财务会计课件第九章 长期负债.ppt
- 东北石油大学经济管理学院财务会计课件第六章 固定资产.ppt
- 东北石油大学经济管理学院财务会计课件第七章 无形资产及其他资产.ppt
- 东北石油大学经济管理学院财务会计课件第三章 应收项目.ppt
- 第二讲:宋元南戏与明清传奇.ppt
- 箱逆变一体机相关知识讲解.pptx
- 第六讲-大学生的挫折心理与危机干预.ppt
- 第7课 伟大的历史转折 大单元教学设计 部编版八年级历史下册.pdf
- 第2课 抗美援朝 大单元教学设计 部编版八年级历史下册.pdf
- 第4课 新中国工业化起步和人民代表大会制度的确立 大单元教学设计 部编版八年级历史下册.pdf
- 第15课 钢铁长城 大单元教学设计 部编版八年级历史下册.pdf
- 第17课 外交事业的发展 大单元教学设计 部编版八年级历史下册.pdf
- 人教版英语七下Unit 8 Once upon a Time 第二课时(Section A 2a—2e)表格式教案.pdf
- 第13课 香港和澳门回归祖国 大单元教学设计 部编版八年级历史下册.pdf
文档评论(0)