- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析 NP完全性理论与近似算法讲义
第9章 NP完全性理论;是不是什么问题都是单计算机可解的?;例:;是不是什么问题都是并行计算机可解的?;易解/难解/不可解问题;图灵停机问题(The Halting Problem);图灵停机问题(The Halting Problem);图灵停机问题(The Halting Problem);P类与NP类问题;对NP类问题的理解之一 ? P=?NP;对NP类问题的理解之二;对NP类问题的理解之三?证明Q ∈ NP;NP类问题证明举例;NP类问题证明举例;NP类问题8-17;P?NP。
直观上看,P类问题是确定性计算模型下的易解问题类,而NP类问题是非确定性计算模型下的易验证问题类。
大多数的计算机科学家认为NP类中包含了不属于P类的语言,即P≠NP。
NP完全问题有一种令人惊奇的性质,即如果一个NP完全问题能在多项式时间内得到解决,那么NP中的每一个问题都可以在多项式时间内求解,即P=NP。
目前还没有一个NP完全问题找到了多项式时间的算法。;设 , 是2个语言。所谓语言 能在多项式时间内变换为语言 (简记为 ∝p )是指存在映射f: ,且f满足:
(1)有一个计算f的多项式时间确定性图灵机;
(2)对于所有实例x∈ ,当且仅当f(x)∈ 。 ;定理9-2:设L是NP完全的,则
(1)L∈P当且仅当P=NP;
(2)若L∝p ,且 ∈NP,则 是NP完全的。 ;Cook定理;一些典型的NP完全问题;合取范式的可满足性问题CNF-SAT;合取范式的可满足性问题CNF-3SAT;团问题CLIQUE ;顶点覆盖问题 ; ;若一个最优化问题的最优值为c*,求解该问题的一个近似算法求得的近似最优解相应的目标函数值为c,则将该近似算法的性能比定义为
在通常情况下,该性能比是问题输入规模n的一个函数ρ(n),即
该近似算法的相对误差定义为
若对问题的输入规模n,有一函数ε(n)使得
则称ε(n)为该近似算法的相对误差界。近似算法的性能比ρ(n)与相对误差界ε(n)之间显然有如下关系:ε(n)≤ρ(n)-1。;问题描述:无向图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 cset;
};图(a)~(e)说明了算法的运行过程及结果。(e)表示算法产生的近似最优顶点覆盖cset,它由顶点b,c,d,e,f,g所组成。(f)是图G的一个最小顶点覆盖,它只含有3个顶点:b,d和e。;算法选取出的边的集合用A表示,则A中任何两条边没有公共端点。
故有:|cset|=2|A|
另外,图G的最小顶点覆盖|cset*|=|A|,因为A中的边没有公共端点。
|cset|/| cset*|=2
算法approxVertexCover的性能比为2。;问题描述:给定一个完全无向图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.满足三角不等式的旅行售货员问题;Prim算法回顾;(b)表示找到的最小生成树T;
(c)表示对T作前序遍历的次序;
(d)表示L产生的哈密顿回路H;
(e)是G的一个最小费用旅行售货员回路。;算法approxTSP 性能分析;2.一般的旅行售货员问题;问题描述:集合覆盖问题是一个最优化问题,其原型是多资源选择问题。集合覆盖问题可以看作是图的顶点覆盖问题的推广,它也是一个NP难问题。
集合覆盖问题的一个实例〈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};用12个黑点表示集合X。F={S1,S2,S3,S4,S5,S6},如图所示。容易看出,对于这个例子,最小集合覆盖为:C={S3,S4,S5,}。 ;算法的循环体最多执行min{|X|,|F|
文档评论(0)