网站大量收购独家精品文档,联系QQ:2885784924

算法分析与设计2009第e讲.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析与设计2009第e讲

上次内容: (1)图着色不能多项式时间近似到小于,TSP问题不能多项式时间近似到任意常数。 (2),时间复杂度O(mK+nlogn),K越大求解优化程度越高,1+(,T = O()。M是常数时可以认为是多项式时间近似方案。,时间复杂度:O(nK)。 什么是多项式时间近似方案: 定义7.2:若问题(的近似算法A(()满足对任意实例I任意(0 (1)RA(()[I]1+(;(2)A(()的时间复杂度是I输入长度的多项式函数。 则A(()称为求解问题(的多项式时间近似方案。 解释: (1)1+(很容易说明,但后面的多项式需要解释,时间复杂度一定与(有关。近似性能比1+(,时间复杂度为:O(),O(n),O(n2),PTAS。特殊情况: O()等等,各种情况。一定是(越小,时间复杂度越大。最后一种情况又称为完全多项式时间近似方案。FPTAS ),P((,()是多项式函数。 (2)为什么叫多项式近似方案,而不叫多项式近似算法。因为(没有确定大小,只有程序运行时才能确定。下面讲完全多形式时间近似方案。 背包问题:算法描述,先考虑动态规划算法求背包问题最优解 算法要求x1,x2,…,xn的赋值,赋值为1的为装入背包的,赋值为0的为没有装入背包的。最后使装入背包的元素价值最大,重量不超过M。 先考虑前i个元素的装法,要考虑(x1,x2,…,xi)赋值的组合:每种组合对应一个价值和重量数对:Pil, Wil,Pil=,Wil=S(i)={Pi1,Wi1, …, Pim, Wim}表示所有这样的数对集合,按说共有如此数对2i个。但是可以去掉一些,实际上有些数对可以去掉。并不是所有数对均有前途成为最优解,有一些是没有前途的通过比较可以看出来。 两种情况:看些数对可以去掉,不考虑。 (1)若有数对Pil, Wil,WilM,则该数对没有必要存在,Pil, Wil(S(i) (2)若有两个数对Pil, Wil,Pik, Wik满足:Pil(Pik,Wil(Wik 一种装法重量大价值小,另一种装法重量小价值大,后一种更好,更有发展潜力,再往包里放时不再放前i个元素中的元素了。没有潜力发展的数对没有必要保存。看看数对有没有前途,没有前途就淘汰了。在所有有前途的数对中培养出最优解来。 前面Pil(Pik, Wil(Wik”称Pik, Wik支配Pil,Wil,若Pik,Wik支配Pil,Wil则,将被支配的数对从S(i)中去掉。 下面看若S(i)构造出来以后,怎样构造S(i+1) (1)若xi+1=0,则S(i)(S(i+1)//前i个元素可以,前i+1个元素也可以。 (2)若xi+1=1,则={Pi+1+Pt,Wi+1+Wt|Pt, Wt(S(i),Wi+1+Wt(M} S(i+1)=S(i)(\{的数对}, 1(in 怎样求出解//从S(n)往前求。 假设Pnk,Wnk为最后一个数对,若Pnk,Wnk(S(n-1),则xn=1,否则xn=0。xn=1时考虑数对Pnk-Pn,Wnk-Wn(S(n-2),以此反向追踪得到(xnxn-1, …, x2, x1),得到背包问题最优解。 例子: P=(P1,P2,P3,P4,P5)=(W1,W2,W3,W4,W5)=W=(1,2,10,100,1000) M=1112, 因为每个元素价值与重量相等,所以就不用考虑数对了,只考虑一个数。 S(0)={0} S(1)={0,1} ={2,3} S(2)={0,1,2,3} ={10,11,12,13} S(3)={0,1,2,3,10,11,12,13} ={100,101,102,103,110,111,112,113} S(4)={0,1,2,3,10,11,12,13,100, 101,102,103,110,111,112,113} ={1000,1001,1002,1003,1010,1011,1012,1013,1100,1101,1102,1103,1110,1111,1112,1113(删除)} S(5)=S(4)(={0,1,2,3,10,11,12,13,100, 101,102,103,110,111,112,113,1000,1001,1002,1003,1010,1011,1012,1013,1100,1101,1102,1103,1110,1111,1112} 求出该实例的解数对为:1112,1112,反向追踪得到最优解 (x1,x2,x3,x4,x5)=(0,1,1,1,1)。 算法复杂度分析,算法很坏,但是可以化腐朽为神奇。 (1)O()=O(2n) (2)S(i)中数对Pil,Wil的价值量取某个整数值的数对只有一个,所以S(i)中最多有个数对。所以算法时间复杂度为:O(n)。//仅考虑数对个数。 (3)S(i)中重量参数等于一个数值

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档