NP完全问题(纯理论).ppt

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

第十二章 NP完全问题 12.1 什么是好算法? Edmonds算法标准 Edmonds算法标准指出具有多项式时间的算法为好 算法。 多项式时间算法:如果П是任意一个问题,对П存 在着一个算法,它的时间复杂性为O(nk),其中n为输 入规模,k为非负整数,就认为存在着一个解问题П 的多项式时间算法。 以多项式作为分界函数? 原因有两个: 一、常见算法大致分为两类: 一类是多项式时间内可实现的 另一类需要指数时间(O(cn)) 多项式时间算法的可实现性远大于指数时间算法。 (参见P8,表1.2) 以多项式作为分界函数? 二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型上实现算法,计算时间不同。 广义Church—Turing命题:不同计算模型上的计算时间有多项式关系。 多项式与多项式的复合函数是多项式,因此,多项式时间算法与计算模型无关。 12.2 P类问题—易解的问题 是否每个问题都有多项式时间算法? 在考虑问题的计算复杂性时,常把它化为相应的判定 问题考虑。 首先看问题分类及其转换。 问题分类 一类是判定问题 解只有两种,yes或no。 例:给定图G=(V,E), 问该图是否有哈密尔顿圈。 一类是优化问题 例:给定图G=(V,E),假设边的费用为自然数。求该 图的最短哈密尔顿回路。 问题转换 优化问题可转换为相应的判定问题求解。 例:给定图G=(V,E),假设边的费用为自然数。给 定k=1,2,..,问是否有长度不超过k的哈密尔 顿回路。 P类问题 P类: 具有多项式时间算法的判定问题形成一个 计算复杂类,记为P类。 P类—易解的问题 P-Polynomial 思考:已学知识中哪些问题属P类问题? 12.3 NP类问题—难解的问题 具有指数时间算法的问题。 例:货郎担问题(TSP问题)。 n!排列方式。 n=6: 6! = 720 n=19: 19! ≈ 1.21*1017 每秒排一次,排3.84*109年 每秒排百万次,排3000年 TSP问题 1998年,解决了美国13509个城市之间的TSP问题 2001年,解决了德国15112个城市之间的TSP问题 解决15112个城市之间的TSP问题,共使用了美国 Rice大学和普林斯顿大学之间网络互连的,由速度为 500MHz 的Compaq EV6 Alpha 处理器组成的110 台计算机,所有计算机花费的时间之和为22.6年。 NP类问题 一般而言,验证解比求解易。 对具有指数时间的问题,有些可用不确定性算法求 解。该算法包含两个阶段: 推测阶段 对规模为n的输入实例x,产生一个输出y。 验证阶段 检验y是否满足解形式,是否是解。 NP类问题 推测阶段是具有多项式时间的非确定性(non-determinism)算法,对输入实例x,下次产生的输出可能不是y。 验证阶段是具有多项式时间的确定性算法。 NP类问题 NP类: 由具有多项式时间的非确定性算法求解的判定问题形成的一个计算复杂类,记为NP类。 NP—难解的问题 NP—Nondeterministic Polynomial NP类问题举例—货郎担问题 例:货郎担的判定问题:给定n个城市、正常数k及城 市之间的费用矩阵C,判定是否存在一条经过所有 城市一次且仅一次,最后返回初始出发城市且费用 小于常数k的回路。 算法A用非确定算法在多项式时间内推测一条回路 A用确定算法在多项式时间内判定回路是否是哈密尔顿回路,是否费用和小于k,返回yes或no。 NP类问题举例—求真因子问题 例:有一个国王向邻国公主求婚。公主出了一道题: 求出48 770 428 433 377 171的一个真因子。若 国王能在一天之内求出答案,公主便接受他的求 婚。 国王,顺序除,一天未算出。 223 092 827 宰相,给全国百姓编号,用自己的编号去除公主给的数,除尽的报数,领赏。 NP类问题举例—求真因子问题 国王: 顺序算法  宰相: 并行算法 是否所有的难解问题通过并行计算使其在多项式内可 解? 关于并行算法:当将一个问题分解到多个处理器上解 决时,由于算法中不可避免地存在必须串行执行的操 作,从而大大地限制了并行计算机系统的加速能力。 阿达尔定律:串

文档评论(0)

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

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

1亿VIP精品文档

相关文档