文稿分析14近似算法_第1页
文稿分析14近似算法_第2页
文稿分析14近似算法_第3页
文稿分析14近似算法_第4页
文稿分析14近似算法_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法设计与分析第14讲近似算法信息科学技术学院1主要内容8.1 近似算法及其近似比8.2 多机调度的近似算法8.3 货郎8.4 背包的近似算法与多项式时间近似方案8.1 近似算法及其近似比近似算法:A是一个多项式时间算法且对组合优化P的每一个实例I 输出一个可行解s,记A(I) = c(s ),c(s )是s 的值。最优化算法:恒有A(I) = OPT(I),即A总是输出I的最优解。时, 记rA(I)=A(I)/OPT(I)时, 记rA(I)=OPT(I)/A(I)当P 是最小化当P 是最大化A的近似比为r (A是r近似算法):对每一个实例I,rA(I) £ rA具有常数比:如果r是

2、一个常数.可近似性分类假设P¹NP , NP难的组合优化按可近似性可分成3类:(1+e )-近似算法.(1) 完全可近似的:对任意小的e >0,(2) 可近似的:(3) 不可近似的: 不具有常数比的近似算法.具有常数比的近似算法.最小顶点覆盖: 任给图G=<V,E>, 求G的顶点数最少的顶点覆盖.算法MVC:1.2.3.4.开始时令V¢ =Æ.一条边(u,v), 把u和v加入V¢ 并删去u和v及其关联的边.重复上述过程, 直至删去所有的边为止.V¢ 为所求的顶点覆盖.分析: 算法时间复杂度为O(m), m=|E|.最小顶点覆盖

3、记| V¢ | = 2k, V¢ 由k条互不关联的边的端点组成.为了覆盖这k条边需要k个顶点, 从而OPT(I) ³ k. 于是, MVC(I)/OPT(I) £ 2k/k = 2又, 设图G由k条互不关联的边, 显然MVC(I)=2k, OPT(I)=k.这表明MVC的近似比比已不可能再进一步改进.小于2, 上面估计的MVC的近似近似算法的分析研究近似算法的两个基本方面设计算法和分析算法的运行时间与近似比. 分析近似比1.2.关键是估计最优解的值.构造使算法产生最坏的解的实例.如果这个解的值与最优值的比达到或者可以任意的接近得到的近似比(这样的实例称作

4、紧实例), 那么说明这个近似比已经是最好的、不可改进的了;否则说明还有进一步的研究余地.3.研究下, 该本身的可近似性, 即在P¹NP(或其他更强)的假设近似算法的近似比的下界.8.2 多机调度: 任给有穷的作业集A和m台相同的, 作多机调度业a的处理时间为正整数t(a), 每一项作业可以在任一台机器上处理. 如何把作业分配给才能使完成所有作业的时间最短? 即, 如何把A划分成m个不相交的子集Ai使得maxììüüt(a) | i = 1,2,L, míí åîîaÎAiý&

5、#253;þþ最小?8.2.1 贪心的近似算法负载: 分配给一台的作业的处理时间之和.贪心法G-MPS: 按输入的顺序分配作业, 把每一项作业分. 如果当前负载最小的有2台配给当前负载最小的或2台以上, 则分配给其中的任意一台.例如 3台, 8项作业, 处理时间为3,4,3,6,5,3,8,4. 算法给出的分配方案是 1,4, 2,6,7, 3,5,8,负载分别为3+6=9, 4+3+8=15, 3+5+4=12, 完成时间为15.最优的分配方案是 1,3,4,2,5,6, 7,8,负载分别为3+3+6=12, 4+5+3=12, 8+4=12, 完成时间为12.贪心法的性

6、能定理8.1 对多机调度的每一个有m台的实例I,G - MPS(I ) £ ææ 2 - 1 ööOPT(I ).ççm ÷÷èèøø证明: 显然,(1) OPT(I ) ³ 1mt(a), (2)OPT(I ) ³ max t(a).åaÎAaÎA设Mj的负载最大, 记作t(Mj). 又设b是最后被分配给机器Mj的作业. 根据算法, 在考虑分配b时Mj的负载最小, 故1 ææö

7、6;t(M j ) - t(b) £ m çç å t(a) - t(b)÷÷.èè aÎAøø证明于是1 ææööG - MPS( I ) = t( M j ) £ m çç å t(a) - t(b)÷÷ + t(b)èè aÎAøø11 ööææ= m å t(a) + ç

8、ç1 - m ÷÷t(b)èèøøaÎA1 ööææ£ OPT( I ) + çç 1 - m ÷÷OPT( I )èèøø1 ööææ= çç 2 - m ÷÷OPT( I ).èèøø紧实例, m(m-1)+1项作业, 前m(m-1)项作业的处理时间都m台为1, 最

9、后一项作业的处理时间为m.算法把前m(m-1)项作业平均地分配给m台, 每台m-1项,. G-MPS(I)=2m-1.最后一项任意地分配给一台最优分配方案是把前m(m-1)项作业平均地分配给m-1台机器, 每台m项, 最后一项分配给留下的, OPT(I)=m.G-MPS是2-近似算法8.2.2 改进的贪心近似算法递降贪心法DG-MPS: 首先按处理时间从大到小重新排列作业, 然后运用G-MPS.例如 对上一小节的紧实例得到最优解.对前面的实例, 计算结果如下: 先重新排序8,6,5,4,4,3,3,3;3台的负载分别为 8+3=11, 6+4+3=13, 5+4+3=12.比G-MPS的结果好

10、.与G-MPS相比, DG-MPS仅增加对作业的排序, 需要增加时间O(nlogn), 仍然是多项式时间的.定理8.2对多机调度的每一个有m台的实例I,1 # 3 -&OPT(I)1DG - MPS(I) £%(m $ 22m ¢证明证明: 设作业按处理时间从大到小排列为a1, a2,¼, an, 仍Mj和最后分配给Mj的作业ai.考虑负载最大的(1) Mj只有一个作业, 则 i=1, 必为最优解.(2) Mj有2个或2个以上作业, 则i³m+1, OPT(I)³2t(ai). 于是,1nææöö

11、DG - MPS( I ) = t( M j ) £ m çç å t(ak ) - t(ai )÷÷ + t(ai )èè k =1øøn11 öö1 öö1ææææt(a ) +1 -t(a ) £ OPT( I ) +1 -×OPT( I )å=çç÷÷øøçç÷÷ø

12、48;ki2mmmèèèèk =1ææ 31öö÷÷OPT( I )= çç-èè 22m øø8.3 货郎本节考虑满足三角不等式的货郎8.3.1 最邻近法最邻近法NN: 从任意一个城市开始, 在每一步取离当前所在城市最近的尚未到过的城市作为下一个城市. 若这样的城市不止一个, 则其中的一个. 直至走遍所有的城市,最后回到开始出发的城市.111111115一个NN性能很坏的例子22113232111111111最邻近法的性能定理8.3

13、对于货郎例I, 总有所有满足三角不等式的n个城市的实NN( I ) £ 1 (éélognùù + 1)OPT( I ).满足三角不等式的n个城22而且, 对于每一个充分大的n,市的实例I使得NN(I ) > 1 ææ log(n + 1) + 4 ööOPT(I ).3 çç3 ÷÷2èèøø8.3.2 最小生成MST: 首先, 求图的一棵最小生成树T. 然后,最小生成沿着T走两遍得到图的一条回路. 最后, 顺着这条回

14、路, 跳过已走过的顶点, 抄近路得到一条哈密顿回路.例回路都可以在多项式时间内完成, 故求最小生成算法是多项式时间的.最小生成的性能定理8.4 对货郎的所有满足三角不等式的实例I,MST(I)<2OPT(I).证明: 因为从哈密顿回路中删去一条边就得到一棵生成树, 故T的权小于OPT(I). 沿T走两遍的长小于2OPT(I).因为满足三角不等式, 抄近路增加长度, 故MST(I)<2OPT(I).MST是2-近似算法.紧实例OPT(I)=2nMST(I)=4n-21 ööææ= çç 2 - n ÷÷O

15、PT(I )èèøø8.3.3 最小权匹配法最小权匹配法MM: 首先求图的一棵最小生成树T. 记T的所有奇度顶点在原图中的导出子图为H, H有偶数个顶点, 求H的最小匹配M. 把M加入T得到一个图, 求这个图回路; 最后, 沿着这条回路, 跳过已走过的顶点,的抄近路得到一条哈密顿回路.求任意图最小权匹配的花算法是多项式时间的, 因此MM是多项式时间的.最小权匹配法的性能定理8.5 对货郎的所有满足三角不等式的实例I,MM( I ) < 3 OPT( I ).2证 由于满足三角不等式, 导出子图H中的最短哈密顿回路C的长度不超过原图中最短哈密顿回路的

16、长度OPT(I).沿着C隔一条边取一条边, 得到H的一个匹配. 总可以使这个匹配的权不超过C长的一半.因此, H的最小匹配M的权不超过 OPT(I)/2, 求得的路的长小于 (3/2)OPT(I).回增加长度, 得证MM(I)< (3/2)OPT(I).抄近路MM是3/2 -近似算法.货郎的难度定理8.6 货郎除非P=NP.(不要求满足三角不等式)是不可近似的,证 假设不然, 设A是货郎的r-近似算法, r£K, K是常数.任给图G=<V,E>, 如下构造货郎的实例IG:城市集V, "u,vÎV, 若(u,v)ÎE, 则令d(u,v)=

17、1; 否则令d(u,v)=Kn,其中|V|=n.若G有哈密顿回路, 则OPT(IG)=n, A(IG)£rOPT(IG) £Kn;否则OPT(IG)>Kn, A(IG)³OPT(IG) >Kn.所以, G有哈密顿回路当且仅当A(IG)£Kn.证明图G是否有哈密顿回路: 首先构造于是, 下述算法可以的实例IG, 然后对IG运用算法A. 若A(IG)£Kn, 则输货郎出“Yes”; 否则输出“No”.由于K是固定的常数, 构造IG可在O(n2)时间内完成且| IG|= O(n2). A是多项式时间的, A对IG可在n的多项式时间内完成计

18、算, 所以上述算法是HC的多项式时间算法. 而HC是NP完全的, 推得P=NP.设计近似算法的技巧随机近似算法贪心近似算法随机近似算法用随机算法计算近似解随机算法的期望代价EC如果任意给定输入大小n,都有max(EC/C*, C*/EC) (n)那么随机算法的近似比例为 (n)该算法为随机(n)-近似算法随机近似算法和确定近似算法唯一的区别: 其代价是期望代价MAX-3-CNF可满足3-CNF可满足性如果不能使所有从句都满足,也要最大化可满足的从句个称为MAX-3-CNF可满足数,该。如果对每个变量随机分配0-1值(概率是0.5:0.5),那么可以证明这种随机算法实际上是随机8/7-近似算法假

19、定在3-CNF中,每个从句都有三个不同的文字,而且不x 和 ¬x 同现在同一个从句中。MAX-3-CNF可满足的随机近似算法定理35.6:假设有一个MAX-3-CNF可满足性的实例,有n 个变量 x1, x2, , xn 和 m 个从句,如果对每个随量随机赋值,为 1 的概率为 0.5,为 0 的概率也是 0.5,那么这个随机算法是随机 8/7- 近似算法。量 Yi 表示从句 i 是否被满足。证明:定义指示器随显然只要从句 i 中某一个文字被赋值为 1 ,则Yi = 1。因为每个从句都有三个不同的文字,如果 x 和 ¬x 不同现在同一个从句中。则从句中三个文字的赋值是彼此的

20、。只有当其中的三个文字都被赋值为 0 时从句才为 0,这个概率为Pr从句 i 不能被满足 = (1/2)3 = 1/8。MAX-3-CNF可满足的随机近似算法如果 x 和 ¬x 同现在同某个从句中,则该从句一定满足。因此Pr从句 i 能被满足 1-1/8 = 7/8。于是EYi 7/8。量 Y 是可以满足的从句的个数,那么Y = Y1 + Y2 + + Yn设随于是mmmEY = EåYi = å EYi ³ å7 / 8 = 7m / 8i=1i=1i=1m 是可满足从句个数的上界,所以该算法的近似比例最多是m/(7m/8) = 8/7集合覆

21、盖的贪心算法Set Cover:给定集合 A 包含 n 个元素,和 A 的一些子集的集合 W = S1, S2, , Sk,以及一个代价函数 c(Si), 要找到一个代价最小的集合 U = Si 使 A 的每一个元素都被覆盖。每次都选取最“廉价”的子集 Si,去掉所覆盖的元素,直到所有元素被覆盖为止。怎样衡量子集的“廉价”子集 S 的成本效率: = c(S) / |S-V|其中 V 表示已经被覆盖的元素即 S 覆盖新元素的平均代价定义 price(x) : x 被某个子集覆盖时的平均代价贪心集合覆盖算法1.2.初始化,V while V A doS找到成本效率最佳(最小)的子集赋值 (S) =

22、 c(S) / |S - V|选取 S 并对每个 x S - V ,赋值V V Sprice(x) = (S)3.输出所有选取的子集贪心集合覆盖算法的近似比分析假设上述算法覆盖元素的顺序为 x1, x2, , xn (如果多个元素被同时覆盖,则他们之间的顺序任意选定)。引理:对于任意的 k (1 k n),price(xk) c* / (n - k + 1) ,c*其中是集合覆盖的最优解的代价。S*= S* 。i证明:假设最优解选中的集合为在第 j 次循环中,最优解中还没有被选中的子集记为S*j= S*j,i还没有被覆盖的元素集合记为V = A V那么 S* 要覆盖 V的代价至多为 c*。j贪

23、心集合覆盖算法的近似比分析在元素 xk被覆盖的这轮循环中,V' 至少还有 n-k+1 个元素。那么在 S* 中至少有一个子集 S*满足jj,ia(S*) £ c* / |V' |j,iS*j,i都是 a(S*) > c* / |V' |,则j,i否则,如果每一个c(S*) / |S*- V| = (S*) > c* / |V' |j,ij,ij,ic(S*) > (c* / |V' |) |S*- V|j,ij,ic(S* ) = (c(S*) > (c* / |V' |) |S*- V|) jij,iij,ic

24、*(因为 i(|S*- V|) |V | )。从而有 c(S* ) > c*,j,ij由于 xk 被最廉价子集覆盖,所以price(xk) £ c* / |V' | £ c* / (n - k + 1)!贪心集合覆盖算法的近似比分析定理:该贪心算法是Hn-近似算法(Hn =1+1/2+1/n)。证明:由于贪心算法中每次选取的子集的代价是平均分摊在每个元素上,所以算法中所选取的所有子集的总代价为nå price(xk )k=1根据刚才证明的引理,有n121nå price(x ) £ (1 +L+)c* = Hc*knk=18.4

25、背包与多项式时间近似方案的优化形式: 任给n件物品和一个背包, 物品i的0-1背包重量为wi, 价值为vi, 1£i£n, 背包的重量限制为B, 其中wi, vi以及B都是正整数. 把哪些物品装入背包才能在不超过重量限制的条件下使得价值最大?即, 求子集S*Í1,2,¼,n使得= maxìì£ B, S Í 1,2.L, nüü.vv|wåííååýýþþiiiîî iÎSi&

26、#206;S*iÎS8.4.1 一个简单的贪心算法贪心算法G-KK1. 按重量的价值从大到小排列物品. 设v1/w1³ v2/w2³¼ ³ vn/wn.2. 顺序检查每一件物品, 只要能装得下就将它装入背包, 设装入背包的总价值为V.3. 求vk=maxvi|i=1,2,¼,n. 若vk>V, 则将背包内的物品换成物品k.(wi,vi): (3,7), (4,9), (2,2), (5,9);B=6.例如G-KK给出的装入(3,7)和(2,2), 总价值为9. 若把第4件物品改为(5,10), 则装入第4件, 总价值为10.这两

27、个实例的最优解都是装入(4,9)和(2,2), 总价值为11.G-KK的性能定理8.7 对0-1背包的任何实例I, 有OPT(I)<2G-KK(I).证 设物品l是第一件未装入背包的物品, 由于物品按量的价值从大到小排列, 故有OPT(I)<G-KK(I)+vl£ G-KK(I)+ vmax £ 2G-KK(I).重G-KK是2-近似算法.8.4.2 多项式时间近似方案算法PTAS输入e >0和实例I.1. 令m=éé1/eùù.2. 按重量的价值从大到小排列物品. 设v1/w1³ v2/w2³&

28、#188; ³ vn/wn.3. 对每一个t=1,2,¼,m和t件物品, 检查这t件物品的重量之和. 若它们的重量之和不超过B, 则接着用G-KK把剩余的物品装入背包.4. 比较得到的所有装法, 取其中价值最大的作为近似解.PTAS是一簇算法. 对每一个固定的e >0,PTAS是一个算法,记作PTASe .PTSA的性能定理8.8 对每一个e >0和0-1背包的实例I,OPT(I)<(1+e)PTASe(I),且PTSAe的时间复杂度为O(n1/e +2 ) .证 设最优解为S*. 若|S*|£m, 则算法必得到S*. 设|S*|>m. 考

29、虑计算中以S*中m件价值最大的物品为基础, 用G-KK得到的结果S. 设物品l是S*中第一件不在S中的物品, 在此之前G-KK装入的不属于S*的物品(肯定有这样的物品, 否则应该装入物品l )的重量的价值都不小于vl/wl, 当然也不小于S*中所有没有装入的物品的重量的价值, 故有OPT(I) < åiÎS vi+vl. 又, SS*中m件价值最大的物品, 它们的价值都不小于vl, 故又有vl£ åiÎS vi /m.多项式时间近似方案于是OPT(I)<åiÎS vi+vl£åiÎS

30、 vi+åiÎS vi /m£(1+1/m)PTASe(I)£ (1+e)PTASe(I).时间复杂度. 从n件物品中取t件(t=1,2,¼,m), 所有可能取法的个数为nm12mmcn + cn + L+ cn£ m × m! £ n.对每一种取法, G-KK的运行时间为O(n), 故算法的时间复杂度为O(nm+1)= O(n1/e +2 ).多项式时间近似方案: 以e >0和的实例作为输入I, 对每一个固定的e >0, 算法是1+e -近似的.8.4.3 伪多项式时间算法与完全多项式时间近似方案完全

31、多项式时间近似方案: 以e >0和的实例I作为输入,时间复杂度为二元多项式p(|I|,1/e),且对每一个固定的e >0,算法的近似比为1+e.算法A 记Gk(d): 当只考虑前k件物品时, 为了得到动态不小于d的价值, 至少要装入的物品重量.kkììüüGk (d ) = minííå wi x| åvi xi ³ d , xi = 0或1, 1 £ i £ kýý,îî i =1þþi =10£k&#

32、163;n, 0£d£D, D=v1+v2+¼+vn, 约定: minÆ=+¥.OPT(I)=maxd | Gn(d)£B.动态算法递推公式G (d ) = ìì0,若d = 0,若d > 0,íí+ ¥,0îî(d ) = ììminGk (d ), wk +1 ,若d £ vk +1 ,GííminG (d ),G (d - vk +1) + w,若d > v,îîkkk +1k

33、+1k +10£k£n-1, 0£d£D.A的时间复杂度为O(nD)=O(n2vmax), 是伪多项式时间算法.完全多项式时间近似方案算法FPTAS输入e >0和实例I.vmaxb = maxììêêüüúúííêê(1 + 1 / e )n úú ,1ýý.1. 令îîëëûûþþ2. 令 vi¢=&

34、#233;évi/bùù, 1£i£n. 把所有vi换成 vi¢, 记新得的实例为I¢.3. 对I¢ 应用算法A得到解S, 把S取作实例I的解.定理8.9 对每一个e >0和0-1背包OPT(I)<(1+e)FPTSA(I),的实例I,并且FPTAS的时间复杂度为O(n3(1+1/e) .证明证 由于(vi¢-1)b< vi £ vi¢b, 对任意的TÍ1,2,¼,n,0£bå iÎTvi¢ - å

35、iÎTvi< b|T|£ bn.设I的最优解为S*, 注意到S是I¢ 的最优解, 故有OPT(I)-FPTAS(I)= å iÎS*vi - åiÎSvi=(å iÎS*vi-båiÎS*vi¢)+(båiÎS*vi¢-båiÎSvi¢)+(båiÎSvi¢-å£(båiÎSvi¢ - åiÎSvi)<bn

36、.iÎSvi)对每一个e >0, 若b=1, 则I¢ 就是I, S是I的最优解. 设b>1, 注意到vmax£OPT(I), 得OPT(I)-FPTAS(I)<vmax/(1+1/e)£OPT(I)/(1+1/e),OPT(I)<(1+e)FPTSA(I).是A对I¢ 的运算, 其时间复杂度为O(n2vmax/b)= O(n3(1+1/e) .得时间主要Bin PackingGiven n items with sizes a1 , . . . , an (0, 1, find a packing in unit-siz

37、ed bins that minimizes the number of bins used.Approximation algorithm: First-FitFirst-Fit 2OPT :First-Fit (17/10)OPT + 3 ?Theorem BP-1: For any > 0, there is no approximation algorithm having a guarantee of 3/2 for the bin packingproblem, assuming P NP.44An asymptotic PTASAsymptotic PTAS - 渐进多项式

38、时间近似方案Theorem BP-2: For any , 0 < 1/2, there is an algorithm A that runs in time polynomial in n and finds a packing using at most (1 + 2)OPT + 1 bins.The sequence of algorithms, A, form an asymptotic polynomial time approximation scheme for bin packing, since for each > 0 $N > 0, and a pol

39、ynomial time algorithm in this sequence, say B, such that B has an approximation guarantee of 1 + for all instances havingOPT N .45Restricted problem with polynomial time algorithmLemma BP-3: Let > 0 be fixed, and let K be a fixed nonnegative integer. Consider the restriction of the bin packing p

40、roblem to instances in which each item is of size at least and the number of distinct item sizes is K. There is a polynomial time algorithm that optimally solves thisrestricted problem.46Restricted problem with polynomial time algorithmProof: The number of items in a bin is bounded by ëë1/

41、ûû.Denote this by M. Therefore, the number of different bin types is bounded by R which is a (large!) constant!R =$&M + KM#²%Clearly, the total number of bins used is at most n. Therefore, the number of possible feasible packings is bounded by P, which is polynomial in n.!P =$&

42、;%n + RR#²Enumerating them and picking the best packing gives the optimal answer.47Restricted problem within a factor of (1 + )Lemma BP-4: Let > 0 be fixed. Consider the restriction of the bin packing problem to instances in which each item is of size at least . There is a polynomial time ap

43、proximation algorithm that solves this restricted problem within afactor of (1 + ).48Restricted problem within a factor of (1 + )Proof: Let I denote the given instance. Sort the n items by increasing size, and partition them into K = éé1/2ùù groups each having at most Q = é&

44、#233;n2ùù items. Notice that two groups may contain items of the same size.Construct instance J by rounding up the size of each itemto the size of the largest item in its group. Instance J has at most K different item sizes.Therefore, Lemma BP-3, we can find an optimal packing for J. This will also be a valid packing for the original item sizes.49Restricted problem within a factor of (1 + )Let us construct another instance, say J, by rounding down th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论