


下載本文檔
版權(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ī)劃法求解。?1背包問(wèn)題一、動(dòng)態(tài)規(guī)劃法的設(shè)計(jì)思想動(dòng)態(tài)規(guī)劃法是數(shù)學(xué)--“運(yùn)籌學(xué)”中一個(gè)決策分析的實(shí)現(xiàn),廣泛運(yùn)用在計(jì)算機(jī)算法、企業(yè)決策、市場(chǎng)營(yíng)銷等領(lǐng)域動(dòng)態(tài)規(guī)劃法是將待求解的問(wèn)題分成若干個(gè)子問(wèn)題,先求解子問(wèn)題,然后從這些子問(wèn)題的解得到原問(wèn)題的解。與分治法不同的是,適合用動(dòng)態(tài)規(guī)劃法求解的問(wèn)題,經(jīng)過(guò)分解的子問(wèn)題往往不是獨(dú)立的。若用分治法求解這類問(wèn)題,則相同的子問(wèn)題會(huì)被求解多次,以至于最后解決問(wèn)題需要消耗指數(shù)級(jí)別的時(shí)間。然而,不同子問(wèn)題的數(shù)目常常只有多項(xiàng)式量級(jí)。如果能夠保存已經(jīng)解決的子問(wèn)題的答案,在需要時(shí)再找出己經(jīng)求得的答案,這樣就可以避免大量的重復(fù)計(jì)算,從而得到多項(xiàng)式時(shí)間的算法。為了達(dá)到這個(gè)目的,可以使用個(gè)表來(lái)記錄已經(jīng)解決子問(wèn)題的答案,不管子問(wèn)題以后是否被用到,只要它計(jì)算過(guò),就將其結(jié)果填入表中,這就是動(dòng)態(tài)規(guī)劃法的基本思路動(dòng)態(tài)規(guī)劃算法通常用于求解具有某種最優(yōu)性質(zhì)的問(wèn)題。這類問(wèn)題中,可能會(huì)有許多可行的解,每個(gè)解對(duì)應(yīng)個(gè)值,我們希望找到最大值或者最小值的那個(gè)解,其步驟如下:1、找出最優(yōu)值的性質(zhì),并分析其結(jié)構(gòu)特征2、遞歸定義最優(yōu)解的值3、自底向上的方式計(jì)算出最優(yōu)值4、根據(jù)計(jì)算最優(yōu)值得到的信息,構(gòu)造一個(gè)最優(yōu)解步驟1—2是基本步驟,在只需求出最優(yōu)值的情況下步驟4可以省略。若需要求子問(wèn)題的最優(yōu)解,則必須執(zhí)行步驟4,此時(shí)在步驟3中計(jì)算最優(yōu)值時(shí),通常記錄等多的信息,以便在步驟4中根據(jù)所記錄的信息快速構(gòu)造出一個(gè)最優(yōu)解動(dòng)態(tài)規(guī)劃算法是非常有效的算法技術(shù),那么什么時(shí)候使用它呢?或者說(shuō)其運(yùn)用場(chǎng)景是什么?若求解問(wèn)題具有一下性質(zhì),可以考慮使用動(dòng)態(tài)規(guī)劃法:1、最優(yōu)子結(jié)構(gòu):如果一個(gè)問(wèn)題的最優(yōu)解中包含其子問(wèn)題的最優(yōu)解,就是說(shuō)該問(wèn)題具有最優(yōu)子結(jié)構(gòu)。這時(shí)候貪婪算法可能也使用求解此類問(wèn)題2、重疊子問(wèn)題:重疊子問(wèn)題是指用來(lái)求解問(wèn)題的遞歸算法可以反復(fù)的解同樣的問(wèn)題,而不是總在產(chǎn)生新的問(wèn)題,即當(dāng)一個(gè)遞歸算法不斷的調(diào)用同一個(gè)問(wèn)題時(shí),就說(shuō)該問(wèn)題包含重疊子問(wèn)題,此時(shí)若使用分治法遞歸求解時(shí),則每次遇到子問(wèn)題都會(huì)視為新問(wèn)題,會(huì)極大降低效率,而動(dòng)態(tài)規(guī)劃法對(duì)每個(gè)子問(wèn)題僅計(jì)算一次,把解保存到在一個(gè)需要時(shí)就可以查看的表中二、動(dòng)態(tài)規(guī)劃法案例:。-1背包問(wèn)題有n個(gè)物品,第i個(gè)物品的價(jià)值為Vi,重量為Wi,其中Vi和Wi均為非負(fù)數(shù),背包容量為W,W為非負(fù)數(shù)?,F(xiàn)考慮如何選擇裝入背包的物品,使裝入背包的物品總價(jià)值最大。假設(shè)商品有5件,n=5,容量為17,W=17要裝入的物品及其價(jià)值如卜.表所示:物品編號(hào)12345價(jià)值V45101113重量W34789(一)、求解思路1、使用矩陣規(guī)劃出最優(yōu)解把求解過(guò)程看作是一系列的決策過(guò)程,即決定哪些物品應(yīng)該放入背包,哪些物品不放入背包(1)如果一個(gè)問(wèn)題的最優(yōu)解包含了物品n,即Xn=l,那么其余的XI,X2,.…Xn-1一定構(gòu)成子問(wèn)題1,2.......n-1在容量為W-wn時(shí)的最優(yōu)解(2)如果這個(gè)最優(yōu)解不包含物品n,即Xn=O,那么其余X1,X2Xn-1一定構(gòu)成子問(wèn)題1,2n-1在容量為W時(shí)的最優(yōu)解根據(jù)上述分析,設(shè)c[i,w]表示背包容量為w時(shí)i個(gè)物品最優(yōu)解的總價(jià)值,得到公式:0i=0或w=0C[i,w]=-Sc[i-1zw]wi>wmax(c[i-1,w-wi]+vizc[i-1,w]}i>0且wi<=wJ2、根據(jù)物品的件數(shù)i=5、包的容量W=17規(guī)劃“價(jià)值”分布矩陣,如下圖所示:(1)物品價(jià)值重量關(guān)系表物品第1件第2件第3件第4件第5件價(jià)值V45101113重量V34789(2)物品件數(shù)一價(jià)值分布矩陣物品重量01234567891011121314151617池入第1件1000444444444444444放入第2件200045559999999g敬入第3件30004=55510101014:15151519191919被入第4件400045551011111415161&19212121仙入第5件500045551011131415171819212324(-)程序?qū)崿F(xiàn)1、Java語(yǔ)言代碼實(shí)現(xiàn)如下:publicstaticvoidmain(String[]args){int[]goods_weight={3,4,7,8,9};//物品重量int[]goods_value={4,5,10,11,13};//物品價(jià)值intm=17;//背包容量intn=5;//物品個(gè)數(shù)//C[i][j]表示前i個(gè)物品能裝入容量為也的背包中的最大價(jià)值intc[][]=newint[n+1][m+1];intpath[][]=newint[n+1][m+1];//初始化第一列和第一行for(inti=0;i<c.length;i++)(c[i][0]=0;}for(inti=0;i<c[0].length;i++){c[0][i]=0;}//通過(guò)公式迭代計(jì)算for(inti=l;i<c.length;i++)(for(intWj=l;Wj<c[0].length;Wj++)(if(goods_weight[i-1]>Wj)c[i][Wj]=c[i-l][Wj];else(if(c[i-1][Wj]<c[i-1][Wj-goods_weight[i-1]]+goods_valuetill)(_-c[i][Wj]=c[i-1][Wj-goods_weight[i-1]]4-goods_value[i-1];path[i][Wj]=1;}else(c[i][Wj]=c[i-l][Wj];}})}for(inti=0;i<c.length;i++)(for(intj=O;j<c[O].length;j++)(System.out.print(c[i][j]+nn);)System.out.printIn();}inti=c.length-1;intj=c[0].length-1;while(i>0&&j>0)(if(path[i][j]==1){System?out?print(”第”+i+”個(gè)物裝入”);j-=goods_weight[i-1];)-i--;})2、C/C++代碼實(shí)現(xiàn)如下:int**demo(intn,intWJnt*WeightsJIoat*Values)(inti,w;〃為二維數(shù)組申請(qǐng)空間int**c=(int**)malloc(sizeof(int*)*(n+l));for(i=0;i<=n;i++)c[i]=(int*)malloc(sizeof(int)*(W+l));〃初始化二維數(shù)組for(w=0;w<=W;w++)c[0][w]=0;for(i=l;i<=n;i++)(c[i][0]=0;for(w=l;w<=W;w++)(〃如果背包剩余重量大于物品重量if(Weights[i-l]<=w){if(Values[i-l]+c[i-l][w-Weights[i-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江廣廈建設(shè)職業(yè)技術(shù)大學(xué)《中國(guó)城市建設(shè)史》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄂爾多斯應(yīng)用技術(shù)學(xué)院《管理會(huì)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 炎黃職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)繪圖及BM應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 煙臺(tái)職業(yè)學(xué)院《足球理論與實(shí)踐Ⅲ》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年吉林省建筑安全員《B證》考試題庫(kù)
- 浙江機(jī)電職業(yè)技術(shù)學(xué)院《BIM技術(shù)原理及其應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州師范學(xué)院《微機(jī)原理與接口技術(shù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年安徽省建筑安全員知識(shí)題庫(kù)附答案
- 四川三河職業(yè)學(xué)院《建筑與環(huán)境設(shè)計(jì)方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 邢臺(tái)應(yīng)用技術(shù)職業(yè)學(xué)院《體育教學(xué)訓(xùn)練理論與方法實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 痛風(fēng)護(hù)理疑難病例討論
- 韓國(guó)語(yǔ)入門教學(xué)資料
- 《大學(xué)生職業(yè)能力訓(xùn)練》
- 人民警察忠誠(chéng)品質(zhì)
- 冠狀動(dòng)脈搭橋手術(shù)后的健康生活促進(jìn)
- 《英國(guó)飲食文化》課件
- 《SolidWorks建模實(shí)例教程》第4章 綜合應(yīng)用實(shí)例
- JCT2110-2012 室內(nèi)空氣離子濃度測(cè)試方法
- 視頻號(hào)運(yùn)營(yíng)規(guī)則
- 文印服務(wù)投標(biāo)方案(技術(shù)方案)
- 初三語(yǔ)文總復(fù)習(xí)全程計(jì)劃表
評(píng)論
0/150
提交評(píng)論