资源描述:
《算法分析与设计2009第a讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、上次内容:(1)先行约束排工,限制很强时是多项式可解的,没有限制是NP-Complete。(2)着色问题,限制顶点度不超过4的图3着色问题是NPC,限制平面图的3着色问题是NPC。(3)拟多项式变换与NPC类,划分问题的拟多项式算法。划分问题拟多项式时间算法。一个问题实例中有两个因素影响算法时间复杂度:划分问题。输入长度:Length(I)=
2、A
3、log2
4、A
5、+
6、A
7、log2()最大数值:问题的实例中碰到的最大数值。Max(I)=B=算法时间复杂性:O(nB)=P(Length(I),Max(I)
8、)说明:可以设计算法与两个参数有关系。l一个问题的编码不是完全相同的,因此输入长度和最大数值会根据编码不同有所不同。不同人编不同的程序。l有的问题根本不含有数值参量,这样MAX(I)=0。定义6.1:拟多项式算法:判定问题p,存在解答算法A,算法A的时间复杂度为:T=P(Length(I),Max(I)),I为任意实例,则称算法A为求解问题p的拟多项式算法。看问题:问题怎样在计算机存储?首先明确输入长度为n,则最大数值可能是2n。(1)SAT,该问题中根本没有MAX(I)这一项。没有最大数值,Max
9、(I)=0(2)TSP,该问题中边长或K是最大数值MAX(I)项。(3)划分问题,元素重量或B是Max(I)项。O(nB)(4)团问题,最大数值,J£
10、V
11、。自然受到限制。考虑(1),Max(I)=0,这个问题是NPC的,可以认为,最大数值本身受到输入长度的限制。Max(I)£P(Length(I)),P(·)是多项式函数。考虑问题(2)(3),TSP问题中,边长根本不受输入长度的约束,每条边长可能很大,问题3的元素重量也不受到输入长度约束。受约束的含义:存在多项式函数P(·),使Max(I)£P(
12、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)
13、))=q1(length(I))。若存在解答p的拟多项式算法,则有多项式算法解答p,则P=NP,矛盾。问题p,多项式函数P(),D(p)表示该问题的所有实例组成的集合。对于多项式函数P(·),定义一个新的实例集合:D(pP)={I
14、IÎDp,Max(I)£P(Length(I))},由D(pP)中实例表达的问题就是多项式可解的吗。注意多项式函数给定。例如划分问题中,每个元素长度S(a)£n2,n是元素个数。P(n)=n2,则pP是多项式可解得。再次强调问题是实例的集合!定义6.3:判定问题p,存在多
15、项式函数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的。H
16、Cµ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问题是强
17、NPC的。对于一个NPC问题,如果你能说明其受限子问题是NPC的,则就说明这个问题是强NPC的。先讲一个问题,3划分问题实例:讲清楚,但不证明。(1)集合A,含有3m个元素,A={a1,a2,…,a3m},(2)S(ai)ÎZ+,(3)存在正整数BÎZ+,满足:B/4