




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学科技学院实 验 报 告| 实验名称 算法设计与分析实验 课程名称 算法设计与分析 | 专业班级: 学生姓名: 学 号: 成 绩:指导教师: 实验日期: 华 北 电 力 大 学 科 技 学 院 实 验 报 告实验一 用动态规划方法求解0-1背包问题一、实验目的及要求1.理解动态规划算法的概念2.掌握动态规划算法的基本要素:最优子结构性质和重叠子问题性质3.掌握设计动态规划算法的步骤4.通过具体实例0-1背包问题学习动态规划算法设计策略二、所采用存储结构 数组存储结构三、实验步骤 1.问题:有n个物品U1,U2,U3.Un其体积和价值分别为Si和Vi,在限定背包的情况下,选取物品使背包价值最大。2.分析:不能放 SiC 能放 max(价值)放,不放最优子结构 设y1,y2,y3.yk是最优子结构,则y2.yk一定是C-S1的最优解设wij表示从前i件物品中选择若干件放入到容量为j的背包中所获得的最大价值例:C=9,S=2,3,4,5 V=3,4,5,7 代码:/0-1背包问题#include#define N 100int max(int a,int b)return ab?a:b;main()int c,sN,vN,n;printf(输入物品个数:n);scanf(%d,&n);printf(输入背包体积:n);scanf(%d,&c);printf(输入每个物品的体积:n);for(int a=0;an;a+)scanf(%d,&sa);printf(输入每个物品的价值:n);for(int b=0;bn;b+)scanf(%d,&vb);int wNN;int i,j;for(i=0;i=c;i+)w0i=0;for(i=0;i=n;i+)wi0=0;for(i=1;i=n;i+)for(j=1;j=si-1)wij=max(wi-1j,vi-1+wi-1j-si-1);elsewij=wi-1j;if(i=n & j=c)printf(背包可容纳最大价值为:%dn,wij);四、实验结果五、心得体会 通过0-1背包问题的求解,我了解了动态规划的方法,更熟悉的掌握了C+中地址的分配和数据的存储,更能熟悉的应用数组的输入存储和调用,更清晰的了解了二维数组的动态分配问题,知道了在程序中如何使用除main()以外的其他方法,并调用联系在一起,总之通过本次0-1背包问题的求解我掌握了更清晰的求解方法,并把之前的知识都回顾了,同时也提升了自己的动手能力和汇编能力,总而言之知这次实验我的收获很大。实验二 用贪心算法求解部分背包问题一、实验目的及要求1.理解贪心算法算法的概念2.掌握贪心算法的基本要素:最优子结构性质和贪心选择性质3.掌握设计贪心算法的步骤4.通过具体实例部分背包问题学习贪心算法设计策略二、所采用存储结构 数组存储结构三、实验步骤 1.问题:有n个物品U1,U2,U3.Un其体积和价值分别为Si和Vi,在限定背包的情况下,选取物品使背包价值最大。 2.分析:目标函数: 约束条件:贪心选择:选择单位价值最大的物品最优子结构: 设wW1,W2.Wk是全局最优解,则M=W1,W2.Wk-1,Wk且Sk=Sk-S一定是C-S的最优解。例:n=4,C=5,S=1,2,3,4,V=4,3,2,1代码:/部分背包问题#include#define N 100main()int n;double rN,xN,c,sN,vN;printf(输入物品个数:n);scanf(%d,&n);printf(输入背包体积:n);scanf(%lf,&c);printf(输入每个物品的体积:n);for(int a=0;an;a+)scanf(%lf,&sa);printf(输入每个物品的价值:n);for(int b=0;bn;b+)scanf(%lf,&vb);for(int i=0;in;i+)ri=(vi*1.0)/si;/对单位体积价值排序for(int z=0;zn;z+)for(int y=z;yn;y+)if(rz=ry)double temp1,temp2,temp3;temp1=ry;ry=rz;rz=temp1;temp2=vy;vy=vz;vz=temp2;temp3=sy;sy=sz;sz=temp3;double total;for(int j=0;jn;j+)xj=0;double Cu=c;j=0;total=0;while(jn)&(sjCu)xj=1;Cu=Cu-sj;total=total+vj;j+;if(jn)xj=Cu/sj;total=total+xj*vj;printf(产生的最大价值:%fn,total);四、实验结果五、心得体会首先这个实验,需要注意的点是背包问题与0-1背包不同,物品可以部分的放入背包中,所以思路也不一样,首先就是将物品按照单位质量价值排序,只这一点就有一点难度。难度在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南长沙市一中青竹湖湘一教育集团公开招聘教师50人模拟试卷及答案详解(夺冠系列)
- 2025年湖北医药学院专项公开招聘第二批工作人员11人模拟试卷及一套参考答案详解
- 2025江苏盐城市东台市教育局直属学校招聘教师、教练员58人考前自测高频考点模拟试题及完整答案详解
- 2025年福建省泉州市晋江市反邪教协会招聘1人模拟试卷附答案详解(黄金题型)
- 2025福建厦门红宝石投资管理有限公司社会招聘工程管理岗1人模拟试卷附答案详解(完整版)
- 2025湖南科技学院公开招聘44人考前自测高频考点模拟试题及1套参考答案详解
- 2025广西贺州市商务局公开招聘1人考前自测高频考点模拟试题及答案详解1套
- 广东省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【医药卫生大类】模拟练习
- 小学复学安全培训方案课件
- Hydroquinone-d6-Quinol-d-sub-6-sub-生命科学试剂-MCE
- 施工安全生产风险分级管控和隐患排查治理双重预防机制建设实施方案
- 公共卫生间装修合同范本
- 【财务会计论文】会计电算化的优化策略论文(共10篇)(共25149字)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 1.1.2 茶树无性繁殖
- 电梯控制技术实训报告总结
- (正式版)SHT 3078-2024 立式圆筒形料仓工程设计规范
- 智能化项目施工应急救援预案
- 【云南白药公司财务报表研究国内外文献综述4000字】
- 国际音标卡片(打印版)
- 科技与全球资源分配问题
评论
0/150
提交评论