CN116680861A - 一种基于改进遗传算法的单规格板材二维下料方法 - Google Patents
一种基于改进遗传算法的单规格板材二维下料方法 Download PDFInfo
- Publication number
- CN116680861A CN116680861A CN202310386393.3A CN202310386393A CN116680861A CN 116680861 A CN116680861 A CN 116680861A CN 202310386393 A CN202310386393 A CN 202310386393A CN 116680861 A CN116680861 A CN 116680861A
- Authority
- CN
- China
- Prior art keywords
- homogeneous
- plate
- blank
- optimal
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Punching Or Piercing (AREA)
Abstract
本发明涉及板材下料技术领域,解决了现有技术中相应算法的时间以及复杂度高,同时对排样方式组合限制的技术问题,尤其涉及一种基于改进遗传算法的单规格板材二维下料方法,包括以下步骤:S1、根据毛坯数据生成每种毛坯对应的所有的同质块组合和规范尺寸;S2、根据所有的同质块组合和规范尺寸计算得出当前条件下的最优排样方式;S3、根据最优排样方式生成板材排样图,板材排样图即为最优的板材二维下料方式。本发明提出的单规格板材二维下料方法能得到高利用率的最优板材排样方式,同时对最优段、最优排样方式的分级求解方式可以很巧妙的避免无用的排样方式的生成,从而也能减少算法的运行时间。
Description
技术领域
本发明涉及板材下料技术领域,尤其涉及一种基于改进遗传算法的单规格板材二维下料方法。
背景技术
在实际工业生产中,常常会有将原材料剪切加工处理成特定尺寸的零件的需要。下料问题就是将一系列形状各异的小零件在大的原材料上进行合理的几何组合,切割下料,确定下料方案,是的给定原材料的利用率最高,以达到节约材料,提高效益的目的。
现有技术中,大多使用的是基于递归的简单块排样方式和三块排样方式。
对于简单块排样方式,在两次通刀之后得到了一个毛坯以及两个子板材,这样毛坯的位置就被限制在板材的角落上,这样往往会避开许多高利用率的排样方式的组合。同时该种算法往往会用到递归,这对算法的效率是一个很大的缺陷,多层次的递归往往会使得算法的复杂度指数增长,算法的时间以及复杂度也常常达到一个难以接受的地步。
对于三块排样方式,限制了板材的区域划分,对算法的运行时间有很明显的提升。但与此同时,因为限制了一块板材的三个区域,导致一块板材最多切割出三种毛坯,虽然这样有利于工人切割工作进行,但是往往会限制排样方式的组合。
发明内容
针对现有技术的不足,本发明提供了一种基于改进遗传算法的单规格板材二维下料方法,解决了现有技术中相应算法的时间以及复杂度高,同时对排样方式组合限制的技术问题。
为解决上述技术问题,本发明提供了如下技术方案:一种基于改进遗传算法的单规格板材二维下料方法,包括以下步骤:
S1、根据毛坯数据生成每种毛坯对应的所有的同质块组合和规范尺寸;
S2、根据所有的同质块组合和规范尺寸计算得出当前条件下的最优排样方式;
S3、根据最优排样方式生成板材排样图,板材排样图即为最优的板材二维下料方式。
进一步地,在步骤S1中,具体过程包括以下步骤:
S11、根据毛坯的尺寸以及数量需求生成所有的同质块组合;
S12、根据生成的同质块组合计算得出规范尺寸。
进一步地,在步骤S11中,具体过程包括以下步骤:
S111、依次循环每一种毛坯ORDi,i=1,2,…,m,m为毛坯的种类数量,生成由该种毛坯组成的所有同质块的可能性,并记录于BlockVeci中,其中BlockVecij表示毛坯ORDi组成第j个同质块;
S112、初始化lennum=1,widnum=1,表示组成该同质块长度和宽度的毛坯个数均为1,即该同质块是由单独一个毛坯ORDi组成;
S113、判断组成该同质块的毛坯是否满足以下条件:
①组成同质块毛坯总个数num不超出毛坯ORDi总需求;
②同质块的长边小于板材长边lennum、同质块的短边小于板材短边widnum;
③同质块的长度小于板材的长边,板材长边lennun小于毛坯ORDi的总需求;
若不满足条件①和②中的任意一个,则设置widnum=1,lennum=lennum+1,随后返回步骤S113;
若均满足条件①和②,记录该同质块至毛坯ORDi的同质块组合库BlockVeci,令widnum=widnum+1,随后返回步骤S113;
若不满足条件①和②中的任意一个,且不满足条件③,则生成同质块组合,随后令i=i+1并返回步骤S111重复循环直至生成所有的同质块组合。
进一步地,在步骤S12中,具体过程包括以下步骤:
S121、循环同质块组合库BlockVeci中的同质块,将毛坯ORDi组成的同质块的长、宽无重复且升序的记录于BlockStandardSizei中,得到规范的同质块的规范尺寸,其中BlockStandardSizeij表示毛坯ORDi组成的同质块的第j个规范尺寸;
S122、根据BlockStandardSizei生成规范的段的尺寸,段的规范宽度StepStandardWidSize为BlockStandardSizei的并集;
S123、段的规范长度StepStandardLenSize为同质块的规范尺寸的线性组合。
进一步地,在步骤S2中,具体过程包括以下步骤:
S21、根据当前毛坯需求的尺寸以及数量生成同质块在段上的最优排列;
S22、根据同质块在段上的最优排列生成段在板材上的最优排列;
S23、根据同质块在段上的最优排列以及段在板材上的最优排列,扩充求得最优排列的使用张数,以此修改毛坯剩余需求work_ord得到最优排样方式。
进一步地,在步骤S21中,具体过程包括以下步骤:
S211、依次循环段的规范宽度StepStandardWidSize生成段宽为StepStandardWidSizei、段长为板材的长度Length和板材的宽度Width的最优段;
S212、令板材的长度为cons,段宽StepStandardWidSizei为deter,表示段宽是已经确定的值deter,所有同质块都是以此边为基底,沿着cons边上排列;
S213、遍历同质块组合库BlockVecij筛选出满足以下条件的同质块SatisfyBlock:
①组成该种同质块的毛坯ORDij个数小于毛坯ORDi的总需求量;
②同质块组合库BlockVecij的长小于等于deter,且同质块组合库BlockVecij的宽小于等于cons;
③同质块组合库BlockVecij的长小于等于cons,且同质块组合库BlockVecij的宽小于等于deter;
若满足条件①和②的同质块直接存入SatisfyBlock中;
若满足条件①和③的同质块旋转后存入SatisfyBlock中,旋转为将同质块的长和宽对调;
S214、筛选完所有的同质块后,将SatisfyBlock中的同质块按照面积降序排列;
S215、采用有界背包问题的求解方法求解同质块在段上的排列方式生成同质块在段上的最优排列。
进一步地,在步骤S215中,具体过程包括以下步骤:
S2151、扁平化处理将多重背包进行二进制优化转换成0-1背包问题;
S2152、计算每种同质块StatisfyBlocki的最多使用次数numi;
S2153、计算StatisfyBlocki的约束边长度res,即同质块与段长平行的那一条边的长度;
S2154、计算同质块的价值即同质块的面积,记为val;
S2155、将最多使用次数numi拆分成numi=21+22+…+2k+h的形式,每一个分项称为一个“包”,因此该同质块的使用次数m通过包的形式组合表示,最终生成得到同质块约束条件数组w,同质块价值数组v;
S2156、根据转移方程求同质块包在约束长度下放入段中的最大价值dp[i][j],即得到段的价值数组value;
S2157、根据最大价值dp[i][j]判断该最优段是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到分别表示X向段和Y向段的最优排列的result[Length]、reslut[Width]。
进一步地,在步骤S22中,具体过程包括以下步骤:
S221、将X向段按照段的最大价值dp[i][j]的降序排列存入YSatisfySegment,并求出X向段按照Y向排列组成的板材最优排列;将Y向段按照段的最大价值dp[i][j]的降序排列存入XSatisfySegment,并求出Y向段按照X向排列组成的板材的最优排列;
S222、比较X向段组成的最优排列和Y向段组成的最优排列的价值,取其中价值高者作为当前毛坯剩余需求下的最优排列,即为段在板材上的最优排列。
进一步地,在步骤S221中,具体过程包括以下步骤:
S2211、令X向段Y向排列组成完整的板材的约束条件RES=Width,计算该X向段的最多使用次数numi,即毛坯ORDi的总需求除以组成该段的毛坯ORDi的个数,取最小值作为X向段的最多使用次数;
S2212、X向段的段宽记为段的约束边长度res,组成X向段的毛坯总面积记为段的价值,同样使用二进制优化方法处理numi,将完全背包问题简化为0-1背包问题,最终生成X向段约束条件数组w,X向段的价值数组v;
S2213、根据转移方程求X向段包在约束长度下放入板材中的最大价值dp[i][j],即得到板材的价值数组value;
S2214、根据X向段包在约束长度下放入板材中的最大价值dp[i][j]判断该最优排列是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到的result[RES]即为X向段在板材上Y向排列得到的最优排列,即得到X向段Y向排列组成完整的板材的最优解;
S2215、采用与步骤S2211-步骤S2214相同的方法,令Y向段X向排列组成完整的板材的约束条件RES=Length,求得Y向段X向排列组成完整的板材的最优解。
进一步地,在步骤S23中,具体过程包括以下步骤:
S231、统计得到的最优排列中每种毛坯的使用次数numi;
S232、计算每种毛坯的最多使用次数maxi,并比较每个maxi,取其中最小值作为该种最优排样方式的使用张数layoutnum;
S233、将该种最优排样方式的使用张数layoutnum扩充使用layoutnum次,相应的,修改当前毛坯剩余需求work_ord;
S234、重复整个步骤S2,根据更新后的当前毛坯剩余需求work_ord再次求出当前最优排列。
借由上述技术方案,本发明提供了一种基于改进遗传算法的单规格板材二维下料方法,至少具备以下有益效果:
1、本发明所提出的单规格板材二维下料方法能得到高利用率的最优板材排样方式,同时对最优段、最优排样方式的分级求解方式可以很巧妙的避免无用的排样方式的生成,从而也能减少算法的运行时间。
2、本发明所提供的单规格板材二维下料方法使用了分段的二阶段排样方法,先将完整的板材经过第一阶段的通刀切割出若干段,再将段切割出若干同质块,同质块排样组成了最优段、最优段排样组成了的排样方式自然是最优排样方式,这样的排样限制能干涵盖许多排样可能性,同时最优段、最优排样的求解方式可以大大避免无用的低利用率的排样方式的计算,因此可以花费很短的时间求出当前需求下的最优排样方式。
3、本发明所提供的单规格板材二维下料方法就是基于一定的贪心策略,动态规划的求出满足所有种类毛坯需求的一种下料优化算法,能够在实际生产中,达到为生产厂商降低生产成本、减少原材料板材张数的目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明单规格板材二维下料方法的流程图;
图2为本发明通刀切割排样方式的示意图;
图3为本发明T型三块排样方式的示意图;
图4为本发明条带的组成示意图;
图5为本发明同质块的组成示意图;
图6为本发明段的组成示意图;
图7为本发明规范同质块尺寸的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。借此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在实际工业生产中,常常会有将原材料剪切加工处理成特定尺寸的零件的需要。下料问题就是将一系列形状各异的小零件在大的原材料上进行合理的几何组合,切割下料,确定下料方案,是的给定原材料的利用率最高,以达到节约材料,提高效益的目的。从数学计算复杂性理论看,优化下料问题式具有很高计算复杂性的NP完全问题,对于大规模的下料问题,不但人工排样无法做到真正的优化,即使采用计算机也必须开发高效的算法,才能达到较高的材料利用率。
根据空间划分,下料问题分为一维、二维、三维,其中二维下料应用最为广泛,目前研究及使用价值最多的就是矩形件的下料,并且与各种只能算法相结合,进一步对算法进行优化,依旧提出了许多成熟的算法。针对矩形下料问题,本实施例提出的技术问题是在确定尺寸(长度、宽度都确定)的矩形板材上切割出特定种类、特定数量需求的矩形毛坯。其中,矩形毛坯在板材母料上的排样时是可旋转的,并且为了切合实际生产,排样时遵循通刀的原则。
请参照图2,通刀指:要求每一条剪切线都从板材母料的一边绘制到另一边,且平行于板材的长或宽,每次切割总是沿着剪切线将大板材分割成两张小板材。
二维下料问题中,可根据子料(即毛坯)的不同种类,分成矩形毛坯二维下料问题、圆形毛坯二维下料问题、不规则形状毛坯下料问题等。本实施例着重阐述切割板材和毛坯均为矩形的矩形毛坯二维下料问题(Rectangular2CSP,简称R2CSP)。实际生产中的板材规格是统一的:给定某单一确定尺寸(长度和宽度)的板材母料和一组毛坯子料需求,要求从板材母料中切割出这组毛坯子料,并满足所有毛坯子料的尺寸及数量需求,使得消耗的板材母料的数量或成本价值最小,本实施例将该问题简称为2CS。
二维下料问题(2CS):又称为板材下料问题,下料时需要考虑长、宽两个维度,即将平板状的材料分割成矩形、圆形、扇形等规则形状的毛坯或其他不规则形状的毛坯。2CS常见于玻璃板、钢板、木板等材料的下料中,不同类型的板材采用的切割工艺也有一定差别,本实施例着重阐述的是二维的矩形下料问题的优化。
在实际生产环节中,生产者希望通过应用下料算法,达到降低生产成本的目的,生产成本=原材料成本+下料活动成本。而为了降低生产成本,下料算法应该尽可能的计算出如何才能使用尽可能少的母料(即板材原料)张数、尽可能少的母料排样方案数,完成当前的子料需求。
目前,很多学者针对二维下料问题提出了很多的解决方法,如:简单块排样方式、T型三块排样方式、普通两阶段排样方式等。
简单介绍下T型三块排样方式:
请参照图3,所谓的T型三块排样方式就是指:在进行排样之前,通过两条相互正交成T型的剪切线将板材分割成三个区域(图中的数字为区域编号),每个区域内只含一个同质块。
T型三块排样方式在实际应用中可将板材分成三个部分,每个部分都是由相同的毛坯(即同质块),因此可将三个部分分给三个工人,每个工人将同质块切割成条带,再将条带切割成毛坯,操作便捷且不易出错。在降低原材料损耗的同时,提高了工人工作的效率,更进一步的降低了下料活动成本。
请参照图4,条带由一个或多个毛坯组成。其中若组成条带的毛坯均为同一种毛坯,则称为同质条带。条带的组成可以理解为:毛坯的一条边定为基准线,另一条边定为延长线,所有同种毛坯都可沿着延长线进行排列,即毛坯的基准线互相平行,延长线连接延长。对于一个条带,其组成毛坯的基准线应是同一条边,延长线应是另一条边。基准线可视为条带的宽,延长线可视为条带的长。当毛坯按图4(a)所示,一个接一个沿着水平方向的延长线排放时,所组成的条带称为水平条带(X向条带);按照图4(b)所示,一个接一个沿着竖直方向的延长先排放时。
但是,T型三块排样方式很难在提高优化率的同时提高运行时间,高优化率的方案往往需要付出一定的时间代价,同时对于三块排样方式,限制了板材的区域划分,对算法的运行时间有很明显的提升。但与此同时,因为限制了一块板材的三个区域,导致一块板材最多切割出三种毛坯,虽然这样有利于工人切割工作进行,但是往往会限制排样方式的组合。
对于简单块排样方式,在两次通刀之后得到了一个毛坯以及两个子板材,这样毛坯的位置就被限制在板材的角落上,这样往往会避开许多高利用率的排样方式的组合。同时该种算法往往会用到递归,这对算法的效率是一个很大的缺陷,多层次的递归往往会使得算法的复杂度指数增长,算法的时间复杂度也常常达到一个难以接受的地步。
为解决上述现有技术所存在的技术问题,请参照图1-图7,本实施例提供了一种具体实施方式,该单规格板材二维下料方法虽然对排样方式进行了分级组合的限制,但是对板材的利用率并无显著的影响,往往还能得到高利用率的最优板材排样方式;同时对最优段、最优排样方式的分级求解方式可以很巧妙的避免无用的排样方式的生成,从而也能减少算法的运行时间。
2CS问题数学模型描述如下:
因为在实际下料生产环节中,在板材上正交摆放毛坯时,允许毛坯旋转90°,为了便于处理解决2CS问题,故规定板材和毛坯的较长的一边为长,较短的一边为宽。
记单一规格的矩形板材尺寸为L×W(长度×宽度),矩形毛坯种数为m种,第i种毛坯(简记为毛坯i)的尺寸为li×wi,需求量为di,i=1,2,…,m满足所有的毛坯需求,并使消耗的板材张数z最少。
使用如下符号,下标i,j均为i=1,2,…,m,j=1,2,…,n:
n表示排样方式总数,即n种排样方式;
A表示排样方式集合,A=[p1,…,pn],pj为第j个排样方式;
pj,pj=[a1j,…,aij],aij为排样方式pj中毛坯i的总数;
X,X=[x1,…,xn],xj为采用排样方式pj的板材张数;
D,D=[d1,…,dm],di为毛坯i的需求量。
2CS的IP模型如下,其中N为非负整数集合:
xj∈N,j=1,2,…,n 式3
采用矩阵形式表示为:
式1为目标函数,要求最小化板材的消耗张数,式2为需求约束,表示满足所有毛坯的需求量,式3为变量约束,表示采用排样方式pj的板材张数为非负整数。
请参照图1,本实施例提出了一种基于改进遗传算法的单规格板材二维下料方法,该方法包括以下步骤:
S1、根据毛坯数据生成每种毛坯对应的所有的同质块组合和规范尺寸,毛坯数据为毛坯的尺寸以及数量需求;
在本实施例中,同质块是组成排样方式的基本单位。同质块是指同一种毛坯以水平或竖直的同质条带的形式组成的一整块矩形区域。同质块可以简单的看作是一组相同尺寸的X向条带进行竖直方向的Y向排列组成或者是一组相同之村的Y向条带进行水平方向的排列组成,此处需明确X向、Y向在形容条带和排列时的区别,如图5所示的就是三个Y向条带进行X向排列后得到的同质块。
为了完整且清楚的对本实施例所提及的步骤S1进行说明,步骤S1的具体实施方式包括以下步骤:
S11、根据毛坯的尺寸以及数量需求生成所有的同质块组合;
S111、依次循环每一种毛坯ORDi,i=1,2,…,m,m为毛坯的种类数量,生成由该种毛坯组成的所有同质块的可能性,并记录于BlockVeci中,其中BlockVecij表示毛坯ORDi组成第j个同质块;
S112、初始化lennum=1,widnum=1,表示组成该同质块长度和宽度的毛坯个数均为1,即该同质块是由单独一个毛坯ORDi组成;
S113、判断组成该同质块的毛坯是否满足以下条件:
①组成同质块毛坯总个数num不超出毛坯ORDi总需求;
num=lennum*widnum
上式中,lennum表示板材长边,eidnum表示板材短边;
②同质块的长边小于板材长边lennum、同质块的短边小于板材短边widnum;
③同质块的长度小于板材的长边,板材长边lennun小于毛坯ORDi的总需求;
若不满足条件①和②中的任意一个,则设置widnum=1,lennum=lennum+1,随后返回步骤S113;
若均满足条件①和②,记录该同质块至毛坯ORDi的同质块组合库BlockVeci,令widnum=widnum+1,随后返回步骤S113;
若不满足条件①和②中的任意一个,且不满足条件③,则生成同质块组合,随后令i=i+1并返回步骤S111重复循环直至生成所有的同质块组合。
S12、根据生成的同质块组合计算得出规范尺寸。
为了完整且清楚的对本实施例所提及的步骤S12进行说明,步骤S12的具体实施方式包括以下步骤:
S121、循环同质块组合库BlockVeci中的同质块,将毛坯ORDi组成的同质块的长、宽无重复且升序的记录于BlockStandardSizei中,得到规范的同质块的规范尺寸,其中BlockStandardSizeij表示毛坯ORDi组成的同质块的第j个规范尺寸;
S122、根据BlockStandardSizei生成规范的段的尺寸,段的规范宽度StepStandardWidSize为BlockStandardSizei的并集;
S123、段的规范长度StepStandardLenSize为同质块的规范尺寸的线性组合,在此限定为三种同质块的规范尺寸的线性组合,由此可以避免无用冗余的规范尺寸的生成。
S2、根据所有的同质块组合和规范尺寸计算得出当前条件下的最优排样方式,当前条件下为当前毛坯需求的尺寸以及数量;
请参照图6,段是由一系列同质块组成的,组成原理类似于同质块,区别是段内的同质块可以是由不同的毛坯组成的。当同质块之间X向排列时可以得到X向段,当同质块之间Y向排列时可以得到Y向段。分析可知,根据毛坯的可旋转性,X向段旋转90°后就成为了Y向段。图6就可是一个由两个同质块进行Y向排列的Y向段。
对于一个段来说,组成段的同质块的宽度一定是小于某个特定值的,这个特定的值即段的宽度,每个同质块都由其宽度从大到小排列的。
具体的,完整板材的排样方式是由段组成的,段是由同质块组成的,同质块是由毛坯组成的。因此完整板材得到所需毛坯可以看作是一个三阶段的工作:完整板材经过第一阶段的切割得到若干段,段经过第二阶段的切割得到若干同质块,同质块经过第三阶段的切割得到所需的毛坯。
由段组成完整板材的要求:X向段只能通过Y向排列组成完整的板材;Y向段只能通过X向排列组成完整的板材。
由于同质块没有方向区分,故段的组成是没有要求的。
规范尺寸应用与实际的问题中可以有效的减少需要计算的数据量,进而很明显的提高运算速度。规范尺寸的基本思想:假设g(x)为不大于x的最大规范长度,h(x)为不大于y的最大规范宽度,f(x,y)为板材x×y包含毛坯的最大价值,则有f(x,y)=f(g(x),h(y))。以上表明在解决布局问题时,只需考虑规范尺寸,从而达到减少数据量,提高运算速度的效果。
本实施例主要采用两种类型的规范尺寸:
规范同质块尺寸:由定义可知,同质块是由相同种类的毛坯组成的,因此可以根据毛坯的尺寸计算得到同质块的规范尺寸。对于第i种毛坯,i=1,2,…,m,假设同质块的规范长度为毛坯长度的集合,设为同质块的规范宽度为毛坯宽度的集合,设为/>则有:
其中,ki为组成同质块长度的毛坯个数,zi为组成同质块宽度的毛坯个数。
如图7所示,k1=2,z1=4,若同质块的长和宽都是规范尺寸,则这个同质块被称为规范同质块。
规范段尺寸:段的规范尺寸也分为规范长度和规范宽度。由段的定义可知,段的方向可能是水平的(X向段)或者是竖直的(Y向段)。X向段是由同质块X向排列得到的,因此X向段的宽度是竖直衡量的;Y向段是由同质块Y向排列得到的,因此Y向段的宽度是水平衡量的。故所有段的长度和宽度最大都为L。因此段的规范宽度为每种毛坯所组成的同质块规范尺寸的并集;段的规范长度为每种毛坯所组成的同质块规范尺寸的线性组合。
为了完整且清楚的对本实施例所提及的步骤S2进行说明,步骤S2的具体实施方式包括以下步骤:
S21、根据当前毛坯需求的尺寸以及数量生成同质块在段上的最优排列;
为了完整且清楚的对本实施例所提及的步骤S21进行说明,步骤S21的具体实施方式包括以下步骤:
S211、依次循环段的规范宽度StepStandardWidSize生成段宽为StepStandardWidSizei、段长为板材的长度Length和板材的宽度Width的最优段;
Length称为X向段,X向段是由同质块在水平方向(X向)上组合成的,X向段之间竖直方向(Y向)组合成完整的板材;Width称为Y向段,Y向段是由同质块在竖直方向(Y向)上组合成的,Y向段之间水平方向(X向)组合成完整的板材。
S212、令板材的长度为cons,段宽StepStandardWidSizei为deter,表示段宽是已经确定的值deter,所有同质块都是以此边为基底,沿着cons边上排列;
S213、遍历同质块组合库BlockVecij筛选出满足以下条件的同质块SatisfyBlock:
①组成该种同质块的毛坯ORDij个数小于毛坯ORDi的总需求量;
②同质块组合库BlockVecij的长小于等于deter,且同质块组合库BlockVecij的宽小于等于cons;
③同质块组合库BlockVecij的长小于等于cons,且同质块组合库BlockVecij的宽小于等于deter;
若满足条件①和②的同质块直接存入SatisfyBlock中;
若满足条件①和③的同质块旋转后存入SatisfyBlock中,旋转为将同质块的长和宽对调;
S214、筛选完所有的同质块后,将SatisfyBlock中的同质块按照面积降序排列;
S215、采用有界背包问题的求解方法求解同质块在段上的排列方式生成同质块在段上的最优排列。
为了完整且清楚的对本实施例所提及的步骤S215进行说明,步骤S215的具体实施方式包括以下步骤:
S2151、扁平化处理将多重背包进行二进制优化转换成0-1背包问题;
S2152、计算每种同质块StatisfyBlocki的最多使用次数numi;
最多使用次数numi计算方式为:组成同质块的毛坯ORDi的剩余需求work_ord除以组成同质块的毛坯的个数。
S2153、计算StatisfyBlocki的约束边长度res,即同质块与段长平行的那一条边的长度,同质块与段长平行的那一条边的长度的计算方式可采用常规的距离计算公式,在此不再详细赘述。
S2154、计算同质块的价值即同质块的面积,记为val,同质块的面积在已知长与宽的前提下,计算方式较为常规,在此不再详细赘述。
S2155、将最多使用次数numi拆分成numi=21+22+…+2k+h的形式,每一个分项称为一个“包”,因此该同质块的使用次数m通过包的形式组合表示,最终生成得到同质块约束条件数组w,同质块价值数组v,例如当最多使用次数numi=12时,有numi=1+2+4+5,使用8次该同质块可以表示为1+2+5;
S2156、根据转移方程求同质块包在约束长度下放入段中的最大价值dp[i][j],即得到段的价值数组value;
0-1背包的状态转移方程为:
dp[i][j]=max(dp[i-1][j],j-w[i]≥0?dp[i-1][j-w[i]]+v[i]:0)
其中dp[i][j]表示将前i个同质块包放入约束长度为j的段中可以放入的最大价值,w[i]表示第i个同质块包的约束边的长度,包内同质块的个数*同质块的约束边长度res,v[i]表示同质块包的价值,包内同质块的个数*同质块的面积val。
S2157、根据最大价值dp[i][j]判断该最优段是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到分别表示X向段和Y向段的最优排列的result[Length]、reslut[Width]。
由状态方程可知,dp[i][j]的值只与dp[i-1][0,…,j-1]有关,故使用滚动数组对空间进行优化,此时应该注意,需逆向枚举j,每次求出当前的最大价值后,判断该最优段是否满足对应毛坯ORDi的剩余需求,若满足,记录进result数组中,最后可以得到result[Length]、reslut[Width],分别表示X向段和Y向段的最优排列,至此可以使用0-1背包的解决方法求解此问题。
S22、根据同质块在段上的最优排列生成段在板材上的最优排列;
为了完整且清楚的对本实施例所提及的步骤S22进行说明,步骤S22的具体实施方式包括以下步骤:
S221、将X向段按照段的最大价值dp[i][j]的降序排列存入YSatisfySegment,并求出X向段按照Y向排列组成的板材最优排列;将Y向段按照段的最大价值dp[i][j]的降序排列存入XSatisfySegment,并求出Y向段按照X向排列组成的板材的最优排列,这也是一个完全背包问题。
X向段按照Y向排列组成的板材最优排列以及Y向段按照X向排列组成的板材的最优排列,即为最优段在板材上的最优排列,在此处也是一个多重背包问题,求解步骤如下:
S2211、令X向段Y向排列组成完整的板材的约束条件RES=Width,计算该X向段的最多使用次数numi,即毛坯ORDi的总需求除以组成该段的毛坯ORDi的个数,取最小值作为X向段的最多使用次数;
对于X向段,需要将各X向段Y向排列组成完整的板材,故其约束条件RES=Width,扁平化处理各X向段,先计算该X向段的最多使用次数numi,即毛坯ORDi的总需求除以组成该段的毛坯ORDi的个数,取最小值作为X向段的最多使用次数。
S2212、X向段的段宽记为段的约束边长度res,组成X向段的毛坯总面积记为段的价值,同样使用二进制优化方法处理numi,将完全背包问题简化为0-1背包问题,最终生成X向段约束条件数组w,X向段的价值数组v;
S2213、根据转移方程求X向段包在约束长度下放入板材中的最大价值dp[i][j],即得到板材的价值数组value;
状态转移方程为:
dp[i][j]=max(dp[i-1][j],j-w[i]≥0?dp[i-1][j-w[i]]+v[i]:0)
其中dp[i][j]表示将前i个X向段包放入约束长度为j的板材中可以放入的最大价值,w[i]表示第i个X向段包的约束边的长度,即包内X向段的个数*X向段的约束边长度res,v[i]表示X向段包的价值,即包内X向段的个数*X向段的面积val。
S2214、根据X向段包在约束长度下放入板材中的最大价值dp[i][j]判断该最优排列是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到的result[RES]即为X向段在板材上Y向排列得到的最优排列,即得到X向段Y向排列组成完整的板材的最优解;
由状态方程可知,dp[i][j]的值只与dp[i-1][0,…,j-1]有关,故使用滚动数组对空间进行优化,此时应该注意,需逆向枚举j,每次求出当前的最大价值后,判断该最优排列是否满足对应毛坯ORDi的剩余需求,若满足,记录进result数组中,最后得到的result[RES]即为X向段在板材上Y向排列得到的最优排列,至此可以使用0-1背包的解决方法求解此问题。
S2215、采用与步骤S2211-步骤S2214相同的方法,令Y向段X向排列组成完整的板材的约束条件RES=Length,求得Y向段X向排列组成完整的板材的最优解。
S222、比较X向段组成的最优排列和Y向段组成的最优排列的价值,取其中价值高者作为当前毛坯剩余需求下的最优排列,即为段在板材上的最优排列;
X向段组成的最优排列和Y向段组成的最优排列的价值比较是通过比较X向段包在约束长度下放入板材中的最大价值dp[i][j]和Y向段包在约束长度下放入板材中的最大价值dp[i][j]来实现的,在两个最大价值中价值高的为段在板材上的最优排列。
S23、根据同质块在段上的最优排列以及段在板材上的最优排列,扩充求得最优排列的使用张数,以此修改毛坯剩余需求work_ord得到最优排样方式;
为了完整且清楚的对本实施例所提及的步骤S23进行说明,步骤S23的具体实施方式包括以下步骤:
S231、统计得到的最优排列中每种毛坯的使用次数numi;
S232、计算每种毛坯的最多使用次数maxi,并比较每个maxi,取其中最小值作为该种最优排样方式的使用张数layoutnum;
每种毛坯的最多使用次数maxi的计算公式为:
S233、将该种最优排样方式的使用张数layoutnum扩充使用layoutnum次,相应的,修改当前毛坯剩余需求work_ord;
S234、重复整个步骤S2,根据更新后的当前毛坯剩余需求work_ord再次求出当前最优排列。
S3、根据最优排样方式生成板材排样图,板材排样图即为最优的板材二维下料方式,在得到最优排样方式后,可根据当前的毛坯的尺寸以及数量需求在板材上生成板材排样图,该板材排样图与最优排样方式相同。
本实施例所提供的单规格板材二维下料方法使用了分段的二阶段排样方法,先将完整的板材经过第一阶段的通刀切割出若干段,再将段切割出若干同质块,同质块排样组成了最优段、最优段排样组成了的排样方式自然是最优排样方式,这样的排样限制能干涵盖许多排样可能性,同时最优段、最优排样的求解方式可以大大避免无用的低利用率的排样方式的计算,因此可以花费很短的时间求出当前需求下的最优排样方式。
本实施例所提供的单规格板材二维下料方法就是基于一定的贪心策略,动态规划的求出满足所有种类毛坯需求的一种下料优化算法,能够在实际生产中,达到为生产厂商降低生产成本、减少原材料板材张数的目的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上实施方式对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于改进遗传算法的单规格板材二维下料方法,其特征在于,包括以下步骤:
S1、根据毛坯数据生成每种毛坯对应的所有的同质块组合和规范尺寸;
S2、根据所有的同质块组合和规范尺寸计算得出当前条件下的最优排样方式;
S3、根据最优排样方式生成板材排样图,板材排样图即为最优的板材二维下料方式。
2.根据权利要求1所述的单规格板材二维下料方法,其特征在于,在步骤S1中,具体过程包括以下步骤:
S11、根据毛坯的尺寸以及数量需求生成所有的同质块组合;
S12、根据生成的同质块组合计算得出规范尺寸。
3.根据权利要求2所述的单规格板材二维下料方法,其特征在于,在步骤S11中,具体过程包括以下步骤:
S111、依次循环每一种毛坯ORDi,i=1,2,…,m,m为毛坯的种类数量,生成由该种毛坯组成的所有同质块的可能性,并记录于BlockVeci中,其中BlockVecij表示毛坯ORDi组成第j个同质块;
S112、初始化lennum=1,widnum=1,表示组成该同质块长度和宽度的毛坯个数均为1,即该同质块是由单独一个毛坯ORDi组成;
S113、判断组成该同质块的毛坯是否满足以下条件:
①组成同质块毛坯总个数num不超出毛坯ORDi总需求;
②同质块的长边小于板材长边lennum、同质块的短边小于板材短边widnum;
③同质块的长度小于板材的长边,板材长边lennun小于毛坯ORDi的总需求;
若不满足条件①和②中的任意一个,则设置widnum=1,lennum=lennum+1,随后返回步骤S113;
若均满足条件①和②,记录该同质块至毛坯ORDi的同质块组合库BlockVeci,令widnum=widnum+1,随后返回步骤S113;
若不满足条件①和②中的任意一个,且不满足条件③,则生成同质块组合,随后令i=i+1并返回步骤S111重复循环直至生成所有的同质块组合。
4.根据权利要求2所述的单规格板材二维下料方法,其特征在于,在步骤S12中,具体过程包括以下步骤:
S121、循环同质块组合库BlockVeci中的同质块,将毛坯ORDi组成的同质块的长、宽无重复且升序的记录于BlockStandardSizei中,得到规范的同质块的规范尺寸,其中BlockStandardSizeij表示毛坯ORDi组成的同质块的第j个规范尺寸;
S122、根据BlockStandardSizei生成规范的段的尺寸,段的规范宽度StepStandardWidSize为BlockStandardSizei的并集;
S123、段的规范长度StepStandardLenSize为同质块的规范尺寸的线性组合。
5.根据权利要求1所述的单规格板材二维下料方法,其特征在于,在步骤S2中,具体过程包括以下步骤:
S21、根据当前毛坯需求的尺寸以及数量生成同质块在段上的最优排列;
S22、根据同质块在段上的最优排列生成段在板材上的最优排列;
S23、根据同质块在段上的最优排列以及段在板材上的最优排列,扩充求得最优排列的使用张数,以此修改毛坯剩余需求work_ord得到最优排样方式。
6.根据权利要求1所述的单规格板材二维下料方法,其特征在于,在步骤S21中,具体过程包括以下步骤:
S211、依次循环段的规范宽度StepStandardWidSize生成段宽为StepStandardWidSizei、段长为板材的长度Length和板材的宽度Width的最优段;
S212、令板材的长度为cons,段宽StepStandardWidSizei为deter,表示段宽是已经确定的值deter,所有同质块都是以此边为基底,沿着cons边上排列;
S213、遍历同质块组合库BlockVecij筛选出满足以下条件的同质块SatisfyBlock:
①组成该种同质块的毛坯ORDij个数小于毛坯ORDi的总需求量;
②同质块组合库BlockVecij的长小于等于deter,且同质块组合库BlockVecij的宽小于等于cons;
③同质块组合库BlockVecij的长小于等于cons,且同质块组合库BlockVecij的宽小于等于deter;
若满足条件①和②的同质块直接存入SatisfyBlock中;
若满足条件①和③的同质块旋转后存入SatisfyBlock中,旋转为将同质块的长和宽对调;
S214、筛选完所有的同质块后,将SatisfyBlock中的同质块按照面积降序排列;
S215、采用有界背包问题的求解方法求解同质块在段上的排列方式生成同质块在段上的最优排列。
7.根据权利要求6所述的单规格板材二维下料方法,其特征在于,在步骤S215中,具体过程包括以下步骤:
S2151、扁平化处理将多重背包进行二进制优化转换成0-1背包问题;
S2152、计算每种同质块StatisfyBlocki的最多使用次数numi;
S2153、计算StatisfyBlocki的约束边长度res,即同质块与段长平行的那一条边的长度;
S2154、计算同质块的价值即同质块的面积,记为val;
S2155、将最多使用次数numi拆分成numi=21+22+…+2k+h的形式,每一个分项称为一个“包”,因此该同质块的使用次数m通过包的形式组合表示,最终生成得到同质块约束条件数组w,同质块价值数组v;
S2156、根据转移方程求同质块包在约束长度下放入段中的最大价值dp[i][j],即得到段的价值数组value;
S2157、根据最大价值dp[i][j]判断该最优段是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到分别表示X向段和Y向段的最优排列的result[Length]、reslut[Width]。
8.根据权利要求6所述的单规格板材二维下料方法,其特征在于,在步骤S22中,具体过程包括以下步骤:
S221、将X向段按照段的最大价值dp[i][j]的降序排列存入YSatisfySegment,并求出X向段按照Y向排列组成的板材最优排列;将Y向段按照段的最大价值dp[i][j]的降序排列存入XSatisfySegment,并求出Y向段按照X向排列组成的板材的最优排列;
S222、比较X向段组成的最优排列和Y向段组成的最优排列的价值,取其中价值高者作为当前毛坯剩余需求下的最优排列,即为段在板材上的最优排列。
9.根据权利要求8所述的单规格板材二维下料方法,其特征在于,在步骤S221中,具体过程包括以下步骤:
S2211、令X向段Y向排列组成完整的板材的约束条件RES=Width,计算该X向段的最多使用次数numi,即毛坯ORDi的总需求除以组成该段的毛坯ORDi的个数,取最小值作为X向段的最多使用次数;
S2212、X向段的段宽记为段的约束边长度res,组成X向段的毛坯总面积记为段的价值,同样使用二进制优化方法处理numi,将完全背包问题简化为0-1背包问题,最终生成X向段约束条件数组w,X向段的价值数组v;
S2213、根据转移方程求X向段包在约束长度下放入板材中的最大价值dp[i][j],即得到板材的价值数组value;
S2214、根据X向段包在约束长度下放入板材中的最大价值dp[i][j]判断该最优排列是否满足对应毛坯ORDi的剩余需求;
若满足,记录进result数组中,最后得到的result[RES]即为X向段在板材上Y向排列得到的最优排列,即得到X向段Y向排列组成完整的板材的最优解;
S2215、采用与步骤S2211-步骤S2214相同的方法,令Y向段X向排列组成完整的板材的约束条件RES=Length,求得Y向段X向排列组成完整的板材的最优解。
10.根据权利要求6所述的单规格板材二维下料方法,其特征在于,在步骤S23中,具体过程包括以下步骤:
S231、统计得到的最优排列中每种毛坯的使用次数numi;
S232、计算每种毛坯的最多使用次数maxi,并比较每个maxi,取其中最小值作为该种最优排样方式的使用张数layoutnum;
S233、将该种最优排样方式的使用张数layoutnum扩充使用layoutnum次,相应的,修改当前毛坯剩余需求work_ord;
S234、重复整个步骤S2,根据更新后的当前毛坯剩余需求work_ord再次求出当前最优排列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310386393.3A CN116680861A (zh) | 2023-04-12 | 2023-04-12 | 一种基于改进遗传算法的单规格板材二维下料方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310386393.3A CN116680861A (zh) | 2023-04-12 | 2023-04-12 | 一种基于改进遗传算法的单规格板材二维下料方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680861A true CN116680861A (zh) | 2023-09-01 |
Family
ID=87777626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310386393.3A Pending CN116680861A (zh) | 2023-04-12 | 2023-04-12 | 一种基于改进遗传算法的单规格板材二维下料方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680861A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131989A (zh) * | 2023-09-04 | 2023-11-28 | 晞德求索(北京)科技有限公司 | 基于动态分配的二维下料方法和系统 |
-
2023
- 2023-04-12 CN CN202310386393.3A patent/CN116680861A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131989A (zh) * | 2023-09-04 | 2023-11-28 | 晞德求索(北京)科技有限公司 | 基于动态分配的二维下料方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116680861A (zh) | 一种基于改进遗传算法的单规格板材二维下料方法 | |
Tang et al. | Diversity-adaptive parallel memetic algorithm for solving large scale combinatorial optimization problems | |
Wu et al. | Fast Mesh Decimation by Multiple-Choice Techniques. | |
CN101957945A (zh) | 一种集装箱货物装载优化方法、装置 | |
Öztop et al. | Ensemble of metaheuristics for energy-efficient hybrid flowshops: Makespan versus total energy consumption | |
CN113671910A (zh) | 一种集成多agv柔性作业车间调度方法、装置及介质 | |
Cui | Generating optimal T-shape cutting patterns for rectangular blanks | |
Correa et al. | Approximation schemes for multidimensional packing | |
CN1717094A (zh) | 移动通信网络的划分方法 | |
CN111368421A (zh) | 一种家具板材按叠下料的分组启发式方法 | |
Cheng et al. | Solve the IRP problem with an improved discrete differential evolution algorithm | |
CN108614889B (zh) | 基于混合高斯模型的移动对象连续k近邻查询方法及系统 | |
CN116663713A (zh) | 一种大规模两重互异性矩形件的组批排样方法及系统 | |
Majhi et al. | On some geometric optimization problems in layered manufacturing | |
CN115562760A (zh) | 基于边缘计算节点打分表的深度学习模型分层卸载方法 | |
CN113900808B (zh) | 一种基于任意多面体非结构网格的mpi并行数据结构 | |
CN115344607A (zh) | 一种面向图数据的批量流式边点混合切分方法 | |
CN116484542A (zh) | 一种在矩形板材上排放单一尺寸圆形件的搜索式排样方法 | |
CN1936938A (zh) | 基于混合遗传算法的智能化配车方法 | |
CN109657296B (zh) | 一种复合材料几何模型及其周期性单胞几何模型分区方法 | |
Im et al. | An error-resilient cell-based distributed index for location-based wireless broadcast services | |
CN111900336A (zh) | 一种锂离子动力电池生产物流系统优化方法 | |
Cao et al. | A self-braking symbiotic organisms search algorithm for bi-objective reentrant hybrid flow shop scheduling problem | |
CN109902851A (zh) | 一种生产计划的确定方法以及装置 | |
Yin et al. | A Quick Heuristic-Dynamic Programming for Two-Dimensional Cutting Problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |