装箱(背包)问题(Packing Problem)

Posted 三名狂客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装箱(背包)问题(Packing Problem)相关的知识,希望对你有一定的参考价值。

装箱问题也叫背包问题,简单来说,就是把小货物往大箱子里装,要如何才能装得多。个人常见的经历就是“装冰箱”,很有趣的现象就是常常感觉冰箱再也装不下了,但是经过一翻折腾之后又神奇的装下了。

 

从企业运作角度来看就是尽量让每个容器(仓库、车辆、集装箱、船等)装的尽量多,可以节约企业的费用。通常,装载率85%左右,使用装箱优化方法后,可以达到90~95%左右。海尔做过一个海运装箱的项目,节约了大量运费。日本的汽车企业也非常重视装箱问题,他们海运过来的汽车零件箱内几乎每个角落都会被填满,而且经常改进其装箱方案。

 

装箱问题是典型的NP难问题,一般使用启发式算法——贪婪算法、蚁群算法、禁忌搜索、遗传算法、NF(Next Fit)近似算法,FF(First Fit)近似算法、FFD(First Fit Decreasing)近似算法、BF(best Fit)、BFD(Best Fit Deceasing)等。

 

装箱问题可以分为一维、二维、三维、多维等。

 

一维装箱问题是最常见的,只考虑一个因素,比如重量、体积、长度等。问题描述:装箱问题可简述如下:设有编号为1,2, …, n的n种物品,体积分别为v1, v2, …,vn。将这n种物品装到容量都为V的若干箱子里。约定这n种物品的体积均不超过V,即对于1≤in,有0<vi≤V。不同的装箱方案所需要的箱子数目可能不同。装箱问题要求使装尽这n种物品的箱子数要少。

 

二维装箱问题考虑两个因素——给定一张矩形的纸(布料、皮革),要求从这张纸上剪出给定的大小不一的形状,求一种剪法使得剪出的废料的面积总和最小。常见问题包括堆场中考虑长和宽进行各功能区域划分、停车场区位划分、包装材料裁切时考虑怎样裁切使得材料浪费最少、服装布料裁切、皮鞋制作中的皮革裁切等。

 

三维装箱问题考虑三个因素——一般指长、宽、高。装车、装船、装集装箱等要考虑这三个维度不能少

 

多维装箱问题要考虑多个因素——比如既包括体积因素长、宽、高,又包括重量。

以上是关于装箱(背包)问题(Packing Problem)的主要内容,如果未能解决你的问题,请参考以下文章

UVa 1149 - Bin Packing

UVa 1149 装箱

习题 8-1 UVA - 1149Bin Packing

背包问题 装箱问题 货盘装填问题 区别

多重背包/装箱算法

装箱问题0-1背包问题