




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、12 要點要點:掌握動態(tài)規(guī)劃算法的基本要素(1)最優(yōu)子結構性質(2)重疊子問題性質掌握設計動態(tài)規(guī)劃算法的步驟。(1)找出最優(yōu)解的性質,并刻劃其結構特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計算出最優(yōu)值。(4)根據(jù)計算最優(yōu)值時得到的信息,構造最優(yōu)解。3通過應用范例學習動態(tài)規(guī)劃算法設計策略。(1)矩陣連乘問題;(2)最大子段和(3)凸多邊形最優(yōu)三角剖分;(4)多邊形游戲; (5)圖像壓縮;(6)電路布線;(7)流水作業(yè)調度;(8)最優(yōu)二叉搜索樹。4n給定n個矩陣 , 其中 與 是可乘的, 。考察這n個矩陣的連乘積 n由于矩陣乘法滿足結合律,所以計算矩陣的連乘可以有許多不同的計算次序。這種
2、計算次序可以用加括號的方式來確定。n若一個矩陣連乘積的計算次序完全確定,也就是說該連乘積已完全加括號,則可以依此次序反復調用2個矩陣相乘的標準算法計算出矩陣連乘積,.,21nAAAiA1iA1,.,2 , 1ninAAA.215(1)單個矩陣是完全加括號的;(2)矩陣連乘積 是完全加括號的,則 可 表示為2個完全加括號的矩陣連乘積 和 的乘積并加括號,即 AABC)(BCADCBA , , ,1050A4010B3040C530D)(DBCA)(DCAB)(DBCA)(CDBA)(CDAB16000, 10500, 36000, 87500, 34500u完全加括號的矩陣連乘積可遞歸地定義為:
3、完全加括號的矩陣連乘積可遞歸地定義為:u設有四個矩陣設有四個矩陣 ,它們的維數(shù)分別是:,它們的維數(shù)分別是:u總共有五中完全加括號的方式總共有五中完全加括號的方式6給定n個矩陣A1,A2,An,其中Ai與Ai+1是可乘的,i=1,2,n-1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數(shù)乘次數(shù)最少。u窮舉法窮舉法:列舉出所有可能的計算次序,并計算出每一種計算次序相應需要的數(shù)乘次數(shù),從中找出一種數(shù)乘次數(shù)最少的計算次序。 算法復雜度分析:算法復雜度分析:對于n個矩陣的連乘積,設其不同的計算次序為P(n)。由于每種加括號方式都可以分解為兩個子矩陣的加括號問題:(A1.Ak)(Ak
4、+1An)可以得到關于P(n)的遞推式如下:)/4()(11)()(1)(2/311nnPnnknPkPnPnnk7u窮舉法窮舉法u動態(tài)規(guī)劃動態(tài)規(guī)劃將矩陣連乘積 簡記為Ai:j ,這里ij jiiAAA.1考察計算Ai:j的最優(yōu)計算次序。設這個計算次序在矩陣Ak和Ak+1之間將矩陣鏈斷開,ikj,則其相應完全加括號方式為).)(.(211jkkkiiAAAAAA計算量:Ai:k的計算量加上Ak+1:j的計算量,再加上Ai:k和Ak+1:j相乘的計算量8n特征:計算Ai:j的最優(yōu)次序所包含的計算矩陣子鏈 Ai:k和Ak+1:j的次序也是最優(yōu)的。n矩陣連乘計算次序問題的最優(yōu)解包含著其子問題的最優(yōu)解
5、。這種性質稱為最優(yōu)子結構性質最優(yōu)子結構性質。問題的最優(yōu)子結構性質是該問題可用動態(tài)規(guī)劃算法求解的顯著特征。9n設計算Ai:j,1ijn,所需要的最少數(shù)乘次數(shù)mi,j,則原問題的最優(yōu)值為m1,n n當i=j時,Ai:j=Ai,因此,mi,i=0,i=1,2,nn當ij時,n可以遞歸地定義mi,j為:jkipppjkmkimjim1, 1,這里 的維數(shù)為 iAiipp1jipppjkmkimjijimjki, 1,min0,1jki 的位置只有 種可能kij 10n對于1ijn不同的有序對(i,j)對應于不同的子問題。因此,不同子問題的個數(shù)最多只有n由此可見,在遞歸計算時,許多子問題被重復計算多次許
6、多子問題被重復計算多次。這也是該問題可用動態(tài)規(guī)劃算法求解的又一顯著特征。n用動態(tài)規(guī)劃算法解此問題,可依據(jù)其遞歸式以自底向上的方式進行計算。在計算過程中,保存已解決的子問題答案。每個子問題只計算一次,而在后面需要時只要簡單查一下,從而避免大量的重復計算,最終得到多項式時間的算法)(22nnn11void MatrixChain(int *p,int n,int *m,int *s) for (int i = 1; i = n; i+) mii = 0; for (int r = 2; r = n; r+) for (int i = 1; i = n - r+1; i+) int j=i+r-1;
7、 mij = mi+1j+ pi-1*pi*pj; sij = i; for (int k = i+1; k j; k+) int t = mik + mk+1j + pi-1*pk*pj; if (t mij) mij = t; sij = k; A1A2A3A4A5A63035351515551010202025113752010350437555427125205351000262554 3213000201535250005322min52541531521pppmmpppmmpppmmm算法復雜度分析:算法復雜度分析:算法matrixChain的主要計算量取決于算法中對r,i和k的3
8、重循環(huán)。循環(huán)體內的計算量為O(1),而3重循環(huán)的總次數(shù)為O(n3)。因此算法的計算時間上界為O(n3)。算法所占用的空間顯然為O(n2)。12用多邊形頂點的逆時針序列表示凸多邊形,即P=v0,v1,vn-1表示具有n條邊的凸多邊形。若vi與vj是多邊形上不相鄰的2個頂點,則線段vivj稱為多邊形的一條弦。弦將多邊形分割成2個多邊形vi,vi+1,vj和vj,vj+1,vi。多邊形的三角剖分多邊形的三角剖分是將多邊形分割成互不相交的三角形的弦的集合T。給定凸多邊形P,以及定義在由多邊形的邊和弦組成的三角形上的權函數(shù)w。要求確定該凸多邊形的三角剖分,使得即該三角剖分中諸三角形上權之和為最小。 13
9、一個表達式的完全加括號方式相應于一棵完全二叉樹,稱為表達式的語法樹。例如,完全加括號的矩陣連乘積(A1(A2A3)(A4(A5A6)所相應的語法樹如圖 (a)所示。凸多邊形v0,v1,vn-1的三角剖分也可以用語法樹表示。例如,圖 (b)中凸多邊形的三角剖分可用圖 (a)所示的語法樹表示。 矩陣連乘積中的每個矩陣Ai對應于凸(n+1)邊形中的一條邊vi-1vi。三角剖分中的一條弦vivj,ij,對應于矩陣連乘積Ai+1:j。14凸多邊形的最優(yōu)三角剖分問題有最優(yōu)子結構性質。事實上,若凸(n+1)邊形P=v0,v1,vn的最優(yōu)三角剖分T包含三角形v0vkvn,1kn-1,則T的權為3個部分權的和:
10、三角形v0vkvn的權,子多邊形v0,v1,vk和vk,vk+1,vn的權之和??梢詳嘌裕蒚所確定的這2個子多邊形的三角剖分也是最優(yōu)的。因為若有v0,v1,vk或vk,vk+1,vn的更小權的三角剖分將導致T不是最優(yōu)三角剖分的矛盾。 15定義tij,1ijn為凸子多邊形vi-1,vi,vj的最優(yōu)三角剖分所對應的權函數(shù)值,即其最優(yōu)值。為方便起見,設退化的多邊形vi-1,vi具有權值0。據(jù)此定義,要計算的凸(n+1)邊形P的最優(yōu)權值為t1n。tij的值可以利用最優(yōu)子結構性質遞歸地計算。當j-i1時,凸子多邊形至少有3個頂點。由最優(yōu)子結構性質,tij的值應為tik的值加上tk+1j的值,再加上三角
11、形vi-1vkvj的權值,其中ikj-1。由于在計算時還不知道k的確切位置,而k的所有可能位置只有j-i個,因此可以在這j-i個位置中選出使tij值達到最小的位置。由此,tij可遞歸地定義為:jijivvvwjktkitjitjkijki)(1min0116多邊形游戲是一個單人玩的游戲,開始時有一個由n個頂點構成的多邊形。每個頂點被賦予一個整數(shù)值,每條邊被賦予一個運算符“+”或“*”。所有邊依次用整數(shù)從1到n編號。游戲第1步,將一條邊刪除。隨后n-1步按以下方式操作:(1)選擇一條邊E以及由E連接著的2個頂點V1和V2;(2)用一個新的頂點取代邊E以及由E連接著的2個頂點V1和V2。將由頂點V
12、1和V2的整數(shù)值通過邊E上的運算得到的結果賦予新頂點。最后,所有邊都被刪除,游戲結束。游戲的得分就是所剩頂點上的整數(shù)值。問題:對于給定的多邊形,計算最高得分。17在所給多邊形中,從頂點i(1in)開始,長度為j(鏈中有j個頂點)的順時針鏈p(i,j) 可表示為vi,opi+1,vi+j-1。如果這條鏈的最后一次合并運算在opi+s處發(fā)生(1sj-1),則可在opi+s處將鏈分割為2個子鏈p(i,s)和p(i+s,j-s)。設m1是對子鏈p(i,s)的任意一種合并方式得到的值,而a和b分別是在所有可能的合并中得到的最小值和最大值。m2是p(i+s,j-s)的任意一種合并方式得到的值,而c和d分別
13、是在所有可能的合并中得到的最小值和最大值。依此定義有am1b,cm2d(1)當opi+s=+時,顯然有a+cmb+d(2)當opi+s=*時,有minac,ad,bc,bdmmaxac,ad,bc,bd 換句話說,主鏈的最大值和最小值可由子鏈的最大值和最小值得到。 18圖象的變位壓縮存儲格式將所給的象素點序列p1,p2,pn,0pi255分割成m個連續(xù)段S1,S2,Sm。第i個象素段Si中(1im),有l(wèi)i個象素,且該段中每個象素都只用bi位表示。設 則第i個象素段Si為設 ,則hibi8。因此需要用3位表示bi,如果限制1li255,則需要用8位表示li。因此,第i個象素段所需的存儲空間為l
14、i*bi+11位。按此格式存儲象素序列p1,p2,pn,需要 位的存儲空間。 圖象壓縮問題要求確定象素序列p1,p2,pn的最優(yōu)分段,使得依此分段所需的存儲空間最少。每個分段的長度不超過256位。11ikklit,1ilititippS1maxlog1kilitkitiphmibilmi11*119設li,bi,是p1,p2,pn的最優(yōu)分段。顯而易見,l1,b1是p1,pl1的最優(yōu)分段,且li,bi,是pl1+1,pn的最優(yōu)分段。即圖象壓縮問題滿足最優(yōu)子結構性質。設si,1in,是象素序列p1,pn的最優(yōu)分段所需的存儲位數(shù)。由最優(yōu)子結構性質易知:其中11), 1max(b*min256,min
15、1ikikkisisik1maxlog),bmax(kjkipji算法復雜度分析:算法復雜度分析:由于算法compress中對k的循環(huán)次數(shù)不超這256,故對每一個確定的i,可在時間O(1)內完成的計算。因此整個算法所需的計算時間為O(n)。 20在一塊電路板的上、下2端分別有n個接線柱。根據(jù)電路設計,要求用導線(i,(i)將上端接線柱與下端接線柱相連,如圖所示。其中(i)是1,2,n的一個排列。導線(i,(i)稱為該電路板上的第i條連線。對于任何1i(j)。電路布線問題要確定將哪些連線安排在第一層上,使得該層上有盡可能多的連線。換句話說,該問題要求確定導線集Nets=(i,(i),1in的最大
16、不相交子集。 21記 。N(i,j)的最大不相交子集為MNS(i,j)。Size(i,j)=|MNS(i,j)|。(1)當i=1時,(2)當i1時,2.1 j(i)。此時, 。故在這種情況下,N(i,j)=N(i-1,j),從而Size(i,j)=Size(i-1,j)。2.2 j(i),(i,(i)MNS(i,j) 。 則對任意(t,(t) MNS(i,j)有ti且(t)(i)。在這種情況下MNS(i,j)-(i,(i)是N(i-1,(i)-1)的最大不相交子集。 2.3 若 ,則對任意(t,(t) MNS(i,j)有 t1時) 1 (1) 1 (0), 1 (jjjSize)()(1) 1
17、)(, 1(), 1(max), 1(),(ijijiiSizejiSizejiSizejiSize22n個作業(yè)1,2,n要在由2臺機器M1和M2組成的流水線上完成加工。每個作業(yè)加工的順序都是先在M1上加工,然后在M2上加工。M1和M2加工作業(yè)i所需的時間分別為ai和bi。流水作業(yè)調度問題要求確定這n個作業(yè)的最優(yōu)加工順序,使得從第一個作業(yè)在機器M1上開始加工,到最后一個作業(yè)在機器M2上加工完成所需的時間最少。分析:分析:直觀上,一個最優(yōu)調度應使機器M1沒有空閑時間,且機器M2的空閑時間最少。在一般情況下,機器M2上會有機器空閑和作業(yè)積壓2種情況。設全部作業(yè)的集合為N=1,2,n。SN是N的作業(yè)
18、子集。在一般情況下,機器M1開始加工S中作業(yè)時,機器M2還在加工其它作業(yè),要等時間t后才可利用。將這種情況下完成S中作業(yè)所需的最短時間記為T(S,t)。流水作業(yè)調度問題的最優(yōu)值為T(N,0)。23設是所給n個流水作業(yè)的一個最優(yōu)調度,它所需的加工時間為 a(1)+T。其中T是在機器M2的等待時間為b(1)時,安排作業(yè)(2),(n)所需的時間。記S=N-(1),則有T=T(S,b(1)。證明:證明:事實上,由T的定義知TT(S,b(1)。若TT(S,b(1),設是作業(yè)集S在機器M2的等待時間為b(1)情況下的一個最優(yōu)調度。則(1), (2), (n)是N的一個調度,且該調度所需的時間為a(1)+T
19、(S,b(1)a(1)+T。這與是N的最優(yōu)調度矛盾。故TT(S,b(1)。從而T=T(S,b(1)。這就證明了流水作業(yè)調度問題具有最優(yōu)子結構的性質。由流水作業(yè)調度問題的最優(yōu)子結構性質可知,),(min)0 ,(1iinibiNTaNT)0 ,max,(min),(iiiSiatbiSTatST24對遞歸式的深入分析表明,算法可進一步得到簡化。設是作業(yè)集S在機器M2的等待時間為t時的任一最優(yōu)調度。若(1)=i, (2)=j。則由動態(tài)規(guī)劃遞歸式可得:T(S,t)=ai+T(S-i,bi+maxt-ai,0)=ai+aj+T(S-i,j,tij)其中,,max0 ,max,0 ,maxmax0 ,0
20、 ,maxmaxiijiijijijijijijijijjiijijabaataabbbaatabbbaatabbaatbbt如果作業(yè)i和j滿足minbi,ajminbj,ai,則稱作業(yè)i和j滿足JohnsonJohnson不等式不等式。25交換作業(yè)i和作業(yè)j的加工順序,得到作業(yè)集S的另一調度,它所需的加工時間為T(S,t)=ai+aj+T(S-i,j,tji)其中,當作業(yè)i和j滿足Johnson不等式時,有由此可見當作業(yè)i和作業(yè)j不滿足Johnson不等式時,交換它們的加工順序后,不增加加工時間。對于流水作業(yè)調度問題,必存在最優(yōu)調度 ,使得作業(yè)(i)和(i+1)滿足Johnson不等式。進一
21、步還可以證明,調度滿足Johnson法則當且僅當對任意ij有由此可知,所有滿足所有滿足JohnsonJohnson法則的調度均為最優(yōu)調度。法則的調度均為最優(yōu)調度。 ,maxjjjiijijjiabaataabbt,maxiijiijijijabaataabbt,max,max,max,max,max,max,max,maxjjjiiijijjjiiijiijjijijiijjiabaatabaatabaaabaaabaaabaaabab,min,min)()()()(ijjiabab26流水作業(yè)調度問題的Johnson算法(1)令(2)將N1中作業(yè)依ai的非減序排序;將N2中作業(yè)依bi的非增序排序;(3)N1中作業(yè)接N2中作業(yè)構成滿足Johnson法則的最優(yōu)調度。;|,|21iiiibaiNbaiN算法復雜度分析:算法復雜度分析:算法的主要計算時間花在對作業(yè)集的排序。因此,在最壞情況下算法所需的計算時間為O(nlogn)。所需的空間為O(n)。27n二叉搜索樹(1)若它的左子樹不空,則左子樹上所有節(jié)點的值均小于它的根節(jié)點的值;(2)若它的右子樹不空,則右子樹上所有節(jié)點的值均大于它的根節(jié)點的值;(3 它的左、右子樹也分別為二叉排序樹451253337241
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年血液透析器項目申請報告
- 2025年美發(fā)師(高級)考試試卷:美發(fā)行業(yè)市場調研與競爭對手分析
- 2025年電腦提花人造毛皮機項目立項申請報告
- 我的寵物生活寫物并抒情類作文14篇
- 2025年電工(高級技師)職業(yè)技能鑒定實操試卷:電氣自動化技術技能案例分析
- 2025年安全生產管理工程師模擬試題
- 家庭經濟情況與收入支出平衡證明(8篇)
- 清(梅)酒介紹試題
- 2025年旅游地產項目生態(tài)旅游規(guī)劃與設計策略研究
- 2025年城市生活垃圾分類處理創(chuàng)新實踐與公眾教育體系研究報告001
- 胰島素注射 課件
- 公司事故隱患內部報告獎勵機制
- 【教育數(shù)字化應用案例】初中物理教育數(shù)字化應用案例
- 北京市西城區(qū)2021-2022學年八年級下學期期末歷史試題(試題+答案)
- 土地綜合整治項目施工組織設計
- 貴州省銅仁市2023-2024學年七年級下學期期末生物試題(解析版)
- 供應商定期評價表(精簡版)
- HJ 620-2011 水質 揮發(fā)性鹵代烴的測定 頂空氣相色譜法
- 廣西壯族自治區(qū)桂林市2023-2024學年七年級下學期期末考試數(shù)學試題
- 企業(yè)所得稅匯算清繳申報表電子表格版(帶公式-自動計算)
- 訂婚解除婚約協(xié)議書模板
評論
0/150
提交評論