装箱问题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相关推荐

  1. matlab arr3(5 end),matlab复习笔记.doc

    matlab复习笔记.doc 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(),再开始第二行的书写.历史命令窗口(THEHISTORYCOMMAN ...

  2. matlab doc函数,matlab常用函数.doc

    matlab常用函数.doc MatLab 常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 name ...

  3. 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 ...

  4. matlab+nnf.m,中南大学-信号与系统matlab实验报告.doc

    中南大学-信号与系统matlab实验报告.doc 实验一 基本信号的生成 1 实验目的 学会 使用 MATLAB 产生各种常见的连续时间信号与离散时间信号: 通过 MATLAB 中的绘图工具对产生的信 ...

  5. gramer法则matlab,线性代数-matlab实验报告.doc

    <线性代数-matlab实验报告.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<线性代数-matlab实验报告.doc>文档请在天天文库搜索. ...

  6. 数值分析matlab实验报告,数值分析第一次作业matlab实验报告.doc

    数值分析第一次作业matlab实验报告.doc 几种线性方程组迭代算法的MATLAB实现和性能比较用有限差分方法(五点差分格式)求解正方形域上的Poisson方程边值问题用MATLAB语言编写算法程序 ...

  7. matlab的上机报告,数理统计和Matlab上机报告.doc

    数理统计和Matlab上机报告.doc 统计分析软件(matlab)实验报告1序号班级姓名学号日期时间地点信计1302张温柔4136309620150706实验楼102指导教师李娜实验名称1. mat ...

  8. matlab 求obb,实验六MATLAB神经网络工具箱DOC

    实验六MATLAB神经网络工具箱DOC 实验七MATLAB神经网络工具箱一.实验目的1.掌握 Matlab 对感知器网络的构建与训练方法.2.掌握 Matlab 对线性神经网络的构建与训练方法.3.掌 ...

  9. matlab理论知识点,matlab基础知识点.doc

    matlab基础知识点.doc MatLab讲义2002年9月版1MATLAB讲义第一章MATLAB系统概述1.1MATLAB系统概述MATLAB(MATrixLABoratory)矩阵实验室的缩写, ...

最新文章

  1. Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
  2. 通过Xcode断点集成 reveal(2017-10-20更新)
  3. 10个必知的网页设计术语计算机与网络,计算机网络专业毕业论文-网页设计与制作(23页)-原创力文档...
  4. saltstack之混合匹配
  5. HTML期末学生大作业-乒乓球网页作业html+css+javascript
  6. 设置Markdown中展示Liquid(Jekyll)但不解析的方式
  7. 如何确定自己是否适合做程序员?
  8. 0418 面向对象进阶 反射内置函数
  9. 在React.js中执行反跳
  10. 深入浅出MFC之6大技术 消息映射及命令传递 DECLARE_MESSAGE_MAP 和 ON_NOTIFY ON_COMMAND ON_MESSAGE 三大难点解析
  11. 快速入门丨篇四:如何进行运动控制器与触摸屏通讯?
  12. 电池测试系统连接服务器失败,电池测试系统服务器的设计与应用
  13. 【单片机基础】(四)单片机的引脚功能
  14. 基金经理学量化(Python+AI)
  15. Python爬虫之知乎回答
  16. 新浪短网址生成java_新浪短链接 推荐几个最新的新浪t.cn短链接生成的API接口
  17. xcode7.3.1升级iOS10 SDK
  18. 游戏无法启动此程序因为计算机中丢失,无法启动此程序因为计算机中丢失*.dll 看完你就知道了...
  19. unity3d热更新插件uLua
  20. 实现“快准狠”交付——小米HR研发团队敏捷实践

热门文章

  1. 多 bonding 使用不同 mode 方法
  2. python自动化测试需要知识_自动化测试需要学习那些知识
  3. huffman树的带权路径长度
  4. 开关电源为什么要老化测试
  5. java dao类 反射_java反射机制编写简单万能DAO类
  6. 标题隐藏_平静的标题下隐藏着不平静的天气,敢不敢点开?
  7. 3G、WLAN、Bluetooth三者关系之分析
  8. 研究显示,亚太地区及日本已超越北美,成为金融服务业的Web应用程序和API网络攻击的主要目标 | 美通社头条...
  9. Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!
  10. Maven排除依赖exclusion用法