一种玻璃排版确定方法及系统与流程

文档序号:16251051发布日期:2018-12-12 00:02阅读:996来源:国知局
一种玻璃排版确定方法及系统与流程
本发明涉及玻璃加工领域,特别是涉及一种玻璃排版确定方法及系统。
背景技术
随着我国经济快速发展,人民生活水平的不断提高,人们对各式各样装饰材料的需求大大增加,其中对玻璃需求的增加导致了该行业的快速发展。玻璃加工行业越来越受到人们的重视,但是,现有的基于遗传算法的玻璃切割排版方法都只给出了单个目标函数,只考虑了玻璃原片的利用率,而未考虑对玻璃废料的重复利用问题,导致玻璃废料无法进一步使用,因此,玻璃的利用率不高。针对以上缺点,本发明采用多目标进化算法的方法,在保证玻璃原片利用率最大的同时,保证玻璃废料中的可重复利用面积最大,在原有基础上,进一步提高玻璃原片的利用率。技术实现要素:本发明的目的是提供一种玻璃排版确定方法及系统,以提高玻璃原片的利用率。为实现上述目的,本发明提供了如下方案:一种玻璃排版确定方法,所述方法包括:获取所有待切玻璃件和所有玻璃原片的尺寸和数量,所述尺寸包括长度和宽度;根据所有待切玻璃件和所有玻璃原片的尺寸和数量,随机生成初始种群p,所述初始种群p中包括n个个体,n≥100,每个个体为多个待切玻璃件在一个玻璃原片上的一种排版形式;根据所有待切玻璃件和所有玻璃原片的尺寸和数量,确定每个玻璃原片对应的玻璃废料中最大矩形的尺寸,所述最大矩形的尺寸包括所述最大矩形的长度和宽度;根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对所述初始种群中的所有n个个体进行分层,每一层包括多个个体,层数低的个体的优秀度高于层数高的个体的优秀度;获取每一层中每个个体的聚集距离;根据所述初始种群中每个个体的聚集距离和所处的层数,筛选出所述初始种群中的m个个体;1<m<n;将所述m个个体交叉、变异,生成变异后的种群q,所述变异后的种群q中包括m个交叉、变异后的个体;将所述初始种群p与所述变异后的种群q合并,生成种群r;对所述种群r中的所有个体进行分层;根据所述种群r的分层结果,筛选优秀度最高的n个个体;将所述n个个体确定为待用户选择的玻璃排版形式。可选的,所述根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对所述初始种群中的所有n个个体进行分层,具体包括:根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数f1(i)=(li+wi)/1000确定第i个个体的第一目标值f1(i);其中,1≤i≤n,li表示按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件长度边界的长度,wi为按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件宽度边界的长度;根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数确定第i个个体的第二目标值f2(i);其中,s为第i个个体对应的玻璃原片的面积,lj为第i个个体对应的第j个待切玻璃件的长度,wj为第i个个体对应的第j个待切玻璃件的宽度;根据每个玻璃废料中最大矩形的尺寸,利用函数确定第i个个体的第三目标值f3(i);其中,gi为第i个个体对应的玻璃废料中最大矩形的面积;根据每个个体的第一目标值、第二目标值和第三目标值,确定每个个体的优秀度;根据每个个体的优秀度,确定每个个体对应的变量和集合;所述变量为初始种群中优秀度高于当前个体的个体数量,所述集合为所述初始种群中优秀度低于当前个体的个体编号的集合;根据每个个体对应的变量和集合进行分层。可选的,所述根据每个个体对应的变量和集合进行分层,具体包括:对于第i个个体,判断所述第i个个体的变量k是否等于0,得到第一判断结果;当所述第一判断结果表示所述第i个个体的变量k等于0时,将所述第i个个体确定为第m层的个体;m≥1;当所述第一判断结果表示所述第i个个体的变量k不等于0时,判断所述第m-1层中是否存在优秀度大于所述第i个个体的优秀度的个体,得到第二判断结果;当所述第二判断结果表示所述第m-1层中存在优秀度大于所述第i个个体的优秀度的个体时,将所述第i个个体的变量更新为k-1;判断所述第i个个体更新后的变量k-1是否等于0,得到第三判断结果;当所述第三判断结果表示所述第i个个体更新后的变量k-1等于0,将所述第i个个体确定为第m+1层的个体;当所述第三判断结果表示所述第i个个体更新后的变量k-1不等于0,判断所述第m层中是否存在优秀度大于所述第i个个体的优秀度的个体;依次将所有的个体进行分层。可选的,所述根据所述初始种群中每个个体的聚集距离和所处的层数,筛选出所述初始种群中的m个个体,具体包括:从所述初始种群中随机选取n个个体;n>1;获取所述n个个体中层数最低的个体;判断所述层数最低的个体中是否包括多个个体,得到第四判断结果;当所述第四判断结果表示所述层数最低的个体中包括多个个体时,确定所述多个个体中聚集距离最大的个体;将聚集距离最大的个体确定为筛选出的m个个体中的一个个体;当所述第四判断结果表示所述层数最低的个体中不包括多个个体时,将层数最低的个体确定为筛选出的m个个体中的一个个体;依次确定筛选出的m个个体。可选的,所述将所述m个个体交叉、变异,生成变异后的种群q,具体包括:采用单点交叉的方法,对第2q-1个个体和第2q个个体进行交叉,得到交叉后的两个个体;将所述交叉后的两个个体进行交换变异,得到变异后的两个个体;依次得到所有变异后的个体。可选的,所述根据所述种群r的分层结果,筛选优秀度最高的n个个体,之后还包括:获取迭代次数;判断当前迭代是否到达迭代次数,得到第五判断结果;当所述第五判断结果表示当前迭代到达迭代次数时,将筛选的优秀度最高的n个个体确定为最终输出的n个个体;当所述第五判断结果表示当前迭代未到达迭代次数时,将筛选的优秀度最高的n个个体更新为初始种群,返回“根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对所述初始种群中的所有n个个体进行分层”。一种玻璃排版确定系统,所述系统包括:参数获取模块,用于获取所有待切玻璃件和所有玻璃原片的尺寸和数量,所述尺寸包括长度和宽度;初始种群生成模块,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,随机生成初始种群p,所述初始种群p中包括n个个体,n≥100,每个个体为多个待切玻璃件在一个玻璃原片上的一种排版形式;玻璃废料中最大矩形尺寸确定模块,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,确定每个玻璃原片对应的玻璃废料中最大矩形的尺寸,所述最大矩形的尺寸包括所述最大矩形的长度和宽度;分层模块,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对所述初始种群中的所有n个个体进行分层,每一层包括多个个体,层数低的个体的优秀度高于层数高的个体的优秀度;聚集距离获取模块,用于获取每一层中每个个体的聚集距离;第一筛选模块,用于根据所述初始种群中每个个体的聚集距离和所处的层数,筛选出所述初始种群中的m个个体;1<m<n;变异后的种群生成模块,用于将所述m个个体交叉、变异,生成变异后的种群q,所述变异后的种群q中包括m个交叉、变异后的个体;种群合并模块,用于将所述初始种群p与所述变异后的种群q合并,生成种群r;分层模块,还用于对所述种群r中的所有个体进行分层;第二筛选模块,用于根据所述种群r的分层结果,筛选优秀度最高的n个个体;确定模块,用于将所述n个个体确定为待用户选择的玻璃排版形式。可选的,所述分层模块具体包括:第一目标值确定单元,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数f1(i)=(li+wi)/1000确定第i个个体的第一目标值f1(i);其中,1≤i≤n,li表示按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件长度边界的长度,wi为按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件宽度边界的长度;第二目标值确定单元,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数确定第i个个体的第二目标值f2(i);其中,s为第i个个体对应的玻璃原片的面积,lj为第i个个体对应的第j个待切玻璃件的长度,wj为第i个个体对应的第j个待切玻璃件的宽度;第三目标值确定单元,用于根据每个玻璃废料中最大矩形的尺寸,利用函数确定第i个个体的第三目标值f3(i);其中,gi为第i个个体对应的玻璃废料中最大矩形的面积;优秀度确定单元,用于根据每个个体的第一目标值、第二目标值和第三目标值,确定每个个体的优秀度;变量和集合确定单元,用于根据每个个体的优秀度,确定每个个体对应的变量和集合;所述变量为初始种群中优秀度高于当前个体的个体数量,所述集合为所述初始种群中优秀度低于当前个体的个体编号的集合;分层单元根据每个个体对应的变量和集合进行分层。可选的,所述分层单元具体包括:第一判断子单元,用于对于第i个个体,判断所述第i个个体的变量k是否等于0,得到第一判断结果;个体确定子单元,用于当所述第一判断结果表示所述第i个个体的变量k等于0时,将所述第i个个体确定为第m层的个体;m≥1;第二判断子单元,用于当所述第一判断结果表示所述第i个个体的变量k不等于0时,判断所述第m-1层中是否存在优秀度大于所述第i个个体的优秀度的个体,得到第二判断结果;变量更新子单元,用于当所述第二判断结果表示所述第m-1层中存在优秀度大于所述第i个个体的优秀度的个体时,将所述第i个个体的变量更新为k-1;第三判断子单元,用于判断所述第i个个体更新后的变量k-1是否等于0,得到第三判断结果;个体确定子单元,还用于当所述第三判断结果表示所述第i个个体更新后的变量k-1等于0,将所述第i个个体确定为第m+1层的个体;第二判断子单元,还用于当所述第三判断结果表示所述第i个个体更新后的变量k-1不等于0,判断所述第m层中是否存在优秀度大于所述第i个个体的优秀度的个体;依次将所有的个体进行分层。可选的,所述第一筛选模块具体包括:个体选取单元,用于从所述初始种群中随机选取n个个体;n>1;层数获取单元,用于获取所述n个个体中层数最低的个体;第四判断单元,用于判断所述层数最低的个体中是否包括多个个体,得到第四判断结果;聚集距离确定单元,用于当所述第四判断结果表示所述层数最低的个体中包括多个个体时,确定所述多个个体中聚集距离最大的个体;个体确定单元,用于将聚集距离最大的个体确定为筛选出的m个个体中的一个个体;个体确定单元,还用于当所述第四判断结果表示所述层数最低的个体中不包括多个个体时,将层数最低的个体确定为筛选出的m个个体中的一个个体。根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明在传统玻璃排版优化目标的基础上,将玻璃废料中的最大可重复利用面积也作为一个优化目标,进行玻璃排版优化,使得在玻璃切割中产生的废料,也可继续作为后续玻璃切割的原片材料,进一步提高玻璃原片的利用率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明玻璃排版确定方法的流程示意图;图2为本发明玻璃排版确定系统的结构示意图;图3为本发明具体实施方式中未考虑废料重复利用问题得到的玻璃排版优化效果示意图;图4为本发明具体实施方式中考虑废料重复利用问题得到的玻璃排版优化效果示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。图1为本发明玻璃排版确定方法的流程示意图。如图1所示,所述方法包括:步骤101:获取所有待切玻璃件和所有玻璃原片的尺寸和数量。尺寸包括长度和宽度。玻璃原片是指用于切割的玻璃原材料,待切玻璃件是指客户要求得到的玻璃产品。步骤102:根据所有待切玻璃件和所有玻璃原片的尺寸和数量,随机生成初始种群。初始种群p中包括n个个体,n≥100,例如初始种群的个体可以为100个。在多目标进化算法里面,初始种群中个体的个数一般取大于或等于100个,尽量保证种群的多样性,比如取100个或200个。每个个体都代表一个解,代表多个待切玻璃件在一个玻璃原片上的一种排版形式。每个个体采用特殊的波兰表达式表示,假设其中一个个体编码方式如表1示例(假设只有1号,2号,3号待切玻璃):表1个体编码方式(示例)123-1-212166第一行1,2,3分别代表1号,2号,3号玻璃。-1,-2分别代表垂直排列和水平排列。先将表格第一行的后缀表达式,转化成一颗二叉树。转化方法如下,对于表格中第一行1,2,3,-1,-2这一序列,首先初始化一个含有5个(和序列长度一致)存储空间的空栈。扫描第一个参数,如果是表示玻璃序号的参数1号,2号,3号就进栈(栈是数据结构里面的一个概念),继续扫描下一个元素。如果是表示排列方式的参数-1,-2就从栈里面弹出两个元素形成一个子树。例如对于上述表格中第一行的序列,扫描到1,进栈,扫描到2,进栈,扫描到3,进栈。扫描到-1,弹出3和2两个元素,形成一个子树,先弹出的元素作为右子树,后弹出的元素作为左子树。-1代表先弹出的3号玻璃(-1的右子树)垂直排列在后弹出的2号玻璃(-1的左子树)下面,将这个3号玻璃和2号玻璃形成的整体压入栈中。继续扫描,扫描到-2,弹出3号和2号玻璃形成的整体(-2的右子树)以及1号玻璃(-2的左子树),-2表示先弹出的3号和2号玻璃形成的整体水平排列在后弹出的1号玻璃的右边。第二行的数据1,2分别代表第一行对应玻璃是横向摆放还是竖向摆放。6,7分别代表当前待操作玻璃(如下说明)与上一块玻璃的对齐方式,6代表沿上边缘或左边缘对齐,7代表沿右边缘或下边缘对齐。例如,表格第一行1,2,3,-1,-2分别对应第二行的1,2,1,6,6。表格中第一行1对应第二行1,表示1号玻璃竖向摆放。第一行2对应第二行2,表示2号玻璃横向摆放。第一行3对应第二行1,表示3号玻璃竖向摆放。结合表格与上述转化之后的二叉树,第一行-1对应第二行6,-1代表右子树3号玻璃垂直排列在左子树2号玻璃下面。6表示-1的右子树3号玻璃沿左边缘对齐左子树2号玻璃(垂直排列沿左边沿对齐,水平排列沿上边沿对齐)。第一行-2对应第二行6,-2代表右子树(3号和2号玻璃整体)排列在左子树1号玻璃的右边。6代表右子树(3号和2号玻璃整体)沿上边沿对齐。步骤103:根据所有待切玻璃件和所有玻璃原片的尺寸和数量,确定每个玻璃原片对应的玻璃废料中最大矩形的尺寸。所述最大矩形的尺寸包括所述最大矩形的长度和宽度。每一个玻璃原片按照对应的排版方式排版后,剩余玻璃废料中,可以切割成不同的矩形。在这些不同的矩形当中最大的矩形的面积就为gi。gi越大表示废料可切割成的最大面积越大,而最大面积的废料又可作为小型号待切件的玻璃原材料,以后可再次利用,所以gi越大,废料的可重复利用面积就越大。步骤104:根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对初始种群中的所有个体进行分层。每一层包括多个个体,层数低的个体的优秀度高于层数高的个体的优秀度。分层步骤具体如下:(1)根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数f1(i)=(li+wi)/1000确定第i个个体的第一目标值f1(i);其中,1≤i≤n,li表示按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件长度边界的长度,长度未超出时li等于0;wi为按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件宽度边界的长度,宽度未超出时wi等于0。如果某个个体编码表示的排版方法,超出玻璃原片边界的长度和宽度越大,那么这个个体的第一个目标值就越大,超出玻璃原片边界的长度和宽度越小,那么这个个体的第一个目标值就越小。如果第一个目标值是0,表示这个个体所代表的玻璃排版方法未超出边界,满足实际需求。(2)根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数确定第i个个体的第二目标值f2(i);其中,s为第i个个体对应的玻璃原片的面积,lj为第i个个体对应的第j个待切玻璃件的长度,wj为第i个个体对应的第j个待切玻璃件的宽度。若排版完成后,待切玻璃件尺寸超出玻璃原片面积,则设此个体第二目标值为1,表示这个个体所表示的排版方法不符合实际要求;否则,根据上述函数计算出结果。表示单个玻璃原片的利用率,个体所表示的排版方法单个玻璃原片的利用率越高,第二个目标值越小。个体所表示的排版方法单个玻璃原片的利用率越低,第二个目标值越大。(3)根据每个玻璃废料中最大矩形的尺寸,利用函数确定第i个个体的第三目标值f3(i);其中,gi为第i个个体对应的玻璃废料中最大矩形的面积。若排版完成后,按照个体编码所表示的排版方式超出了玻璃原片大小,则设此个体第三目标值为1;否则,根据上述函数计算出结果。表示废料中可重复利用面积占玻璃原片的比例,当个体的第三个目标值越小,代表废料中可重复利用面积占玻璃原片的比例越大,当个体的第三个目标值越大,代表废料中可重复利用面积占玻璃原片的比例越小。(4)根据每个个体的第一目标值、第二目标值和第三目标值,确定每个个体的优秀度。每个个体的优秀度用(f1(i),f2(i),f3(i))表示。在多目标进化算法里面,当a个体比b个体优秀时,称为apareto支配b,简称a支配b。假设a个体有两个目标值分别是1和2,表示为a(1,2),b个体有两个目标值,表示为b(3,4),假设两个目标值都是越小越好,可以观察到a的两个目标值都分别小于b的两个目标值,所以a支配(pareto支配)b,b就是被a支配的个体,即a的优秀度高于b的优秀度。假设两个个体分别为a(2,4),b(2,5),那么a个体只有第二个子目标比b个体优秀,第一个子目标和b个体相同,这时候也称a个体支配b个体。假设a(1,7),b(2,5),可以看出a个体第一个子目标比b个体优秀,第二个子目标比b个体差,那么就称a个体与b个体互不支配。(5)根据每个个体的优秀度,确定每个个体对应的变量和集合;所述变量为初始种群中优秀度高于当前个体的个体数量,所述集合为所述初始种群中优秀度低于当前个体的个体编号的集合。假设当前个体为1号个体,1号个体的变量n代表支配当前个体的个体数,是一个数量,也就是代表2号个体到n号个体中,有多少个个体支配1号个体(有多少个个体比1号个体优秀)。s代表一个集合,1号个体的s集合代表2号个体到n号个体中,有哪些个体被1号个体支配(有哪些个体比1号个体差),把被1号个体支配的个体序号存储在1号个体的s集合里面。(6)根据每个个体对应的变量和集合进行分层。具体过程如下:对于第i个个体,判断所述第i个个体的变量k是否等于0,得到第一判断结果;当所述第一判断结果表示所述第i个个体的变量k等于0时,将所述第i个个体确定为第m层的个体;m≥1;当所述第一判断结果表示所述第i个个体的变量k不等于0时,判断所述第m-1层中是否存在优秀度大于所述第i个个体的优秀度的个体,得到第二判断结果;当所述第二判断结果表示所述第m-1层中存在优秀度大于所述第i个个体的优秀度的个体时,将所述第i个个体的变量更新为k-1;判断所述第i个个体更新后的变量k-1是否等于0,得到第三判断结果;当所述第三判断结果表示所述第i个个体更新后的变量k-1等于0,将所述第i个个体确定为第m+1层的个体;当所述第三判断结果表示所述第i个个体更新后的变量k-1不等于0,判断所述第m层中是否存在优秀度大于所述第i个个体的优秀度的个体;依次将所有的个体进行分层。例如,第一层个体的确定:首先判断种群中每个个体的n是否等于0,若是,则为第一层非支配个体。每个个体的变量,代表在当前种群当中比当前个体优秀的个体的数量。如果当前个体的变量的值为0,表示在当前种群当中没有其他个体比当前个体优秀,那么当前个体就为最优秀的个体之一。在初始种群中,每一个个体在两两逐个比较支配关系之后,都有自己的变量值。判断每一个个体的变量值,如果这个值是0,表示这个个体非常优秀,不被其他任何个体支配,把这个个体从种群中分离,放到一个集合当中,种群中变量值为0的所有个体组成的集合就是第一层非支配个体的集合。第二层个体的确定:将初始种群中第一层非支配个体分离,在剩余个体当中找出被第一层个体支配的个体,假设是15号,19号,28号个体,将这3个个体的变量值分别都减一,表示第一层非支配个体分离出群体之后,在当前群体当中支配15号,19号,28号的个体减少了一个。然后继续判断种群中所有剩余个体的变量值是否等于0,若是,则为第二层非支配个体。重复以上步骤,直至所有个体分层结束。将初始种群分层完毕之后,每一个个体都属于某一个层次。属于第一层的个体是整个种群中最优秀个体集合。第二层里面的个体,是除第一层个体之外,种群当中最优秀的个体构成的集合,依次类推,层次越低的个体越优秀。步骤105:获取每一层中每个个体的聚集距离。每个个体的聚集距离,代表着个体与周围个体(同一层当中)距离的远近。聚集距离越大,个体与周围个体距离越远。聚集距离越小,个体与周围个体距离越近。计算每一个个体的聚集距离是为了保持个体的分布性。例如种菜播种的时候,为了每颗种子更好的成长,我们把种子均匀的播种在菜地上,而不会把所有的种子播种在一个小区域内。在多目标进化算法中,我们最后可以获得种群中最优秀的一些个体,而不是一个个体。这个个体之间互不支配(同等优秀),所以我们希望得到的个体能均匀分布在所有最好的解决办法上,而不是集中在一个点上。具体公式如下:式中,p[i]distance为个体i的聚集距离,p[i].k为个体i在子目标k上的函数值。r代表目标个数。在计算每个个体的聚集距离时,需要对群体按每个子目标函数值进行降序排列。步骤106:根据初始种群中每个个体的聚集距离和所处的层数,筛选出初始种群中的m个个体。1<m<n。筛选过程采用锦标赛选择。具体过程如下:从初始种群中随机选择n个个体(n>1;算法中n取2)。找出n个个体当中,最优秀的个体(即所在层次最小的个体,若在同一层有多个个体,找聚集距离最大的个体)进入匹配池,重复当前操作,直至匹配池满。进行锦标赛选择,是为了把种群中较为优秀的个体放到匹配池里面(非常优秀的个体可能多次放入匹配池),而表现差的个体很难进入匹配池。优秀的个体经过交叉、变异生成的子代,会有更大的概率变得更加优秀。步骤107:将m个个体交叉、变异,生成变异后的种群q。所述变异后的种群q中包括m个交叉、变异后的个体。采用单点交叉的方法,对第2q-1个个体和第2q个个体进行交叉,得到交叉后的两个个体;将所述交叉后的两个个体进行交换变异,得到变异后的两个个体;依次得到所有变异后的个体。例如,匹配池中有100个个体,将这100个个体依次编号1号,2号......100号。依次选择1号,2号个体进行交叉,变异生成新的两个个体,假设为a个体和b个体,将a个体和b个体放入到q种群中,然后继续依次选择3号,4号个体生成c个体和d个体,重复以上操作直到产生了100个新个体放入到了q种群当中。步骤108:将初始种群与变异后的种群合并,生成种群r。此处以初始种群p包括100个个体、种群q包括100个个体为例。将初始种群p(100个个体)和子种群q(100个个体)合并成大集合r(200个个体),是为了将r(200个个体)大集合中优秀的个体(最优秀的100个个体)给选择出来,形成新的p(100个个体)种群。步骤109:对种群r中的个体进行分层。按照步骤104的分层方式进行分层。步骤1010:根据种群r的分层结果,筛选优秀度最高的n个个体。以r种群是一个拥有200个个体的种群为例,根据步骤104里面分层的方法,每一个个体都会被分配到相应的层次当中。层次越低的个体越优秀,从200个体当中选择出100个体最优秀的个体。先把第一层的个体选择出来,加入到新总群p中,若不超过100个,那么继续把第二层的个体加入到新总群p中,继续添加,若把某一层的个体加入进新种群p之后,新种群中个体的个数超过了100个,则把这一层中聚集距离大的个体加入到新种群p中,使得新种群中总个体的个数刚好为100个。之后需要判断是否满足停止条件,具体如下:获取迭代次数;判断当前迭代是否到达迭代次数,得到第五判断结果;当所述第五判断结果表示当前迭代到达迭代次数时,结束迭代,将筛选的优秀度最高的n个个体确定为最终输出的n个个体;当所述第五判断结果表示当前迭代未到达迭代次数时,将筛选的优秀度最高的n个个体更新为初始种群,返回步骤104,继续迭代。步骤1011:将n个个体确定为待用户选择的玻璃排版形式。本发明采用多目标进化算法里面的nsga-ii算法,将初始种群执行完一遍nsga-ii算法的流程即为种群迭代一次,当种群迭代到指定的次数(例如指定为500代),结束程序,输出种群当中满足要求的个体。图2为本发明玻璃排版确定系统的结构示意图。如图2所示,所述系统包括:参数获取模块201,用于获取所有待切玻璃件和所有玻璃原片的尺寸和数量,所述尺寸包括长度和宽度;初始种群生成模块202,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,随机生成初始种群p,所述初始种群p中包括n个个体,n≥100,每个个体为多个待切玻璃件在一个玻璃原片上的一种排版形式;玻璃废料中最大矩形尺寸确定模块203,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,确定每个玻璃原片对应的玻璃废料中最大矩形的尺寸,所述最大矩形的尺寸包括所述最大矩形的长度和宽度;分层模块204,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量及每个玻璃废料中最大矩形的尺寸,对所述初始种群中的所有n个个体进行分层,每一层包括多个个体,层数低的个体的优秀度高于层数高的个体的优秀度;聚集距离获取模块205,用于获取每一层中每个个体的聚集距离;第一筛选模块206,用于根据所述初始种群中每个个体的聚集距离和所处的层数,筛选出所述初始种群中的m个个体;1<m<n;变异后的种群生成模块207,用于将所述m个个体交叉、变异,生成变异后的种群q,所述变异后的种群q中包括m个交叉、变异后的个体;种群合并模块208,用于将所述初始种群p与所述变异后的种群q合并,生成种群r;分层模块204,还用于对所述种群r中的所有个体进行分层;第二筛选模块209,用于根据所述种群r的分层结果,筛选优秀度最高的n个个体;确定模块2010,用于将所述n个个体确定为待用户选择的玻璃排版形式。其中,所述分层模块204具体包括:第一目标值确定单元,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数f1(i)=(li+wi)/1000确定第i个个体的第一目标值f1(i);其中,1≤i≤n,li表示按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件长度边界的长度,wi为按照所述第i个个体完成排版后,待切玻璃件超出玻璃原件宽度边界的长度;第二目标值确定单元,用于根据所有待切玻璃件和所有玻璃原片的尺寸和数量,利用函数确定第i个个体的第二目标值f2(i);其中,s为第i个个体对应的玻璃原片的面积,lj为第i个个体对应的第j个待切玻璃件的长度,wj为第i个个体对应的第j个待切玻璃件的宽度;第三目标值确定单元,用于根据每个玻璃废料中最大矩形的尺寸,利用函数确定第i个个体的第三目标值f3(i);其中,gi为第i个个体对应的玻璃废料中最大矩形的面积;优秀度确定单元,用于根据每个个体的第一目标值、第二目标值和第三目标值,确定每个个体的优秀度;变量和集合确定单元,用于根据每个个体的优秀度,确定每个个体对应的变量和集合;所述变量为初始种群中优秀度高于当前个体的个体数量,所述集合为所述初始种群中优秀度低于当前个体的个体编号的集合;分层单元根据每个个体对应的变量和集合进行分层。所述分层单元具体包括:第一判断子单元,用于对于第i个个体,判断所述第i个个体的变量k是否等于0,得到第一判断结果;个体确定子单元,用于当所述第一判断结果表示所述第i个个体的变量k等于0时,将所述第i个个体确定为第m层的个体;m≥1;第二判断子单元,用于当所述第一判断结果表示所述第i个个体的变量k不等于0时,判断所述第m-1层中是否存在优秀度大于所述第i个个体的优秀度的个体,得到第二判断结果;变量更新子单元,用于当所述第二判断结果表示所述第m-1层中存在优秀度大于所述第i个个体的优秀度的个体时,将所述第i个个体的变量更新为k-1;第三判断子单元,用于判断所述第i个个体更新后的变量k-1是否等于0,得到第三判断结果;个体确定子单元,还用于当所述第三判断结果表示所述第i个个体更新后的变量k-1等于0,将所述第i个个体确定为第m+1层的个体;第二判断子单元,还用于当所述第三判断结果表示所述第i个个体更新后的变量k-1不等于0,判断所述第m层中是否存在优秀度大于所述第i个个体的优秀度的个体;依次将所有的个体进行分层。所述第一筛选模块具体包括:个体选取单元,用于从所述初始种群中随机选取n个个体;n>1;层数获取单元,用于获取所述n个个体中层数最低的个体;第四判断单元,用于判断所述层数最低的个体中是否包括多个个体,得到第四判断结果;聚集距离确定单元,用于当所述第四判断结果表示所述层数最低的个体中包括多个个体时,确定所述多个个体中聚集距离最大的个体;个体确定单元,用于将聚集距离最大的个体确定为筛选出的m个个体中的一个个体;个体确定单元,还用于当所述第四判断结果表示所述层数最低的个体中不包括多个个体时,将层数最低的个体确定为筛选出的m个个体中的一个个体。具体实施方式:第一步:先统计所有待切割玻璃块和玻璃原片的长度、宽度和数量。假设需要排版的玻璃和玻璃原片的型号如表2和表3所示:表2待切玻璃件的尺寸和数量123456789长度(mm)14801280170080015402020800770760宽度(mm)1320680840360780800440440600数量111111111表3玻璃原片的尺寸和数量长度(mm)4000宽度(mm)2500数量1第二步:随机生成含有100个个体的初始种群p,产生的个体示例如下。每个个体含有一张列表,记录着这个个体代表的所有待切玻璃在玻璃原片上的排列方法,下面举出初始种群中三个个体的编码:个体1:15-242-289-2-1-276-23-2-111612721666126267个体2:16-134-287-2-1592-2-1-1-211611216667216226个体3:726-2-28-235149-1-2-2-2-112266161111166667第三步:计算初始种群中每个个体的第一目标值,第二目标值和第三目标值。第四步:根据初始种群中的每个个体的三个目标值,将初始种群中的所有个体进行分层。第五步:计算种群中每一个个体的聚集距离。第六步:进行锦标赛选择。从初始种群中随机选择n(算法中n取2)个个体。找出n个个体当中,最优秀的个体(所在层次最小的个体,若在同一层有多个个体,找聚集距离最大的个体)进入匹配池,重复当前操作,直至匹配池满。第七步:将匹配池中的个体,交叉、变异、生成新一代种群q。第八步:p种群和q种群合并成r种群。第九步:将r种群中每个个体进行分层。根据步骤104的分层方法将r种群进行分层,并生成新种群p。第十步:判断是否到达指定迭代次数。若不是,新生成的p种群作为初始种群,继续迭代。若是,输出满足要求的解,结束程序。最后程序运行得到满足要求的其中一个解的数据如下表所示:表4满足要求的其中一个解79-11342-1-2-2-268-25-2-111611216667216267图3为本发明具体实施方式中未考虑废料重复利用问题得到的玻璃排版优化效果示意图;图4为本发明具体实施方式中考虑废料重复利用问题得到的玻璃排版优化效果示意图。图3中,玻璃原片利用率为85.04%,废料的可重复利用率仅为5.58%。本发明在考虑玻璃原片利用率的同时也考虑了玻璃废料的重复利用问题,尽可能的使得玻璃余料集中在一起,使得玻璃废料作为以后小型号待切玻璃的玻璃原片,可再次利用。图4中,玻璃原片利用率也为85.04%,但废料的可重复利用率到达了7.92%,进一步节约了玻璃原料,提高了玻璃原片的利用率。关于用遗传算法解决玻璃排版问题,目前提出的算法都只考虑了每块玻璃原片的利用率,没有考虑玻璃原片废料的再次利用问题,本发明提出算法的创新之处在于,在保证单片玻璃原片利用率的同时,也保证了单片玻璃废料的可重复利用面积最大,进一步节约了原材料,降低了生产成本。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1