NP完全问题

合集下载

世界十大难题

世界十大难题

世界十大难题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完全问题
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-完全的问题具有如下性质:它可以在多项式时间内求解,当且仅当所有的其他的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完全问题

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(合取范式)-可满足问题

第4章 NP完全问题

第4章 NP完全问题

第1节 P类问题与NP类问题
确定型图灵机与非确定型图灵机
确定型图灵机示例:f(x)=x+1
Q = {q1, q2, q3}, Γ={b, 0, 1}, qaccept=q3
当前状态 q1 q1 q1 q2 q2 q2
当前输入 0 1 b 0 1 b
输出 1 0 1 0 1 b
移动方向 L L n L L n

第3节 NP完全问题的证明

第3节 NP完全问题的证明

构件设计法
第3节 NP完全问题的证明
哈密顿回路问题(HC)
证明:有向HC问题是NP完全问题。



……
……




第3节 NP完全问题的证明
哈密顿回路问题(HC)
下一状态 q2 q1 q3 q2 q2 q3
第1节 P类问题与NP类问题

对于任意一个非确定型图灵机M,存在一个确定型 图灵机M',使得它们的语言相等,即L(M) = L(M')。
第1节 P类问题与NP类问题
确定型图灵机与非确定型图灵机
有解无算法的问题——π的计算问题 无解无算法的问题——停机问题 可计算的问题——能被图灵机计算的问题
最大可满足性问题(MAX-SAT)
任给关于变元(x1, x2, .., xn)的简单析取式(C1, C2, .., Cm)及正整 数K,问是否存在关于(x1, x2, .., xn)的赋值使得(C1, C2, .., Cm)中 至少有K个为真?
SAT问题是MAX-SAT问题的子问题。
第3节 NP完全问题的证明
类问题不仅仅是找到解答存在与否,还必须要输出解答。他提出了六个NP-完全的搜

NP完全问题(纯理论)

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

NPC
P类、NP类、NPC类问题关系

对NPC问题,有个重要性质 对NPC类中的一个问题,如果能够证明用多项式 时间的确定性算法来进行求解或判定,那么, NP中的所有问题都可以通过多项式时间的确定性 算法来进行求解或判定。

千禧年七大数学难题

千禧年七大数学难题

千禧年七大数学难题千禧年七大难题分别为:NP完全问题、霍奇猜想、庞加莱猜想、黎曼猜想、杨-米尔斯存在性和质量缺口、纳斯-斯托克斯方程、BSD猜想。

庞加莱猜想已被解决。

1.N P完全问题NP完全问题是一道在理论信息学中计算复杂度理论领域里没有解决的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。

复杂度类P包含所有那些可以由一个确定型图灵机在多项式表达的时间内解决的问题;类NP由所有其肯定解可以在给定正确信息的多项式时间内验证的决定问题组成,或者等效的说,那些解可以在非确定图灵机上在多项式时间内找出的问题的集合。

很可能,计算理论最大的未解决问题就是关于这两类的关系的:P和NP相等吗?经过50多年的研究以及百万美元的奖金和大量投入巨大,现在依然没有实质性结果的研究足以显示该问题是困难的,并且一些形式化的结果证明为什么该问题可能很难解决。

如果NP完全问题解决,即P=NP,那么所有属于NP的问题也能在多项式时间内解决。

但事实上,无论P是否等于NP,这个问题在向计算机程序的能力界限发起挑战的同时,也会很大程度上的帮助计算机科学的发展。

(多项式时间(Polynomi al time)在计算复杂度理论中,指的是一个问题的计算时间不大于问题大小的多项式倍数。

任何抽象机器都拥有一复杂度类,此类包括可于此机器以多项式时间求解的问题。

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

由威廉·瓦伦斯·道格拉斯·霍奇提出,它是关于非奇异复代数簇的代数拓扑和它由定义子簇的多项式方程所表述的几何的关联的猜想,与费马大定理和黎曼猜想成为广义相对论和量子力学融合的m理论结构几何拓扑载体和工具。

猜想的主要内容即为在非奇异复射影代数簇上, 任一霍奇类是代数闭链类的有理线性组合,并断言,对于所谓射影代数簇这种特别完美的空间类型来说,称作霍奇闭链的部件实际上是称作代数闭链的几何部件的(有理线性)组合。

NP完全问题证明

NP完全问题证明

均分∈ 8.5.5. 均分∈NPC 子集A :1≤ 子集A’ = {ai:1≤i≤k} 满足
a∈ A'
∑ s( a ) = B
当且仅当 M’ = {mi: ai∈A’}是M的匹配 } A的最后两个元素b1,b2 的最后两个元素b
s ( b1 ) = 2 ∑ s ( a i ) − B
i =1
k
s ( b2 ) = ∑ s ( a i ) + B
均分∈ 8.5.5. 均分∈NPC
构造A 构造A,|A| = k +2 对应于每个m 对应于每个mi = (wf(i),xg(i),yh(i)) 有ai. 为二进制数,分成3q 3q段 每段有p log(k+1) s(ai)为二进制数,分成3q段,每段有p = log(k+1)位,共计 3pq位 每段对应一个W 3pq位,每段对应一个W∪X∪Y中的元素. Wf(i),xg(i),yh(i) 所代 中的元素. 表的段的最右位为1 其它为0. 表的段的最右位为1,其它为0.
均分∈ 8.5.5. 均分∈NPC
实例:有穷集A s(a)∈ 实例:有穷集A,∀a∈A, s(a)∈Z+. 是否存在A ⊆ 问:是否存在A’⊆A,使得
a∈ A'
∑ s( a ) =
a∈ A− A均分是NP类问题。下面将3DM变换到均分问题 显然均分是NP类问题。下面将3DM NP类问题 3DM变换到均分问题 3DM的实例 的实例, 设W,X,Y,M ⊆ W×X×Y 是3DM的实例, 其中|W| q, 其中|W| = |X| = |Y| = q, W = {w1,w2,… ,wq} X = {x1,x2,… ,xq} Y = {y1,y2,… ,yq} M = {m1,m2,… ,mk}

算法设计与分析课件--NP完全性理论-NP完全问题及近似算法

算法设计与分析课件--NP完全性理论-NP完全问题及近似算法
算法设计与分析
1
第八章 NP完全性理论
目录
8.1 异解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.3 NP完全问题
问题变换:
➢ NP类问题在最坏情况下的时间复杂性一般都是快速增长的指数函 数。希望能够在NP类问题内部找到一种方法,比较两个问题的计 算复杂性。
❖该近似算法的相对误差定义为=
cc* c*
。若对问题的输
入规模n,有一函数ε(n)使得 c c* ≤ε(n),则称ε(n)
c*
为该近似算法的相对误差界。
13
8.4 NP完全问题的近似算法
NPC问题的近似算法示例 - TSP:
➢ 给定一个完全无向图G=(V,E),其每一条边(u,v)∈E有一非 负整数费用c(u,v)。要找出G的最小费用哈密顿回路。如果 TSP满足三角不等式性质,即对于任意3个顶点u,v,w∈V有 :c(u,w)≤c(u,v)+c(v,w),则称该TSP为欧几里得TSP,否 则称为一般TSP。
12
8.4 NP完全问题的近似算法
NPC问题的近似算法的性能:
❖若一个最优化问题的最优值为c*,求解该问题的一个近 似算法求得近似最优解相应的目标函数值为c,则将该近 似近≤似算ρ比法(是n的)问。近题ρ似输(比n入)定为规义1模时为n,的求=一m得a个x的c函c*近, c数c*似 ρ。解(在为n)通最,常优即情解m况a。x 下cc* ,,cc*该
➢ 传递性:设P1、P2和P3是3个判定问题。若P1∝τ(n)P2,且P2∝τ(n)P3 ,则P1∝τ(n)P3。
4
8.3 NP完全问题
多项式时间变换示例:

NP完全问题详解(共53张PPT)

NP完全问题详解(共53张PPT)

几个典型的NP完全问题
可满足性问题(SATISFIABILITY) 三元可满足性问题(3_SATISFIABILITY) 图的着色问题(COLORING) 集团问题(CLIQUE)
顶点覆盖问题(VERTEX COVER)
可满足性问题(SATISFIABILITY)
一、可满足性问题 1、合取范式:由若干个析取子句的合取构成的布尔表达式 f 。 例: f ( x2 x3 x5 ) ( x1 x3 x4 x5 ) (x2 x3 x4 ) 2、合取范式的可满足性: 对合取范式 f 的相应布尔变量赋值,使 f 的真值为真,就说布尔表达式 f 是可满足的。 例:上式中,只要使 x1、x4和 x5为真,则表达式 f 为真。因此,这个式子是可满足的。 3、可满足性问题: 判定问题:SATISFIABILITY 输入:CNF 布尔表达式 f 问题:对布尔表达式 f 中的布尔变量赋值,是否可使 f 的真值为真
类问题
例 解货郎担判定问题 TRAVELING SALESMAN 的算法 A是 NP类判定问题: A可在推测阶段用多项式时间推测出一条回路,并假定它是问题的解; 在验证阶段用多项式时间的确定性算法, 检查所推测的回路是否恰好每个城市经过一次, 如果是,再进一步判断这条回路的长度是否小于或等于l , 如果是,答案为 yes,否则,答案为no。 存在多项式时间的确定性算法,对推测阶段所作出的推测进行检查和验证。 因此,货郎担判定问题是 NP类判定问题。
否不存在”的判定问题。 例:可排序判定问题的补 NOT_SORT: 给定 n 个元素的数组,是否不可以按非降顺序排序。 最短路径判定问题的补 NOT SHORTEST PATH: 给定有向赋权图G (V , E )(权为正整数)、正整数k 、及两个顶点s,t V , 是否不存在一条由s到t 、长度至多为k 的路径。 2、封闭的定义 定义 12.3 令C 是一类问题,如果对C 中的任何问题C,的补也在C 中,则

NP完全问题

NP完全问题

模拟退火算法(Simulated Annealing)来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加 温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最 后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT), 其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目 标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始, 对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所 得近似最优解。
遗传算法是仿真生物遗传学和自然选择机理,通过人工方式所构造的一类搜索算法,从某种程度上说遗传算 法是对生物进化过程进行的数学方式仿真。生物种群的生存过程普遍遵循达尔文进化准则,群体中的个体根据对 环境的适应能力而被大自然所选择或淘汰。进化过程的结果反映在个体的结构上,其染色体包含若干基因,相应 的表现型和基因型的体现了个体的外部特性与内部机理间逻辑关系。通过个体之间的交叉、变异来适应大自然环 境。生物染色体用数学方式或计算机方式来体现就是一串数码,仍叫染色体,有时也叫个体;适应能力是对应着 一个染色体的一个数值来衡量;染色体的选择或淘汰则按所面对的问题是求最大还是最小来进行。
如果这还不算太糟的话,1993年Razborov和Rudich证明的一个结果表明,给定一个特定的可信的假设,在 某种意义下“自然”的证明不能解决P = NP问题。这表明一些现在似乎最有希望的方法不太可能成功。随着更多 这类的定理得到证明,该定理的可能证明有越来越多的陷阱要规避。这实际上也是为什么NP完全问题有用的原因: 若有一个多项式时间算法,或者没有一个这样的算法,对于NP完全问题存在,这将用一种相信不被上述结果排除 在外的方法来解决P = NP问题。P=NP问题可以用逻辑命题的特定类的可表达性的术语来重新表述。所有P中的语 言可以用一阶逻辑加上最小不动点操作(实际上,这允许了递归函数的定义)来表达。类似地,NP是可以用存在 性二阶逻辑来表达—也就是,在关系、函数、和子集上排除了全域量词的二阶逻辑。多项式等级,PH中的语言对 应与所有的二阶逻辑。这样,“P是NP的真子集吗”这样的问题可以表述为“是否存在性二阶逻辑能够表达带最 小不动点操作的一阶逻辑的所不能表达的语言?”

算法与复杂性-第9讲NP完全问题

算法与复杂性-第9讲NP完全问题
称为零一方程,ZOE
11
3D匹配
二部图匹配,匹配n个男孩和n个女孩
转化为最大流问题,线性时间求解
考虑再加入n个宠物,要求形成尽可能多的 (男孩、女孩、宠物)三元组,其中成员能共 处。
12
独立集、节点覆盖
独立集问题:给定一个图和整数g,求图中g个互相 独立的节点。即任意两个这样的节点之间没有边连 接。
9
平衡分割问题:给定一个包含n个节点的图和 预算b,平衡分割将所有的节点分为两个集合S 和T,使得|S|、|T|≥n/3,并且S和T之间最多有b 条边。
没有多项式时间算法
10
零一方程、整数线性规划
线性规划存在多项式时间算法,整数线性规划 则不然
考虑一个特例:n维向量x由0和1构成,满足 Ax=I,其中A是一个由0和1构成的m×n矩阵, I是m维单位向量
求最优的旅行线路(TSP最优问题)寻找最小的 预算,使TSP搜索问题在预算b下有解
给定预算b,如存在解,则b=b/2,否则b=3b/2。
7
欧拉问题和Rudrata问题
欧拉问题:给定一个图,寻找一条恰好包含每 条边一次的路径,或者报告路径不存在。
哥尼斯堡七桥问题。 有线性时间算法
I为一个布尔公式;S 是每个布尔变量的取值; C(I,S)是对每个子句求值
SAT问题目前最高效的算法,就是遍历所有2n 个可能的解。需要指数时间。
如果每个子句仅包含3个文字,问题称为3SAT
5
旅行商问题(TSP)
给定n个节点和它们之间n(n-1)/2个两两距离, 以及一个旅பைடு நூலகம்预算b,确定一条旅行路径,该 路径是经过每个节点恰一次的环(τ(1), τ(2), …, τ(n)),且旅行距离不超过预算b。

第八章 NP完全问题

第八章 NP完全问题

第八章 NP-完全问题§1 关于问题及算法的描述为了应用算法复杂性理论,首先要对问题、问题的一般描述、计算模型、算法、算法的复杂性给出严格的定义。

但在给出精确定义之前,我们先回顾一下有关概念的粗略解释。

所谓一个问题(problem)是指一个有待回答、通常含有几个取值还未确定的自由变量的一个一般性提问(question)。

它由两部分构成:一是对其关于参数的一般性描述;二是对该问题的答案所应满足的某些特性的说明。

而一个问题的某个实例则可通过指定问题中所有参数的具体取值来得到。

以下用∏表示某个问题,用I 表示其实例。

旅行商问题的参数是由所需访问城市的一个有限集合},,,{11m C C C C =和C 中每对城市j i C C ,之间的距离),(j i C C d 所组成。

它的一个解是对所给城市的一个排序(1)(2)(),,,m C C C πππ使得该排序极小化下面表达式(目标函数)的值),(),()1()()1(11)(ππππC C d C C d m i m i i ++-=∑旅行商问题的一个实例是通过指定城市的数目,并指定每两个城市之间的具体距离而得到的。

例如:{}4321,,,C C C C C =,3),(,9),(,6),(,9),(,5),(,10),(434232413121======C C d C C d C C d C C d C C d C C d就是旅行商问题的一个实例,这个实例的一个最优解是排序1342,,,C C C C ,因为四个城市的这个排序所对应旅行路线是所有可能环游路线中长度最小的,其长度为27。

目前广泛采用的描述问题的方法主要有两种:一是将任一问题转化为所谓的可行性检验问题(feasibility problem);二是把问题转化为判定问题(decision problem)。

实际中几乎所有问题都可直接或间接地转述为判定问题。

判定问题是答案只有“是”与“非”两种可能的问题。

第08章 NP完全问题

第08章 NP完全问题

问题列表 哈密尔顿回路 旅行商问题 背包问题 划分问题 装箱问题 图的着色问题 整数线性划分问题



判定问题:可以回答是与否的问题。 不可判定问题:不能用任何算法求解的 判定问题,如停机问题。 目前,对于左侧问题没有找到多项式时 间的算法,也无法证明此类算法不存在。 共同点:
◦ 存在指数增长的候选项,且为输入规模的函 数 ◦ 在计算求解上比较困难,但是对于待定解的 验证比较简单(多项式时间)
11
2015-1-5

不确定算法:是一个两阶段的过程,它把一个判 定问题的实例l作为他的输入,并进行以下操作:
◦ 非确定(猜测)阶段:生成一个任意串S,把它当作给 定实例l的一个候选解 ◦ 确定(验证)阶段:确定算法把l和S都作为它的输入, 如果S的确是l的一个解的话,就输出“是”


当且仅当对于问题的每一个真实例,不确定算法 都会在某次执行中返回“是”的时候,则它可以 求解这个判定问题 如果不确定算法在验证阶段的时间效率是多项式 级的,则称它为不确定多项式类型的。
5
2015-1-5

线性规划:存在多项式时间算法 整数线性规划:保持线性目标函数和约束条件不变 的情况下,求解的数值都必须是整数。

A hypergraph G is a pair (V,E), where V is a set E is a subset of P(V)\{} . The elements in V are called vertices. The elements in E are called hyperedges or links.
说明:TSP的优化问题和搜索问题时归约关系
给定一个图,寻找一条恰 好包含每条边一次的路径 复杂度:多项式时间
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
证明:对于P类问题中的任意问题,只要修 改相应的多项式级别算法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
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++; } }
Cook-Karp论题:一个问题是实际可计算的当且仅当它 在图灵机上经过多项式时间(步数)计算得到正确的结果。 Cook-Karp论题将可计算问题类进一步划分成两类:一类 是实际可计算的,另一类是实际不可计算的
1.2 问题分类
有两类问题,一类是判定问题,另一类是优化问题 判定问题的解只涉及两种情况:yes或no;优化问题 则涉及极值问题 判定问题举例:给定一个带整数权的有向图G和一 个正整数k,是否存在着一条长度小于k的哈密尔顿回 路? 优化问题举例:给定一个带整数权的有向图G,其 最短路径长度的哈密尔顿长度是多少?
从定义上看:P类问题可以用多项式时间的确定 算法解决(判定或求解);NP类问题可以用多项 式级别的时间的确定算法进行检查、验证和判定 PNP。这是因为P类问题一定可以用多项式时 间的算法判定
猜测NPP,也就是猜测至少存在着一个问题, 它属于NP类,但它不属于P类。但迄今没有给出 证明
3. NP完全问题
2.1.6 判定问题规约的定理
定理:令和是两个判定问题,如果P,并 且 p ,那么P
证明:根据和 的规约特性,存在着多项式 算法A,把的实例I转换为的实例I,并且二者 运算结果一致。由于A是多项式的,因此,其输出 也是多项式的。A的运算结果(就是I)是一个多 项式规模的结果。而的实例可以用多项式规模的 时间运算得到结果。处理的实例I所需时间是: I向I转换所需时间 + 处理I所需时间,这两个时间 都是多项式级别的,因此处理的实例I是多项式 级别的
2.2.4 NP类问题举例
例一:给定n个城市、正常数k及城市之间的费用 矩阵C,判断是否存在一条结果所有城市一次且仅 一次、最后返回出发城市、费用小于常数k的回路 推测阶段:用纯随机的方式或相邻有通路城市之 间随机的方式产生一条路径长度是n的路径序列。这 个过程可以用多项式级别的时间完成
验证阶段:首先验证这条路径的相邻城市之间是 否有通路(第二种推测方式不需要);然后验证这 条路径是否经过且只经过每个城市一次;最后验证 这条路径的费用是否小于k。所有验证工作耗时是多 项式级别的
计算复杂性理论有两个基本论题:Church-Turing论题和 Cook-Karp论题 Church-Turing论题:一个问题时可计算的当且仅当它在 图灵机上经过有限次计算得到正确的结果。这个论题把人 类所面临的问题分为两类:一类是可计算的,另一类是不 可计算的。但“有限次计算”是一个宽松的条件
return no; //修改为yes
}
2,如果存在一个 具有如下性能的算法A,可以用多项式的时间,把 问题的实例I转换为问题的实例I,使得I与I的 答案一致,就称以多项式时间规约于,记为 p
举例:问题是:给定一个长度为n整数数组D 和一个整数k判断是否存在D中的一个元素和k相等。 问题是:给定一个长度为m整数数组E和一个整 数k判断是否存在E中的两个元素,其和与k相等。 用于的实例I向的实例I转换的多项式算法A
1.3 优化问题向判定问题的转换
判定问题举例:给定一个带整数权的有向图G和一个正整数k, 是否存在着一条长度小于k的哈密尔顿回路? 优化问题举例:给定一个带整数权的有向图G,其最短路径 长度的哈密尔顿长度是多少?
如果上述判定问题用下面函数解决: boolean Hamilton(Graph g, int k); 则上述优化问题可以用二分的方式在下面的函数中解 决:
可以把前述判定问题的提法改变:给定两个大 小均为n的集合A和B,判断这两个集合中是否不 存在着相同的元素? 这个问题是前述问题的补 定义:令C是一类问题,如果对C中的任何问 题C,如果的补也在C中,则称C类问题在 补集下封闭
2.1.4 P类问题在不集下封闭定 理
定理:P类问题在补集下是封闭的
2.2.5 NP类问题的特征
NP类问题的本质特征是:对于给定的一个 实例,能够以多项式时间判断它是不是问题 的实例;如果是,能够以多项式时间对它作 出问题中要求的yes或no的结果回答 NP问题的另一个特征是多项式级别的推测: 能够以多项式时间推测问题的实例
2.2.6 P类问题和NP类问题的关 系
函数transfer输出一个数组{6, 1, 3, 10, 12, 7},规模是n的多项式 级别。它含有3,因此原问题结果是yes,否则原问题结果为no
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的序列, 这能保证两个相邻城市之间有通路,但不能保证经过且只经 过每个城市一次。这也可以在多项式级别的时间内完成
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
2.2.3 NP类判定问题的定义
定义:如果对某个判定问题,存在着一个非负 整数k,对输入规模为n的实例,能够以O(nk)的时 间运行一个非确定的算法,得到yes或no的答案, 则该判定问题是一个NP类判定问题 NP类判定问题的推测和验证合成之后是一个非 确定的算法,这个非确定的算法必须在多项式时 间内完成 NP的意义是:Nondeterministic Polynomial
int minHamilton(Graph); //二分查找中调用Hamilton函数
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 判定问题规约的定义
3.4 NP完全性的传递性举例
已知哈密尔顿回路问题是一个NP完全问题, 证明货郎担问题也是一个NP完全问题
哈密尔顿回路问题 :给定无向图G=(V,E), 是否存在一条回路,使得图中每个顶点在回路中 出现且只出现一次 货郎担问题:给定n个城市和它们的距离矩 阵,以及距离L,是否存在从某个城市出发,经 过每个城市一次且仅一次,最后回到出发城市且 距离小于或等于L的路线
例二:m团问题CLIQUE:给定无向图G = (V, E)、 正整数m,判定V中是否存在m个顶点,使得它们导 出的子图构成一个完全图 推测阶段:可以随机地找出m个顶点(这些顶点 可以重复);也可以随机地找出m个不重复的顶点。 这项工作的时间复杂度是多项式级别的 验证和判断阶段:验证m个顶点是否不重复(对 第二种推测,可以省略该步),如果不重复,对于 这m个顶点,判断它们在原图中是否两两相邻。如 果是,则回答yes;否则,回答no。这项工作也可以 在多项式级别的时间内完成
3.3 NP完全性的传递性定理
定理:令和是NP中的两个问题,使得 p 。如果是NP完全的,则也是NP完全的 证明: 由于是NP完全的,如果令是NP中 任意一个问题,则有 p 。根据关系p的传 递性, p 。并且, 在NP中是任意的, 因此,是NP完全的
2.1.6 判定问题规约的定理
2.1.7 判定问题规约定理示例
2.1.1 确定性算法
定义:假设A是问题的一个算法。如果 算法在处理实例的执行过程中每一个步骤 都有一个确定的选择,则称算法A是确定性 算法 对于问题的确定性算法A,每一个实例 执行多次的结果是严格一致的
2.1.2 P类判定问题
第12章 NP完全问题
1. NP完全问题概述 2. P类和NP类问题
3. NP完全问题
相关文档
最新文档