装箱 matlab,装箱问题matlab.doc
装箱问题matlab
综合实验报告
一、实验名称
装箱问题
二、 实验目的
掌握装箱问题的近似解法:NF算法、FF算法;FFD算法;熟悉这些算法的程序编写.
三、 实验要求
(1)利用NF算法,FF算法,FFD算法,CF算法求解装箱问题,熟悉这些算法的程序编写;
(2)选择一种计算机语言设计或利用Matlab软件作为辅助工具来实现该实验。
四、 实验原理
NF算法:
按照物体给定的顺序装箱:把物品放到它第一个能放进去的箱子中。是具有最大下标的使用过的箱子,若的长度不大于的剩余长度,则把放入,否则把放入一个新的箱子,且在以后的装箱中不再使用。最后循环
FF算法:
按照物体给定的顺序装箱:把物品放到第一个箱子中。是当前已经使用过的箱子,在这些箱子中找一个长度不小于且下标最小的箱子,将放入,如果不存在这样的箱子,则另开一个新箱子 , 将放入中 。
FFD算法:
先将物体按长度从大到小排序,然后按FF算法对物体装箱. 不失一般性,对n件物品的体积按从大到小排好序,即有v1≥v2≥…≥vn,然后按排序结果对物品重新编号即可。
CF算法:
step1:把物件按其大小进行非增序排列,不妨设 。
step2:首先把放入箱子中,然后从最右端开始,依次把物件放入,直到下一个物件不能再放入箱子为止,开启新的箱子。
step3:设在第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文件
function zhuangxiang(W,C)
fprintf('输入物品重量');
W=input('W=');
fprintf('输入箱子容量');
C=input('C=');
%按物品重量降序排序
[B,IX] = sort(W,2,'descend');
NW=B(IX);
A=sort(NW);
X=0;
for j=1:length(NW)
TW=0;
if isempty(NW)
break;
else
TW=TW+NW(1);
X=X+1;
CW=[];
for i=1:length(A)
if C-TW>=A(i)
TW=TW+A(i);
CW(i)=A(i);
end
end
fprintf('输出每个箱子里的物品:');
[NW(1),CW]
end
NW=sort(setdiff(NW,[NW(1),CW]),2,'descend');
A=sort(NW);
end
disp('输出箱子的数量:');
X
输入物品重量W=[30 29 27 25 23 24 21 20 18 16 15 14 12 10 9 8 7 6 5 3];
输入箱子容量C=50;
(3)最后得到结果
七、 实验整体流程图
八、 运行结果
输出每个箱子里的物品:
ans =30 3 5 6
输出每个箱子里的物品:
ans =29 7 8
输出每个箱子里的物品:
ans =27 9 10
输出每个箱子里的物品:
ans =25 12
输出每个箱子里的物品:
ans =24 14
输出每个箱子里的物品:
ans =23 15
输出每个箱子里的物品:
ans =21 16
输出每个箱子里的物品:
ans =20 18
输出箱子的数量:
X = 8
九、 结果分析
运用cf算法,将20样物品分别放入8个箱子中,实验结果满意。
box_size=60;
%定义物品
size=[30 29 27 25 23 24 21 20 18 16 15 14 12 10 9 8 7 6 5 3 8 1 7 26 40];
%排序
size=sort(size,'descend');
%首先定义第一个空箱的编码以及箱子内编号位置
box_int=1;box_id=1;
%以循环机制不断的循环物品直到物品数量为零为止
Box(1).nowsize=0;
while
装箱 matlab,装箱问题matlab.doc相关推荐
- matlab arr3(5 end),matlab复习笔记.doc
matlab复习笔记.doc 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(),再开始第二行的书写.历史命令窗口(THEHISTORYCOMMAN ...
- matlab doc函数,matlab常用函数.doc
matlab常用函数.doc MatLab 常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 name ...
- matlab组织的培训讲义,matlab培训讲义.doc
matlab培训讲义.doc x-0.6*sin(x)-0.3*cos(y) );f{2}=inline( y-0.6*cos(x)+0.3*sin(y) );holdonh=arrayfun(@(i ...
- matlab+nnf.m,中南大学-信号与系统matlab实验报告.doc
中南大学-信号与系统matlab实验报告.doc 实验一 基本信号的生成 1 实验目的 学会 使用 MATLAB 产生各种常见的连续时间信号与离散时间信号: 通过 MATLAB 中的绘图工具对产生的信 ...
- gramer法则matlab,线性代数-matlab实验报告.doc
<线性代数-matlab实验报告.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<线性代数-matlab实验报告.doc>文档请在天天文库搜索. ...
- 数值分析matlab实验报告,数值分析第一次作业matlab实验报告.doc
数值分析第一次作业matlab实验报告.doc 几种线性方程组迭代算法的MATLAB实现和性能比较用有限差分方法(五点差分格式)求解正方形域上的Poisson方程边值问题用MATLAB语言编写算法程序 ...
- matlab的上机报告,数理统计和Matlab上机报告.doc
数理统计和Matlab上机报告.doc 统计分析软件(matlab)实验报告1序号班级姓名学号日期时间地点信计1302张温柔4136309620150706实验楼102指导教师李娜实验名称1. mat ...
- matlab 求obb,实验六MATLAB神经网络工具箱DOC
实验六MATLAB神经网络工具箱DOC 实验七MATLAB神经网络工具箱一.实验目的1.掌握 Matlab 对感知器网络的构建与训练方法.2.掌握 Matlab 对线性神经网络的构建与训练方法.3.掌 ...
- matlab理论知识点,matlab基础知识点.doc
matlab基础知识点.doc MatLab讲义2002年9月版1MATLAB讲义第一章MATLAB系统概述1.1MATLAB系统概述MATLAB(MATrixLABoratory)矩阵实验室的缩写, ...
最新文章
- Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
- 通过Xcode断点集成 reveal(2017-10-20更新)
- 10个必知的网页设计术语计算机与网络,计算机网络专业毕业论文-网页设计与制作(23页)-原创力文档...
- saltstack之混合匹配
- HTML期末学生大作业-乒乓球网页作业html+css+javascript
- 设置Markdown中展示Liquid(Jekyll)但不解析的方式
- 如何确定自己是否适合做程序员?
- 0418 面向对象进阶 反射内置函数
- 在React.js中执行反跳
- 深入浅出MFC之6大技术 消息映射及命令传递 DECLARE_MESSAGE_MAP 和 ON_NOTIFY ON_COMMAND ON_MESSAGE 三大难点解析
- 快速入门丨篇四:如何进行运动控制器与触摸屏通讯?
- 电池测试系统连接服务器失败,电池测试系统服务器的设计与应用
- 【单片机基础】(四)单片机的引脚功能
- 基金经理学量化(Python+AI)
- Python爬虫之知乎回答
- 新浪短网址生成java_新浪短链接 推荐几个最新的新浪t.cn短链接生成的API接口
- xcode7.3.1升级iOS10 SDK
- 游戏无法启动此程序因为计算机中丢失,无法启动此程序因为计算机中丢失*.dll 看完你就知道了...
- unity3d热更新插件uLua
- 实现“快准狠”交付——小米HR研发团队敏捷实践
热门文章
- 多 bonding 使用不同 mode 方法
- python自动化测试需要知识_自动化测试需要学习那些知识
- huffman树的带权路径长度
- 开关电源为什么要老化测试
- java dao类 反射_java反射机制编写简单万能DAO类
- 标题隐藏_平静的标题下隐藏着不平静的天气,敢不敢点开?
- 3G、WLAN、Bluetooth三者关系之分析
- 研究显示,亚太地区及日本已超越北美,成为金融服务业的Web应用程序和API网络攻击的主要目标 | 美通社头条...
- Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!
- Maven排除依赖exclusion用法