第十二章NP完全问题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章NP完全问题

第十二章 NP完全问题 一、易解的问题和难解的问题 存在多项式时间算法的问题,称为易解的问题 指数时间算法或排列时间算法的问题,称为难解的问题 二、难解问题的计算相关性 计算相关:某类问题可以归约为另一类问题 计算相关的问题,若它们之一可用多项式时间求解,则其它同类问题也可用多项式时间求解;若它们之一肯定不存在多项式时间算法,则同类的其它问题,也肯定不会找到多项式时间算法。 三、判定问题和优化问题 1、判定问题只牵涉到两种情况:或,可以容易地表达为语言的识别问题,方便地在图灵机上进行求解。 例: 排序问题的判定问题:给定一个整数数组,是否可以按非降顺序排序; 图着色的判定问题:给定无向图,是否可用种颜色为中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色。 2、优化问题牵涉到极值问题 例: 图着色的优化问题:为图着色,使相邻两个顶点不会有相同颜色时所需要的最少颜色数目。 3、判定问题转换为优化问题。 例:求解为图着色,使相邻两个顶点不会有相同颜色时所需最少颜色数。 令图的顶点个数为,彩色数是, 假定存在一个图着色判定问题的多项式时间算法coloring: BOOL coloring(GRAPH G,int n,int num) 则可用下面的方法,利用算法coloring来解图着色的优化问题。 void chromatic_number(GRAPH G,int n,int num) { int high,low; high = n; low = 1; while (low=high) { num = (low + high) / 2; if (coloring(G,n,num)) low = mid + 1; else high = mid –1; } num = high; } 对算法coloring调用次,就能找出为图着色的最优彩色数。 根据假定,coloring是多项式时间算法, 所以,这个算法也是一个多项式时间算法。 12.1 P类和NP类问题 12.1.1 P类问题 一、确定性算法 定义12.1 是问题的一个算法。如果在处理问题的实例时,在算法的整个执行过程中,每一步只有一个确定的选择,就说算法是确定性的算法。 算法执行的每一个步骤,都有确定的选择。 重新用同一输入实例运行该算法,所得到的结果严格一致。 二、类判定问题 1、定义: 定义12.2 如果对某个判定问题,存在着一个非负整数,对输入规模为的实例,能够以的时间运行一个确定性的算法,得到或的答案,则该判定问题是一个类判定问题。 2、特性:类判定问题是由具有多项式时间的确定性算法来解的判定问题 例: 最短路径判定问题SHORTEST PATH: 给定有向赋权图(权为正整数)、正整数、及两个顶点,是否存在着一条由到、长度至多为的路径。 可排序的判定问题SORT: 给定个元素的数组,是否可以按非降顺序排序。 三、封闭 1、类判定问题的补: 改变判定问题的提法,“是否可以”、“是否存在”改为“是否不可以”、“是否不存在”的判定问题。 例:可排序判定问题的补NOT_SORT: 给定个元素的数组,是否不可以按非降顺序排序。 最短路径判定问题的补NOT SHORTEST PATH: 给定有向赋权图(权为正整数)、正整数、及两个顶点,是否不存在一条由到、长度至多为的路径。 2、封闭的定义 定义12.3 令是一类问题,如果对中的任何问题,的补也在中,则称类问题在补集下封闭。 3、类问题的封闭性 定理12.1 类问题在补集下是封闭的。 证明 令类判定问题的补为; 存在确定性算法,可用多项式时间返回或的答案。 算法是算法中返回的代码改为返回、返回的代码,改为返回的算法。 则算法是解问题的确定性算法,可用多项式时间返回或的答案。 因此类问题的补,也属于类问题。 所以,类问题在补集下是封闭的。 四、归约 1、归约的定义 定义12.4 令和是两个判定问题,如果存在一个具有如下性能的确定性算法,可以用多项式的时间,把问题的实例转换为问题的实例,使得的答案为,当且仅当的答案是。就说,以多项式时间归约于,记为。 2、类问题的归约性 定理12.2 和是两个判定问题,如果,并且,则。 证明 因为, 存在确定性算法,可用多项式时间,把问题的实例转换为问题的实例。使得的答案为,当且仅当的答案是。 如果对某个正整数,算法每一步的输出,最多可输出个符号, 则算法的输出规模,最多不会超过个符号。 因为,存在多项式时间的确定性算法,对输入规模为的问题进行求解。所得结果也是问题的结果。 令算法是把算法和算法合并起来的算法, 则算法也是确定性的算法,且以多项式时间得到问题的结果,

文档评论(0)

didala + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档