文档详情

算法分析与设计2009第a讲

痛***
实名认证
店铺
DOC
379KB
约12页
文档ID:160659192
算法分析与设计2009第a讲_第1页
1/12

上次内容:(1)先行约束排工,限制很强时是多项式可解的,没有限制是NP-Complete2)着色问题,限制顶点度不超过4的图3着色问题是NPC,限制平面图的3着色问题是NPC3)拟多项式变换与NPC类,划分问题的拟多项式算法划分问题拟多项式时间算法一个问题实例中有两个因素影响算法时间复杂度:划分问题输入长度:Length(I)=|A|log2|A|+|A|log2()最大数值:问题的实例中碰到的最大数值Max(I)=B=算法时间复杂性:O(nB)=P(Length(I),Max(I))说明:可以设计算法与两个参数有关系l 一个问题的编码不是完全相同的,因此输入长度和最大数值会根据编码不同有所不同不同人编不同的程序l 有的问题根本不含有数值参量,这样MAX(I)=0定义6.1:拟多项式算法:判定问题p,存在解答算法A,算法A的时间复杂度为:T=P(Length(I), Max(I)),I为任意实例,则称算法A为求解问题p的拟多项式算法看问题:问题怎样在计算机存储?首先明确输入长度为n,则最大数值可能是2n1)SAT,该问题中根本没有MAX(I)这一项没有最大数值,Max(I)=0(2)TSP,该问题中边长或K是最大数值MAX(I)项。

3)划分问题,元素重量或B是Max(I)项O(nB)(4)团问题,最大数值,J£|V|自然受到限制考虑(1),Max(I)=0,这个问题是NPC的,可以认为,最大数值本身受到输入长度的限制Max(I)£P(Length(I)),P(·)是多项式函数考虑问题(2)(3),TSP问题中,边长根本不受输入长度的约束,每条边长可能很大,问题3的元素重量也不受到输入长度约束受约束的含义:存在多项式函数P(·),使Max(I)£P(Length(I))将Max(I)不受Length(I)约束的问题单独分为一类,给个名份定义6.2:对于判定问题p,若不存在多项式函数P(),使对所有实例I有:Max(I)£P(Length(I)),则称p为数问题最大数值不受约束就是最大数值可能很大的问题是数问题不受输入长度约束命题6.1:若判定问题不是数问题,P¹NP,则该问题不能被拟多项式算法解答解释什么问题不是数问题证明:设p不是数问题,T= q(Length(I), Max(I))£q(length(I), p(length(I))) =q1(length(I))若存在解答p的拟多项式算法,则有多项式算法解答p,则P=NP,矛盾。

问题p,多项式函数P(),D(p)表示该问题的所有实例组成的集合对于多项式函数P(·),定义一个新的实例集合:D(pP) = {I|IÎDp, Max(I)£P(Length(I))},由D(pP)中实例表达的问题就是多项式可解的吗注意多项式函数给定例如划分问题中,每个元素长度S(a)£n2,n是元素个数P(n)=n2,则pP是多项式可解得再次强调问题是实例的集合!定义6.3:判定问题p,存在多项式函数P,使pP是NPC的,则称p是强NPC的1)非数NPC问题一定是强NPC问题(2)主要讨论数问题是否为强NPC问题命题6.2:若问题p是强NPC的,P¹NP,则p一定不能被拟多项式算法解答强NPC问题不能有拟多项式算法,否则NPC问题就可以多项式解答了受限子问题是NPC的,能被多项式时间算法解答,则任意NP问题都能被多项式时间算法解答§6.2证明强NPC与拟多项式变换先证明货郎问题是强NPC的限制货郎问题的边长不是很大,也是NPC结论:限制边长为1或2的TSP问题是NPC的HCµTSPHC实例为: ® 将该实例变为货郎问题实例如下:d(a,b)=d(a,c)=d(a,d)=d(a,e)=d(b,c)=d(c,d)=d(c,e)=d(d,e)=1,d(b,d)= d(b,e)=2常数K=5显然,若HC实例存在hamilton回路,则相应TSP实例存在不超过K的旅游,若TSP实例存在不超过K的旅游,则HC实例存在hamilton回路。

每条边的长度不超过2,可以认为Max(I)=2满足下式否?Max(I)£Length(I),满足这种限制的TSP仍然是NPC的所以TSP问题是强NPC的对于一个NPC问题,如果你能说明其受限子问题是NPC的,则就说明这个问题是强NPC的先讲一个问题,3划分问题实例:讲清楚,但不证明1)集合A,含有3m个元素,A={a1,a2,…,a3m},(2)S(ai)ÎZ+,(3)存在正整数BÎZ+,满足:B/4

4)存在一个变换f:Dp1®Dp2,满足:(a)对任意实例IÎDp1,计算f(I)的时间复杂度是Length(I)和Max(I)的多项式函数T(f(I))=P(Max(I),Length(I))b)对IÎDp1,IÎYp1当且仅当f(I)ÎYp2(c)存在多项式函数p1()使对IÎDp1有Length[I]£p1(Length’[f(I)]),这个限制很有用,I的长度不能很大仔细研究研究的话,估计这个条件可以去掉一般越变越长,不会变短推导的一步需要这个条件Length’[f(I)]£p2(Length[I], Max[I]),这个由前面就能得到d)存在两个变量的多项式函数q1,使Max’[f(I)]£q1(Max[I],Length[I])则f称为p1到p2的拟多项式变换变换与数值和长度都有关说明:如果数值参量受到输入长度限制,就是多项式时间变换l 条件(a)(b)是拟多项式变换的基本要求,变换计算时间复杂度要求更宽一些l (c)需要这个条件l (d)要求Max’(*)不能增大到超过Max(*)和Length(*)的界定范围拟多项式变换µP引理6.1:p是强NPC,p’是NP问题,存在一个p到p’的拟多项式变换,则判定问题p’也是强NPC的。

证明:将p和p’中的最大数值都限定受输入长度的多项式限制,则受P限制的p是NPC问题,存在的拟多项式变换就是多项式变换pPµp’q,所以受q()限制的p’q是NPC的,所以不受限制的p’是强NPC的区间排工问题:实例:有限任务集合,T={t1,t2,…,tn},只有一台机器r(tk):最早起始时间d(tk):最晚结束时间L(tk):加工长度询问:是否存在排工表:s(tk),k=1,2,…,n,使d(tk)-L(tk)³s(tk)³r(tk),每个任务都能按时完成任意ti, tj,i¹j,|s(ti)-s(tj)|³max{L(ti),L(tj)}定理6.3:区间排工是强NPC证明:三划分µP区间排工三划分的实例:A={a1,a2,a3,…,a3m},S(ai)ÎZ+,BÎZ+由此构造区间排工实例:T=AÈ{t1, t2, …, tm-1}L(ai)=S(ai),i=1,…,3mL(t1) = L(t2) = … = L(tm-1) = 1+=mB+m-1r(ai)=0,i=1,…,3md(ai)=mB+m-1r(ti)=iB+i-1,i=1, …, m-1;d(ti) = iB+i, i = 1, …, m-1说明: =mB+m-1,所以从0开始,总用时间是mB+m-1(1)变换可以在三划分实例输入长度的多项式时间内完成。

2)若三划分实例回答yes,则变换后的区间排工实例也回答yes,若区间排工实例回答yes,则相应三划分实例一定有一个三划分3)条件(c)几乎总是满足4)最大数值变化不大符合条件(d)三划分中的最大数值为B,区间排工的最大数值为:mB+m-1,当然是B的多项式函数所以区间排工是强NPC就是说区间排工中的数值r(·),d(·),L(·)都不必很大,问题就很难解子林同构实例:图G和H,G为树,H为林询问:图G是否包含一个子图与H同构限制G和H都是树,则该问题是多项式时间可解的限制G为树,H为林,则该问题是强NPC首先判定两个图是否完全同构也是多项式时间可解的子林同构问题根本就没有数值参量,所谓强NPC与NPC等价的这个例子的意义在于说明可以用证明强NPC的方法证明NPC定理6.4:子林同构问题是强NPC证明:三划分拟多项式变换到子林同构A={a1,a2,…,a3m},S(ai), BÎZ+构造G和H如下:ýB+1个点GH构造为:(1)(2)ai®S(ai)个点的线:S(ai)个点的线首先说明若三划分回答yes,则显然可以将对应的H的线图接起来对到G上去另外若H中的线图接到星图上形成完全G的形状,则接到每一条线上去的线段的总长均为B,所以原来的三划分问题一定可以三划分。

3)变换的时间复杂度与B有关,变换出来的树的点的个数与B有关主要说明:l 限制B不大时,即为输入长度的多项式函数时,三划分问题是NPC的,l 变换本身是输入长度和最大数值的多项式函数,所以是多项式变换l 所以子林同构是NPC的l 子林同构中根本没有数值参量,当然是强NPC的§6.3:复杂性类之间的关系很多问题不是NP的,所以不是NPC的,但是比NPC问题更难,这样的问题怎样说明难度Hamilton问题补问题:实例:无向简单图G=(V,E)询问:图G没有hamilton回路吗?这个问题不能确定是多项式时间可验证的,不能确定是NP的,所以不能说是NPC的这个问题能够正确回答,则hamilton回路问题也能正确回答Tsp优化问题:实例:城市集合C = {C1,…,Cm},城市之间距离d(Ci,Cj),询问:求城市排列:,, …, 使=min{|Cp1Cp2…Cpm为城市排列}这个问题也不是NP的,所以不是NPC的这个问题能够正确回答,货郎判定问题也能正确回答在问题中要找一个解的问题称为搜索问题多项式规约,本身就说明一件事,若p2能多项式时间正确解答,则p1也能多项式时间正确解答所以有turing规约的概念:turing规约是用神喻图灵机定义的,那是为了严格,这里就不再讲神喻图灵机了。

讲一下直观的定义:条件:(1)p1是一个搜索问题,p2是一个搜索问题2)可以设计一个求解p1的算法,算法中调用求解p2的算法A(p2)3)若A(p2)的时间复杂度记为O(1),则求解p1的算法是多项式时间复杂度若有上述条件(1)(2)(3),则称p1图灵规约到p2首先多项式变换也是图灵规约!图灵归约不局限于NP问题之间,任意搜索问题都行解释:(1)什么是搜索问题,搜索最优解的问题2)上述说法不严格,但是道理是这样的举例,*若p1是NPC问题,p1可以图灵规约到p2,则称p2是NP-hard问题这个定义说明所有NPC问题都是NP-Hard问题还有一些问题不是NPC的,仍然是NP-Hard问题若p1是NP-Hard问题,p1可以图灵规约到p2,则称p2是NP-hard问题举个例子:假设有一个货郎优化问题的算法为A设计货郎判定问题求解算法如下:假设货郎判定问题的实例为G,d,K1调用算法A(G,d)求得最优解,设得到的最短旅游长度为OPT(G,d).2若OPT(G,d)£K,则回答yes,否则回答no。

下载提示
相关文档
正为您匹配相似的精品文档