[精品]动态规划解决0-1背包问题实验及其代码

[精品]动态规划解决0-1背包问题实验及其代码

ID:41862419

大小:143.50 KB

页数:4页

时间:2019-09-03

[精品]动态规划解决0-1背包问题实验及其代码_第1页
[精品]动态规划解决0-1背包问题实验及其代码_第2页
[精品]动态规划解决0-1背包问题实验及其代码_第3页
[精品]动态规划解决0-1背包问题实验及其代码_第4页
资源描述:

《[精品]动态规划解决0-1背包问题实验及其代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告3动态规划实验3动态规划解决0-1背包问题一、实验目的1)掌握动态规划动态方程的递归原理和过程;2)利用动态规划方法解决0・1背包问题;二、实验内容动态规划解决0・1背包问题三、算法设计1)编写voidValue(Typep[],Typew[],Typec,Typen,Typef[nMax][nMax])函数,用以计算各个最优子序列的值;2)编写voidcompute(Typef[nMax][nMax],Typew[],Typep[],Typec,Typen,Typex[])函数用以确定计算装入的物品x[]和装入的物品的总重量tot

2、alWeight;3)编写主函数,控制输入输岀;4)改进和检验程序。四、程序代码//动态规划算法解决-1背包问题的C++程序#ineludez,stdafx.h〃#include〈iostreani>#include〈iomanip〉usingnamcspacestd;inttotalWeight=0;//物品的总重量constintnMax二100;templatevoidValue(Typep[],Typew[],Typec,Typen,Typef[nlax][nlax]){//计算value]i][j]//置

3、初值条件for(intj二0;j〈二c;j++)if(j>=w[0])f[0][j]=p[0];elsef[O][j]=O;//计算各问题的最优值for(inti=1;i〈n;i++){for(intj=0;j<=c;j++)if(j>=w[i]&&f[i-1][j]voidcompute(Typef[nMax][nMax],Typew[],Typep[],Typec,Typen,Typex[]

4、){//计算x[]的值和装入的物品的总重量totalWeight;intc0=c,totalValue=0;for(inti二nT;i>0;i--)if(f[i][cO]>f[i-l][cO]){x[i]=l;c0=c0~w[i];totalValue二totalValue+p[i];totalWcight二toteilWcight+w[i];}elsex[i]=0;if(f[n~l][c]>totalValue){x[0]=l;totalWeight=totalWeight+w[0];Ielsex[0]=0;Iint_tmain(inta

5、rgc,_TCHAR*argv[]){inti,x[nMax],^weight,*price,volume,counts,value[nMax][nMax];charname[nMax][30];//物品的名称cout«〃请输入背包的容量,z«endl;cin>>volumc;//背包的容量cout«,/请输入待装物品的总个数,z«endl;cin>>counts;//物品的个数weight二newint[counts];//物品重量price二newint[counts];//物品的单价cout«〃请输入各个物品的名称:重量:价值:,z«

6、endl;for(i=0;i>name[i]>>weight[i]>>pricc[i];Value(price,weight,volume,counts,value);compute(value,weight,price,volume,counts,x);cout«,,0-lH包问题(装入背包的物品重量,价值,名字以表格的形式表示如下:)/z«endl;cout<

7、znamc[i],?<

8、实现递归功能,大大减少了时间复杂度。运行结果如上所示,效果较佳!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。