实验-2-用动态规划实现0-1背包问题.docx

实验-2-用动态规划实现0-1背包问题.docx

ID:55039151

大小:25.63 KB

页数:4页

时间:2020-04-26

实验-2-用动态规划实现0-1背包问题.docx_第1页
实验-2-用动态规划实现0-1背包问题.docx_第2页
实验-2-用动态规划实现0-1背包问题.docx_第3页
实验-2-用动态规划实现0-1背包问题.docx_第4页
资源描述:

《实验-2-用动态规划实现0-1背包问题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二用动态规划实现0-1背包问题一.实验目的1.熟悉动态规划法的基本原理。2.通过本次实验加深对动态规划的理解。  二.实验内容及要求内容:.给定n种物品和一个背包。物品i的重量是w,其价值为v,背包容量为c。问应该如何选择装入背包的物品,使得装入背包中物品的总价值最大?要求:使用动态规划算法编程,求解0-1背包问题三.程序列表(1)#includeusingnamespacestd;intoptp[100][100];voidKnapsack(intm,intn,intw[10],intp[10])//n位物品数,m为背包的承受重量{f

2、or(inti=0;i<=m;i++){optp[0][i]=0;}for(intk=1;k<=n;k++){optp[k][0]=0;for(intj=1;j<=m;j++){if(w[k]<=j){if(p[k]+optp[k-1][j-w[k]]>optp[k-1][j])optp[k][j]=p[k]+optp[k-1][j-w[k]];elseoptp[k][j]=optp[k-1][j];}elseoptp[k][j]=optp[k-1][j];}}}voidTraceback(intm,intn,intw[10],intx[10]){intsum

3、=0;for(intk=n;k>=1;k--){if(optp[k][m]==optp[k-1][m])x[k]=0;else{x[k]=1;m=m-w[k];sum=sum+w[k];}}x[1]=optp[1][m]?1:0;cout<<"最大总重量:"<>n;cout<<"输入背包的总容量:";cin>>m;cout<<"依次输入物品的重量:"<>w

4、[i];}cout<<"依次输入物品的价值:"<>p[k];}Knapsack(m,n,w,p);Traceback(m,n,w,x);cout<<"最优解为:"<

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

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

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