![實驗四回溯算法和分支限界法_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/fa51c525-b59a-4e2d-bbe0-5ad12db31b78/fa51c525-b59a-4e2d-bbe0-5ad12db31b781.gif)
![實驗四回溯算法和分支限界法_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/fa51c525-b59a-4e2d-bbe0-5ad12db31b78/fa51c525-b59a-4e2d-bbe0-5ad12db31b782.gif)
![實驗四回溯算法和分支限界法_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/fa51c525-b59a-4e2d-bbe0-5ad12db31b78/fa51c525-b59a-4e2d-bbe0-5ad12db31b783.gif)
![實驗四回溯算法和分支限界法_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/fa51c525-b59a-4e2d-bbe0-5ad12db31b78/fa51c525-b59a-4e2d-bbe0-5ad12db31b784.gif)
![實驗四回溯算法和分支限界法_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/fa51c525-b59a-4e2d-bbe0-5ad12db31b78/fa51c525-b59a-4e2d-bbe0-5ad12db31b785.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗四 回溯算法和分支限界法0-1背包問題一、實驗目的:1、掌握0-1背包問題的回溯算法;2、進一步掌握回溯算法。二、實驗內(nèi)容給定n和物品和一人背包,物品i的重量是wi,其價值為vi,問如何選擇裝入背包的物品,使得裝入背包的物品的總價值最大?三、實驗步驟1、代碼/ HS_ALG.cpp : Defines the entry point for the console application./#include #include using namespace std;/ 物體結(jié)構(gòu)體typedef structfloat w; /物品重量float p; /物品價值float v; /背包體積
2、int id; /物品個數(shù)OBJECT;bool cmp(OBJECT a, OBJECT b /比較兩物品體積return a.v>b.v;float knapsack_back(OBJECT ob, float M, int n, bool x /回溯法int i,k;float w_cur, p_total, p_cur, w_est, p_est;bool *y = new booln+1;/ 計算物體的價值重量比for(i=0; i<=n; i+obi.v = obi.p/obi.w;yi = false;/ 按照物體的價值重量比降序排列sort(ob, ob+n, cm
3、p;/ 初始化當前背包中的價值、重量w_cur = p_cur = p_total = 0;/ 已搜索的可能解的總價值初始化k = 0;while(k>=0w_est = w_cur; p_est = p_cur;/ 沿當前分支可能取得的最大價值for( i=k; i w_est += obi.w;if(w_est p_est += obi.p;elsep_est += (M-w_est+obi.w/obi.w*obi.p;break;/ 估計值大于上界if(p_est>p_totalfor(i=k; i if(w_cur+obi.w<=M/ 可裝入第i個物體w_cur =
4、w_cur + obi.w;p_cur = p_cur + obi.p;yi = true;else/ 不能裝入第i個物體yi = false;break;if(i>=n/ n個物體已經(jīng)全部裝入if(p_cur>p_total/ 更新當前上限p_total = p_cur;k = n;/ 保存可能的解for(i=0; i xi = yi;else/ 繼續(xù)裝入物體k = i+1;else/ 估計值小于上界時while(i>=0&&(!yii-; / 沿著右分支結(jié)點方向回溯直到左分支結(jié)點if(i<0break; / 到達根結(jié)點 算法結(jié)束else / 修改當前
5、值w_cur -= obi.w;p_cur -= obi.p;yi = false;k = i+1; / 搜索右分支子樹/delete y;return p_total;int main(int n;float m;cout<<"請輸入背包載重:"cin>>m;cout<<"請輸入物品個數(shù):"cin>>n;OBJECT* ob = new OBJECTn;cout<<"請輸入物品的重量、價格:"< for(int i=0; i cin>>obi.w>>obi.p;obi.id = i+1;bool* x = new booln;float v = knapsack_back(ob, m, n, x;cout<<"最優(yōu)方案:"< for(int i=0; i if(xicout<<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來十年移動支付的科技發(fā)展趨勢預測
- 標準化管理在生產(chǎn)現(xiàn)場的挑戰(zhàn)與對策
- 現(xiàn)代音樂文化的全球化傳播路徑
- 13人物描寫一組(說課稿)2023-2024學年統(tǒng)編版語文五年級下冊
- Unit 1 Playtime Lesson 3(說課稿)-2023-2024學年人教新起點版英語二年級下冊001
- 25 少年閏土 第二課時 說課稿-2024-2025學年語文六年級上冊 統(tǒng)編版
- Unit1 London is a big city(說課稿)2023-2024學年外研版(三起)四年級下冊
- 2024-2025學年高中生物 第七章 現(xiàn)代生物進化理論 第1節(jié) 現(xiàn)代生物進化理論的由來說課稿3 新人教版必修2
- Unit 2 Being a good language learner Exploring and Using 說課稿-2024-2025學年高中英語重大版(2019)必修第一冊
- 2025挖掘機勞動合同范文
- 高一生物生物必修一全冊考試題帶答題紙答案
- 北師大版五年級上冊四則混合運算100道及答案
- 專項債券在燃氣基礎設施建設中的融資作用
- 人教部編版道德與法治八年級下冊:6.3 《國家行政機關》說課稿1
- GE-LM2500+G4航改燃氣輪機在艦船和工業(yè)上的應用
- 2024山東能源集團中級人才庫選拔(高頻重點提升專題訓練)共500題附帶答案詳解
- 鋼鐵是怎樣煉成的讀后感作文700字
- 武漢市江夏區(qū)2022-2023學年七年級上學期期末數(shù)學試卷【帶答案】-109
- 學校物業(yè)服務合同范本專業(yè)版
- SL 288-2014 水利工程施工監(jiān)理規(guī)范
- 部編版八年級語文上冊期末考試卷
評論
0/150
提交評論