一种带缺陷板材排样的分支迭代方法及系统
文献发布时间:2023-06-19 19:27:02
技术领域
本发明涉及板材排样技术领域,特别是一种带缺陷板材排样的分支迭代方法及系统。
背景技术
二十一世纪以来,随着经济的快速发展,企业的生产规模逐渐扩大,资源消耗的越来越多。排样问题与日常生活息息相关,排样的效果优良性直接影响原材料利用率,资源没有充分利用而造成浪费的同时,也给环境带来了污染。我国作为制造大国,每年需要大量的原材料用于制造各种产品。其中相当一部分材料需要进行切割,如果能将材料的利用率提高一个百分点,所带来的经济效益是非常显著的。
在许多制造业中,通常需要将原材料切割成不同类型的零件,来用于加工生产。例如木制板材及玻璃的切割,这类问题称之为二维排样优化问题。然而,由于其性质和制造工艺的影响,原料中可能存在缺陷,不能被用于生产。例如,木材中含有的结点,玻璃在加工过程中出现的气泡,钢铁中含有的污染区域,天然皮革中存在的孔洞。因此,在原材料切割中,需要规避这些区域,并且使原材料的利用率尽可能大。除此之外,还需要满足若干约束,如“一刀切”和“非一刀切”、是否限制货物的最大数量、货物切割方向是否可旋转等。尽管在不同工业领域中的排样有各种不同的限制约束,但是它们共同的基本问题在于找到所需部件在原材料上一种有效的布排,使得原材料上平面区域的面积利用率较高,以尽可能的节约原材料。
目前,现有技术主要是针对于无缺陷的排样问题,主要方法可分为精确求解算法、智能优化算法和启发式算法。而对于带缺陷的卷型材排样问题,目前研究较少,主要运用的是启发式算法和智能优化算法。启发式算法是一个基于直观或经验构造出来的算法,在一定时间内得到一个可行解,但是该可行解的质量无法保障,且每次得到的可行解不稳定,也无法判断是否为最优解。智能优化算法一般都是基于在生物智能或物理现象基础上的随机搜索算法,主要有模拟退火算法和遗传算法等。模拟退火是一种有可能得到优化问题的全局最优解的问题求解方法,并且已经逐步成为一种用于优化问题求解的一般、通用的方法,但是这是以极其漫长的退火过程即问题求解过程为代价的,求解效率低下。遗传算法具有良好的全局搜索能力的算法,但是搜索时间较长,进化效率低,收敛速度慢和易陷入局部最优解的缺点。故一种能够大幅度的减少算法的搜索空间,提高算法的收敛速度的排样方法亟待出现。
发明内容
针对上述缺陷,本发明的目的在于提出一种带缺陷板材排样的分支迭代方法及系统,以提高算法的收敛速度。
为达此目的,本发明采用以下技术方案:一种带缺陷板材排样的分支迭代方法,包括以下步骤:
步骤S1:设置最大角点限制数量K1,并将初始排布状态存储入排布队列Q中,其中所述排布队列Q中排布状态按照排布状态的价值上界值从大到小依次向下排序;
步骤S2:获取排布队列Q中顶层的排布状态T1,在该排布状态T1下,在某个角点依次放入需要切割的目标块,更新得到的排布状态T2;
步骤S3:获取排布状态T2的角点数量K2,判断最大角点限制数量K1是否大于角点数量K2,若小于,则舍弃该排布状态T2,若大于或等于,则将该计算该排布状态T2的价值上界值;
判断所述排布状态T2的价值上界值是否大于当前最佳价值上界值,若不大于,则舍弃排布状态T2,若大于,则判断该排布状态T2与排布队列Q中其他的排布状态T2是否存在有重复,若重复,则舍去该排布状态T2,若不重复,则将排布状态T2保留在排布队列Q;
步骤S4:获取排布队列Q中所有排布状态T2的价值S1,并与当前最佳价值S2比较,若大于当前最佳价值S2,则调用贪婪启发式算法,加速该排布状态T2至完全状态T2,其中所述完全状态为所有角点都无法放入目标块的状态,计算完全状态T2的价值S1,若小于当前最佳价值S2,则舍去该排布状态T2;
将完全状态T2中最高的价值S1更新作为当前最佳价值S2;
步骤S5:更换排布状态T1的角点,并重复步骤S2~S4,直至排布状态T1角点都被遍历后,更换排布队列Q的下一个排布状态T1,并重复步骤S2~S5,直至排布队列Q内所有的排布状态都被遍历;
步骤S6:最大角点限制数量K1加一,将排布队列Q中的排布状态T2更新为排布状态T1,并重复步骤S2~S6,直至所有的目标块都被放入,获取价值上界值最高的排布方案作为最终排布方案。
优选的,价值上界值的获取方法如下:
将排布状态划分为目标块区域以及空闲区域,获取目标块区域中目标块的价值以及空闲区域中能排布目标块的价值上界两者之和作为所述价值上界值,
其中,所述空闲区域中能排布目标块的价值上界获取公式如下:
S
其中u(P)的获取过程为将空闲区域中能排布目标块的价值松弛为计算背包问题的最优值,其中u(P)的计算公式如下:
其中z
u(V)的获取过程为将空闲区域垂直划分为m个单位宽度的长条,累计每一个长条的的最大价值之和作为u(V);
u(V)的获取公式如下:
其中
u(H)的获取过程为将空闲区域水平划分为m个单位宽度的长条,累计每一个长条的的最大价值之和作为u(H);
u(H)的获取公式如下:
其中
一种带缺陷板材排样的分支迭代系统,使用所述一种带缺陷板材排样的分支迭代方法,包括设置模块、更新模块、选择模块、比较模块、第一循环模块以及第二循环模块;
所述设置模块用于设置最大角点限制数量K1,并将初始排布状态存储入排布队列Q中;
所述更新模块用于获取排布队列Q中顶层的排布状态T1,在该排布状态T1下,在某个角点依次放入需要切割的目标块,更新得到的排布状态T2;
所述选择模块用于获取排布状态T2的角点数量K2,判断最大角点限制数量K1是否大于角点数量K2,若小于,则舍弃该排布状态T2,若大于或等于,则将该计算该排布状态T2的价值上界值;
判断所述排布状态T2的价值上界值是否大于当前最佳价值上界值,若不大于,则舍弃排布状态T2,若大于,则判断该排布状态T2与排布队列Q中其他的排布状态T2是否存在有重复,若重复,则舍去该排布状态T2,若不重复,则将排布状态T2保留在排布队列Q;
所述比较模块用于获取排布队列Q中所有排布状态T2的价值S1,并与当前最佳价值S2比较,若大于当前最佳价值S2,则调用贪婪启发式算法,加速该排布状态T2至完全状态T2,其中所述完全状态为所有角点都无法放入目标块的状态,计算完全状态T2的价值S1,若小于当前最佳价值S2,则舍去该排布状态T2;
将完全状态T2最高的价值S1更新作为当前最佳价值S2;
所述第一循环模块用于更换排布状态T1的角点,并重新调用更新模块、选择模块以及比较模块,直至排布状态T1角点都被遍历后,更换排布队列Q的下一个排布状态T1,并在此重新调用更新模块、选择模块以及比较模块,直至排布队列Q内所有的排布状态都被遍历后调用第二循环模块;
所述第二循环模块用于最大角点限制数量K1加一,将排布队列Q中的排布状态T2更新为排布状态T1,并重复步骤更新模块、选择模块、比较模块以及第一循环模块,直至所有的目标块都被放入,获取价值上界值最高的排布方案作为最终排布方案。
优选的,还包括价值上界值计算模块;
所述价值上界值计算模块用于将排布状态划分为目标块区域以及空闲区域,获取目标块区域中目标块的价值以及空闲区域中能排布目标块的价值上界两者之和作为所述价值上界值。
上述技术方案中的一个技术方案具有如下优点或有益效果:本发明基于分支的迭代求解算法,该算法能精准快速的求解出带缺陷排样最优解,而且进化方向明确,具有进化效率高,收敛速度快等优点。基于本发明的方法可以易于设计出操作的可视化界面,为企业生产提供高效的指导方案。
附图说明
图1是本发明方法的一个实施例的流程图;
图2是本发明系统的一个实施例的结构示意图;
图3是本发明的一个实施例中初始排布状态的示意图;
图4是本发明的一个实施例中不同排布状态T2的示意图;
图5是图4中A目标块加速排布过程产生的不同排布状态的示意图;
图6是本发明的一个实施例中不同放置顺序排布状态T2的示意图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的实施方式的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
如图1~6所示,一种带缺陷板材排样的分支迭代方法,包括以下步骤:
步骤S1:设置最大角点限制数量K1,并将初始排布状态存储入排布队列Q中,其中所述排布队列Q中排布状态按照排布状态的价值上界值从大到小依次向下排序;
最大角点限制数量K1与初始排布状态存有关联,当初始排布状态只存在有一个角点(即没有放置目标块)时,若目标块的形状为矩形,此时最大角点限制数量K1为3,当初始排布状态有两个角点时,所述最大角点限制数量K1为4,即在矩形的目标块切割中,最大角点限制数量K可以为初始排布状态的角点数加2,但是具体的最大角点限制数量K还是需要根据具体目标块的形状来进行设置。
步骤S2:获取排布队列Q中顶层的排布状态T1,在该排布状态T1下,在某个角点依次放入需要切割的目标块,更新得到的排布状态T2;
步骤S3:获取排布状态T2的角点数量K2,判断最大角点限制数量K1是否大于角点数量K2,若小于,则舍弃该排布状态T2,若大于或等于,则将该计算该排布状态T2的价值上界值;
判断所述排布状态T2的价值上界值是否大于当前最佳价值上界值,若不大于,则舍弃排布状态T2,若大于,则判断该排布状态T2与排布队列Q中其他的排布状态T2是否存在有重复,若重复,则舍去该排布状态T2,若不重复,则将排布状态T2保留在排布队列Q;
由于在目标块放入时,角点的位置是随机任意的,所以不同的排布状态T1,在放入目标块后,变更为相同排布状态T2,如图6所示,目标块中的数字表示放入的顺序。为了避免重复的排布状态T2保留在排布队列Q中,进行重复的计算,影响整体的运算速度。故在将排布状态T2保留前,需要进一步判断该排布状态T2是否与排布队列Q中保留的排布状态重复。
步骤S4:获取排布队列Q中所有排布状态T2的价值S1,并与当前最佳价值S2比较,若大于当前最佳价值S2,则调用贪婪启发式算法,加速该排布状态T2至完全状态T2,其中所述完全状态为所有角点都无法放入目标块的状态,计算完全状态T2的价值S1,若小于当前最佳价值S2,则舍去该排布状态T2;
将完全状态T2中最高的价值S1更新作为当前最佳价值S2;
步骤S5:更换排布状态T1的角点,并重复步骤S2~S4,直至排布状态T1角点都被遍历后,更换排布队列Q的下一个排布状态T1,并重复步骤S2~S5,直至排布队列Q内所有的排布状态都被遍历;
步骤S6:最大角点限制数量K1加一,将排布队列Q中的排布状态T2更新为排布状态T1,并重复步骤S2~S6,直至所有的目标块都被放入,获取价值上界值最高的排布方案作为最终排布方案。
有益效果:目标块为待切割的物体形状,阶梯线每个水平线段的左端点称为角点。
在一个实施例中,如图3所示中的黑点1角点,在设置最大角点限制数量K1时,是根据初始排布状态来进行设置的,例如在初始排布状态下是没有放入目标块的,此时最大角点限制数量K1设置为3。
然后开始进行迭代处理,由于初始排布状态下是没有放入目标块,此时排布队列Q中只有一个排布状态,并不需要并不需要进行价值上界值的排序,用该初始排布状态作为排布状态T1,并在排布状态T1的任一角点处顺序放入目标块,更新得到的排布状态T2,例如在一个实施例中是有三个目标块需要进行切割,此时分别三个目标块放入到原点处,得到三个排布状态T2,如图4所示,此时分别获取得到三个排布状态T2,以及获取排布状态T2的角点数量K2均为2,此时角点数量K2是小于最大角点限制数量K1的,则分别计算三个排布状态T2的价值上界值。由于排布状态T1中没有放入目标块,则此时当前最佳价值上界值为0,所以三个排布状态T2均可以进行保留,然后分别再次计算三个三个排布状态T2的价值S1,其中价值的计算视目标块而定,与目标块在生产中的重要性(由销售价格、生产期限等多个方面共同决定)以及面积共同决定。当目标块的重要性一致时,则目标块的面积越大,其价值越高。当前最佳价值S2中由于初始排布状态没有放入目标块,则此时当前最佳价值S2为0。若在本实施例中所有目标块的重要性都一致,则三个排布状态T2都试用贪婪启发式算法进行加速,得到三个完全状态T2,其中完全状态T2也是需要满足角点数量K2小于最大角点限制数量K1的限制,如图5所示,在第一个排布状态T2加速后,得到4个状态,但是这个4个状态均不符合角点限制的要求,均需要舍弃,所以第一个排布状态T2的完全状态T2为原来的状态。其他两个排布状态T2均以此类推得到相应的完全状态T2。此时由于目标块的重要性都一致,所以第一完全状态T2中目标块A的面积最大,将目标块的价值S1更新为当前最佳价值S2。然后执行步骤S5,由于在本实施例中初始排布状态下只有一个角点,所以步骤S5中角点已经被遍历完。然后更排布队列Q的下一个排布状态T1,此时初始排布状态只有1个,所以无需更换下一排布状态T1,然后执行步骤S6,此时所述最大角点限制数量K1加1,最大角点限制数量K1为4个,并在此执行步骤S2~S6,直到所有的目标块均被放入。此时会得到多个排布方案,在排布方案中计算得到价值上界值最高的排布方案作为最终的排布方案。
本发明基于分支的迭代求解算法,该算法能精准快速的求解出带缺陷排样最优解,而且进化方向明确,具有进化效率高,收敛速度快等优点。基于本发明的方法可以易于设计出操作的可视化界面,为企业生产提供高效的指导方案。
优选的,价值上界值的获取方法如下:
将排布状态划分为目标块区域以及空闲区域,获取目标块区域中目标块的价值以及空闲区域中能排布目标块的价值上界两者之和作为所述价值上界值,
其中,所述空闲区域中能排布目标块的价值上界获取公式如下:
S
其中u(P)的获取过程为将空闲区域中能排布目标块的价值松弛为计算背包问题的最优值,其中u(P)的计算公式如下:
其中z
u(V)的获取过程为将空闲区域垂直划分为m个单位宽度的长条,累计每一个长条的的最大价值之和作为u(V);
u(V)的获取公式如下:
其中
u(H)的获取过程为将空闲区域水平划分为m个单位宽度的长条,累计每一个长条的的最大价值之和作为u(H);
u(H)的获取公式如下:
/>
其中
利用长度h的计算具体等于长条长度减去长条上缺陷的长度。
在本发明由于算法基于阶梯线的放置策略,对排布状态划分为目标块区域以及空闲区域。而其中所述价值上界值等于目标块区域的价值(可以为目标块的综合面积)以及空闲区域中能排布目标块的价值上界共同计算得出,同时为了计算出来的空闲区域中能排布目标块的价值上界,本发明中设置有三个计算空闲区域中能排布目标块的价值上界的方法,然后选取三者中最小的值作为空闲区域中能排布目标块的价值上界,此做法能够从多个方面计算得到最优的空闲区域中能排布目标块的价值上界,确保本发明的正常使用。其中在公式(2)用于约束可排布总面积小于空闲区域可利用面积。
一种带缺陷板材排样的分支迭代系统,使用所述一种带缺陷板材排样的分支迭代方法,包括设置模块、更新模块、选择模块、比较模块、第一循环模块以及第二循环模块;
所述设置模块用于设置最大角点限制数量K1,并将初始排布状态存储入排布队列Q中;
所述更新模块用于获取排布队列Q中顶层的排布状态T1,在该排布状态T1下,在某个角点依次放入需要切割的目标块,更新得到的排布状态T2;
所述选择模块用于获取排布状态T2的角点数量K2,判断最大角点限制数量K1是否大于角点数量K2,若小于,则舍弃该排布状态T2,若大于或等于,则将该计算该排布状态T2的价值上界值;
判断所述排布状态T2的价值上界值是否大于当前最佳价值上界值,若不大于,则舍弃排布状态T2,若大于,则判断该排布状态T2与排布队列Q中其他的排布状态T2是否存在有重复,若重复,则舍去该排布状态T2,若不重复,则将排布状态T2保留在排布队列Q;
所述比较模块用于获取排布队列Q中所有排布状态T2的价值S1,并与当前最佳价值S2比较,若大于当前最佳价值S2,则调用贪婪启发式算法,加速该排布状态T2至完全状态T2,其中所述完全状态为所有角点都无法放入目标块的状态,计算完全状态T2的价值S1,若小于当前最佳价值S2,则舍去该排布状态T2;
将完全状态T2最高的价值S1更新作为当前最佳价值S2;
所述第一循环模块用于更换排布状态T1的角点,并重新调用更新模块、选择模块以及比较模块,直至排布状态T1角点都被遍历后,更换排布队列Q的下一个排布状态T1,并在此重新调用更新模块、选择模块以及比较模块,直至排布队列Q内所有的排布状态都被遍历后调用第二循环模块;
所述第二循环模块用于最大角点限制数量K1加一,将排布队列Q中的排布状态T2更新为排布状态T1,并重复步骤更新模块、选择模块、比较模块以及第一循环模块,直至所有的目标块都被放入,获取价值上界值最高的排布方案作为最终排布方案。
优选的,还包括价值上界值计算模块;
所述价值上界值计算模块用于将排布状态划分为目标块区域以及空闲区域,获取目标块区域中目标块的价值以及空闲区域中能排布目标块的价值上界两者之和作为所述价值上界值。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施实施进行变化、修改、替换和变型。
- 一种基于分支切割的带缺陷板排样方法及系统
- 一种基于分支切割的带缺陷板排样方法及系统