NP完全问题证明1

合集下载

第十章 NP完全问题

第十章  NP完全问题

第十章 NP 完全问题10.1 引言首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。

算法的复杂性是指解决问题的一个具体的算法的执行时 间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质。

比如对于排序问题,如果我们只能通过元素间的相互比较来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。

问题的复杂性不可能通过枚举各种可能算法来得到,一般都是预先估计一个值,然后从理论上证明。

如果∏是任意一个问题,对∏存在着一个算法,他的时间复杂度是)(k n O ,其中n 是输入规模,k 是非负整数,则认为存在一个解问题∏的多项式时间算法。

多项式时间算法是一个有效算法。

把存在多项式时间算法的问题,称为易解决问题;把时间复杂度是以指数函数或排列时间算法的问题,称为难解问题。

为什么用多项式作为划分的标准呢?1) 对于使用的多项式算法来说,多项式的次数很少大于三;2) 多项式时间可解问题类具有很好的封闭性。

即加、减、组合等运算封闭;3) 对很多合理的计算模型来说,在一个模型上用多项式时间可解的问题,在另一个模型上也可以在多项式时间内获得解决。

有两类问题:一类是判定问题,另一类是优化问题。

判定问题的只牵涉到两种情况:yes 或no。

优化问题则牵涉到极值问题(最大化或最小化)。

判定问题很容易转换为优化问题。

为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要回答yes或者no的问题。

任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A到B是否有长度为1的路径?从A到B是否有长度为2的路径?…从A 到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从A到B的最短路径就是k。

np问题的字面解释 非确定型多项式完全问题

np问题的字面解释 非确定型多项式完全问题

NP问题的字面解释非确定型多项式完全问题一、背景介绍1. NP问题的概念NP问题是计算机科学和数学领域中一个重要的概念,即“非确定性多项式时间”(Non-deterministic Polynomial time),它代表了一类能在多项式时间内被验证的问题。

这类问题的解决方案虽然不能在多项式时间内被找到,但一旦有了一个解,却能够在多项式时间内被验证。

简而言之,如果一个问题可以在多项式时间内被验证,则它是一个NP问题。

2. 多项式完全问题的概念多项式完全问题是一类特殊的NP问题,它具有以下两个性质:它是一个NP问题;任何一个NP问题都可以在多项式时间内规约到它。

也就是说,如果有一个多项式时间算法能够解决任何一个多项式完全问题,那么就能够解决所有的NP问题。

3. 非确定型多项式完全问题非确定型多项式完全问题是NP问题中最困难的一类问题,它要求在多项式时间内验证一个解的存在,并且这个验证需要非确定性算法。

换言之,虽然这类问题的解可以在多项式时间内被验证,但却无法在多项式时间内被求解。

非确定型多项式完全问题是计算理论中一个极具挑战性的问题。

二、定义和性质1. 非确定型多项式完全问题的定义非确定型多项式完全问题是指一个问题,如果它是一个NP问题,并且任何一个NP问题都可以在多项式时间内归约到它,那么它就是一个非确定型多项式完全问题。

每一个非确定型多项式完全问题都是NP 问题,但不是所有的NP问题都是非确定型多项式完全问题。

2. 非确定型多项式完全问题的性质非确定型多项式完全问题具有以下一些重要性质:(1)困难性:非确定型多项式完全问题是计算上的一类最困难问题,它们无法在多项式时间内被求解。

(2)通用性:任何一个NP问题都可以在多项式时间内归约到非确定型多项式完全问题,因此解决了一个非确定型多项式完全问题就意味着可以解决所有的NP问题。

(3)实际意义:非确定型多项式完全问题在实际生活中具有广泛的应用,例如在计划问题、调度问题、网络设计等方面都有重要的地位。

如何用整数规划求解NP完全问题

如何用整数规划求解NP完全问题

如何⽤整数规划求解NP完全问题如何⽤整数规划求解NP完全问题⼀、NP完全问题NP完全问题是⼀类具有⾮常⾼难度的组合最优化问题,所有NP完全问题都是NP难问题。

虽然P问题是⽐较容易的问题,NP问题却不⼀定是困难问题,必须看见NP完全或者NP难这样的字才能说这个问题求解起来很困难。

经常听砖家说,NP完全/NP难问题不能⽤整数规划求解。

实际情况怎样?实事证明砖家的话只能信⼀半:)。

这⾥咱就看看⽤整数规划求解⼀个NP完全问题⾏也不⾏。

这⾥有⼀个货真价实的整数规划问题——划分问题(The partition problem)。

问题是:给定⼀个⼤⼩不等的整数集合,问是否可以把这些整数划分成两个集合,任何⼀个整数或者在集合S1中或者在S2中,但不能同时在两个集合中;对任意给的⼀个整数集合,请设计算法,解决是否存在⼀个划分,使得S1种整数之和恰好等于S2集合的整数之和。

⼆、建⽴整数规划模型对每个整数定义⼀个0-1变量xi, xi=1 表⽰第i个整数位于集合S1中, xi=0表⽰第i个整数位于S2中。

⽤s1表⽰第⼀集合的整数之和,⽤s2表⽰第⼆个集合⾥的整数之和。

即:设d是s1和s2之间差的绝对值。

于是:我们只要极⼩化d就可以了,即:完整模型:三、上⾯的模型的⽂本表达上⾯的模型不只是⽤来摆摆看的,还可以真的被求解哈。

我们需要把模型写成⽂本格式(Leapms建模语⾔格式),让计算机理解。

⽬标函数就写成min d加上其余约束部分(注意西格玛符合的写法)subject tos1=sum{i=1,...,n}x[i]S[i]s2=sum{i=1,...,n}((1-x[i])S[i])d>=s1-s2d>=s2-s1加上符号说明(符号必须说明,不然计算机不知道哪些是常数,哪些是变量)wheren is an integerS is a sets1,s2,d are variables of numberx[i] is a variable of binary|i=1,...,n加上数据(注意整数个数是从集合S上⾃⼰数出来的)data_relationn=_$(S)dataS={11,47,159,137,85,47,142,35,119,61,88,175,13,96,-11,176,126,15,98,46,163}四、求解把如下完整模型贴到记事本上,保存为 partition.leap⽂件。

(完整word版)顶点覆盖问题的NP完全证明和近似算法求解

(完整word版)顶点覆盖问题的NP完全证明和近似算法求解

顶点覆盖问题的NP 完全证明和顶点覆盖优化问题的近似算法顶点覆盖(VERTEX COVER )给定一个无向图),(E V G =和一个正整数k ,若存在V V ⊆',k V =',使得对任意的E v u ∈),(,都有'V u ∈或'V v ∈,则称'V 为图G 的一个大小为k 的顶点覆盖。

顶点覆盖问题的描述判定问题:VERTEX COVER输 入:无向图),(E V G =,正整数k问 题:G 中是否存在一个大小为k 的顶点覆盖,这是一个NP 完全问题 顶点覆盖的NP 完全性证明NP 性的证明:对给定的无向图),(E V G =,若顶点V V ⊆'是图G 的一个大小为k 顶点的覆盖,则可以构造一个确定性的算法,以多项式的时间验证k V =',及对所有的E v u ∈),(,是否有'V u ∈或'V v ∈。

因此顶点覆盖问题是一个NP 问题。

完全性的证明:我们已知团集(CLIQUE )问题是一个NP 完全问题,若团集问题归约于顶点覆盖问题,即VERTEX CLIQUE poly αCOVER ,则顶点覆盖问题就是一个NP 完全问题。

我们可以利用无向图的补图来说明这个问题。

若向图),(E V G =,则G 的补图--=),(E V G ,其中}),(|),{(E v u v u E ∉=-。

例如,图1(b)是图1(a)的补图。

在图1(a)中有一个大小为3的团集},,{y v u ,在图1(b)中,则有一个大小为2的顶点覆盖},{w v 。

显然可以在多项式时间里构造图G 的补图-G 。

因此,只要证明图),(E V G =有一个大小为k V -||的团集,当且仅当它的补图-G 有一个大小为k 的顶点覆盖。

(a) (b)图1无向图及补图必要性:如果G 中有一个大小为k V -||的团集,则它具有一个大小为k V -||个顶点的完全子图,令这k V -||个顶点集合为'V 。

np完全问题

np完全问题


P类和NP类问题
确定性算法 :算法执行的每一个步骤,都有确定的选择. 重新用同一输入实例运行该算法,所得到的结果严格一致. P类判定问题 类判定问题是由具有多项式时间的确定性算法来解的判定 问题
最短路径判定问题 SHORTEST PATH: 给定有向赋权图 G = ( V , E ) (权为正整数),正整数 k ,及两个顶点 s, t ∈V ,是否 存在着一条由 s 到 t ,长度至多为 k 的路径. 可排序的判定问题 SORT: 给定 n 个元素的数组,是否可以按非降顺序排序.
P类判定问题的补 改变判定问题的提法,"是否可以","是否存在"改为 "是否不可以","是否不存在"的判定问题
可排序判定问题的补 NOT_SORT: 给定 n 个元素的数组,是否不可以按非降顺序排序. 最短路径判定问题的补 NOT SHORTEST PATH: 给定有向赋权图 G = ( V , E ) (权为正整数),正整数 k ,及两个顶点 s, t ∈V ,是否不存 在一条由 s 到 t ,长度至多为 k 的路径.
NP类问题
非确定性算法 1,问题 ∏ 的非确定性算法的两个阶段:推测阶段和验证阶段. 2,推测阶段:对规模为 n 的输入实例 x ,以多项式时间 O ( n i ) 产生输出 y ,而不管 y 的 正确性 3,验证阶段:以多项式时间 O ( n j ) 的确定性算法验证两件事情: 1)检查上一阶段的输出 y 是否具有正确的形式. 如果 y 不具正确的形式,算法就以答案 no 结束; 2)如果 y 具有正确的形式,则继续检查 y 是否是问题的输入实例 x 的解. 如果它确实是问题实例 x 的解,则以答案 yes 结束,否则,以答案 no 结束.

NP完全问题证明

NP完全问题证明
设V’是V中不超过K的顶点覆盖, 则V’中必包含Ti中的一个顶点 和每个Ej’中的两个顶点, 至少要n+2m个顶点. 而K=n+2m, 故V’中一
定只包含每个Ti中的一个顶点和每个Ej’中的两个顶点.
如下得到赋值 uiV’ t(ui)=T
ūiV’ t(ui)=F
Ej’’中的三条边有两条被Vj’V’中的顶点覆盖, 第三条必被 V’Vi中的顶点覆盖. 这表示在Vi中的这个顶点对应的文字取真.
12
8.5.4 顶点覆盖问题 (VERTEX-COVER)
问题描述:给定一个无向图G=(V,E)和一个正整数k,判 定是否存在V’V,|V’|=k,使得对于任意(u,v)∈E有u∈V’或 v∈V’。如果存在这样的V’,就称V’为图G的一个大小为k顶点覆 盖。 证明思路: 首先,VERTEX-COVER∈NP。因为对于给定的图G和正整数k 以及一个“证书”V’,验证|V’|=k,然后对每条边(u,v)∈E, 检查是否有u∈V’或v∈V’,显然可在多项式时间内完成。 其次,通过CLIQUE∝pVERTEX-COVER来证明顶点覆盖问题 是NP难的。
几个NP完全问题
什么是NP完全问题

NP完全问题,是世界七大数学难题之一。 NP 的英文全称是Non-deterministic Polynomial的 问题,即多项式复杂程度的非确定性问题。简 单的写法是 NP=P?,问题就在这个问号上, 到底是NP等于P,还是NP不等于P
七大数学难题

表的段的最右位为1,其它为0.
s(ai ) 2 p( 3q f ( i )) 2 p( 2q g( i )) 2 p(qh( i ))
w1 w2 … wq x 1 x2 … xq y1 y2 … yq 注:plog(k+1),2p k+1,k 2p1 , 当 k个1相加时不会产生段之间的进位 令

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。
• 非确定性是指在理论计算机科学中,针对 各种计算机器模型(自动机),在每一时 刻,根据当时的状态和输入,若机器有多 个动作可供选择时,则称机器为非确定性 的;相反,若机器的动作可唯一确定时。 • 且非确定性是相对于确定性来说,对于非 确定性的机器,在性能各方面要高于确定 性机器。

第10章NP完全问题(自己写的)

第10章NP完全问题(自己写的)
第10章 NP完全问题
主讲:王培崇
对一个已确定是可计算的问题,人们总试图寻求实现它的最优算法。然而 对有些问题,这个工作难度很大,目前还不能做到这点。
1、P类问题:问题的时间复杂性是多项式阶的,这只须设 计一个实现它的时间复杂性是多项式阶的算法即可,例如分类 (又称排序)问题。 2、顽型问题:人们已经设计出实现它的时间复杂性为指数阶 的算法,并且已证明该问题不存在多项式阶的算法,例如梵塔 问题;但是有这样一类问题, 3、NP问题:人们目前已设计的实现它的算法其时间复杂性 为指数阶的,但还不能肯定它有或没有多项式阶的算法。
如果是,则停机回答yes,如果不是则停 机回答no。
(上述是以图灵机计算模型实现的。)
• 定义10.3
NP类问题由下面的判定问题组成,对 于它们存在着多项式时间内运行的不确定性 算法。
例子10.4
coloring问题:
(1)设I是coloring的一个实例,s宣称是I的 解。容易建立一个确定性算法验证s选择、送餐车辆指派问题、车 间调度问题等。
见表1.1,现存的求解方法,中等输入也 需要几百年时间才能求解成功。
4、NP问题的描述转换 转换为判定问题。
两种答案:yes或no。 最优化问题:关心的是某个量的最大化或 最小化问题。
5、问题转化举例: 10.1设s是一个实数序列,EU问题是:是否S 中的所有的数都不相同。
判定问题:
输入:一个整数序列S; 问题:在S中存在两个数据相等吗。 10.2 给出一个无向图G=(V,E),用k种颜色对G 着色.......,使得图中没有两个邻接点有相同的 颜色。
• 判定问题: 输入:一个无向图G=(V,E)和一个正整数k>=1; 问题:G可以k着色吗?即G最多可以用k种颜 色着色吗?

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完全问题
P=NP意味着每一个有解的问题都能够快速的验证定解,并且能够快速的找到最优解。我们将迎来一个美好的世界。
三、如果P=NP
假设在未来的世界P=NP得到了证明并且给出了具体的算法。那么计算机可以不再用穷举的方法解决所有的数学问题,而是给出了具体的策略。于是在P/NP问题解决后七大数学难题的其余5个(庞加莱猜想前几年已被解决)迅速得到了解决,虽然证明的方法可能难以理解,但它们确实得到了严格的证明。于是数学家作为一个职业在地球上消失。
四、P≠NP
一个算法能让我们的世界发生翻天覆地的变化,这看起来真的不可思议。只要能辨识,就能找到?难以置信。事实上,大部分计算机科学家也认为P≠NP。
可是,要证明P≠NP,必须证明无论现在还是将来,都不可能存在能快速找到hamilton路或者其他任意一个NP问题的算法。如何证明一件事永远不可能做成,这确实是个很困难的问题。因此目前P≠NP也没有什么进展。
《可能与不可能的边界——P/NP问题趣史》[美]LanceFortnow著
可能与不可能的边界——P/NP问题
一、旅行商问题
Mary是一位旅行推销员,她来自华盛顿特区,为木槌公司工作。她需要从家乡旅行到48个州的首府,向各州的法院推销木槌。为了削减成本找到11000英里以下的,Mary写了一个计算机程序试图穷举所有可能的路线从而找出最短的一条,但是一周后程序还没跑完。我们可以算一下,作为第一站的城市有48种选择,第二站有47种选择,以此类推,路径选择有48!种,这是一个62位数,也难怪计算机跑了一周也没有得出结果。
那什么是NP问题呢?我们在《图论》中学过hamilton圈,如果给出了一条路径我们很容易验证它是不是hamilton圈。这种能在多项式时间内验证一个解是否正确的问题称之为NP问题。(这两个字母代表nondeterministic polynomial time不确定性多项式时间)。

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完全问题

NP完全问题

NP完全问题NP完全问题,是世界七大数学难题之一。

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

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

概述NP完全问题是不确定性图灵机在P时间内能解决的问题,是世界七大数学难题之一。

NP完全问题排在百万美元大奖的首位,足见他的显赫地位和无穷魅力。

数学上著名的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的问题,也即是多项式复杂程度的非确定性问题。

非确定性问题详解什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。

但是,有些问题是无法按部就班直接地计算出来。

比如,找大质数的问题。

有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。

再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。

这种问题的答案,是无法直接计算得到的,只能通过间接的“猜算”来得到结果。

这也就是非确定性问题。

而这些问题通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。

这个可以告诉你“猜算”的答案正确与否的算法,假如可以在多项式时间内算出来,就叫做多项式非确定性问题。

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≠P)和一些相关知识

世界七大数学难题之NP问题的证明(NP≠P)和一些相关知识

世界七大数学难题之NP问题的证明(NP≠P)和一些相关知识摘要:本文提出算法公理:公理目标集合不存在非约化约简;判断某类公理待被判断集合问题所需的计算复杂度类最少操作次数,一定大于或等于相应公理目标集合被最简约化后的操作类二级元素的数量。

基于算法公理和本文提出的单点连入问题,本文证明了NPC问题都不存在多项式算法,因此NPC∉P,NP≠P。

关键词:算法公理;单点连入问题;NPC问题;多项式算法;NP≠P第一章定义定义1:“对于一条以A1点为起点、A n点为终点的路、处在该路之外的B点和该路中的两个以上非路上相邻点与B点之间的边来讲,是否存在一种连接方式使该路和该点能够被合并成一条新的以A1点为起点、A n点为终点的路”这一问题又被称为单点连入问题,其中A1点与A n点不同时与B点相连。

上述“路上相邻”指在仅考虑路上的点和边时的相邻;非路上相邻点(边)指除路上相邻点(边)之外的点(边)。

上述路又被称为待连路;上述点又被称为待连点。

上述“被合并成一条新的以A1点为起点、A n点为终点的路”又被称为被连入。

上述“存在一种连接方式使该路和该点能够被合并成一条新的以A1点为起点、A n点为终点的路”又被称为能使待连点被连入;反之则又被称为不能使待连点被连入。

由单点连入问题的所有点和所有边所构成的图又被称为该单点连入问题图。

定义2:待连路的起点又被称为待连路的左固定点或左端点;待连路的终点又被称为待连路的右固定点或右端点;两者又被合称为待连路的固定点和端点。

待连路中除固定点之外的点又被称为待连路的非固定点。

待连路中路上相邻两点之间的边又被称为待连路的内边;待连路中非路上相邻两点之间的边又被称为待连路的外边;待连点被连入后的新路中相应地也有内边和外边。

待连点与待连路中的点之间的边又被称为待连边。

定义3:待连路的起点又被称为该待连路的第1个点;待连路的起点之后的第1个点又被称为该待连路的第2个点;相应地有该待连路的第3个点等。

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 中,则

计算理论第7章 NP完全性

计算理论第7章 NP完全性

19
7.2 NP完全问题
Clique(团)是图的一个子图,其中任何两 点都有边相连。 K-Clique问题:给定<G,k>,G是无向图,G 中包含至少k节点的团吗? k-Clique是NP完全的 证明: (1)k-Clique是NP问题 (2)3SAT ≤p k-Clique
20
7.2 NP完全问题
SUBSET-SUM(子集和)问题:有一个数集 x1,x2,…,xk和一个目标数t,要判定数集是否 包含一个加起来等于t的子集。 子集和问题是NP完全的 (1)子集和问题属于NP类 (2)3SAT ≤p SUBSET-SUM
22
7.2 NP完全问题
HAMPATH (Hamilton 路)问题也是NP完全 的。 (1)HAMPATH 问题属于NP类; (2)3SAT ≤p HAMPATH 。 从Φ构造图G:把变量 xi 表示为钻石结构,把 子句 ci 表示为节点。
设Φ 是3SAT公式,子句数是k,则G中的节 点分成k组,每组三个节点,称为三元组, 每个三元组对应Φ中的一个子句。G中的边 定义为:不同三元组的节点,若不是相反 文字,则两两相连;三元组内节点间无边 。 可见 (1)Φ有一可满足赋值,G存在一个k-团; (2)G存在一个k-团, Φ可满足。
21
7.2 NP完全问题
第7章 NP完全性
杨莹 冷芳玲
1
第7章 NP完全性
7.1 NP完全性定义 7.2 NP完全问题 7.3 NP完全性的计算讨论
2
7.1 NP完全性
定义7-1 语言L是NP完全的,若它满足下面 两个条件: (1)L∈NP; (2)NP中的每个LA都多项式时间可归约为L。
3
7.2 NP完全问题
定理7-19 [库克—列文定理] 可满足问题 SAT是NP完全的。 证明:NP中的每一个语言都可以多项式时间 归约到SAT。从NP中任取一个语言L,设 MN={Q, Σ,Γ,δ, q0,B,F}是nk多项式时间内判 定L的非确定型图灵机,其中k是常数。对 于MN的任意输入w,在多式时间内构造公 式 Φ,使得w∈L ↔ Φ∈SAT。

NP问题NP完全问题(NP-completeproblem)如何判断是否是NP完全问题

NP问题NP完全问题(NP-completeproblem)如何判断是否是NP完全问题

NP问题NP完全问题(NP-completeproblem)如何判断是否是NP完全问题在算法复杂度分析的过程中,⼈们常常⽤特定的函数来描述⽬标算法,随着变量n的增长,时间或者空间消耗的增长曲线,近⽽进⼀步分析算法的可⾏性(有效性)。

引⼊了Big-O,Big-Ω,来描述⽬标算法的上限、下限复杂度函数。

⽤Big-Θ描述和⽬标函数同序的复杂度函数,即由Big-Θ既是上限也是下限。

常常⽤到如下时间复杂度函数标度1, log n, n, n log n, n^2, 2^n, n!通常将具有n^x,x为正整数形式的时间复杂度函数称为多项式复杂度。

通常认为具有多项式时间复杂度的算法是容易求解的。

超过多项式时间复杂度,算法增长迅速,不易求解。

下图将展⽰NP和NP完全问题在所有问题中的位置。

通常问题分为可解决(Solvable)和不可解决(Unsolvable)。

可解决问题⼜可以分为易解决(Tractable)、不易解决(Intractable)和不确定是否容易解决(NP)可解决(Solvable)是指存在算法能够解决的问题不可解决(Unsolvable)是指不存在解决该问题的算法,如The Halting Problem。

易解决(Tractable),即P问题,是指具有最坏时间复杂度为多项式时间的算法能够解决的问题不易解决(Intractable)是指不存在最坏时间复杂度为多项式时间的算法能够解决的问题不确定是否容易解决(NP),还未被证明是否存在多项式算法能够解决这些问题,⽽其中NP完全问题⼜是最有可能不是P问题的问题类型。

判断是否是NP完全问题1.元素较少时算法的运⾏速度⾮常快,但随着元素数量的增加,速度会变的⾮常慢。

2.涉及所有组合问题通常是NP完全问题3.不能将问题分成⼩问题,必须考虑各种情况,这可能是NP问题4.如果问题涉及序列(如旅⾏商问题中的城市序列)且难以解决,它可能是NP问题5.如果问题涉及集合(如⼴播电台集合)且难以解决,它可能是NP完全问题6.如果问题可转化为集合覆盖问题或商旅问题,那它肯定是NP问题。

司徒达的世界七大数学难题

司徒达的世界七大数学难题

司徒达的世界七大数学难题1、NP完全问题例:在一个周六的晚上,参加了一个盛大的晚会。

由于感到局促不安想知道这一大厅中是否有你已经认识的人。

宴会的主人提议说,你一定认识那位正在甜点盘附近角落的女士罗丝。

不费一秒钟你就能向那里扫视,并且发现宴会的主人是正确的。

如果没有这样的暗示你就必须环顾整个大厅,一个个地审视每一个人,看是否有你认识的人。

生成问题的一个解通常比验证一个给定的解时间花费要多得多。

2、霍奇猜想二十世纪的数学家们发现了,研究复杂对象的形状的强有力的办法。

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

这种技巧是变得如此有用,使得它可以用许多不同的方式来推广。

最终导致一些强有力的工具,使数学家在对他们研究中所遇到的形形色色的对象进行分类时取得巨大的进展。

不幸的是在这一推广中,程序的几何出发点变得模糊起来。

在某种意义下必须加上某些没有任何几何解释的部件。

霍奇猜想断言,对于所谓射影代数簇这种特别完好的空间类型来说,称作霍奇闭链的部件实际上是称作代数闭链的几何部件的(有理线性)组合。

3、庞加莱猜想如果我们伸缩围绕一个苹果表面的橡皮带,那么我们可以既不扯断它,也不让它离开表面,使它慢慢移动收缩为一个点。

另一方面如果想象同样的橡皮带,以适当的方向被伸缩在一个轮胎面上,那么不扯断橡皮带或者轮胎面,是没有办法把它收缩到一点的。

苹果表面是“单连通的”而轮胎面不是。

大约在一百年以前庞加莱已经知道,二维球面本质上可由单连通性来刻画,他提出三维球面(四维空间中与原点有单位距离的点的全体)的对应问题。

这个问题立即变得无比困难,从那时起数学家们就在为此奋斗。

4、黎曼假设有些数具有不能表示为两个更小的数的乘积的特殊性质,例如,2、3、5、7等等。

这样的数称为素数;它们在纯数学及其应用中都起着重要作用。

在所有自然数中这种素数的分布并不遵循任何有规则的模式;然而德国数学家黎曼(1826~1866)观察到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
对于一个合取范式, 若每个子句有且仅有3个变元 时, 它的可满足性问题便称为3SAT问题。 定理 3SAT问题属于NPC。下证
8.5.3 团问题CLIQUE
问题描述: 问题描述:给定一个无向图G=(V,E)和一个正整 数k,判定图G是否包含一个k团,即是否存在,V’⊆V, |V’|=k,且对任意u,w∈V’有(u,w)∈E。 证明思路: 证明思路: 已经知道CLIQUE∈NP。通过3-SAT∝pCLIQUE来证 明CLIQUE是NP难的,从而证明团问题是NP完全的。
8.5.4 顶点覆盖问题 (VERTEX-COVER) 例如 U = {u1,u2,u3,u4}, C = {{u1,ū3,ū4},{ū1,u2,ū4}}, 2× 则G如下,K = 4 + 2×2 = 8 如下,
8.5.4 顶点覆盖问题 (VERTEX-COVER)
中必包含T 设V’是V中不超过K的顶点覆盖, 则V’中必包含Ti中的一个顶点 是 中不超过K的顶点覆盖, 中必包含 和每个E 中的两个顶点 至少要n+2m个顶点. 中的两个顶点, n+2m个顶点 和每个Ej’中的两个顶点, 至少要n+2m个顶点. 而K=n+2m, 故V’中一 中一 定只包含每个T 中的一个顶点和每个E 中的两个顶点 中的两个顶点. 定只包含每个Ti中的一个顶点和每个Ej’中的两个顶点. 如下得到赋值 ui∈V’ ⇔ t(ui)=T
6
8.5.2 3元合取范式的可满足性问题 (3-SAT)
问题描述: 问题描述:给定一个3元合取范式α,判定它是否 可满足。 证明思路: 证明思路: 3-SAT∈NP是显而易见的。为了证明3-SAT∈NPC, 只要证明CNF-SAT∝p 3-SAT,即合取范式的可满足性 问题可在多项式时间内变换为3-SAT。
i =1
k
均分∈ 8.5.5. 均分∈NPC
a∈ A
∑ s(a ) = ∑ s(a i ) + s(b1 ) + s(b2 )
i =1 k
k
= ∑ s( a i ) + 2 ∑ s ( a i ) − B + ∑ s ( a i ) + B
8.5 一些典型的NP完全问题
部分NP完全问题树
5
8.5.1 合取范式的可满足性问题 (CNF-SAT)
问题描述:给定一个合取范式α,判定它是否可满足。 问题描述: 如果一个布尔表达式是一些因子和之积,则称之为合取范 式,简称CNF(Conjunctive Normal Form)。这里的因子是变量 x 或 x 。例如:( x 1 + x 2 )( x 2 + x 3 )( x 1 + x 2 + x 3 ) 就是一个合取范 式,而 x 1 x 2 + x 3 就不是合取范式。 要证明CNF-SAT∈NPC,只要证明在Cook定理中定义的布尔表 达式A,…,G或者已是合取范式,或者有的虽然不是合取范式, 但可以用布尔代数中的变换方法将它们化成合取范式,而且合取 范式的长度与原表达式的长度只差一个常数因子。
8.5.4 顶点覆盖问题 (VERTEX-COVER) 联络边: 联络边: 沟通分量之间的关系 对于每个子句c 对于每个子句cj, 设cj = {xj,yj,zj}, 则 Ej’’={{a1[j],xj},{a2[j],yj},{a3[j],zj}} ={{a G = (V,E) ...∪ V = (V1∪V2∪...∪Vn)∪(V1’∪V2’∪...∪Vm’) ∪ ∪...∪ ) ...∪ E = E1∪E2∪...∪En)∪(E1’∪E2’∪...∪Em’) ∪ ∪...∪ ) ∪(E1’’∪E2’’∪...∪Em’’) ∪ ∪...∪ ) K = n +2m 显然构造可在多项式时间完成
几个NP完全问题
什么是NP完全问题
NP完全问题,是世界七大数学难题之一。 NP 的英文全称是Non-deterministic Polynomial的 问题,即多项式复杂程度的非确定性问题。简 单的写法是 NP=P?,问题就在这个问号上, 到底是NP等于P,还是NP不等于P
七大数学难题
这七个“千年大奖问题”是: NP完全问题、霍奇猜想、 庞加莱猜想、黎曼假设、杨-米尔斯理论、纳卫尔- 斯托可方程、BSD猜想 千年大奖问题 美国麻州的克雷(Clay)数学研究所于2000年5月 24日在巴黎法兰西学院宣布了一件被媒体炒得火热的 大事:对七个“千年数学难题”的每一个悬赏一百万 美元。 其中有一个已被解决(庞加莱猜想),还剩六个.(庞 加莱猜想,已由俄罗斯数学家格里戈里·佩雷尔曼破解。 我国中山大学朱熹平教授和旅美数学家、清华大学兼 职教授曹怀东做了证明的封顶工作。)
s( a i ) = 2 p ( 3 q − f ( i )) + 2 p ( 2 q − g ( i )) + 2 p ( q − h( i ))
w1 w2 … wq x1 x2 … xq y1 y2 … yq log(k+1), 注:p≥log(k+ 当 k个1相加时不会产生段之间的进位 令
均分∈ 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'
∑ s( 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}
9
8.5.4 顶点覆盖问题 (VERTEX-COVER)
问题描述: 问题描述:给定一个无向图G=(V,E)和一个正整数k,判 定是否存在V’⊆V,|V’|=k,使得对于任意(u,v)∈E有u∈V’或 v∈V’。如果存在这样的V’,就称V’为图G的一个大小为k顶点覆 盖。 证明思路: 证明思路: 首先,VERTEX-COVER∈NP。因为对于给定的图G和正整数k 以及一个“证书”V’,验证|V’|=k,然后对每条边(u,v)∈E, 检查是否有u∈V’或v∈V’,显然可在多项式时间内完成。 其次,通过CLIQUE∝pVERTEX-COVER来证明顶点覆盖问题 是NP难的。
10
8.5.4 顶点覆盖问题 (VERTEX-COVER)
证 3SAT变换到 变换到VC. 将3SAT变换到VC. 设U={u1,u2,...,un}, C={c1,c2,...,cm}
是3SAT的实例. 如下构造图G, 分量设计法. 3SAT的实例. 如下构造图G, 分量设计法. 的实例 真值安排分量: 真值安排分量: 1≤ 其中V Ti=(Vi,Ei), 1≤i≤n, 其中Vi={ui,ūi}, Ei={{ui,ūi}} 任意覆盖必至少包含u 中的一个,否则不能覆盖边{u 任意覆盖必至少包含ui或ūi中的一个,否则不能覆盖边{ui或ūi}. 满足性检验分量: 满足性检验分量: Sj=(Vj’,Ej’), 1≤ j≤ m, ,E ), 1≤ 其中 Vj’={a1[j],a2[j],a3[j]} ={a Ej’={{a1[j],a2[j]},{a1[j],a3[j]},{a2[j],a3[j]}} ={{a 覆盖至少包含V 中的两个顶点 否则不能覆盖E 中的三角形 中的两个顶点, 覆盖至少包含Vj’中的两个顶点,否则不能覆盖Ej’中的三角形
ūi∈V’ ⇔ t(ui)=F
中的三条边有两条被V 中的顶点覆盖, Ej’’中的三条边有两条被Vj’∩V’中的顶点覆盖, 第三条必被 中的三条边有两条被 ∩ 中的顶点覆盖 V’∩Vi中的顶点覆盖. 这表示在Vi中的这个顶点对应的文字取真. ∩ 中的顶点覆盖. 这表示在V 中的这个顶点对应的文字取真. 所以子句c 被满足. 从而C被满足. 所以子句cj被满足. 从而C被满足. U→{T,F}是满足 的一组赋值. 是满足C 则在T 设t: U→{T,F}是满足C的一组赋值. 若t(ui)=T, 则在Ti中取 顶点u 否则取ū 因为t满足子句c 顶点ui, 否则取ūi. 因为t满足子句cj, 在Ej’’中的三条联络边中至 中的三条联络边中至 少有一条被覆盖, 那么取E 中的另两条边的端点作为 中的端点 中的另两条边的端点作为V 少有一条被覆盖, 那么取Ej’’中的另两条边的端点作为V’中的端点 即可. 即可.
B = ∑ 2 pj = 2 p( 3q −1) + 2 p( 3q − 2 ) + ... + 2 2 p + 2 p + 20
j =0
3 q −1
B的段数与s(ai)一样,每段的最右位为1,其它为0 的段数与s(a 一样,每段的最右位为1 其它为0
均分∈ 8.5.5. 均分∈NPC
例如: 例如: W={w1,w2},X={x1,x2},Y={y1,y2}, M={(w1,x2,y2),(w1,x2,y1),(w2,x1,y1)} p=log(3+1)=2 p= og(3+1) 元素a1,a2,a3分别对应 元素a (w1,x2,y2),(w1,x2,y1),(w2,x1,y1) s(a1) = 01 00 00 01 00 01 = 210 + 24 + 20 s(a2) = 01 00 00 01 01 00 = 210 + 24 + 22 s(a3) = 00 01 01 00 01 00 = 28 + 26 + 22 B = 01 01 01 01 01 01
相关文档
最新文档