下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法分析与设计实验报告第 3次实验姓名杨玉茹学号201508010325班级计科1503时间3.31下午地点软件大楼330 实验名称动态规划法求解背包问题实验目的通过上机实验,要求掌握动态规划算法的问题描述、算法设计思想、程序设计。实验原理使用动态规划算法的原理,即将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。分析出背包问题的动态规划方程式,然后实现相应的代码,然后再进行再输入多组值进行验证,看输出结果,然后来验证自己的程序是否正确。实验步骤 首先求出最优子结构,设(y1,y2,.,yn)是所给0-1背包问题的一个最优解; 如果第i个物品的重量大于背包的容量
2、,则装人前i个物品得到的最大价值和装入前i-1个物品得到的最大价是相同的,即物品i不能装入背包,得出方程为: V(i,0)=V(0,j)=0如果第i个物品的重量小于背包的容量,则会有一下两种情况:(a)如果把第i个物品装入背包,则背包物品的价值等于第i-1个物品装入容量位j-wi 的背包中的价值加上第i个物品的价值vi; (b)如果第i个物品没有装入背包,则背包中物品价值就等于把前i-1个物品装入容量为j的背包中所取得的价值。显然,取二者中价值最大的作为把前i个物品装入容量为j的背包中的最优解: V(i,j)=V(i-1,j)
3、j<wi V(i,j)=maxV(i-1,j) ,V(i-1,j-wi)+vi) j>wi 输入相应的测试值,进行判断程序的正确性;关键代码int Knap(int n,int w,int v,int x,int C)int i,j;for(i=0;i<=n;i+)Vi0=0;for(j=0;j<=C;j+)V0j=0;for(i=0;i<=n-1;i+)for(j=0;j<=C;j+)if(j<wi)Vij=Vi-1j;elseVij=max(Vi-1j,Vi-1j-wi+vi);j=C;for(i=n-1;i>=0;
4、i-)if(Vij>Vi-1j)xi=1;j=j-wi;elsexi=0; printf("选中的物品是:n");for(i=0;i<n;i+)printf("%d ",xi);printf("n");return Vn-1C;测试结果 实验心得通过这次实验,我回顾了0-1背包问题的动态规划算法,因此更加深刻的了解到动态规划算法的思想,由最优子结构来求解整个结构的最优结构,在进行实验的过程最重要的一步就是通过分析得到问题的动态规划方程,因此就根据动态规划方程来实现代码。这个过程中最难的一步就是分析得到动态规划方程,需要考虑
5、各个可能的因素,最后再来用代码实现。这次的实验难度相比于前两次实验,明显难多了,但是对于动态规划算法的认识也颇多,理解也更加深刻了。实验得分助教签名附录:完整代码#include<stdlib.h>#include<stdio.h>int V200200;/前i个物品装入容量为j的背包中获得的最大价值int max(int a,int b) /一个大小比较函数,用于当总重大于第I行时 if(a>=b) return a; else return b;int Knap(int n,int w,int v,int x,int C)int i,j;for(i=0;i&l
6、t;=n;i+)Vi0=0;for(j=0;j<=C;j+)V0j=0;for(i=0;i<=n-1;i+)for(j=0;j<=C;j+)if(j<wi)Vij=Vi-1j;elseVij=max(Vi-1j,Vi-1j-wi+vi);j=C;for(i=n-1;i>=0;i-)if(Vij>Vi-1j)xi=1;j=j-wi;elsexi=0; printf("选中的物品是:n");for(i=0;i<n;i+)printf("%d ",xi);printf("n");return Vn-
7、1C;int main()int s;/获得的最大价值int w4;/物品的重量 int v4;/物品的价值int x4;/物品的选取状态 选中则是1 没选中为0 int n,i;int C;/背包最大容量n=4;printf("请输入背包的最大容量:n");scanf("%d",&C);printf("物品数:n");scanf("%d",&n);printf("请分别输入物品的重量:n");for(i=0;i<n;i+)scanf("%d",&wi);printf("请分别输入物品的价值:n");for(i=0;i<n;i+)scanf("%d",&vi);s=Kn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026陕西中医药大学附属医院博士研究生招聘18人备考题库及答案详解1套
- 2026首都师范大学金泽小学招聘教师备考题库有答案详解
- 海信集团华东大区2026届校园招聘备考题库及1套参考答案详解
- 计算机行业点评:空天一体临点已至
- 职业健康监护中的应急预案制定与演练
- 职业健康档案在员工职业发展决策中的数据支撑
- 职业健康促进的投资回报分析
- 职业健康促进与职业健康科技赋能
- 金华浙江金华永康市林场招聘编外人员笔试历年参考题库附带答案详解
- 遂宁2025年四川遂宁射洪市城区学校考调在编在职教师15人笔试历年参考题库附带答案详解
- 云南省2026年普通高中学业水平选择性考试调研测试历史试题(含答案详解)
- 广东省花都亚热带型岩溶地区地基处理与桩基础施工技术:难题破解与方案优化
- 家里办公制度规范
- 基于知识图谱的高校学生岗位智能匹配平台设计研究
- GB 4053.3-2025固定式金属梯及平台安全要求第3部分:工业防护栏杆及平台
- 环氧抛砂防滑坡道施工组织设计
- 2025年下属辅导技巧课件2025年
- 企业法治建设培训课件
- 2026中央广播电视总台招聘124人参考笔试题库及答案解析
- 眼科护理与疼痛管理
- 2026年中国聚苯乙烯行业市场深度分析及发展前景预测报告
评论
0/150
提交评论