装箱问题matlab

装箱问题matlab

ID:37574415

大小:115.50 KB

页数:7页

时间:2019-05-25

装箱问题matlab_第1页
装箱问题matlab_第2页
装箱问题matlab_第3页
装箱问题matlab_第4页
装箱问题matlab_第5页
资源描述:

《装箱问题matlab》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《组合优化》实验报告综合实验报告一、实验名称装箱问题二、实验目的掌握装箱问题的近似解法:NF算法、FF算法;FFD算法;熟悉这些算法的程序编写.三、实验要求(1)利用NF算法,FF算法,FFD算法,CF算法求解装箱问题,熟悉这些算法的程序编写;(2)选择一种计算机语言设计或利用Matlab软件作为辅助工具来实现该实验。四、实验原理NF算法:按照物体给定的顺序装箱:把物品放到它第一个能放进去的箱子中。是具有最大下标的使用过的箱子,若的长度不大于的剩余长度,则把放入,否则把放入一个新的箱子,且在以后的装箱中不再使用。最后循环FF算法:按照物

2、体给定的顺序装箱:把物品放到第一个箱子中。是当前已经使用过的箱子,在这些箱子中找一个长度不小于且下标最小的箱子,将放入,如果不存在这样的箱子,则另开一个新箱子,将放入中。FFD算法:先将物体按长度从大到小排序,然后按FF算法对物体装箱.不失一般性,对n件物品的体积按从大到小排好序,即有v1≥v2≥…≥vn,然后按排序结果对物品重新编号即可。CF算法:step1:把物件按其大小进行非增序排列,不妨设。《组合优化》实验报告step2:首先把放入箱子中,然后从最右端开始,依次把物件放入,直到下一个物件不能再放入箱子为止,开启新的箱子。step

3、3:设在第i步循环时,打开第i个箱子,此时把物件放入中.假设第i-1个箱子中最后一个放入的物件为,则在i步循环时最右端的物件为,那么当且时,把放入中,开启新的箱子。step4:直到把所有物件都放入箱子中,循环终止,并输出箱子数目m.五、实验题目(1)物品数量为20,箱子容量为50,物品重量分别为:30,29,27,25,23,24,21,20,18,16,15,14,12,10,9,8,7,6,5,3设计CF计算机程序解决该问题。六、实验步骤及程序(1)新建M文件functionzhuangxiang(W,C)fprintf('输入物品

4、重量');W=input('W=');fprintf('输入箱子容量');C=input('C=');%按物品重量降序排序[B,IX]=sort(W,2,'descend');NW=B(IX);A=sort(NW);X=0;forj=1:length(NW)TW=0;ifisempty(NW)break;elseTW=TW+NW(1);X=X+1;CW=[];fori=1:length(A)ifC-TW>=A(i)TW=TW+A(i);《组合优化》实验报告CW(i)=A(i);endendfprintf('输出每个箱子里的物品:');[

5、NW(1),CW]endNW=sort(setdiff(NW,[NW(1),CW]),2,'descend');A=sort(NW);enddisp('输出箱子的数量:');X(2)输入物品重量W=[3029272523242120181615141210987653];输入箱子容量C=50;(3)最后得到结果七、实验整体流程图《组合优化》实验报告八、运行结果输出每个箱子里的物品:ans=30356输出每个箱子里的物品:ans=2978输出每个箱子里的物品:ans=27910输出每个箱子里的物品:ans=2512输出每个箱子里的物品:a

6、ns=2414输出每个箱子里的物品:ans=2315输出每个箱子里的物品:ans=2116输出每个箱子里的物品:ans=2018输出箱子的数量:X=8九、结果分析运用cf算法,将20样物品分别放入8个箱子中,实验结果满意。《组合优化》实验报告box_size=60;%定义物品size=[30292725232421201816151412109876538172640];%排序size=sort(size,'descend');%首先定义第一个空箱的编码以及箱子内编号位置box_int=1;box_id=1;%以循环机制不断的循环物品直

7、到物品数量为零为止Box(1).nowsize=0;while(size(1)~=0)fort=1:length(size)if(Box(box_int).nowsize+size(t)<=box_size)Box(box_int).nowsize=Box(box_int).nowsize+size(t);Box(box_int).ID(box_id)=size(t);box_id=box_id+1;size(t)=0;endendsize=sort(size,'descend');%矩阵截取,但值不能小于1if(length(size

8、)-box_id+1>=1)len=length(size)-box_id+1;elselen=1;endsize=[size(1:len)];box_int=box_int+1;box_id=1;Box(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。