1、介绍
针对二维矩形条带装箱问题提出了一种启发式布局算法,即底部左齐择优匹配算法(lowest-level left align best fit,简称 LLABF). LLABF 算法遵循最佳匹配优先原则,该原则综合考虑完全匹配优先、宽度匹配优先、高度匹配优先、组合宽度匹配优先及可装入优先等启发式规则.与 BL(bottom-left),IBL(improved-bottom-left)与BLF(bottom-left-fill)等启发算法不同的是,LLABF 能够在矩形装入过程中自动选择与可装区域匹配的下一个待装矩形.计算结果表明,LLABF 结合遗传算法(genetic algorithm,简称 GA)解决二维条带装箱问题更加有效.
二维矩形条带装箱问题(2D rectangular strip packing problem,简称 2DR-SPP)是一个典型的组合优化问题,其应用相当广泛,如工业领域中的新闻组版、布料切割、金属下料等.2DR-SPP通常是指将若干个不同规格的矩形{ π 1 , π 2 ,…, π n }装入宽度W固定、长度L不限的矩形容器C中,要求装完所有矩形后占用高度H packing 最小,从而达到节省材料的目的.在矩形的装入过程中,要求满足:① π i , π j 互不重叠,i≠j,i,j=1,2,…,n;② π i 必须装入在矩形容器C内,即矩形在装入过程中不能超出容器C的宽度W;③ π i 的边必须与矩形容器C的边平行, π i 可以 90°旋转.
2DR-SPP是一个NP完全问题,其计算复杂度随着问题规模的增大呈指数增长.针对该类问题,国内外相关学者作了大量的研究.Hifi 给出了一种基于分支定界方法(branch-and-bound procedure)的精确算法,适用于解决中小规模的 2D装箱问题;Lesh等人针对 2D矩形完美装箱问题,提出了基于分支定界的穷举搜索算法,该算法已证明对于低于 30 个矩形的装箱是有效的.
为了解决大规模的矩形装箱问题,一些启发式算法也相继提出来.Zhang等人 提出了一种启发式递归算法HR(heuristic recursive algorithm),该方法基于启发式策略和递归结构,实验结果表明,该算法能够在较短时间内获得较为理想的装箱高度,但其平均运行时间却达到了O(n 3 ).陈端兵等人根据先占角后占边的原则,提出了一种针对矩形装箱的贪心算法.Chen等人给出了一种two-level搜索算法来求解 2DR-SPP.Cui给出了一种启发式递归分支定界算法HRBB(heuristic recursive branch-and-bound algorithm),该算法将递归结构和分支定界技术结合在一起来求解 2DR-SPP,取得了较好的实验结果.Beltrán等人按照随机搜索原则设计的GRASP(greedy randomized adaptive search procedure)算法与VNS(variable neighbourhood search)结合在一起来求解 2DR-SPP.
针对 2DR-SPP,目前广泛采用的是遗传算法GA(genetic algorithm)、模拟退火算法SAA(simulated annealingalgorithm)等搜索算法与BL(bottom-left)、IBL(improved BL)、BLF(bottom-left-fill)等启发式布局算法相结合的方式.Bortfeldt采用了无任何编码的遗传算法来解决矩形装箱问题.Jackobs提出了一种混合算法,通过GA与BL启发式布局算法相结合,从而将矩形的装箱问题转换成相对简单的装入序列问题.由于BL算法容易出现即使穷举所有情况仍不能得到最优解的现象,因此,Liu提出了一种IBL算法,并与GA相结合,取得了优于文献的装箱效果.Yeung等人针对布料切割问题提出了一种布局算法LFLA,该布局算法的计算复杂度为O(n),相对于BL算法(其复杂度为O(n 2 )),效率上有了较大的提高.Zhang等人针对矩形装箱问题给出了meta-heuristic算法,该算法主要基于启发式递归策略和SAA.Dereli等人 则采用SAA与递归布局方法相结合来解决 2DR-SPP.针对不同数量及不同类型的矩形排样,Hopper 分别使用了BL,BLF启发式布局算法和GA,NE(naïve evolution),SA,HC(hill-climbing),RS(random search)启发式搜索算法相结合的方式进行求解.
迄今为止,虽然对 2DR-SPP进行了大量的研究,但从相关文献给出的测试结果来看,该问题仍然有进一步研究的必要.例如,BL,IB