




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算法設(shè)計(jì)與分析第四講動(dòng)態(tài)規(guī)劃哈爾濱工業(yè)大學(xué)王宏志wangzh@/pages/wang/請(qǐng)各位評(píng)審老師提出寶貴建議!謝謝!本講內(nèi)容
4.1動(dòng)態(tài)規(guī)劃的原理 4.2矩陣乘法問(wèn)題
4.3最長(zhǎng)公共子序列問(wèn)題
4.40-1背包問(wèn)題2分治技術(shù)的問(wèn)題子問(wèn)題是相互獨(dú)立的如果子問(wèn)題不是相互獨(dú)立的,分治方法將重復(fù)計(jì)算公共子問(wèn)題,效率很低優(yōu)化問(wèn)題給定一組約束條件和一個(gè)代價(jià)函數(shù),在解空間中搜索具有最小或最大代價(jià)的優(yōu)化解很多優(yōu)化問(wèn)題可分為多個(gè)子問(wèn)題,子問(wèn)題相互關(guān)聯(lián),子問(wèn)題的解被重復(fù)使用Why?動(dòng)態(tài)規(guī)劃的特點(diǎn)把原始問(wèn)題劃分成一系列子問(wèn)題求解每個(gè)子問(wèn)題僅一次,并將其結(jié)果保存在一個(gè)表中,以后用到時(shí)直接存取,不重復(fù)計(jì)算,節(jié)省計(jì)算時(shí)間自底向上地計(jì)算適用范圍一類(lèi)優(yōu)化問(wèn)題:可分為多個(gè)相關(guān)子問(wèn)題,子問(wèn)題的解被重復(fù)使用What?
使用動(dòng)態(tài)規(guī)劃的條件優(yōu)化子結(jié)構(gòu)當(dāng)一個(gè)問(wèn)題的優(yōu)化解包含了子問(wèn)題的優(yōu)化解時(shí),我們說(shuō)這個(gè)問(wèn)題具有優(yōu)化子結(jié)構(gòu)??s小子問(wèn)題集合,只需那些優(yōu)化問(wèn)題中包含的子問(wèn)題,降低實(shí)現(xiàn)復(fù)雜性?xún)?yōu)化子結(jié)構(gòu)使得我們能自下而上地完成求解過(guò)程重疊子問(wèn)題在問(wèn)題的求解過(guò)程中,很多子問(wèn)題的解將被多次使用How?動(dòng)態(tài)規(guī)劃算法的設(shè)計(jì)步驟分析優(yōu)化解的結(jié)構(gòu)遞歸地定義最優(yōu)解的代價(jià)自底向上地計(jì)算優(yōu)化解的代價(jià)保存之,并獲取構(gòu)造最優(yōu)解的信息根據(jù)構(gòu)造最優(yōu)解的信息構(gòu)造優(yōu)化解
請(qǐng)各位評(píng)審老師提出寶貴建議!謝謝!本講內(nèi)容
4.1動(dòng)態(tài)規(guī)劃的原理
4.2矩陣乘法問(wèn)題
4.3最長(zhǎng)公共子序列問(wèn)題4.40-1背包問(wèn)題7輸入:<A1,A2,...,An>,
Ai是矩陣輸出:計(jì)算A1
A2
...
An的最小代價(jià)方法問(wèn)題的定義矩陣乘法的代價(jià)/復(fù)雜性:乘法的次數(shù)若A是p
q矩陣,B是q
r矩陣,則A
B的代價(jià)是O(pqr)矩陣鏈乘法的實(shí)現(xiàn)矩陣乘法滿(mǎn)足結(jié)合率。計(jì)算一個(gè)矩陣鏈的乘法可有多種方法:
例如,(A1
A2
A3
A4)=(A1
(A2
(A3
A4)))=((A1
A2)
(A3
A4))
=((A1
A2)
A3)
A4)動(dòng)機(jī)矩陣鏈乘法的代價(jià)與計(jì)算順序的關(guān)系設(shè)A1=10
100矩陣,A2=100
5矩陣,A3=5
50矩陣T((A1
A2)
A3)=10
100
5+10
5
50=7500T(A1(A2
A3))=100
5
50+10
100
50=750000結(jié)論:不同計(jì)算順序有不同的代價(jià)p(n)=1ifn=1p(n)=ifn>1p(n)=C(n-1)=Catalan數(shù)==
(4n/n3/2)
矩陣鏈乘法優(yōu)化問(wèn)題的解空間設(shè)p(n)=計(jì)算n個(gè)矩陣乘積的方法數(shù)
p(n)的遞歸方程(A1
…Ak)(Ak+1…An)如此之大的解空間是無(wú)法用枚舉方法求出最優(yōu)解的!
下邊開(kāi)始設(shè)計(jì)求解矩陣鏈乘法問(wèn)題的動(dòng)態(tài)規(guī)劃算法分析優(yōu)化解的結(jié)構(gòu)遞歸地定義最優(yōu)解的代價(jià)自底向上地計(jì)算優(yōu)化解的代價(jià)保存之,并獲取構(gòu)造最優(yōu)解的信息根據(jù)構(gòu)造最優(yōu)解的信息構(gòu)造優(yōu)化解
兩個(gè)記號(hào)Ai-j=Ai
Ai+1
Ajcost(Ai-j)=計(jì)算Ai-j的代價(jià)優(yōu)化解的結(jié)構(gòu)若計(jì)算A1
n的優(yōu)化順序在k處斷開(kāi)矩陣鏈,即A1
n=A1
k
Ak+1
n,則在A1
n的優(yōu)化順序中,對(duì)應(yīng)于子問(wèn)題A1
k的解必須是A1-k的優(yōu)化解,對(duì)應(yīng)于子問(wèn)題Ak+1
n的解必須是Ak+1
n的優(yōu)化解
分析優(yōu)化解的結(jié)構(gòu)具有優(yōu)化子結(jié)構(gòu):?jiǎn)栴}的優(yōu)化解包括子問(wèn)題優(yōu)化解子問(wèn)題重疊性A1
A2
A3
A4(A1)
(A2
A3
A4)(A1
A2)
(A3
A4)(A1
A2
A3)
(A4)(A2
A3)(A3
A4)(A1
A2)(A3
A4)(A1
A2)(A2
A4)具有子問(wèn)題重疊性(A3
A4)(A3
A4)(A1
A2)(A1
A2)假設(shè)m[i,j]=計(jì)算Aij的最小乘法數(shù)m[1,n]=計(jì)算A1n的最小乘法數(shù)A1...AkAk+1An是優(yōu)化解(k實(shí)際上是不可預(yù)知)代價(jià)方程m[i,i]=
計(jì)算Ai
i
的最小乘法數(shù)=0m[i,j]=m[i,k]+m[k+1,j]+pi-1pkpj其中,pi-1pkpj是計(jì)算Ai
k
Ak+1
j所需乘法數(shù),Ai
k和Ak+1j分別是pi-1
pk和pk
pj矩陣.遞歸地定義最優(yōu)解的代價(jià)考慮到所有的k,優(yōu)化解的代價(jià)方程為
m[i,j]=0ifi=jm[i,j]=mini
k<j{m[i,k]+m[k+1,j]+pi-1pkpj}
ifi<j
自底向上計(jì)算優(yōu)化解的代價(jià)m[i,j]=mini
k<j{m[i,k]+m[k+1,j]+p0pkp5}m[1,5]m[1,1]m[4,4]m[5,5]m[2,2]m[3,3]m[4,5]m[3,4]m[2,3]m[1,2]m[1,3]m[2,4]m[3,5]m[1,4]m[2,5]m[2,4]=min{m[2,2]+m[3,4]m[2,3]+m[4,4]m[i,j]=mini
k<j{m[i,k]+m[k+1,j]+pi-1pkpj}m[1,5]m[1,1]m[4,4]m[5,5]m[2,2]m[3,3]m[4,5]m[3,4]m[2,3]m[1,2]m[1,3]m[2,4]m[3,5]m[1,4]m[2,5]Matrix-Chain-Order(p)n=length(p)-1;FORi=1TOnDO
m[i,i]=0;FORl=2TOnDO/*計(jì)算地l對(duì)角線(xiàn)*/FORi=1TOn-l+1DO
j=i+l-1;
m[i,j]=∞;
FORk
iToj-1DO/*計(jì)算m[i,j]*/
q=m[i,k]+m[k+1,j]+pi-1pkpjIFq<m[i,j]THENm[i,j]=q;Returnm.
Matrix-Chain-Order(p)n=length(p)-1;FORi=1TOnDO
m[i,i]=0;FORl=2TOnDOFORi=1TOn-l+1DO
j=i+l-1;
m[i,j]=∞;FORk
iToj-1DO
q=m[i,k]+m[k+1,j]+pi-1pkpjIFq<m[i,j]THENm[i,j]=q,s[i,j]=k;Returnmands.獲取構(gòu)造最優(yōu)解的信息S[i,j]記錄AiAi+1…Aj的最優(yōu)劃分處在Ak與Ak+1之間
Print-Optimal-Parens(s,i,j)IFj=iTHENPrint“A”i;
ELSEPrint“(”P(pán)rint-Optimal-Parens(s,i,s[i,j])Print-Optimal-Parens(s,s[i,j]+1,j)Print“)”
構(gòu)造最優(yōu)解調(diào)用Print-Optimal-Parens(s,1,n)即可輸出A1
n的優(yōu)化計(jì)算順序S[i,j]記錄Ai…Aj的最優(yōu)劃分處;S[i,S[i,j]]記錄Ai…As[i,j]的最優(yōu)劃分處;S[S[i,j]+1,j]記錄As[i,j]+1…Aj的最優(yōu)劃分處.?DKE-LAB(2009)時(shí)間復(fù)雜性計(jì)算代價(jià)的時(shí)間(l,i,k)三層循環(huán),每層至多n-1步O(n3)構(gòu)造最優(yōu)解的時(shí)間:
O(n)總時(shí)間復(fù)雜性為:O(n3)空間復(fù)雜性
使用數(shù)組m和S需要空間O(n2)算法復(fù)雜性請(qǐng)各位評(píng)審老師提出寶貴建議!謝謝!本講內(nèi)容
4.1動(dòng)態(tài)規(guī)劃的原理 4.2矩陣乘法問(wèn)題
4.3最長(zhǎng)公共子序列問(wèn)題4.40-1背包問(wèn)題23子序列X=(A,B,C,B,D,B)Z=(B,C,D,B)是X的子序例W=(B,D,A)不是X的子序例公共子序列Z是序列X與Y的公共子序列如果Z是X的子序也是Y的子序列。問(wèn)題的定義最長(zhǎng)公共子序列(LCS)問(wèn)題輸入:X=(x1,x2,...,xn),Y=(y1,y2,...ym)輸出:Z=X與Y的最長(zhǎng)公共子序列最長(zhǎng)公共子序列結(jié)構(gòu)分析第i前綴設(shè)X=(x1,x2,...,xn)是一個(gè)序列,X的第i前綴Xi是一個(gè)序列,定義為Xi=(x1,...,xi)
例.
X=(A,B,D,C,A),X1=(A),X2=(A,B),X3=(A,B,D)優(yōu)化子結(jié)構(gòu)定理1(優(yōu)化子結(jié)構(gòu))設(shè)X=(x1,...,xm)、Y=(y1,...,yn)是兩個(gè)序列,Z=(z1,...,zk)是X與Y的LCS,我們有:
⑴
如果xm=yn,
則zk=xm=yn,
Zk-1是Xm-1和Yn-1的LCS,即,LCSXY=LCSXm-1Yn-1+<xm=yn>.
⑵
如果xm
yn,且zk
xm,則Z是Xm-1和Y的LCS,即LCSXY=LCSXm-1Y
⑶
如果xm
yn,且zk
yn,則Z是X與Yn-1的LCS,即LCSXY=LCSXYn-1?DKE-LAB(2009)證明:
⑴.X=<x1,…,xm-1,xm>,Y=<y1,…,yn-1,xm>,則LCSXY=LCSXm-1Yn-1+<xm=yn>.
設(shè)zk
xm,則可加xm=yn到Z,得到一個(gè)長(zhǎng)為k+1的X與Y的公共序列,與Z是X和Y的LCS矛盾。于是zk=xm=yn。
現(xiàn)在證明Zk-1是Xm-1與Yn-1的LCS。顯然Zk-1是Xm-1與Yn-1的公共序列。我們需要證明Zk-1是LCS。設(shè)不然,則存在Xm-1與Yn-1的公共子序列W,W的長(zhǎng)大于k-1。增加xm=yn到W,我們得到一個(gè)長(zhǎng)大于k的X與Y的公共序列,與Z是LCS矛盾。于是,Zk-1是Xm-1與Yn-1的LCS.⑵X=<x1,…,xm-1,xm>,Y=<y1,…,yn-1,yn>,xm
yn,zk
xm,則
LCSXY=LCSXm-1Y
由于zk
xm,Z是Xm-1與Y的公共子序列。我們來(lái)證Z是Xm-1與Y的LCS。設(shè)Xm-1與Y有一個(gè)公共子序列W,W的長(zhǎng)大于k,則W也是X與Y
的公共子序列,與Z是LCS矛盾。
⑶同⑵可證。X和Y的LCS的優(yōu)化解結(jié)構(gòu)為
LCSXY=LCSXm-1Yn-1+<xm=yn>ifxm=yn
LCSXY=LCSXm-1Y
ifxm
yn,zk
xm
LCSXY=LCSXYn-1
if
xm
yn,zk
yn子問(wèn)題重疊性L(fǎng)CSXYLCSXm-1Yn-1LCSXm-1YLCSXYn-1LCSXm-2Yn-2LCSXm-2Yn-1LCSXm-1Yn-2……LCS問(wèn)題具有子問(wèn)題重疊性建立LCS長(zhǎng)度的遞歸方程C[i,j]=Xi與Yj的LCS的長(zhǎng)度LCS長(zhǎng)度的遞歸方程
C[i,j]=0ifi=0或
j=0C[i,j]=C[i-1,j-1]+1ifi,j>0且xi=yjC[i,j]=Max(C[i,j-1],C[i-1,j])ifi,j>0且xi
yj
基本思想自底向上計(jì)算LCS的長(zhǎng)度C[i-1,j-1]C[i-1,j]C[i,j-1]
C[i,j]計(jì)算過(guò)程C[0,0]C[0,1]C[0,3]C[0,2]C[0,4]C[1,0]C[2,0]C[3,0]C[1,1]C[2,1]C[3,1]C[1,2]C[1,3]C[1,4]C[2,2]C[2,3]C[2,4]C[3,2]C[3,3]C[3,4]計(jì)算LCS長(zhǎng)度的算法數(shù)據(jù)結(jié)構(gòu)
C[0:m,0:n]:C[i,j]是Xi與Yj的LCS的長(zhǎng)度
B[1:m,1:n]:B[i,j]是指針,指向計(jì)算C[i,j]時(shí)所選擇的子問(wèn)題的優(yōu)化解所對(duì)應(yīng)的C表的表項(xiàng)?DKE-LAB(2009)
LCS-length(X,Y)
m
length(X);n
length(Y);Fori
1TomDoC[i,0]
0;Forj
1TonDoC[0,j]
0;Fori
1TomDoForj
1TonDoIfxi=yj
ThenC[i,j]
C[i-1,j-1]+1;B[i,j]
“↖”;ElseIfC[i-1,j]
C[i,j-1]ThenC[i,j]
C[i-1,j];B[i,j]
“↑”;ElseC[i,j]
C[i,j-1];B[i,j]
“←”;ReturnCandB.
基本思想從B[m,n]開(kāi)始按指針?biāo)阉魅鬊[i,j]=“↖”,則xi=yj是LCS的一個(gè)元素如此找到的“LCS”是X與Y的LCS構(gòu)造優(yōu)化解Print-LCS(B,X,i,j)IFi=0orj=0THENReturn;IFB[i,j]=“↖”THENPrint-LCS(B,X,i-1,j-1);Printxi;ELSEIfB[i,j]=“↑”THENPrint-LCS(B,X,i-1,j);ELSEPrint-LCS(B,X,i,j-1).Print-LCS(B,X,length(X),length(Y))可打印出X與Y的LCS。
時(shí)間復(fù)雜性計(jì)算代價(jià)的時(shí)間(i,j)兩層循環(huán),i循環(huán)m步,j循環(huán)n步O(mn)構(gòu)造最優(yōu)解的時(shí)間:
O(m+n)總時(shí)間復(fù)雜性為:O(mn)空降復(fù)雜性
使用數(shù)組C和B需要空間O(mn)算法復(fù)雜性請(qǐng)各位評(píng)審老師提出寶貴建議!謝謝!本講內(nèi)容
4.1動(dòng)態(tài)規(guī)劃的原理 4.2矩陣乘法問(wèn)題
4.3最長(zhǎng)公共子序列問(wèn)題4.40-1背包問(wèn)題40問(wèn)題的定義
給定n種物品和一個(gè)背包,物品i的重量是wi,價(jià)值vi,背包容量為C,問(wèn)如何選擇裝入背包的物品,使裝入背包中的物品的總價(jià)值最大?對(duì)于每種物品只能選擇完全裝入或不裝入,一個(gè)物品至多裝入一次。輸入:C>0,wi>0,vi>0,1
i
n
輸出:(x1,x2,…,xn),xi
{0,1},滿(mǎn)足
1
i
nwixi
C,
1
i
nvixi
最大等價(jià)的整數(shù)規(guī)劃問(wèn)題max
1invixi
1inwixiCxi{0,1},1i
n?DKE-LAB(2009)優(yōu)化解結(jié)構(gòu)的分析定理(優(yōu)化子結(jié)構(gòu))
如果(y1,y2,…,yn)是0-1背包問(wèn)題的優(yōu)化解,則(y2,…,yn)是如下子問(wèn)題的優(yōu)化解:max
2invixi
2inwixiC–w1y1xi{0,1},2i
n證明:如果(y2,…,yn)不是子問(wèn)題優(yōu)化解,則存在(z2,…,zn)是子問(wèn)題更優(yōu)的解。于是,(y1,z2,…,zn)是原問(wèn)題比(y1,y2,…,yn)更優(yōu)解,矛盾。建立優(yōu)化解代價(jià)的遞歸方程設(shè)子問(wèn)題max
iknvkxk
iknwkxkjxk{0,1},ik
n
的最優(yōu)解代價(jià)為m(i,j).即m(i,j)是背包容量為j,可選物品為i,i+1,…,n
時(shí)問(wèn)題最優(yōu)解的代價(jià).遞歸方程
m(i,j)=m(i+1,j)0j<wim(i,j)=max{m(i+1,j),m(i+1,j-wi)+vi}jwi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度湖南省勞動(dòng)合同(教育行業(yè))
- 離婚房產(chǎn)公證協(xié)議書(shū)
- 住宿服務(wù)合同書(shū)
- 企業(yè)環(huán)保技術(shù)創(chuàng)新及綠色制造戰(zhàn)略規(guī)劃
- 民用建筑施工合同
- 旅游度假村開(kāi)發(fā)建設(shè)合同
- 企業(yè)可持續(xù)發(fā)展成本效益分析
- 大數(shù)據(jù)平臺(tái)建設(shè)委托代理協(xié)議
- 股份轉(zhuǎn)讓意向合同
- 三農(nóng)用無(wú)人機(jī)使用及維護(hù)指南
- 2025年安徽職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)一套
- 開(kāi)啟新征程??點(diǎn)亮新學(xué)期+課件=2024-2025學(xué)年高一下學(xué)期開(kāi)學(xué)家長(zhǎng)會(huì)
- 壓力容器考試審核考試題庫(kù)(容標(biāo)委氣體協(xié)會(huì)聯(lián)合)
- 人教版(2025版)七年級(jí)下冊(cè)英語(yǔ)UNIT 1 Animal Friends 單元整體教學(xué)設(shè)計(jì)(6個(gè)課時(shí))
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃及安排表
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 校園體育活動(dòng)的多元化與健康促進(jìn)
- 新中式養(yǎng)生知識(shí)培訓(xùn)課件
- 網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)ppt課件(完整版)
- PowerPoint使用技巧培訓(xùn)課件(共35張)
- 完整解讀2022年(地理)新課標(biāo)新版《義務(wù)教育地理課程標(biāo)準(zhǔn)(2022年版)》全文解析PPT課件
評(píng)論
0/150
提交評(píng)論