网站大量收购独家精品文档,联系QQ:2885784924

设计 旨埃宗汉郑晓明 第12章 NP完全问题.pptx

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计 旨埃宗汉郑晓明 第12章 NP完全问题

第12章 NP完全问题;2. 难解问题的计算相关性 计算相关: 某类问题可归约为另一类问题。 若计算相关的问题之一可用多项式时间求解, 则其它同类问题也可用多项式时间求解; 若它们之一肯定不存在多项式时间算法, 则同类的其它问题也肯定不存在多项式时间算法。;3. 判定问题和优化问题 判定问题只牵涉两种情况: Yes, No。这类问题可容易地表达为语言识别问题, 方便地在图灵机上求解。 例如, 排序问题的判定形式: 给定一个整数数组, 是否可按非降顺序排序; 图着色问题的判定形式: 给定无向图G=(V,E), 是否可用k种颜色为V中每个顶点分配一种颜色, 使得不会有两个相邻顶点着同一种颜色。;优化问题牵涉到极值问题: 例如, 图着色问题的优化形式: 为图G=(V,E)着色, 使相邻两个顶点不会有相同颜色时所需要的最少颜色数目。;判定问题转换为优化问题 例如, 求解为图G=(V,E)着色, 使相邻两个顶点不会有相同颜色时所需最少颜色数。 令图的顶点数为n, 彩色数为num。 假定存在一个图着色判定问题的多项式算法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) { mid = (low+high)/2; if (!coloring(G, n, mid)) low = mid+1; else high = mid–1; } num = high; };12.1.1 P类问题 1. 确定性算法 定义12.1 A是问题?的一个算法, 若在处理问题?的实例时, 在算法的整个执行过程中, 每一步只有一个确定的选择, 则称算法A是确定性算法。 算法执行的每一步都有确定的选择。重新用同一输入实例运行该算法, 所得结果严格一致。;2. P类判定问题 定义12.2 若对某个判定问题?, 存在一个非负整数k, 对输入规模为n的实例, 能以O(nk)的时间运行一个确定性算法, 得到Yes或No的答案, 则该判定问题?是一个P类判定问题。;P类判定问题的特性: P类判定问题指具有多项式时间确定性算法的判定问题。 例如, Shortest Path判定问题: 给定有向赋权图G=(V,E), {权为正整数}, 正整数k, 及两个顶点s,t?V, 是否存在着一条由s到t、长度至多为k的路径?  Sort判定问题: 给定n个元素的数组, 是否可以按非降序排序? ;3. 封闭 P类判定问题的补: 改变判定问题的提法, 把“是否可以”、 “是否存在”改为“是否不可以”、“是否不存在”的判定问题。 例如, Sort判定问题的补Not_Sort: 给定n个元素的数组, 是否不可以按非降序排序?;Shortest Path判定问题的补Not Shortest Path: 给定有向赋权图G=(V,E), {权为正整数}, 正整数k, 及两个顶点s,t?V, 是否不存在一条由s到t、长度至多为k的路径?;定义12.3 令C是一类问题, 如果对任何问题??C, ?的补也在C中, 则称C类问题在补集下封闭。 P类问题的封闭性 定理12.1 P类问题在补集下封闭。;4. 归约 定义12.4 令?和??是两个判定问题, 若存在一个确定性算法A, 可以在多项式时间内把问题??的实例I?转换为问题?的实例I, 使得I?的答案为Yes, 当且仅当 I的答案为Yes, 则称??可多项式归约于?, 记为 ?? ?P ?。 P类问题的归约性 定理12.2 令?和??是两个判定问题, 若 ??P 且 ???P? , 则 ???P。;12.1.2 NP类问题 ;1)检查上一阶段的输出y是否具有正确的形式。若y不具有正确的形式, 则算法以答案No结束; 2)若y具有正确的形式, 则继续检查y是否是问题的输入实例x的解。若它确实是问题实例x的解, 则以答案Yes结束, 否则以答案No结束。;例12.1 货郎判定问题: 给定n个城市、正常数k、及城市之间的费用矩阵C, 判定是否存在一条经过每个城市一次且仅一次、最后返回初始出发城市、且费用小于常数k的回路?;假定A是求解货郎判定问题算法, A用非确定性算法在多项式时间内推测存在一条回路, 并假定它是问题的解; A用确定性算法在多项式时间内检查: 该回路是否是Hamilton回路? 若答案为Yes, 则继续检查该回路的费用是

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档