下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五 箱子装载问题一、实验目的1、 理解和复习所学各种算法的概念;2、 掌握和复习所学各种算法的基本要素;3、 掌握各种算法的优点和区别;4、 通过应用范例掌握选择最佳算法的设计技巧与策略;二、实验内容及要求1、使用贪心算法、回溯法、分支限界法解决箱子装载问题。(任选两种)2、通过上机实验进行算法实现。 3、保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。三、实验原理回溯法原理:从开始结点出发,以深度优先方式搜索整个解空间。这个节点成为活结点,同时也成为当前的扩展节点。在当前的扩展节点处,搜索向纵深方向一致一个新节点。贪心算法原理:贪心算法通过一系列的选择来得到问题的解。他所做
2、的每一个选择都是当前状态下局部最好选择,即贪心选择。四、程序代码(1)贪心算法#include#includevoid swap(int &x, int &y)/交换 int t;t = x;x = y;y = t;void sort(int w, int t, int n)/排序,有小到大 for (int m = 0; m0)lastExchangeIndex = 0;for (j = 0; ji; j+)if (wj + 1wj)swap(wj + 1, wj);/物品的重量交换lastExchangeIndex = j;swap(tj, tj + 1);i = lastExchange
3、Index;void loading(int x, int w, int c, int n, int *t)/最有装载sort(w, t, n);for (int i = 0; in; i+)xi = 0;for (int j = 0; jn&wtj = c; j+)xtj = 1;c -= wtj;/装入 int mian()int n, c;printf(请输入物品个数:);scanf(%d, &n);printf(请输入最大容量:);scanf(%d, &c);int x200;/存储物品编号 int w200;/存储每个物品重量for (int i = 0; in; i+)printf
4、(请输入第%d个物品重量:, i);scanf(%d, &wi);int *t = new intn;/物品是否装入for (int j = 0; jn; j+)xj = 0;/初始化物品均未装入loading(x, w, c, n, t);printf(装入物品编号为:);for (int k = 0; kn; k+)if (xk = 1)printf(%d , tk);return 0;(2)回溯法#include#include#define num 100int bestxnum = 0 ;/存放最优解int wnum;/集装箱重量int xnum;/解int bestw = 0;/最
5、优装船重量int cw = 0;/当前已装船重量int n;/集装箱个数int c1;/第一船的重量int c2;/第二船的重量/限界函数 int bound(int t)/ 选择当前节点又分支的剩余集装箱重之和int rw = 0;for (int i = t + 1; tn)/到底叶子节点,求得一个可行解if (cwbestw)/当前解比以前解更优 bestw = cw;for (i = 1; i = n; i+)bestxi = xi;return;elseif (cw + wtbestw)/右分支满足限界条件loadingRec(t + 1);int main()n = 4;/集装箱个
6、数w1 = 4, w2 = 5, w3 = 3, w4 = 2;/集装箱重量c1 = 8;/第一个船重量c2 = 7;/第二个船重量cw = 0;bestw = 0;loadingRec(1);/从第一个集装箱开始装箱printf(第一船的最优装载量为:%dn, bestw);printf(第一船的最优解为);for (int i = 1; i = n; i+)printf(%d , bestxi);/求剩余集装箱的重量int cw2 = 0;for (int i = 0; i c2)printf(无法将剩余集装箱转入第二船,问题无解);elseprintf(可以将剩余集装箱装入第二船,问题有解);getchar();五、结果运行与分析(1)贪心
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训与发展策略
- 教育机构CT检查卫生保障
- 农业科技园区前期介入物业管理方案
- 糖尿病预防:保健血糖监测
- 糖尿病肾病:患者教育和自我管理
- 传染病四项措施:保护农场动物
- 成人高考土木工程专业本科毕业设计论文
- 健康饮食与糖尿病:小讲课糖尿病
- 人力资源管理社会实践报告
- 绿色施工方案
- 停车场监理细则
- 静脉治疗护理技术操作规范WST433-2013
- DB32T 4005-2021 淡水浮游藻类监测技术规范
- 医学精品课件:本科实验3凝集反应ELISA
- 抗菌药物使用强度及抗菌药物DDD值参考
- 暖通课件暖通施工.ppt
- 百家姓全文带拼音——完美打印版
- 精神科安全护理管理.ppt
- 英语人教版四年级下册unit6ALets learn课件.ppt
- 工程技术人员思想思维方法工作方法.ppt
- 生管的职责定义及基本素养
评论
0/150
提交评论