- 10
- 0
- 约6.01千字
- 约 45页
- 2016-03-13 发布于湖北
- 举报
NP完全问题 1 什么是好算法? Edmonds算法标准 Edmonds算法标准指出具有多项式时间的算法为好 算法。 多项式时间算法:如果П是任意一个问题,对П存 在着一个算法,它的时间复杂性为O(nk),其中n为输 入规模,k为非负整数,就认为存在着一个解问题П 的多项式时间算法。 以多项式作为分界函数? 原因有两个: 一、常见算法大致分为两类: 一类是多项式时间内可实现的 另一类需要指数时间(O(cn)) 多项式时间算法的可实现性远大于指数时间算法。 (参见 下表 ) 易解问题与难解问题的主要区别 在学术界已达成这样的共识:把多项式时间复杂性作为易解问题与难解问题的分界线,主要原因有: 1) 多项式函数与指数函数的增长率有本质差别 2) 计算机性能的提高对易解问题与难解问题算法的影响 假设求解同一个问题有5个算法A1~A5,时间复杂度T(n)如下表,假定计算机C2的速度是计算机C1的10倍。下表给出了在相同时间内不同算法能处理的问题规模情况: 3) 多项式时间复杂性忽略了系数,不影响易解问题与难解问题的划分 以多项式作为分界函数? 二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型上实现算法,计算时间不同。 广义Church—Turing命题:不同计算模型上的计算时间有多项式关系。 多项式与多项式的复合函数是多项式,因此,多项式时间算法与计算模型无关。 2 P类问题—易解的问题 是否每个问题都有多项式时间算法? 在考虑问题的计算复杂性时,常把它化为相应的判定 问题考虑。 首先看问题分类及其转换。 问题分类 一类是判定问题 解只有两种,yes或no。 例:给定图G=(V,E), 问该图是否有哈密尔顿圈。 一类是优化问题 例:给定图G=(V,E),假设边的费用为自然数。求该 图的最短哈密尔顿回路。 问题转换 优化问题可转换为相应的判定问题求解。 例:给定图G=(V,E),假设边的费用为自然数。给 定k=1,2,..,问是否有长度不超过k的哈密尔 顿回路。 P类问题 P类: 具有多项式时间算法的判定问题形成一个 计算复杂类,记为P类。 P类—易解的问题 P-Polynomial 思考:已学知识中哪些问题属P类问题? 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的一个真因子。若 国王能在一天之内求出答案,公主便接受他的求
原创力文档

文档评论(0)