实验4 “0-1”背包问题
实验四 “0-1”背包问题
一、实验目的
熟悉C/C++语言的集成开发环境;
通过本实验加深对贪心算法、动态规划算法的理解。
二、实验内容
掌握贪心算法、动态规划算法的概念和基本思想,分析并掌握“0-1”背包问题 的求解方法,并分析其优缺点。
三、实验要求
1. “0-1”背包问题的贪心算法
2. “0-1”背包问题的动态规划算法
四、实验步骤
理解算法思想和问题要求;
编程实现题目要求;
上机输入和调试自己所编的程序;
验证分析实验结果;
整理出实验报告。
五、实验程序
#include <stdio.h>
#include "iostream"
using namespace std;
int max(int a,int b)
{
if(a > b)
return a;
else
return b;
}
void ZeroOneBag(int *v,int *w,int *x,int c,int n, int m[8][100])
{
int i,j;
for(j = 0; j < c; j++)
{
if (j < w[n]) //从第N件物品开始,如果放不下
m[n][j]=0;
else //如果放的下
m[n][j]=v[n];
}
for(i = n-1; i >= 1; i--) //控制物品的循环,从i-1到第1件
{
for(j = 0; j < w[i]; j++) //贪心法把此行注释
m[i][j]=m[i+1][j]; //贪心法把此行注释
for(j=w[i]; j<=c; j++)
m[i][j]=max(m[i+1][j], m[i+1][j-w[i]]+v[i]);
}
for(i = 1; i < n; i ++) //构造最优解
{
if(m[i][c] == m[i+1][c])
x[i] = 0;
else
{
x[i] = 1;
c = c-w[i];
}
}
x[n] = (m[n][c])?1:0; //m[n][c]大于0吗?大于就是选了
return;
}
void main()
{
int i=0,n=7;
int w[]={0,2,3,5,7,1,4,1};
int v[]={0,10,5,15,7,6,18,3};
int x[]={0,0,0,0,0,0,0,0};
cout<<"程序自带数据为:"<<"\n";
cout<<"编号 重量 价值"<<endl;
for ( i=0;i<n;i++)
{
cout<<" "<<i+1<<" "<<w[i+1]<<" "<<v[i+1]<<endl;
}
int m=15;
int array[8][100]={0};
ZeroOneBag(v,w,x,m,7,array);
cout<<"\n背包能装的最大价值为: "<<array[1][m];
cout<<"\n\n最优解为:";
for(i = 1; i <= n; i++)
cout<<" "<<x[i]<<" ";
cout<<"\n\n";
system("pause");
}
六、实验结果
1.贪心法 2.动态规划法
七、实验分析 解决0/1背包问题的方法有多种,最常用的有贪心法和动态规划法。其中贪心法无法得到问题的最优解,而动态规划法都可以得到最优解。动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干个子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的,若用分治法解这类问题,则分解得到的子问题数目太多,以至于最后解决原问题需要耗费过多的时间。动态规划法又和贪心算法有些一样,在动态规划中,可将一个问题的解决方案视为一系列决策的结果。不同的是,在贪心算法中,每采用一次贪心准则便做出一个不可撤回的决策,而在动态规划中,还要考察每个最优决策序列中是否包含一个最优子序列。
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




