NP完全问题


2.2 NP类问题
2.2.1 非确定算法举例 2.2.2 NP类问题算法的阶段 2.2.3 NP类判定问题的定义 2.2.4 NP类问题举例 2.2.5 NP类问题的特征 2.2.6 P类问题和NP类问题的关系
2.2.1 非确定算法举例
给定n个城市及其邻接费用矩阵,找出一个长度为n的序列, 每个元素代表一个城市: int[] getSequence(int n, int[] cities){ int[] result = new int[n]; for (int i=0; i<n; i++){ result[i] = (int)(Math.random()*n); } return result; } 这是一个多项式级别的算法,返回的序列长度为n,但不能 保证相邻两个城市之间有通路,也不能保证各个城市只经过 一次 也可以用城市之间有通路作为条件生成一个长度是n的序列, 这能保证两个相邻城市之间有通路,但不能保证经过且只经 过每个城市一次。这也可以在多项式级别的时间内完成
2.1.5 判定问题规约的定义
定义:令Π和Π′是两个判定问题,如果存在一个 具有如下性能的算法A,可以用多项式的时间,把 问题Π′的实例I′转换为问题Π的实例I,使得I与I′的 Π′ Π 答案一致,就称Π′以多项式时间规约于Π,记为 Π′ ∝p Π 举例:Π问题是:给定一个长度为n整数数组D 和一个整数k判断是否存在D中的一个元素和k相等。 Π′问题是:给定一个长度为m整数数组E和一个整 数k判断是否存在E中的两个元素,其和与k相等。 用于Π′的实例I′向Π的实例I转换的多项式算法A
1.2 问题分类
有两类问题,一类是判定问题,另一类是优化问题 判定问题的解只涉及两种情况:yes或no;优化问题 则涉及极值问题 判定问题举例:给定一个带整数权的有向图G和一 个正整数k,是否存在着一条长度小于k的哈密尔顿回 路? 优化问题举例:给定一个带整数权的有向图G,其 最短路径长度的哈密尔顿长度是多少?
对于哈密尔顿回路问题Π′ 中的无向图G=(V,E) ,可以 用多项式时间构造新的无向图G′=(V′,E′) ,使得V′=V, E′=E 。对于E′中的每条边(u, v)赋予如下权值:
2.1.3 在补集下封闭的定义
可以把前述判定问题的提法改变:给定两个大 小均为n的集合A和B,判断这两个集合中是否不 存在着相同的元素? 这个问题是前述问题的补 定义:令C是一类问题,如果对C中的任何问 题Π∈C,如果Π的补也在C中,则称C类问题在 补集下封闭
2.1.4 P类问题在不集下封闭定 理
例二:m团问题CLIQUE:给定无向图G = (V, E)、 正整数m,判定V中是否存在m个顶点,使得它们导 出的子图构成一个完全图 推测阶段:可以随机地找出m个顶点(这些顶点 可以重复);也可以随机地找出m个不重复的顶点。 这项工作的时间复杂度是多项式级别的 验证和判断阶段:验证m个顶点是否不重复(对 第二种推测,可以省略该步),如果不重复,对于 这m个顶点,判断它们在原图中是否两两相邻。如 果是,则回答yes;否则,回答no。这项工作也可以 在多项式级别的时间内完成
2.2.5 NP类问题的特征
NP类问题的本质特征是:对于给定的一个 实例,能够以多项式时间判断它是不是问题 的实例;如果是,能够以多项式时间对它作 出问题中要求的yes或no的结果回答 NP问题的另一个特征是多项式级别的推测: 能够以多项式时间推测问题的实例
2.2.6 P类问题和NP类问题的关 系
计算复杂性理论有两个基本论题:Church-Turing论题和 Cook-Karp论题 Church-Turing论题:一个问题时可计算的当且仅当它在 图灵机上经过有限次计算得到正确的结果。这个论题把人 类所面临的问题分为两类:一类是可计算的,另一类是不 可计算的。但“有限次计算”是一个宽松的条件 Cook-Karp论题:一个问题是实际可计算的当且仅当它 在图灵机上经过多项式时间(步数)计算得到正确的结果。 Cook-Karp论题将可计算问题类进一步划分成两类:一类 是实际可计算的,另一类是实际不可计算的
3.1 NP完全问题的定义 3.2 多项式规约关系的传递性定理 3.3 NP完全性的传递性定理 3.4 NP完全性的传递性举例 3.5 NP完全问题的重要特征 3.6 NP完全问题举例
3.1 NP完全问题的定义
定义:令Π是一个判定问题,如果对NP中每一个 问题Π′∈NP,有Π′ ∝p Π,就称问题Π是一个NP难题 定义:令Π是一个判定问题,如果Π属于NP,并 且对NP中每一个问题Π′∈NP,有Π′ ∝p Π,就称判定 问题Π是NP完全的,记为NPC 性质:NP难题包含NP完全问题。但有些NP难题 不是NP完全问题,因为它可能不在NP问题中
2.2.3 NP类判定问题的定义
定义:如果对某个判定问题Π,存在着一个非负 整数k,对输入规模为n的实例,能够以O(nk)的时 间运行一个非确定的算法,得到yes或no的答案, 则该判定问题Π是一个NP类判定问题 NP类判定问题的推测和验证合成之后是一个非 确定的算法,这个非确定的算法必须在多项式时 间内完成 NP的意义是:Nondeterministic Polynomial
定理:P类问题在补集下是封闭的 证明:对于P类问题中的任意问题Π,只要修 改相应的多项式级别算法A的代码,把返回yes的 A yes 改为返回no,把返回no的改为返回yes即可
boolean judgeEqual(int n, Elem[] a, Elem[] b){ for (int i=0; i<n; i++) for (int j=0; j<n; j++) if (a[i] == a[j]) return yes; //修改为no return no; //修改为yes }
3.4 NP完全性的传递性举例
已知哈密尔顿回路问题是一个NP完全问题, 证明货郎担问题也是一个NP完全问题 哈密尔顿回路问题Π′ :给定无向图G=(V,E), 是否存在一条回路,使得图中每个顶点在回路中 出现且只出现一次 货郎担问题Π:给定n个城市和它们的距离矩 阵,以及距离L,是否存在从某个城市出发,经 过每个城市一次且仅一次,最后回到出发城市且 距离小于或等于L的路线 后面是具体说明:
2.1.6 判定问题规约的定理
定理:令Π和Π′是两个判定问题,如果Π∈P,并 且Π′ ∝p Π,那么Π′∈P 证明:根据Π′和 Π的规约特性,存在着多项式 算法A,把Π′的实例I′转换为Π的实例I,并且二者。A的运算结果(就是I)是一个多 项式规模的结果。而Π的实例可以用多项式规模的 时间运算得到结果。处理Π′的实例I′所需时间是: I′向I转换所需时间 + 处理I所需时间,这两个时间 都是多项式级别的,因此处理Π′的实例I′是多项式 级别的
从定义上看:P类问题可以用多项式时间的确定 算法解决(判定或求解);NP类问题可以用多项 式级别的时间的确定算法进行检查、验证和判定 PNP。这是因为P类问题一定可以用多项式时 间的算法判定 猜测NP≠P,也就是猜测至少存在着一个问题, 它属于NP类,但它不属于P类。但迄今没有给出 证明
3. NP完全问题
3.3 NP完全性的传递性定理
定理:令Π和Π′是NP中的两个问题,使得Π′ ∝p Π。如果Π′是NP完全的,则Π也是NP完全的 证明: 由于Π′是NP完全的,如果令Π′′是NP中 任意一个问题,则有Π′′ ∝p Π′。根据关系∝p的传 递性, Π′′ ∝p Π。并且,Π′′ 在NP中是任意的, 因此,Π是NP完全的
2. P类和NP类问题
2.1 P类问题 2.2 NP类问题
2.1 P类问题
2.1.1 确定性算法 2.1.2 P类判定问题 2.1.3 在补集下封闭的定义 2.1.4 P类问题在不集下封闭定理 2.1.5 判定问题规约的定义 2.1.6 判定问题规约的定理 2.1.7 判定问题规约定理示例
2.1.1 确定性算法
第12章 NP完全问题
1. NP完全问题概述 2. P类和NP类问题 3. NP完全问题 4. co_NP类和NPI类问题
1. NP完全问题概述
1.1 Church-Turing论题和Cook-Karp论题 1.2 问题分类 1.3 优化问题向判定问题的转换
1.1 Church-Turing论题和CookKarp论题
2.1.7 判定问题规约定理示例
Π问题是:给定一个长度为n整数数组D和一个整数k判断是否存 在D中的一个元素和k相等。 Π′问题是:给定一个长度为m整数 数组E和一个整数k判断是否存在E中的两个元素,其和与k相等 假设Π′问题的输入实例I′是一个长度为n=4的数组{2, 4, -1, 8}, 和一个整数3,转换算法A如下: int[] transfer(int n, int[] inst_ba){ int[] inst = new int [n*(n-1)/2]; int count = 0; for (int i=0; i<n; i++) for (int j=0; j<i; j++){ inst[count] = inst_bar[i] + inst_bar[j]; count++; } } 函数transfer输出一个数组{6, 1, 3, 10, 12, 7},规模是n的多项式 级别。它含有3,因此原问题结果是yes,否则原问题结果为no
2.2.2 NP类问题算法的阶段
一个NP类问题的算法一般分为2个阶段: 第一阶段是推测阶段,第二阶段是验证阶段 在推测阶段,能够以多项式时间得到问题 的一个“推测”实例(不一定是真正实例) 在验证阶段,能够以多项式时间验证推测 阶段所得实例是否是真正的实例。如果不是 实例,则算法结束;如果是实例,则以多项 式时间判定这个实例的结果是yes或no
1.3 优化问题向判定问题的转换
判定问题举例:给定一个带整数权的有向图G和一个正整数k, 是否存在着一条长度小于k的哈密尔顿回路? 优化问题举例:给定一个带整数权的有向图G,其最短路径 长度的哈密尔顿长度是多少?
合集下载

世界十大难题

世界十大难题

世界十大难题1、NP完全问题(NP-C问题)NP完全问题(NP-C问题),是世界七大数学难题之一。

NP的英文全称是Non-deterministicPolynomial的问题,即多项式复杂程度的非确定性问题。

简单的写法是NP=P?,问题就在这个问号上,到底是NP等于P,还是NP不等于P。

NP就是Non-deterministicPolynomial的问题,也即是多项式复杂程度的非确定性问题。

而如果任何一个NP问题都能通过一个多项式时间算法转换为某个NP问题,那么这个NP问题就称为NP完全问题(Non-deterministicPolynomialcompleteproblem)。

NP完全问题也叫做NPC问题。

2、霍奇猜想霍奇猜想是代数几何的一个重大的悬而未决的问题。

由威廉·瓦伦斯·道格拉斯·霍奇提出,它是关于非奇异复代数簇的代数拓扑和它由定义子簇的多项式方程所表述的几何的关联的猜想,属于世界七大数学难题之一。

二十世纪的数学家们发现了研究复杂对象的形状的强有力的办法。

基本想法是问在怎样的程度上,我们可以把给定对象的形状通过把维数不断增加的简单几何营造块粘合在一起来形成。

3、庞加莱猜想庞加莱猜想(Poincaréconjecture)是法国数学家庞加莱提出的一个猜想,其中三维的情形被俄罗斯数学家格里戈里·佩雷尔曼于2003年左右证明。

2006年,数学界最终确认佩雷尔曼的证明解决了庞加莱猜想。

1904年,法国数学家亨利·庞加莱提出了一个拓扑学的猜想:“任何一个单连通的,闭的三维流形一定同胚于一个三维的球面。

”简单地说,一个闭的三维流形就是一个有边界的三维空间;单连通就是这个空间中每条封闭的曲线都可以连续的收缩成一点,或者说在一个封闭的三维空间,假如每条封闭的曲线都能收缩成一点,这个空间就一定是一个三维圆球。

4、黎曼假设黎曼猜想是关于黎曼ζ函数ζ(s)的零点分布的猜想,由数学家黎曼于1859年提出。

NP完全问题

NP完全问题
}
2.1.5 判定问题规约的定义
定义:令和是两个判定问题,如果存在一个 具有如下性能的算法A,可以用多项式的时间,把 问题的实例I转换为问题的实例I,使得I与I的 答案一致,就称以多项式时间规约于,记为 p
举例:问题是:给定一个长度为n整数数组D 和一个整数k判断是否存在D中的一个元素和k相等。 问题是:给定一个长度为m整数数组E和一个整 数k判断是否存在E中的两个元素,其和与k相等。 用于的实例I向的实例I转换的多项式算法A
判定问题举例:给定一个带整数权的有向图G和一 个正整数k,是否存在着一条长度小于k的哈密尔顿回 路?
优化问题举例:给定一个带整数权的有向图G,其 最短路径长度的哈密尔顿长度是多少?
1.3 优化问题向判定问题的转换
判定问题举例:给定一个带整数权的有向图G和一个正整数k, 是否存在着一条长度小于k的哈密尔顿回路? 优化问题举例:给定一个带整数权的有向图G,其最短路径 长度的哈密尔顿长度是多少?
第12章 NP完全问题
1. NP完全问题概述 2. P类和NP类问题 3. NP完全问题 4. co_NP类和NPI类问题
1. NP完全问题概述
1.1 Church-Turing论题和Cook-Karp论题 1.2 问题分类 1.3 优化问题向判定问题的转换
1.1 Church-Turing论题和CookKarp论题
性质:NP难题包含NP完全问题。但有些NP难题 不是NP完全问题,因为它可能不在NP问题中
3.2 多项式规约关系的传递性定 理
定理:多项式规约关系满足传递性:令、、 是三个判定问题,满足 p , p , 则有 p
证明:通过规约关系的定义,必定存在着多项 式算法A和A, A使得的实例I(规模是n) 以多项式时间转换为的实例I,A使得的实 例I以多项式时间转换为的实例I。而A和A的 多项式级别性质使得实例I的规模是n的多项式级 别的。综合起来,的任意实例都能在多项式 级别转换为的实例

第八章 NP完全问题.ppt

第八章 NP完全问题.ppt
VIII.NP理论与近似解法
•NP-完全问题:NP类中最困难的问题。 •COOK定理:3SAT是NP -完全问题。 •证明:使用TURING机! •归约:多项式时间转化
最著名的NPC问题: SAT 3SAT CLICHÉ 图的着色 三元匹配; 划分问题 独立集, 顶点复盖 HAMILTON道路:
第三章 NP-完全问题
Cook 定理
The notion of reducing one problem to another may be defined formally in one of several ways. The choice of which one to use depend on the application. Today our choice is a simple type of reducibility called mapping-reducibility (many-one reducibility).
证明思路
如果语言A有性质(3.1),那么对于任何输入x,一个
NTM M可以通过以下方法决定是否x A:首先猜测
一个长为 的符号行y,然后在多项式时间内验证是 否<x,y> B,对每个x A,那个使<x,y> B的长为 P(|x|)的符号行y称为x的佐证或者证据。
满意问题(Sat):给出一个布尔公式 ,决
Sat 是NP-完全问题(Cook定理)
NP完全问题的例子
3-Sat问题是NP-完全问题(该乘积的每个 因子是恰含三项的初等和) 注意:CNF表示合取范式,是初等和的乘 积。3-CNF的意思
NP完全问题的例子
平面3-Sat是NP-完全问题。
多项式时间图灵归约
多项式时间多对一归约 反映一种最简单

算法10_NP完全问题

算法10_NP完全问题

if(a[j]==x) { cout<<j;
Success();
执行时间都为O(1) //不确定算法成功终止
}
cout<<-1; Failure(); }
若算法执行中需作出一系列的Choice函 数//不选确择定,算当法且失仅败当终C止hoice的任何一组选
择都不会导致成功信号时,算法在O(1)
时间不成功终止。
ch10.6
不确定机的执行方式,可理解为不受限制的并行计算:
➢不确定机执行不确定算法时,每当Choice函数进行 选择时,就好像复制了多个程序副本,每一种可能的 选择产生一个副本,所有副本同时执行。一旦一个副 本成功完成,将立即终止所有其他副本的计算。
➢如果存在至少一种成功完成的选择,一台不确定机 总能做出最佳选择,以最短的程序步数完成计算,并 成功终止。
在不不确确定定搜机索上算执法行:的算法称为不确定算法(non
dveotiedrSmeianricsht(iicntaal[g],oTrxit)hm如)果。一个判定问题实例的解为真,
{
Choice函数每一次总能在O(1)时
int j=Choice(0,n-1); 间//从内{做0,1出,.导..,n致-1成}中功任的意正选确取选一择个。值
算法设计与分析
第10章 NP完全问题
学习要点: 确定算法和不确定算法 判定问题和最优化问题的关系 可满足性问题 P类问题和NP类问题 NP难度(NP hard)和NP完全(NP complete)问题 Cook定理 典型的NP完全(或NP难度)问题的证明
ch10.2
章节内容:
10.1 基本概念 10.2.1 Cook定理 10.3 一些典型的NP完全问题

13 NP-完全问题

13 NP-完全问题
1 i = 0
随机存取存储程序机RASP
1、RASP的结构 、RASP的结构
RASP的整体结构类似于RAM,所不同的是RASP的程序是存 储在寄存器中的。每条RASP指令占据2个连续的寄存器。第一个 寄存器存放操作码的编码,第二个寄存器存放地址。RASP指令用 整数进行编码。
2、RASP程序的复杂性 、RASP程序的复杂性
一些难解问题
(5)可满足性问题
这个问题也称合取范式的可满足问题。 这个问题也称合取范式的可满足问题。 一个合取范式形如:A1∧A2∧…∧An(即若干子句的逻辑乘) ∧An( 一个合取范式形如:A1∧A2∧ ∧An 即若干子句的逻辑乘) 子句Ai形如:a1∨a2∨…∨ak,其中aj(1<=j<=k) Ai形如 ∨ak,其中aj(1<=j<=k)为某一布尔变 子句Ai形如:a1∨a2∨ ∨ak,其中aj(1<=j<=k)为某一布尔变 量或是该变量的非。 量或是该变量的非。 合取范式的可满足性问题:是否有一组对所有命题变量的赋值 合取范式的可满足性问题: T),使得整个CNF取值为真( CNF取值为真 (F或T),使得整个CNF取值为真(T)。
一些难解问题
(6)图的团集问题
图G=<V,E>的团集,是指G的一个完全子图,即该子图中任意两 G=<V,E>的团集,是指G的一个完全子图, 的团集 个互异的顶点都有一条边相连。 个互异的顶点都有一条边相连。 无向图G=<V,E>的团集问题: 无向图G=<V,E>的团集问题:求G的最大子团。 G=<V,E>的团集问题 的最大子团。
13 NP完全问题
Hale Waihona Puke 学习要点• • • •

Chapter-9_NP完全问题

Chapter-9_NP完全问题
南京理工大学
9 NP完全问题 NP Complete Problem
南京理工大学
本章内容提要
• • • • • • • 易解问题与难解问题 P类问题和 类问题 类问题和NP类问题 类问题和 NP完全问题 完全问题 co-NP类问题 类问题 NPI类问题 类问题 P、NP、co-NP、NPI类之间的区别与联系 、 、 、 类之间的区别与联系 NP完全问题的计算机处理技术简介 完全问题的计算机处理技术简介
南京理工大学
9.1.2 易解问题与难解问题的主要区别
在学术界已达成这样的共识: 在学术界已达成这样的共识:把多项式时间复杂性作为 易解问题与难解问题的分界线,主要原因有: 易解问题与难解问题的分界线,主要原因有: 1) 多项式函数与指数函数的增长率有本质差别
问题规模 n logn n
1 10 20 50 100 0 3.3 4.3 5.6 6.6 1 10 20 50 100
特点:对同一输入实例,运行算法 ,所得结果是一样的。 特点:对同一输入实例,运行算法A,所得结果是一样的。
• 定义 定义9.2(P类问题 如果对于某个判定问题 ,存在一个非 类问题): 类问题 如果对于某个判定问题∏, 负整数k,对于输入规模为n的实例 能够以O(nk)的时间运 的实例, 负整数 ,对于输入规模为 的实例,能够以 的时间运 行一个确定性算法,得到yes或no的答案,则称该判定问题 的答案, 行一个确定性算法,得到 或 的答案 ∏是一个 是一个P(Polynomial)类问题。 类问题。 是一个 类问题
3) 多项式时间复杂性忽略了系数,不影响易解问题与难解 多项式时间复杂性忽略了系数,
问题的划分
问题规模n 问题规模 5 10 100 1000 多项式函数 n8 390625 108 1016 1024 108n 5×108 × 109 1010 1011 n1000 51000 101000 102000 103000 1.1n 1.611 2.594 13780.6 指数函数 20.01n 1.035 1.072 2

NP完全问题

NP完全问题
时间复杂度:时间复杂度并不是表示一个程
序解决问题需要花多少时间,而是当问题规模扩大 后,程序需要的时间长度增长得有多快。
• 也就是说,对于高速处理数据的计算机来说,处理某一个 特定数据的效率不能衡量一个程序的好坏,而应该看当这 个数据的规模变大到数百倍后,程序运行时间是否还是一 样,或者也跟着慢了数百倍,或者变慢了数万倍。 • 不管数据有多大,程序处理花的时间始终是那么多的,我 们就说这个程序很好,具有O(1)的时间复杂度,也称常数 级复杂度;数据规模变得有多大,花的时间也跟着变得有 多长,这个程序的时间复杂度就是O(n),比如找n个数中 的最大值;而像冒泡排序、插入排序等,数据扩大2倍, 时间变慢4倍的,属于O(n^2)的复杂度。还有一些穷举类 的算法,所需时间长度成几何阶数上涨,这就是O(a^n)的 指数级复杂度,甚至O(n!)的阶乘级复杂度。
如何证明一个问题是NP完全性问题
• 首先找出一个已知为NP完全性问题,通过 归约说明待证明的问题也是NP完全性问题, 其原因是如果可以再多项式时间解决这个 问题,就可以在多项式时间解决所有的已 知的全部NP完全问题。
例如:
• • • • 已知顶点覆盖问题为NP完全问题 顶点覆盖问题: 输入:图G和一个整数K。 输出:如果图G中不超过k个定点的一个子集s使得图G中 的每一条边至少有一个端点在S中,则输出YES,否则输 出NO。 证明团问题是NP完全问题 团问题: 输入:图G和一个整数K。 输出:如果图G中不少于k个定点的一个子集S是一个完全 图,则输出YES,否则输出NO。
• 非确定性是指在理论计算机科学中,针对 各种计算机器模型(自动机),在每一时 刻,根据当时的状态和输入,若机器有多 个动作可供选择时,则称机器为非确定性 的;相反,若机器的动作可唯一确定时。 • 且非确定性是相对于确定性来说,对于非 确定性的机器,在性能各方面要高于确定 性机器。

NP完全的问题

NP完全的问题一个NP-完全的问题具有如下性质:它可以在多项式时间内求解,当且仅当所有的其他的NP-完全问题也可以在多项式时间内求解。

P是所有可在多项式时间内用确定算法求解的判定问题的集合。

NP 问题是所有可用多项式时间算法验证其猜测准确性的问题的集合。

令L1和L2是两个问题,如果有一确定的多项式时间算法求解L1,而这个算法使用了一个在多项式时间内求解L2的确定算法,则称L1约化为L2。

如果可满足性约化为一个问题L,则称L问题是NP-难度的。

如果L是NP难度的且L(-NP,则称L是NP-完全的。

NP并不是NON-POL YNOMIAL,把NP说成是NON-POL YNOMIAL,是望文生义,读书不求甚解。

事实上,如果你能够证明某个NP问题是个NON-POL YNOMIAL的问题,你就可以去领那七个百万美元数学大奖中间的一个了。

数学上著名的NP问题,完整的叫法是NP完全问题,也即“NP COMPLETE”问题,简单的写法,是NP=P?的问题。

问题就在这个问号上,到底是NP等于P,还是NP不等于P。

证明其中之一,便可以拿百万美元大奖。

这个奖还没有人拿到,也就是说,NP 问题到底是Polynomial,还是Non-Polynomial,尚无定论。

NP里面的N,不是Non-Polynomial的N,是Non- Deterministic,P代表Polynomial倒是对的。

NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。

如果一个判定性问题的复杂度是该问题的一个实例规模n的多项式函数,则这种可以在多项式时间内解决的判定性问题属于P类问题。

P类问题就是所有复杂度为多项式时间的问题的集合。

通俗地称所有复杂度为多项式时间的问题为易解的问题类,否则为难解的问题。

有些问题很难找到多项式时间的算法(或许根本不存在),例如“找出无向图中哈米尔顿回路”问题。

但如果给了该问题的一个答案,可以在多项式时间内判断这个答案是否正确。

NP完全问题

顶点度<=2时,Hamiltonian回路问题有多项 式算法
工程中有灵活性,以某种方式优化是NP-难 度问题;但以另一方式提出问题可能不是. 了解“难问题”的特点
13.3.3续
3-满足问题仍为NP-完全问题,但2-满足问 题有多项式算法 集团问题,当顶点度<=常数d时属于类P 平面图集团问题属于类P,因为平面图至 多有4-集团 实际有意义的做法是提出合理的限制条件 和求近似解, 研究启发式算法.
CNF-satisfiablity问题是NP-完全问题
定理13.5 CNF-satisfiablity问题是NP-完全 问题 这是著名的Cook定理 Cook 定理的推论:如果CNF-可满足问题有 多项式界的算法,则P=NP.
NP-完全问题证明
证明问题Q是NP-完全问题的步骤: (1)选择一已知的NP-完全问题P。
搜索算法有指数的复杂度:须试所有可能的 S的分划。
装箱问题:FFD算法(贪心法)
将物品按尺寸递减排序,箱子从左到右排列 并尽可能放在前面的箱子里。 算法的时间复杂度t(n)=θ(n2)
算法:装箱问题
输入: S=(s1,….,sn) ,0<si≤1 ,1≤i≤n. S 代表货物1,...,n 的尺寸,每个箱子的容量 都是1.0。 输出: bin[i]是放物品i的箱子号,1≤i≤n. 为 了使算法简单,在装箱前,货物已经按尺 寸从大到小排序。
问题4 背包问题
判定问题:是否存在效益值至少为k的可行 子集? 优化问题
问题5 子集和数问题s1,s2,┅,sn,C
判定问题:是否存在和数等于C的子集? 优化问题:求≤C的最大子集和数. 可归约为背包问题: pi=wi.
问题6 CNF(合取范式)-可满足问题

NP完全问题(纯理论)


NP类问题举例—求真因子问题
国王: 顺序算法 宰相: 并行算法
是否所有的难解问题通过并行计算使其在多项式内可 解?
关于并行算法:当将一个问题分解到多个处理器上解 决时,由于算法中不可避免地存在必须串行执行的操 作,从而大大地限制了并行计算机系统的加速能力。
NP类问题举例—求真因子问题
阿达尔定律:串行执行操作仅占全部操作1%,解 题速度最多也只能提高一百倍。
以多项式作为分界函数?
原因有两个: 一、常见算法大致分为两类: 一类是多项式时间内可实现的 另一类需要指数时间(O(cn))
多项式时间算法的可实现性远大于指数时间算法。 (参见P8,表1.2)
以多项式作为分界函数?
二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型 上实现算法,计算时间不同。
SATISFIABILITY∝p3-SATISFIABILITY
几个典型的NPC问题

图的着色问题(COLORING) 判定问题:COLORING 输入:无向图G=(V,E) 问题:是否可用k种颜色为图G的顶点着色,使 得相邻顶点不会有相同颜色。
3-SATISFIABILITY∝pCOLORING
定义12.3 令П 是一个判定问题,如果: (1) П ∈NP; (2) 对NP中的所有问题П ′∈NP,都有 П ′∝pП ; 则称判定问题П 是NP完全 (NPC)的。
P类、NP类、NPC类问题关系
根据定义,可用如下图表示三者之间的关系:
NP
P
NPC
P类、NP类、NPC类问题关系

对NPC问题,有个重要性质 对NPC类中的一个问题,如果能够证明用多项式 时间的确定性算法来进行求解或判定,那么, NP中的所有问题都可以通过多项式时间的确定性 算法来进行求解或判定。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档