下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贪婪算法练习练习题1:考虑1、8、9、11这四种面值的硬币,要找出币值24的零钱,怎么找能使硬币数最少? 利用matlab编程求解。解:设为二进制变量,如果硬币j被选中,则,=1,否则=0,则找硬币问题的数学模型如下:min ;用贪婪算法求解,其MATLAB程序如下:function n,x=payback(v,y,m)m,n=size(y);for i=1:nfor j=1:n 练习题2:利用matlab编程FFD算法完成下题:设有6种物品,它们的体积分别为:60、45、35、20、20和20单位体积,箱子的容积为100个单位体积。function nbox,p=sjy(n,v,limitv
2、)m,n=size(v);w=limitv*ones(m,n);p=zeros(n);nbox=0;for i=1:n for j=1:i if v(i)w(j) w(j)=w(j)-v(i);p(i,j)=1;break; else continue; end w(j+1)=w(j+1)-v(i);p(i,j+1)=1; nbox=nbox+1; endend运行结果:p = 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0练习题3:如果把选择策略从“选出一个下标最小的箱子并把物品ai放入该箱子中”
3、(FF算法)改为选择最佳的箱子(已装载物品大小和最大的这个称为best fit-BF最佳适应算法),再计算一次上题。比较两次求解的结果。练习题4:背包问题:c=10,5,15,7,6,18,3;w=2,3,5,7,1,4,1;limitw=15;n=7;求最优解。练习题5:“超市大赢家”提供了50种商品作为奖品供中奖顾客选择,车的容量为1000dm3 , 奖品i占用的空间为wi dm3 ,价值为vi 元, 具体的数据如下:vi = 220, 208, 198, 192, 180, 180, 165, 162, 160, 158,155, 130, 125, 122, 120, 118, 115
4、, 110, 105, 101, 100, 100, 98,96, 95, 90, 88, 82, 80, 77, 75, 73, 72, 70, 69, 66, 65, 63, 60, 58,56, 50, 30, 20, 15, 10, 8, 5, 3, 1wi = 80, 82, 85, 70, 72, 70, 66, 50, 55, 25, 50, 55, 40, 48,50, 32, 22, 60, 30, 32, 40, 38, 35, 32, 25, 28, 30, 22, 50, 30, 45,30, 60, 50, 20, 65, 20, 25, 30, 10, 20, 25
5、, 15, 10, 10, 10, 4, 4, 2,1。模型的建立:设为二进制变量,如果物品j被选中,则=1,否则,=0,如此可将本题转化为如下优化模型:max ;s.t. 模型的解决:对此优化问题,我们可以选用价值密度贪婪准则,从剩下的物品中选择可装入购物车的单位价值,最大的物品,即按非递增的次序装入物品,只要正被考虑的物品装的进就装入小车。其MATLAB编程代码如下:function a1,b1=sort1(n,a,b)%按单位价值排序m,n=size(a);d=zeros(m,n);for k=1:n d(k)=a(k)/b(k);end%单位价值for h=1:n-1 for j=1:
6、n-h%向后排序 if d(j)cl break%待放入包的物品重量大于包的重量,跳出循环 else x(i)=1;%x(i)为1时,物品i在包中 cl=cl-w(i); p=p+1;%p记录放入背包物品的个数 endendfunction knapsack(n,limitw,w,v)totalc=0;totalw=0;m,n=size(w); %m 是w 的行数n 是w 的列数x=zeros(m,n);t=w;%记录原数组 k=c;y=x;p,c,w=goodsinknapsack(n,limitw,v,w,x);%排序及计算装箱物品数for j=1:p%装包的p件物品 for i=1:n%
7、原n件物品 if (w(j)=t(i)&(c(j)=k(i)%被选择的物品装箱 y(i)=1; end endend yfor i=1:n totalc=totalc+k(i)*y(i);%背包的总价值 if y(i)=1 totalw=totalw+t(i);%背包所装载总体积 endendtotalwtotalcv=220,208,198,192,180,180,165,162,160,158,155,130,125,122,120,118,115,110,105,101,100,100,98,96,95,90,88,82,80,77,75,73,72,70,69,66,65,63,60,
8、58,56,50,30,20,15,10,8,5,3,1;w=80,82,85,70,72,70,66,50,55,25,50,55,40,48,50,32,22,60,30,32,40,38,35,32,25,28,30,22,50,30,45,30,60,50,20,65,20,25,30,10,20,25,15,10,10,10,4,4,2,1;limitw=1000;n=50;knapsack(n,limitw,w,v);运行结果为:y = Columns 1 through 16 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 Columns 17 through 32 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 Columns 33 through 48 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川绵阳市三台县教体系统面向县内农村学校选调紧缺学科教师23人备考题库附答案详解(能力提升)
- 2026江苏南京市秦淮区卫健系统事业单位招聘卫技人员和高层次人才12人备考题库及答案详解(易错题)
- 2026黄淮学院招聘高层次人才38人备考题库及答案详解(新)
- 万达物业收房验房合同
- 二手房交易转合同
- 2026江苏淮安市清江浦区清浦街道公益性岗位招聘备考题库及一套答案详解
- 2026四川泸州市政府投资建设工程管理第一中心招聘编外人员1人备考题库附答案详解
- 2026湖南岳阳湘阴县县直事业单位“四海揽才”招聘14人备考题库及完整答案详解1套
- 2026云南大理州第二人民医院招聘编外合同制财务人员2人备考题库附答案详解(黄金题型)
- 2206内蒙古聚英人力资源服务有限责任公司定向招聘劳务派遣人员7人备考题库及一套答案详解
- 中国军事武器
- 第10课第一框课件《抵制校园欺凌和暴力》-【中职专用】中职思想政治《心理健康与职业生涯》(高教版2023·基础模块)
- 历年甘肃省三支一扶考试真题题库(含答案详解)
- 六年级语文下册期中复习 课件
- 病理性骨折的护理
- AIB(2022版)统一检查标准-前提方案与食品安全程序
- 桥梁墩身施工安全注意事项模版
- 激素调节身体多种机能 高二上学期生物浙科版选择性必修1
- 《工程伦理》课后习题及答案
- 地灾防治工程设计中应注意的问题
- GB/T 24356-2023测绘成果质量检查与验收
评论
0/150
提交评论