下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)4 回溯法解0-1背包問題一 、實(shí)驗(yàn)要求1 要求用回溯法求解0-1背包問題;2 要求交互輸入背包容量,物品重量數(shù)組,物品價(jià)值數(shù)組;3 要求顯示結(jié)果。二 、實(shí)驗(yàn)儀器和軟件平臺儀器 :帶usb接口微機(jī)軟件平臺:WIN-XP + VC+6.0三 、實(shí)驗(yàn)源碼#include "stdafx.h"#include<iostream>#include<cstdio>#include<conio.h>#include<iomanip>using namespace std;template<class t
2、y>class Knap public: friend void Init(); friend void Knapsack(); friend void Backtrack(int i); friend float Bound(int i); bool operator<(Knap<ty> a)constif(fl<a.fl) return true;else return false; private: ty w; /重量 ty v; /價(jià)值 float fl; /單位重量的價(jià)值v/w int kk; /記錄第幾個(gè)物品 int flag; /記錄是否放入包中;t
3、emplate<class ty>void Sort(Knap<ty> *li,int n)int i,j,k; Knap<ty> minl; for(i=1;i<n;i+) minl=li0; k=0;for(j=1;j<=n-i;j+)if(minl<lij)minl=lij; swap(lij,lik); k=j; namespace jie /命名空間int c=0,n=0;int *x=NULL;Knap<int> *bag=NULL;int cp=0,cw=0;int bestp=0;using namespace
4、jie;void Init() int i=0;cout<<endl;cout<<"請輸入物品數(shù)量 n = "cin>>n; cout<<endl;cout<<"請輸入背包容量 C = "cin>>c; cout<<endl;bag=new Knap<int> n; x=new intn;cout<<"請依次輸入"<<n<<"個(gè)物品的重量W:"<<endl;for(i=0;
5、i<n;i+)cin>>bagi.w; cout<<endl;cout<<"請依次輸入"<<n<<"個(gè)物品的價(jià)值P:"<<endl;for(i=0;i<n;i+)cin>>bagi.v;for(i=0;i<n;i+)bagi.flag=0; bagi.kk=i;bagi.fl=1.0*bagi.v/bagi.w;void Backtrack(int i)if(i>=n) /到達(dá)葉節(jié)點(diǎn) bestp=cp; /更新最優(yōu)價(jià)值 return;if(cw+b
6、agi.w<=c) /進(jìn)入左子樹 bagi.flag=1; cw+=bagi.w; cp+=bagi.v; Backtrack(i+1); cw-=bagi.w; cp-=bagi.v;if(Bound(i+1)>bestp)/進(jìn)入右子樹bagi.flag=0; Backtrack(i+1);/計(jì)算當(dāng)前節(jié)點(diǎn)處的上界float Bound(int i) int cleft = c-cw; /剩余容量 float b = cp; while (i<n&&bagi.w<=cleft) /以物品單位重量價(jià)值遞減序裝入 cleft-=bagi.w ; b+=bag
7、i.v; i+; /裝滿背包 if (i<n) b+=1.0*bagi.v/bagi.w * cleft; return b;void Knapsack() /計(jì)算最優(yōu)解和變量值int L(0); /用L累計(jì)價(jià)值,初始價(jià)值設(shè)置為0for(int k=0;k<n;k+)xbagk.kk=bagk.flag; /x=0表示未放入背包,x=1表示放入背包L+=bagk.flag*bagk.v; /價(jià)值累加cout<<endl;cout<<"當(dāng)前最優(yōu)價(jià)值為:"<<L<<endl;cout<<"變量值 x = "for(int i=1;i<=n;i+)cout<<xi-1;delete bag; bag=NULL;delete x; x=NULL;cout<<endl; getch();int main() cout<<endl;cout<<"|*回溯法解0-1背包問題*|"<<endl;Init();Backtrack(0);Knapsack();return 0;四 、運(yùn)行結(jié)果五 、實(shí)驗(yàn)小結(jié)通過該實(shí)驗(yàn),我充分了解了回溯法與分支界限法的區(qū)別?;厮莘ㄔ?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版農(nóng)村土地整治舊房買賣合同范本4篇
- 二零二五年度牛奶飲品行業(yè)標(biāo)準(zhǔn)制定與執(zhí)行合同4篇
- 2025年度品牌跨界合作與聯(lián)名推廣合同8篇
- 二零二五年度城市綠地用地使用權(quán)轉(zhuǎn)讓合同
- 二零二五年度農(nóng)藥技術(shù)支持代理銷售合同樣本
- 2025年度鐵藝圍欄出口貿(mào)易采購合同
- 二零二五年度新材料研發(fā)采購合同(中英文版)3篇
- 二零二五年度外匯市場投資培訓(xùn)借款合同投資培訓(xùn)
- 2025年度個(gè)人二手房買賣合同履約保證金合同
- 二零二五年度人工智能(AI)技術(shù)咨詢服務(wù)合同2篇
- 2025年上半年長沙市公安局招考警務(wù)輔助人員(500名)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 2024年度節(jié)后復(fù)工建筑施工安全培訓(xùn)交底
- 藥物制劑工(三級)理論試題題庫及答案
- 高強(qiáng)度間歇訓(xùn)練(HIIT)對代謝健康的長期影響
- ICU患者導(dǎo)管留置登記表
- 中建商務(wù)工作指南手冊
- 耳鼻咽喉:頭頸外科疾病診斷流程與冶療策略
- 貴州省2023年中考英語真題
- 個(gè)人借條電子版模板
- 中國思想史 馬工程329P
評論
0/150
提交評論