1、第34卷第4期V0134 No4锻 压技 #FORGINGSTAMPING TECHNOLOGY2009年8月Aug 2009一种“一刀切式矩形件优化排样混合算法陈仕军。曹炬(华中科技大学数学与统计学院,湖北武汉430074)摘要:对“一刀切”矩形件排样问题,提出一种将启发式递归与免疫克隆算法相结合的混合优化方法。首先,提出一种启发式递归算法,利用该算法逐次生成利用率最高的条料,直到所有矩形件均生成条料;然后利用免疫克隆算法全局搜索能力强的特点,对这些条料序进行搜索重组,使其所用的板材数最少,即使总的板材利用率达到了最大。对两个典型算例进行计算,并与相关文献比较,表明了算法的有效性。关键词:矩
2、形件排样;启发式递归算法;免疫克隆算法DOI:103969ji吼1000-3940200904036中图分类号:TP3016 文献标识码:A 文章编号:1000-3940(2009)04-0143-05Hybrid algorithm of guillotine rectangular cutting problemCHEN Shi-jun。CAo Ju(School of Mathematics and Statistics,Huazhong University of Science and Technology,Wuhan 430074,China)Abstract:A hybrid a
3、lgorithm of combining heuristic recursive algorithm with immune clone algorithm was presented forsolving the guillotine rectangular cutting problemFirstly,a recursive algorithm of heuristic was proposed for conver-ring all rectangle parts to the strips of high utilization ratioSecondly,the immune cl
4、one algorithm was used and theoptimal order of these strips was obtained for minimizing the quantity of boardsTwo typical examples were computedand the results were compared、rith that of other related papersThe results indicate the effectiveness and efficiency ofthe algorithmKeywords:rectangle packi
5、ng;recursive algorithm of heuristic;immune clone algorithm矩形件排样问题广泛存在于钣金下料,玻璃切割、电路布局、报刊排版等工业生产中。该问题是指,在给定板材长度和宽度的情况下,如何将具有一定种类和数量的小矩形件排放到板材上,使得所需的总板材数最少,即使材料的利用率达到最大。此外,在排放过程中,还要满足下料的工艺要求。例如,对玻璃或木材的切割,通常要满足“一刀切”,即从板材的一端,沿直线方向切割到另一端。矩形件排样问题已被证明是NP完全问题,国内外不少学者对其进行了研究,并提出了一些有效的启发式或近似算法1。8。曹炬提出了背包算法,能够快
6、速地找到近似最优解。贾志欣提出了最低水平线排放算法与模拟退火算法相结合的方法,黄文奇提出了基于占穴思想的启发式算法,不过这两种方法都不适用于“一刀切”的矩形件排样。Jakobs最早提出用遗传算法来解决“非一刀切”的矩形件排样。上述众多算法中,一些算法虽然排放效果好,但不收稿日期:20081204)修订日期:2009-03-05作者简介:陈仕军(1980一),男,硕士电子信箱:scaolcaojuyahoooo札an满足“一刀切”;另一些算法虽然能满足“一刀切”,但排放效果差或者对于大规模的矩形件排样耗时太长,不利于提高生产效率。综合上述算法的优缺点,将传统的启发式算法的快速高效性与现代智能算法
7、的全局搜索能力强的特点相结合,提出了一种将启发式递归和免疫算法相结合的混合矩形件优化排样算法。该算法不仅满足“一刀切”的工艺要求,而且能大大提高板材的利用率。1 问题描述设给定板材的长与宽分别为L,(L),所需要排放的矩形件的种类数为m,第i种矩形件Rt的数量为竹i,长和宽分别为厶,砒(Zi砒),则总m的矩形件数为咒=乏:槐。排放的目标是,使得能i一1排放下所有矩形件所需的板材的数量最小。为了满足排料的工艺要求,排放需满足如下几条规则:(1)被排放矩形件的边要平行于板材的长度或宽度方向;(2)排放的各矩形件不能重叠,且不能超过板万方数据144 锻 压 技 术 第34卷材的边界;(3)排放后,要
8、满足“一刀切”的下料工艺。2算法基本思想及过程启发式算法具有快速高效的特点,但在解决大规模矩形件优化排样时,单纯使用启发式算法很难达到全局优化或者并不满足“一刀切”。考虑在满足“一刀切”的条件下,将启发式算法的快速性与免疫克隆算法的全局搜索能力强的特点相结合,来达到全局优化的目的。主要过程如下。(1)针对排放时出现的空白矩形,提出一种快速高效的启发式递归填充算法,而且能满足“一刀切”的工艺要求;利用该填充算法,将所有待排矩形件,依次沿板材宽度方向连续排放并填充,生成排放条料,直到所有矩形件均成为条料的一部分。在生成条料时,总是从剩余待排矩形件中选择矩形件优先生成利用率最高的条料。很显然,生成的
9、利用率高的条料数越多,越有利于全局优化。特别,对于利用率为1的条料,优先生成。(2)对所有生成的条料,进行局部优化。由于生成条料时太过贪婪(每次生成最大利用率的条料),使得后面生成的条料局部利用率偏低。本文对最后生成的利用率较低的条料,判断是否可以用前面生成的面积较小的条料去填充,若能填充,则提高了总板材的利用率。(3)利用免疫克隆算法对条料的排序进行全局搜索,使其所用板材数最少。3 条料生成31矩形件排放方式矩形件在板材上排放方式有两种,即横向排放与纵向排放,见图1。将某种矩形件,沿板材宽度方向连续横向排放或纵向排放后,会出现两种可能的情况,即剩余宽度为0或剩余宽度o,见图2。图1排放方式(
10、a)横向排放 (b)纵向排放Fig1 Ways of placing(a)Placing horizontally (b)Placing vertically图2剩余宽度(a)剩余宽度为0 (b)剩余宽度oFig2 Remnant width(a)Remnant谢dthO (b)Remnant width0记第i个矩形件R,沿板材宽度方向连续横排的数量为NumHi,剩余宽度为RmainHi,则Nun此=L w础J,其中L j表示向0方向取整。RmainHi=WNumHiWi同理,第i个矩形件R。沿板材宽度方向连续纵排的数量与剩余宽度分别为:Num=LWZi JRmainViWNumVf如32空
11、白矩形填充对空白矩形A的填充,提出一种启发式递归算法,记为RecurFill(A)。该算法主要过程是:从剩余待排矩形件中选择出能排进该空白矩形的矩形件,依次沿空白矩形的宽度方向不断试探填充,又会产生一个或两个空白矩形,见图3。对产生的空白矩形,继续采用上述方法,直到不能填充为止。记A为空白矩形,厶与WA分别为其长和宽。图3空白矩形填充(a)产生一个空白矩形AI (b)产生2个空白矩形AA2Fig3 Filling blank rectangles(a)Generating blank rectangle A1(b)Generating blank rectangles Al,Az记w=mJnW
12、i i一1,2,研)。具体算法如下:RecurFill(A)Stepl从剩余未排矩形件中,选择能排入该空白矩形的所有矩形件(f种),记为R“心,R。若t一0,则返回0(无法填充);否则转Step2。万方数据第4期 陈仕军等:一种“一刀切”式矩形件优化排样混合算法 145Step2对Stepl选择的矩形件,依次沿空白矩形宽度方向连续试探排放(纵排或横排,其中纵排优先),并计算其剩余宽度。若存在满足剩余宽度o时,另一空白矩形无法填充任何矩形件),更新排入的矩形件数量,并调用RecurFill(A1);否则转Step3。Step3将R“沿空白矩形宽度方向连续纵排(不能纵排时,则横排),排放列数为ra
13、inL咒;NumVi,J,L“毗,j),此时生成两个空白矩形A。与A2,见图3b。Step31调用RecurFill(A1);Step32调用ReeurFill(A2);33矩形件的条料生成生成条料的目的是,沿宽度方向连续横排或连续纵排使其尽量充满整个板材宽度。为此,对矩形件的生成条料主要采用如下步骤。(1)对长度大于板材宽度的矩形件(只能横向排放),最先生成条料。(2)在剩余的待排矩形件中,将连续排放(纵向或横向,其中纵向优先)后能填满或几乎填满(连续排放后,剩余宽度伽)板材宽度的矩形件优先生成条料。(3)对剩余的矩形件生成条料。在对剩余矩形件进行条料生成时,会出现两种情况:一种是某矩形件i
14、数量足够多,能沿宽度方向排放多列(如绣NumHz或咒iNumVi),但排放后剩余宽度较大;另一种是矩形件数量较少(如绝NumH;),连续排放完也无法填满宽度。两种情况见图4。这两种隋况,在生成条料时,由于剩余宽度较大,会产生空白矩形,都需要调用启发式递归算法对其填充。口图4剩余条料填充,B为空白矩形,需要填充)(a),zfN mHi (b)niNumHiFig4 Filling remain strips(Filling blank rectangle A,B)具体算法如下:Stepl对剩余矩形件数量足够多的矩形件生成条料并填充。选出满足璁NumHi或,z。NumVi的矩形件i(s种),记为马
15、,黾,R。若s=0,转Step3;否则转Step2。Step2令志一1,2,s。将R。连续纵排(若不能则横排),排放列数为minLNumVj,J,L训“。此时生成空白矩形A1,调用RecurFill(A。)。计算用R。生成条料的利用率,记Ratio(k)。记Jo=r|Ratio(r)一maxRatio(k),走=1,2,s),则将R“连续排放优先生成条料,并调用递归算法对空白矩形填充。更新待排矩形件的数量,返回Stepl。Step3对数量较少或无法沿板材宽度方向填充满一列的矩形件,生成条料。类似Step2,依次对每类矩形件,沿宽度试探排放,并调用递归算法对生成空白矩形进行填充,计算其利用率。挑
16、选出利用率最大的一类,优先生成条料。更新剩余矩形件数量,直到所有剩余矩形件数量为o;否则返回Step3。4条料局部优化上述生成条料时,由于每次生成利用率最大的条料,使得后面生成的条料利用率较低。为此,对生成的条料进行局部优化,即将后面利用率低的条料与前面生成的利用率高而面积较小的条料合并,使所有条料的总宽度减小而提高板材的总利用率。设口(o8口1)为一可调参数。对利用率a的条料,利用前面生成的较窄条料试探填充其空白区域。若存在较窄条料能完全填充进去,则更新生成的条料;否则对下一个利用率低的条料试探填充,直到所有利用率低的条料都试探填充完毕。5 免疫克隆算法对上述生成的条料,按一定的顺序进行组合
17、,依次排放在板材上,排不下时,在新的板材上继续排放,直到所有的条料排放完毕。如何将这些条料进行组合排序,使所用的板材数最少,事实上是一个一维背包问题。免疫克隆算法具有全局搜索能力强的特点,在解决此类问题时具有良好的性能9。本文利用免疫克隆算法,对生成的条料序进行搜索,使其所用的板材数最少,并得到其板材利用率。主要算子操作如下。(1)抗体编码。整数编码,以条料序为编码。(2)抗原与抗体亲合度。记NumBoard为所需板材数,RemWidth为最后一块板材的剩余宽度,则适应度为:万方数据146 锻 压 技 术 第34卷Fitness=1(NumBoard一1+(LRemWidth)L)抗体一抗体亲
18、合力,用欧氏距离度量。(3)抗体克隆规模,依据抗体一抗原亲合度、抗体一抗体亲和力自适应调整。参见文献9。(4)克隆选择操作,采用模拟退火选择。(5)免疫基因操作。交叉算子:部分匹配交叉(PMX);变异算子:随机两点对换算子。(6)抗体解码。按条料序,将条料依次向板材排放,排不下时,换板材继续排放,直到所有条料排放完毕,按(2)计算亲和度。免疫克隆算法框图,见图5。初始化抗体群计算亲和度抗体克隆土兰输出结果图5算法框图Fig5 Flowchart of algorithm6计算实例基于上述算法,对两个典型算例进行了计算。考虑到免疫克隆算法带有随机性,每次运行结果都有可能不同,对每个算例,分别运行
19、20次,取最优结果。算例1。板材长L_-_12030 1Tffn,宽W=2550删,待排矩形件的长、宽、数量等相关数据见表1。经计算,需3块板材,排样利用率为9817,排样结果见图6。表1待排矩形件数据表Table 1 Related data of rectangles being packed续表rII图6排样图(板材利用率9817)Fig6 Final chart of packing(Utility ratio is 9817)算例2。板材长L=1850 1TLrn,宽W=1240 1TLrn,待排矩形件的长、宽、数量等相关数据见表2。经计算,需7块板材,排样结果见图7。对此算例,文献
20、E63利用模拟退火算法得到的板材利用率为9038,而本文得到板材利用率为938。表2待排矩形件数据表Table 2 Related data of rectangles being packed粼蕙万方数据第4期 陈仕军等:一种“一刀切”式矩形件优化排样混合算法 147续表编号 长度ITffn 宽度胁 个数9 860 50 110 1820 290 111 1800 50 112 1810 690 113 890 220 114 730 450 415 600 290 416 540 200 217 1480 290 218 1460 50 119 880 540 120 860 220 22
21、1 600 450 422 690 270 123 1480 540 124 880 220 I25 570 220 226 600 590 24567 结语提出的矩形件优化排样混合算法,将启发式算法的快速高效性与免疫克隆算法的全局搜索能力强的特点有机结合,克服了以往单纯用启发式算法利用率低的缺点,在满足“一刀切”的工艺要求下,能快速高效地搜索全局最优排料方案。通过两个典型算例进行计算,结果证实了本文算法的有效性。此外,一些新兴的仿生算法,如蚂蚁算法、粒子群算法等,在解决一些组合优化问题时,显示了巨大的优越性。如何有效融合这些众多算法来解决矩形件优化排样,需要进一步深入研究。参考文献:1 曹炬
22、,周济,余俊矩形件排样优化的背包算法口中国机械工程,1994,5(2):11122 贾志欣,殷国富,罗阳矩形件排样的模拟退火算法求解刀四川大学学报(工程科学版),2001(5):32343 陈端兵,黄文奇求解矩形Packing问题的贪心算法J计算机工程,2007,33(4):160162图7排样图(板材利用率938)Fig7 Final chart of packing(Utility ratio is 938)Jakobs&On genetic algorithms for the packing of polygons D华中科技大学学报(自然科学版),2003,6(31):9一JEuro
23、pean Journal of Operational Research,1996,88 12(1):165161 7 曹炬,周济矩形件优化排样的一种近似算法i-J-I计算机Hopper E,Turton珏An empirical investigation of meta-heu- 辅助设计与图形学报,1995,7(3):190195ristic and heuristic algorithms for a 2D packing problem i-j1 8 冯美贵,史俊友NGSA算法在不规则零件优化排样中的应European Journal of Operational Research,
24、2001,128(1)l 用研究J锻压技术,2007,32(1);13153457 9 焦李成,杜海峰,刘芳,等免疫优化计算、学习与识别王华昌,陶献伟,李志刚一种矩形件优化排样综合算法 M北京:科学出版社,2006万方数据一种“一刀切“式矩形件优化排样混合算法作者: 陈仕军, 曹炬, CHEN Shi-jun, CAO Ju作者单位: 华中科技大学,数学与统计学院,湖北,武汉,430074刊名: 锻压技术英文刊名: FORGING & STAMPING TECHNOLOGY年,卷(期): 2009,34(4)被引用次数: 0次参考文献(9条)1.曹炬.周济.余俊 矩形件排样优化的背包算法期刊论
25、文-中国机械工程 1994(02)2.贾志欣.殷国富.罗阳 矩形件排样的模拟退火算法求解期刊论文-四川大学学报(工程科学版) 2001(05)3.陈端兵.黄文奇 求解矩形Packing问题的贪心算法期刊论文-计算机工程 2007(04)4.Jakobs S On genetic algorithms for the packing of polygons 1996(01)5.Hopper E.Turton K An empirical investigation of meta-heuristic and heuristic algorithms for a 2Dpacking problem 2001(01)6.王华昌.陶献伟.李志刚 一种矩形件优化排样综合算法期刊论文-华中科技大学学报(自然科学版) 2003(31)7.曹炬.周济 矩形件优化排样的一种近似算法 1995(03)8.冯美贵.史俊友 NGSA算法在不规则零件优化排样中的应用研究期刊论文-锻压技术 2007(01)9.焦李成.杜海峰.刘芳 免疫优化计算、学习与识别 2006本文链接:http:/