淺析動(dòng)態(tài)規(guī)劃及其應(yīng)用_第1頁(yè)
淺析動(dòng)態(tài)規(guī)劃及其應(yīng)用_第2頁(yè)
淺析動(dòng)態(tài)規(guī)劃及其應(yīng)用_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

淺析動(dòng)態(tài)規(guī)劃及其應(yīng)用動(dòng)態(tài)規(guī)劃是一種重要的算法設(shè)計(jì)策略,在計(jì)算機(jī)科學(xué)和數(shù)學(xué)領(lǐng)域中被廣泛應(yīng)用。本文將對(duì)動(dòng)態(tài)規(guī)劃的概念、基本思路以及典型應(yīng)用做一個(gè)簡(jiǎn)要介紹。動(dòng)態(tài)規(guī)劃的概念動(dòng)態(tài)規(guī)劃是一種通過(guò)刻畫(huà)問(wèn)題的階段性結(jié)構(gòu),并分階段進(jìn)行求解的數(shù)學(xué)方法。通俗地講,就是將問(wèn)題分解成一系列子問(wèn)題,然后針對(duì)每個(gè)子問(wèn)題分別設(shè)計(jì)一個(gè)解決方案,最后整合這些子問(wèn)題的解決方案得到原問(wèn)題的解決方案。定義一個(gè)問(wèn)題可以用一個(gè)狀態(tài)表示。動(dòng)態(tài)規(guī)劃思想中的“動(dòng)態(tài)”,是指狀態(tài)的變化,所以說(shuō)動(dòng)態(tài)規(guī)劃依賴(lài)于狀態(tài)的定義,而狀態(tài)的設(shè)計(jì)是動(dòng)態(tài)規(guī)劃問(wèn)題中最為關(guān)鍵的一步。做好了狀態(tài)的設(shè)計(jì),就可以根據(jù)問(wèn)題的特征,找到動(dòng)態(tài)轉(zhuǎn)移方程,然后用迭代的方式來(lái)求解問(wèn)題的最優(yōu)解。動(dòng)態(tài)規(guī)劃的基本思路動(dòng)態(tài)規(guī)劃一般遵循以下幾個(gè)步驟:1.定義狀態(tài):針對(duì)問(wèn)題,定義狀態(tài)表示問(wèn)題的最優(yōu)解。2.設(shè)計(jì)轉(zhuǎn)移方程:根據(jù)狀態(tài)設(shè)計(jì)動(dòng)態(tài)轉(zhuǎn)移方程,表示由前一個(gè)狀態(tài)轉(zhuǎn)移到后一個(gè)狀態(tài)的轉(zhuǎn)移條件。3.確定初始狀態(tài):一般情況下,問(wèn)題的初始狀態(tài)是已知的,如在求解斐波那契數(shù)列的問(wèn)題中,初始狀態(tài)是F(0)和F(1)。4.確定邊界條件:邊界條件表示問(wèn)題的邊界情況,也就是問(wèn)題無(wú)法再分解的情況,如在求解斐波那契數(shù)列的問(wèn)題中,邊界條件是F(0)=0和F(1)=1。5.迭代求解:根據(jù)狀態(tài)的轉(zhuǎn)移方程,利用前一個(gè)狀態(tài)得到后一個(gè)狀態(tài),在迭代的過(guò)程中求解問(wèn)題的最優(yōu)解。動(dòng)態(tài)規(guī)劃的典型應(yīng)用1.背包問(wèn)題在背包問(wèn)題中,給定一個(gè)背包容量C和一組物品,每個(gè)物品有一個(gè)重量w和一個(gè)價(jià)值v。問(wèn)如何在不超過(guò)背包容量的情況下,選擇一些物品放入背包中,使得這些物品的總價(jià)值最大。在這個(gè)問(wèn)題中,可以定義狀態(tài)dp[i][j]表示前i個(gè)物品總重量不超過(guò)j時(shí)的最大價(jià)值。轉(zhuǎn)移方程是:dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i])其中,dp[i-1][j]表示不選第i個(gè)物品,dp[i-1][j-w[i]]+v[i]表示選了第i個(gè)物品。根據(jù)轉(zhuǎn)移方程,最終得到dp[n][C]為問(wèn)題的最優(yōu)解。2.最長(zhǎng)公共子序列問(wèn)題在字符串處理中,最長(zhǎng)公共子序列問(wèn)題指的是求解兩個(gè)字符串中的最長(zhǎng)公共子序列長(zhǎng)度。在這個(gè)問(wèn)題中,可以定義狀態(tài)dp[i][j]表示第一個(gè)字符串前i個(gè)字符和第二個(gè)字符串前j個(gè)字符的最長(zhǎng)公共子序列長(zhǎng)度。轉(zhuǎn)移方程是:dp[i][j]=dp[i-1][j-1]+1(當(dāng)i>j且第i個(gè)字符等于第j個(gè)字符)dp[i][j]=max(dp[i-1][j],dp[i][j-1])(其他情況)其中,dp[i-1][j-1]+1表示兩個(gè)字符串的第i個(gè)和第j個(gè)字符匹配,此時(shí)需要在i-1和j-1的基礎(chǔ)上加上一個(gè)匹配字符。dp[i-1][j]和dp[i][j-1]表示兩個(gè)字符串的第i個(gè)和第j個(gè)字符不匹配,此時(shí)需要從第一個(gè)字符串或者第二個(gè)字符串中去掉一個(gè)字符。最終得到dp[m][n]為問(wèn)題的最優(yōu)解,其中m和n分別為兩個(gè)字符串的長(zhǎng)度。3.最小編輯距離問(wèn)題在字符串處理中,最小編輯距離問(wèn)題指的是求解把一個(gè)字符串變成另一個(gè)字符串的最少編輯次數(shù)。編輯操作包括插入、刪除、替換三種方式。在這個(gè)問(wèn)題中,可以定義狀態(tài)dp[i][j]表示將第一個(gè)字符串前i個(gè)字符變成第二個(gè)字符串前j個(gè)字符的最少編輯次數(shù)。轉(zhuǎn)移方程是:dp[i][j]=dp[i-1][j-1](當(dāng)?shù)趇個(gè)字符等于第j個(gè)字符)dp[i][j]=min(dp[i-1][j-1],dp[i-1][j],dp[i][j-1])+1(其他情況)其中,dp[i-1][j-1]表示替換第i個(gè)字符為第j個(gè)字符,dp[i-1][j]表示在第一個(gè)字符串中刪除第i個(gè)字符,dp[i][j-1]表示在第一個(gè)字符串中插入第j個(gè)字符。最終得到dp[m][n]為問(wèn)題的最優(yōu)解,其中m和n分別為兩個(gè)字符串的長(zhǎng)度。結(jié)論動(dòng)態(tài)規(guī)劃算法特別適用于具有重疊子問(wèn)題和最優(yōu)子結(jié)構(gòu)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論