- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1動態規劃
2引言動態規劃演算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題。但是經分解得到的子問題往往不是互相獨立的。不同子問題的數目常常只有多項式量級。在用分治法求解時,有些子問題被重複計算了許多次。如果能夠保存已解決的子問題的答案,而在需要時再找出已求得的答案,就可以避免大量重複計算,從而得到多項式時間演算法。nT(n/2)T(n/2)T(n/2)T(n/2)T(n)=nT(n)=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2n/2T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)T(n/4)T(n)Thosewhocannotrememberthepastaredoomedtorepeatit.——GeorgeSantayana,ThelifeofReason,BookI:IntroductionandReasoninCommonSense(1905)
3動態規劃基本步驟找出最優解的性質,並刻劃其結構特徵。遞歸地定義最優值。以自底向上的方式計算出最優值。根據計算最優值時得到的資訊,構造最優解。
43.1矩陣連乘問題給定n個矩陣{A1,A2,...,An},其中Ai與Ai+1是可乘的,i=1,2,...,n-1。考察這n個矩陣的連乘積A1A2...An。由於矩陣乘法滿足結合律,所以計算矩陣的連乘可以有許多不同的計算次序。這種計算次序可以用加括弧的方式來確定。若一個矩陣連乘積的計算次序完全確定,也就是說該連乘積已完全加括弧,則可以依此次序反復調用2個矩陣相乘的標準演算法計算出矩陣連乘積。完全加括弧的矩陣連乘積可遞歸地定義為:單個矩陣是完全加括弧的;矩陣連乘積A是完全加括弧的,則A可表示為2個完全加括弧的矩陣連乘積B和C的乘積並加括弧,即A=(BC)。設有四個矩陣A,B,C,D,它們的維數分別是:A=50×10,B=10×40,C=40×30,D=30×5總共有五種完全加括弧的方式:(A((BC)D))(A(B(CD)))((AB)(CD))(((AB)C)D)((A(BC))D)其數乘次數分別為:16000,10500,36000,87500,34500
5窮舉搜索法問題描述:給定n個矩陣{A1,A2,…,An},其中Ai與Ai+1是可乘的,i=1,2…,n-1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。窮舉法:列舉出所有可能的計算次序,並計算出每一種計算次序相應需要的數乘次數,從中找出一種數乘次數最少的計算次序。演算法複雜度分析:對於n個矩陣的連乘積,設其不同的計算次序為P(n)。由於每種加括弧方式都可以分解為兩個子矩陣的加括弧問題:(A1...Ak)(Ak+1…An)可以得到關於P(n)的遞推式如下:也就是說,P(n)是隨n的增長成指數增長的。
6動態規劃法——1.分析最優解的結構下麵我們考慮用求解。預處理:將矩陣連乘積AiAi+1...Aj簡記為A[i:j],這裏i≤j。考察計算A[i:j]的最優計算次序。設這個計算次序在矩陣Ak和Ak+1之間將矩陣鏈斷開,i≤kj,則其相應完全加括弧方式為(AiAi+1...Ak)(Ak+1Ak+2...Aj)。計算量:A[i:k]的計算量加上A[k+1:j]的計算量,再加上A[i:k]和A[k+1:j]相乘的計算量。分析最優解的結構特徵:計算A[i:j]的最優次序所包含的計算矩陣子鏈A[i:k]和A[k+1:j]的次序也是最優的。矩陣連乘計算次序問題的最優解包含著其子問題的最優解。這種性質稱為最優子結構性質。問題的最優子結構性質是該問題可用動態規劃演算法求解的顯著特徵。
72.建立遞歸關係設計算A[i:j],1≤i≤j≤n,所需要的最少數乘次數m[i,j],則原問題的最優值為m[1,n]。當i=j時,A[i:j]=Ai,因此,m[i,i]=0,i=1,2,…,n。當ij時,m[i,j]=m[i,k]+m[k+1,j]+pi-1pkpj,這裏Ai的維數為pi-1×pi。可以遞歸地定義m[i,j]為:k的位置只有j-i種可能。
83.計算最優值對於1≤i≤j≤n不同的有序對(i,j)對應於不同的子問題。因此,不同子問題的個數最多只有由此可見,在遞歸計算時,許多子問題被重複計算多次。這也是該問題可用動態規劃演算法求解的又一顯著特徵。用動態規劃演算法解此問題,可依據其遞歸式以自底向上的方式進行計算
文档评论(0)