- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定理10-3 CNF可满足性∝最大集团判定问题 证明: 2、证明F是可满足的,当且仅当G有一个规模至少为k的集团。 (另一方面,若图G有一个规模至少为k的集团, 则必定存在一种布尔变量赋值,使命题公式F为真,即F是可满足的。) 若图G中存在一个规模至少为k的集团,S={ σ1,1, σ2,2,..., σk,k}是集团的顶点集合,则必有σi和σj值相同且i≠j(否则顶点σi,i和σj, j之间没有边)。 于是,对S中所有的文字赋真值,对不属于S的变量取任意值,则使得F的每个子句Ci中至少有一个文字为真,从而F为真。 虽然当前只是将CNF公式规约成了带某种特定结构的集团实例,仅证明了在这种受限的情况下,最大集团判定问题是NP难度(NP完全)的。但是,这一证明足以证明在一般的图中,最大集团判定问题也是NP难度的。 因为:如果我们有一个多项式时间的算法,它能在一般的图上解决最大集团判定问题,那么它就能在受限的图上解决这一问题。 附:程序10-3 最大集团判定问题的不确定算法 void Clique(int g[][mSize],int n,int k) { S=?; for (int i=0;ik;i++) //选择k个顶点 { int t=Choice(0,n-1); //任意选择一个顶点t if (t∈S) Failure(); //若顶点t已经在S中,则失败终止 S=S∪{t}; } for (对所有(i,j),i∈S,j∈S且i≠j) //验证此k个顶点是否 if ((i,j) E) Failure(); //形成完全子图 Success(); } ch10.* 算法设计与分析 张怡婷 Email:zyt@njupt.edu.cn 第10章 NP完全问题 学习要点: 确定算法和不确定算法 判定问题和最优化问题的关系 可满足性问题 P类问题和NP类问题 NP难度(NP hard)和NP完全(NP complete)问题 Cook定理 典型的NP完全(或NP难度)问题的证明 章节内容: 10.1 基本概念 10.2.1 Cook定理 10.3 一些典型的NP完全问题 10.1 基本概念 将能在多项式时间内求解的问题视为易处理问题(tractable problem)。 至今尚未找到多项式时间算法求解的问题视为难处理问题(intractable problem)。 ——NP完全问题或NP难度(NP hard)问题 ——如:指数时间算法 无论消耗多少计算机时间和空间也不能求解的称为不可判定(undecidable)的。 ——不存在任何算法求解 如果任意一个NP难度问题存在一个多项式时间算法,那么所有NP完全问题都可以在多项式时间内求解。 一个NP完全问题可以在多项式时间内求解,当且仅当所有其他的NP完全问题都可以在多项式时间内求解。 10.1.1 不确定算法和不确定机 不确定算法的抽象计算模型: 算法在抽象机上运行与计算机系统的性能无关; 算法的执行表现为执行一个基本运算序列; 基本运算的执行时间是有限常量; Choice(S):任意选择集合S的一个元素。 Failure():发出不成功完成信号后算法终止。 Success():发出成功完成信号后算法终止。 例10-1 在n个元素的数组a中查找给定元素x,如果x在其中,则确定使a[j]==x的下标j,否则输出-1。 不确定搜索算法: void Search(int a[],T x) { int j=Choice(0,n-1); //从{0,1,...,n-1}中任意选取一个值 if(a[j]==x) { coutj; Success(); //不确定算法成功终止 } cout-1; Failure(); //不确定算法失败终止 } 执行时间都为O(1) 若算法执行中需作出一系列的Choice函数选择,当且仅当Choice的任何一组选择都不会导致成功信号时,算法在O(1)时间不成功终止。 如果一个判定问题实例的解为真,Choice函数每一次总能在O(1)时间内做出导致成功的正确选择。 包含不确定选择语句,并能按上述方式执行一个算法的机器称为不确定机(non deterministic machine)。 在不确定机上执行的算法称为不确定算法(non deterministic algorithm)。 不确定机的执行方式,可理解为不受限制的并行计算: 不确定机执行不确定算法时,每当Choice函数进行选择时,就好像复制了多个程序副本,每一种可能的选择产生一个副本,所有副本同时执行。一旦一个副本成功完
您可能关注的文档
最近下载
- 人教版初中生物会考试卷及答案.pdf VIP
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2023年四川省广元市中考地理试题卷(含答案详解).docx
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 广西师范大学2020-2021学年《认知心理学》期末考试试卷(B卷)含参考答案.docx
- 羊常见疾病防治.ppt VIP
- 国开期末考试3987《Web开发基础》机考试题及答案(李老师第5套).pdf VIP
- 2024年怀化市靖州苗族侗族自治县六年级下学期小升初真题精选语文试卷含答案.doc VIP
- 2023年海南师范大学软件工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2025年社区工作者招聘考试题库及答案解析.docx VIP
文档评论(0)