版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
--動(dòng)態(tài)規(guī)劃算法算法設(shè)計(jì)與分析動(dòng)態(tài)規(guī)劃算法1、認(rèn)識(shí)動(dòng)態(tài)規(guī)劃算法2、算法框架3、動(dòng)態(tài)規(guī)劃應(yīng)用
在動(dòng)態(tài)規(guī)劃算法策略中:
體現(xiàn)在它的決策不是線性的而是全面考慮不同的情況分別進(jìn)行決策,并通過(guò)多階段決策來(lái)最終解決問(wèn)題。
在各個(gè)階段采取決策后,會(huì)不斷決策出新的數(shù)據(jù),直到找到最優(yōu)解.每次決策依賴于當(dāng)前狀態(tài),又隨即引起狀態(tài)的轉(zhuǎn)移。
一個(gè)決策序列就是在變化的狀態(tài)中產(chǎn)生出來(lái)的,故有“動(dòng)態(tài)”的含義。所以,這種多階段決策最優(yōu)化的解決問(wèn)題的過(guò)程稱為動(dòng)態(tài)規(guī)劃。
1認(rèn)識(shí)動(dòng)態(tài)規(guī)劃【例1】數(shù)塔問(wèn)題
如圖所示的一個(gè)數(shù)塔,從頂部出發(fā),在每一結(jié)點(diǎn)可以選擇向左走或是向右走,一直走到底層,要求找出一條路徑,使路徑上的數(shù)值和最大。
問(wèn)題分析算法設(shè)計(jì)小結(jié)
問(wèn)題分析
這個(gè)問(wèn)題用貪婪算法有可能會(huì)找不到真正的最大和。以上圖為例就是如此。用貪婪的策略,則路徑和分別為:
9+15+8+9+10=51(自上而下),
19+2+10+12+9=52(自下而上)。都得不到最優(yōu)解,真正的最大和是:
9+12+10+18+10=59。
算法設(shè)計(jì)動(dòng)態(tài)規(guī)劃設(shè)計(jì)過(guò)程如下:
1.階段劃分:第一步對(duì)于第五層的數(shù)據(jù),我們做如下決策:對(duì)經(jīng)過(guò)第四層2的路徑選擇第五層的19,對(duì)經(jīng)過(guò)第四層18的路徑選擇第五層的10,對(duì)經(jīng)過(guò)第四層9的路徑也選擇第五層的10,對(duì)經(jīng)過(guò)第四層5的路徑選擇第五層的16。
以上的決策結(jié)果將五階數(shù)塔問(wèn)題變?yōu)?階子問(wèn)題,遞推出第四層與第五層的和為:21(2+19),28(18+10),19(9+10),21(5+16)。用同樣的方法還可以將4階數(shù)塔問(wèn)題,變?yōu)?階數(shù)塔問(wèn)題?!?/p>
最后得到的1階數(shù)塔問(wèn)題,就是整個(gè)問(wèn)題的最優(yōu)解。2.存儲(chǔ)、求解:
1)原始信息存儲(chǔ)原始信息有層數(shù)和數(shù)塔中的數(shù)據(jù),層數(shù)用一個(gè)整型變量n存儲(chǔ),數(shù)塔中的數(shù)據(jù)用二維數(shù)組data,存儲(chǔ)成如下的下三角陣:9121510682189519710416
2)動(dòng)態(tài)規(guī)劃過(guò)程存儲(chǔ)必需用二維數(shù)組a存儲(chǔ)各階段的決策結(jié)果。二維數(shù)組a的存儲(chǔ)內(nèi)容如下:
a[n][j]=data[n][j]j=1,2,……,n;
i=n-1,n-2,……1,j=1,2,……,i;時(shí)
a[i][j]=max(d[i+1][j],d[i+1][j+1])+data[i][j]
最后a[1][1]存儲(chǔ)的就是問(wèn)題的結(jié)果。
3)最優(yōu)解路徑求解及存儲(chǔ)僅有數(shù)組data和數(shù)組a可以找到最優(yōu)解的路徑,但需要自頂向下比較數(shù)組data和數(shù)組a是可以找到。
數(shù)組data數(shù)組a95912155049106838342921895212819211971041619710416數(shù)塔及動(dòng)態(tài)規(guī)劃過(guò)程數(shù)據(jù)總結(jié)
動(dòng)態(tài)規(guī)劃=貪婪策略+遞推(降階)+存儲(chǔ)遞推結(jié)果貪婪策略、遞推算法都是在“線性”地解決問(wèn)題,而動(dòng)態(tài)規(guī)劃則是全面分階段地解決問(wèn)題??梢酝ㄋ椎卣f(shuō)動(dòng)態(tài)規(guī)劃是“帶決策的多階段、多方位的遞推算法”。
1.適合動(dòng)態(tài)規(guī)劃的問(wèn)題特征
動(dòng)態(tài)規(guī)劃算法的問(wèn)題及決策應(yīng)該具有三個(gè)性質(zhì):最優(yōu)化原理、無(wú)后向性、子問(wèn)題重疊性質(zhì)。1)最優(yōu)化原理(或稱為最佳原則、最優(yōu)子結(jié)構(gòu))。2)無(wú)后向性(無(wú)后效性)。
3)有重疊子問(wèn)題。2、算法框架
2.動(dòng)態(tài)規(guī)劃的基本思想動(dòng)態(tài)規(guī)劃方法的基本思想是,把求解的問(wèn)題分成許多階段或多個(gè)子問(wèn)題,然后按順序求解各子問(wèn)題。最后一個(gè)子問(wèn)題就是初始問(wèn)題的解。由于動(dòng)態(tài)規(guī)劃的問(wèn)題有重疊子問(wèn)題的特點(diǎn),為了減少重復(fù)計(jì)算,對(duì)每一個(gè)子問(wèn)題只解一次,將其不同階段的不同狀態(tài)保存在一個(gè)二維數(shù)組中。
3.設(shè)計(jì)動(dòng)態(tài)規(guī)劃算法的基本步驟設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)的動(dòng)態(tài)規(guī)劃算法的步驟:
1)劃分階段
2)選擇狀態(tài)
3)確定決策并寫出狀態(tài)轉(zhuǎn)移方程但是,實(shí)際應(yīng)用當(dāng)中的簡(jiǎn)化步驟:
1)分析最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征。
2)遞推地定義最優(yōu)值。
3)以自底向上的方式或自頂向下的記憶化方法(備忘錄法)計(jì)算出最優(yōu)值.4)根據(jù)計(jì)算最優(yōu)值時(shí)得到的信息,構(gòu)造問(wèn)題的最優(yōu)解。3、動(dòng)態(tài)規(guī)劃應(yīng)用【例1】
背包問(wèn)題
給定n種物品和一個(gè)容量為C的背包,物品i的重量是wi,其價(jià)值為vi,背包問(wèn)題是如何選擇裝入背包的物品,使得裝入背包中物品的總價(jià)值最大?
前i個(gè)物品(1≤i≤n)定義的實(shí)例:物品的重量分別為w1,…,wi,價(jià)值分別為v1,…,vi,
背包的承重量為j(1≤j≤W)。
設(shè)V[i,j]為該實(shí)例的最優(yōu)解的物品總價(jià)值,也就是說(shuō),是能夠放進(jìn)承重量為j的背包中的前i個(gè)物品中最有價(jià)值子集的總價(jià)值。
可以把前i個(gè)物品中能夠放進(jìn)承重量為j的背包中的子集分成兩個(gè)類別:
1、包括第i個(gè)物品的子集
2、不包括第i個(gè)物品的子集算法分析有下面的結(jié)論:
1.根據(jù)定義,在不包括第i個(gè)物品的子集中,最優(yōu)子集的價(jià)值是V[i-1,j].2.在包括第i個(gè)物品的子集中(因此,j—w≥0),最優(yōu)子集是由該物品和前i-1個(gè)物品中能夠放進(jìn)承重量為wj的背包的最優(yōu)子集組成。這種最優(yōu)子集的總價(jià)值等于Vi+V[i-1,j-wi]。因此,在前j個(gè)物品中最優(yōu)解的總價(jià)值等于這兩個(gè)價(jià)值中的較大值。Max{V[i-1,j],vi+V[i-1,j-wi]}
j-wi≥0V[i,j]﹛
V[i-1,j]j-wi<0【例3】求兩個(gè)字符序列的最長(zhǎng)公共字符子序列。
問(wèn)題分析
算法設(shè)計(jì)
算法(遞歸形式)
算法(非遞歸)例如:X=“ABCBDAB”,Y=“BCDB”是X的一個(gè)子序列
問(wèn)題分析若A的長(zhǎng)度為n,若B的長(zhǎng)度為m,則
A的子序列共有:
B的子序列共有:
如采用枚舉策略,當(dāng)m=n時(shí),共進(jìn)行串比較:
此問(wèn)題不可能簡(jiǎn)單地分解成幾個(gè)獨(dú)立的子問(wèn)題,也不能用分治法來(lái)解。所以,我們只能用動(dòng)態(tài)規(guī)劃的方法去解決。
算法設(shè)計(jì)1.遞推關(guān)系分析設(shè)A=“a0,a1,…,am-1”,B=“b0,b1,…,bn-1”,
Z=“z0,z1,…,zk-1”
為它們的最長(zhǎng)公共子序列。有以下結(jié)論:
1)如果am-1=bn-1,則zk-1=am-1=bn-1,且“z0,z1,…,zk-2”是“a0,a1,…,am-2”和“b0,b1,…,bn-2”的一個(gè)最長(zhǎng)公共子序列;
2)如果am-1≠bn-1,則若zk-1≠am-1,蘊(yùn)涵“z0,z1,…,zk-1”是"a0,a1,…,am-2"和"b0,b1,…,bn-1"的一個(gè)最長(zhǎng)公共子序列;
3)如果am-1≠bn-1,則若zk-1≠bn-1,蘊(yùn)涵“z0,z1,…,zk-1”是“a0,a1,…,am-1”和“b0,b1,…,bn-2”的一個(gè)最長(zhǎng)公共子序列。
算法設(shè)計(jì)【例4】最長(zhǎng)不降子序列
設(shè)有由n個(gè)不相同的整數(shù)組成的數(shù)列,記為:a(1)、a(2)、……、a(n)且a(i)<>a(j)(i<>j)
若存在i1<i2<i3<…<ik且有a(i1)<a(i2)<…<a(ik),則稱為長(zhǎng)度為k的不下降序列。請(qǐng)求出一個(gè)數(shù)列的最長(zhǎng)不下降序列。
算法設(shè)計(jì)
算法
算法設(shè)計(jì)1.遞推關(guān)系
1)對(duì)a(n)來(lái)說(shuō),由于它是最后一個(gè)數(shù),所以當(dāng)從a(n)開始查找時(shí),只存在長(zhǎng)度為1的不下降序列;
2)若從a(n-1)開始查找,則存在下面的兩種可能性:
(1)若a(n-1)<a(n)則存在長(zhǎng)度為2的不下降序列a(n-1),a(n)。
(2)若a(n-1)>a(n)則存在長(zhǎng)度為1的不下降序列a(n-1)或a(n)。
3)一般若從a(i)開始,此時(shí)最長(zhǎng)不下降序列應(yīng)該按下列方法求出:在a(i+1),a(i+2),…,a(n)中,找出一個(gè)比a(i)大的且最長(zhǎng)的不下降序列,作為它的后繼。
2.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)用數(shù)組a[i]記錄1到n的不相同的整數(shù)數(shù)列用數(shù)組b[i],記錄點(diǎn)i到n的最長(zhǎng)的不降子序列的長(zhǎng)度用數(shù)組c[i]分別點(diǎn)i后繼接點(diǎn)的編號(hào)
intmaxn=100;
inta[maxn],b[maxn],c[maxn];
main(){intn,i,j,max,p;
input(n);
for(i=1;i<n;i++)
{input(a[i]);
b[i]=1;
c[i]=0;}
算法for(i=n-1;i>=1;i=i-1)
{max=0;p=0;
for(j=i+1;j<=n;j=j+1)
if(a[i]<a[j]andb[j]>max){max=b[j];p=j;}
if(p<>0)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黨員培訓(xùn)工作方案(18篇)
- 2025年搏擊運(yùn)動(dòng)項(xiàng)目申請(qǐng)報(bào)告模范
- 2025年林產(chǎn)化學(xué)產(chǎn)品項(xiàng)目申請(qǐng)報(bào)告
- 2025年污水處理鼓風(fēng)機(jī)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年泳池?zé)岜庙?xiàng)目申請(qǐng)報(bào)告模板
- 2022年大學(xué)生實(shí)習(xí)報(bào)告例文5篇
- 2025年智能汽車項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年干燥設(shè)備:熱風(fēng)爐項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 收銀員的辭職報(bào)告模板匯編7篇
- 企業(yè)誠(chéng)信承諾書合集6篇
- 監(jiān)控驗(yàn)收單完整版本
- 6.2《青紗帳-甘蔗林》教學(xué)設(shè)計(jì)-【中職專用】高一語(yǔ)文(高教版2023·基礎(chǔ)模塊下冊(cè))
- 25王戎不取道旁李公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 中國(guó)歷史文化知識(shí)競(jìng)賽100題(含答案)
- 2024-2034年中國(guó)鑄鋁行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 學(xué)前兒童健康教育活動(dòng)設(shè)計(jì)智慧樹知到期末考試答案章節(jié)答案2024年云南國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院
- 口腔科麻藥過(guò)敏演練
- 中職美術(shù)課教學(xué)設(shè)計(jì)案例
- 光伏中間人傭金協(xié)議書
- 2024年度設(shè)備維修保養(yǎng)及安全培訓(xùn)資料
- 我國(guó)農(nóng)民專業(yè)合作社及其發(fā)展政策研究的開題報(bào)告
評(píng)論
0/150
提交評(píng)論