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

动态规划课件.pptxVIP

动态规划课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

*動態規劃

*7.1引言在這一章中,我們將研究一種強有力的演算法設計技術,它被廣泛用於求解組合最優化問題。使用這種技術的演算法,不是遞歸調用自身,但是問題的基礎解通常是用遞歸函數的形式來說明的。分治演算法是採用自上而下的方式求值,導致了不止一次的遞歸調用;而動態規劃法是採取自下向上的方式遞推求值,並把中間結果存儲起來以便用於後續計算。利用這種技術可以設計出特別有效演算法來解決許多組合最優化問題,也可以用來改善蠻力有哪些信誉好的足球投注网站演算法的時間複雜性,從而解決一些有NP難度的問題(詳見第10章)這種技術把一個問題的解決方案視為一系列決策的結果,還要考察每個決策序列中是否包含一個最優子序列。

*例:Fibonacci序列問題 f1=1,f2=1,f3=2,f4=3,f5=5,f6=8,f7=13,……序列中的每一個數是它前面二個數的和。這個序列遞歸定義如下:上述定義可用下麵遞歸過程來實現1.procedureFibonacciRec(n)2. ifn=1orn=2then3. return14. else5. returnFibonacciRec(n-1)+FibonacciRec(n-2)6. endif7.endprocedure

*我們不能認為上頁給出的計算Fibonacci序列的遞歸過程是有效的,相反由於對過程的重複調用,它遠不是有效的演算法。為了說明這一點,我們把它展開。 f(n) =f(n-1)+f(n-2) =(f(n-2)+f(n-3))+f(n-2) =2f(n-2)+f(n-3) =2(f(n-3)+f(n-4))+f(n-3) =3f(n-3)+2f(n-4) =3(f(n-4)+f(n-5))+2f(n-4) =5f(n-4)+3f(n-5) =………………這導致了巨大數量的重複調用。

*我們用數組F[1..n]來存儲Fibonacci序列的值,由此得出自下而上的遞推計算過程。1.procedureFibonacci(n)2. F[1]←13. F[2]←14. fori←3ton5. F[i]←F[i-1]+F[i-2]6. endfor7. returnF[n]9.endprocedure//若i=1或i=2,則迴圈不執行,返回值為F[1]或F[2]。

*7.2最長公共子序列問題㈠問題描述在字母表∑上,分別給出長度為n和m的字串A和B,確定在A和B中最長公共子序列的長度。其中1≤i1i2...ik≤n(嚴格遞增下標序列)A=a1a2...an的子序列為:B=b1b2...bm的子序列為:其中1≤j1j2...jk≤m(嚴格遞增下標序列)和相等。並且例:∑={x,y,z},A=zxyxyz,B=xyyzxxyy是A(a2a3a5)和B(b1b2b3)長度為3的公共子序列,但不是A和B的最長公共子序列。xyyz是A(a2a3a5a6)和B(b1b2b3b4)長度為4的公共子序列,並且是A和B的最長公共子序列。

*㈡窮舉法可使用窮舉法求解字串A和B的最長公共子序列長度,演算法描述如下:列舉字串A的除空串之外的所有子序列,設A的長度為n,A共有2n-1個子序列。例A=abcd,可能的24-1=15個子序列為: a、b、c、d、(4個) ab、ac、ad、bc、bd、cd、(6個) abc、abd、acd、bcd、(4個) abcd(1個)設字串B的長度為m,對於A的每一個子序列可在O(m)時間內確定它是否是B的子序列。顯然,窮舉法的時間複雜性為O(m2n)。若採用動態規劃法,它的時間複雜性僅為Θ(mn)。

*㈢動態規劃法設A=a1a2...an、B=b1b2...bm,L[i,j]表示a1a2...ai和b1b2...bj的最長公共子序列長度。設1≤i≤n、1≤j≤m,很容易證明下麵的觀察結論:觀察結論7.1(Page131)設i0且j0,那麼若ai=bj,L[i,j]=L[i-1,j-1]+1;若ai≠bj,L[i,j]=max(L[i,j-1],L[i-1,j])。①若ai=bj,計算a1a2...ai和b1b2...bj的最長公共子序列的長度,相當於在計算a1a2...ai-1和b1b2...bj-1最長公共子序列長度的基礎上加1。②若ai≠bj,計算a1a2...ai和b1b2...bj的最長公共子序列的長度,相當於分別計算a1a2...ai-1和b1b2...bj(j不變、i-

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档