



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、動(dòng)態(tài)規(guī)劃01背包問題01背包問題,是用來介紹動(dòng)態(tài)規(guī)劃算法最經(jīng)典的例子,網(wǎng)上關(guān)于01背包問題的講解也很多,我寫這篇文章力爭(zhēng)做到用最簡(jiǎn)單的方式,最少的公式把01背包問題講解透徹。01背包的狀態(tài)轉(zhuǎn)換方程 fi,j = Max fi-1,j-Wi+Pi( j >= Wi ), fi-1,j fi,j表示在前i件物品中選擇若干件放在承重為 j 的背包中,可以取得的最大價(jià)值。Pi表示第i件物品的價(jià)值。決策:為了背包中物品總價(jià)值最大化,第 i件物品應(yīng)該放入背包中嗎 ?題目描述:有編號(hào)分別為a,b,c,d,e的五件物品,它們的重量分別是2,2,6,5,4,它們的價(jià)值分別是6,3,5
2、,4,6,現(xiàn)在給你個(gè)承重為10的背包,如何讓背包里裝入的物品具有最大的價(jià)值總和?nameweightvalue12345678910a26066991212151515b23033669991011c65000666661011d54000666661010e460006666666只要你能通過找規(guī)律手工填寫出上面這張表就算理解了01背包的動(dòng)態(tài)規(guī)劃算法。首先要明確這張表是至底向上,從左到右生成的。為了敘述方便,用e2單元格表示e行2列的單元格,這個(gè)單元格的意義是用來表示只有物品e時(shí),有個(gè)承重為2的背包,那么這個(gè)背包的最大價(jià)值是0,因?yàn)閑物品的重量是4,背包裝不了。對(duì)于d2單元格,表示只有物品e
3、,d時(shí),承重為2的背包,所能裝入的最大價(jià)值,仍然是0,因?yàn)槲锲積,d都不是這個(gè)背包能裝的。同理,c2=0,b2=3,a2=6。對(duì)于承重為8的背包,a8=15,是怎么得出的呢?根據(jù)01背包的狀態(tài)轉(zhuǎn)換方程,需要考察兩個(gè)值,一個(gè)是fi-1,j,對(duì)于這個(gè)例子來說就是b8的值9,另一個(gè)是fi-1,j-Wi+Pi;在這里, fi-1,j表示我有一個(gè)承重為8的背包,當(dāng)只有物品b,c,d,e四件可選時(shí),這個(gè)背包能裝入的最大價(jià)值fi-1,j-Wi表示我有一個(gè)承重為6的背包(等于當(dāng)前背包承重減去物品a的重量),當(dāng)只有物品b,c,d,e四件可選時(shí),這個(gè)背包能裝入的最大價(jià)值fi-1,j-Wi就是指單元格b6
4、,值為9,Pi指的是a物品的價(jià)值,即6由于fi-1,j-Wi+Pi = 9 + 6 = 15 大于fi-1,j = 9,所以物品a應(yīng)該放入承重為8的背包以下是actionscript3 的代碼java view plain copy 1. public function get01PackageAnswer(bagItems:Array,bagSize:int):Array 2. 3. var bagMatrix:Array=; &
5、#160;4. var i:int; 5. var item:PackageItem; 6. for(i=0;i<bagItems.length;i+) 7. 8. bagMatrixi
6、;= 0; 9. 10. for(i=1;i<=bagSize;i+) 11. 12. for(var j:int=0;j<bagItems.length;j+) 13.
7、60; 14. item = bagItemsj as PackageItem; 15. if(item.weight > i) 1
8、6. 17. /i背包轉(zhuǎn)不下item 18.
9、160; if(j=0) 19. 20. bagMatrixji = 0;
10、60;21. 22. else 23.
11、; 24. bagMatrixji=bagMatrixj-1i; 25. &
12、#160; 26. 27. else 28. 29.
13、; /將item裝入背包后的價(jià)值總和 30. var itemInBag:int; 31.
14、 if(j=0) 32. 33.
15、60;bagMatrixji = item.value; 34. continue; 35.
16、; 36. else 37. 38. &
17、#160; itemInBag = bagMatrixj-1i-item.weight+item.value; 39. 40.
18、 bagMatrixji = (bagMatrixj-1i > itemInBag ? bagMatrixj-1i : itemInBag) 41. 42.
19、 43. 44. /find answer 45. var answers:Array=; 46. var curSize:int = bagSize; 47. for(i=bagIte
20、ms.length-1;i>=0;i-) 48. 49. item = bagItemsi as PackageItem; 50. if(curSize=0) 51.
21、0; 52. break; 53. 54. if(i=0 && curSize > 0)
22、; 55. 56. answers.push(); 57. break; 58. &
23、#160; 59. if(bagMatrixicurSize-bagMatrixi-1curSize-item.weight=item.value) 60. 61.
24、60; answers.push(); 62. curSize -= item.weight; 63. 64. 65. re
25、turn answers; 66. PackageItem類java view plain copy 1. public class PackageItem 2. 3. public var name:String; 4. public var weight:int;
26、;5. public var value:int; 6. public function PackageItem(name:String,weight:int,value:int) 7. 8. = name; 9.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生假期乘務(wù)員社會(huì)實(shí)踐報(bào)告
- 小兒肘關(guān)節(jié)脫位課件
- 農(nóng)村勞務(wù)合作社協(xié)議合同
- 青訓(xùn)球員補(bǔ)償協(xié)議合同范本
- 勞務(wù)外包協(xié)議解除協(xié)議書
- 出租車間協(xié)議無違約合同
- 下水管改裝維修合同范本
- 三人行結(jié)構(gòu)課件
- 烏克蘭關(guān)閉總領(lǐng)館協(xié)議書
- 冷鏈?zhǔn)称饭┴泤f(xié)議書范本
- 2025年湖北聯(lián)投招聘筆試沖刺題(帶答案解析)
- 動(dòng)靜能設(shè)備管理制度
- 投資款退回協(xié)議書
- 外墻仿石漆合同協(xié)議書
- 2025安全生產(chǎn)月主題宣講課件十:主要負(fù)責(zé)人安全公開課
- 解約合同協(xié)議書范本
- 起重吊裝安全專項(xiàng)施工方案方案
- 2025東航招聘心理測(cè)試題及答案
- 基層衛(wèi)生崗位(社區(qū)護(hù)理組)練兵和能競(jìng)賽試題
- 2025年浙江省數(shù)字安全證書管理有限公司招聘筆試參考題庫含答案解析
- 2025年兩個(gè)女兒離婚協(xié)議書模板
評(píng)論
0/150
提交評(píng)論