基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码方法

文档序号:35535151发布日期:2023-09-21 22:00阅读:62来源:国知局
基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码方法

本发明涉及对码方法领域,特别涉及一种针对二维、三维预制构件堆码方法。


背景技术:

1、堆码是我国预制构件生产企业在生产管理方面针对生产线的安排策略。堆码算法可以快速高效的计算出最佳的堆码方法,以确保最高的空间利用率,这在预制构件生产企业中有着非常广泛的作用。例如,预制构件制造企业具有多种不同类型的生产线,生产规格不同的预制构件,此时在仓库中堆叠预制构件时,就可以通过堆码优化算法快速高效的获取空间利用率较高的摆放方式。

2、目前企业中的堆码管理大多数都为单一产品线,且采用人工考虑堆码方式,空间利用率取决于摆放人员的经验,因此这样导致了企业仓库的利用率较为低下,水平参差不齐,存在着空间资源的浪费。此外,由于没有具体数据的支撑,人工堆码可能会导致摆放时出现构件损坏,重复摆放等浪费生产资源以及人力资源的问题。


技术实现思路

1、本发明的目的是提供一种基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,采用禁忌算法与模拟退火算法相结合的方式,在进一步提升空间的利用率同时降低程序时间上的开销,此外,本发明涵盖了二维、三维的堆码方式,可以应用于多种不同的使用场景。

2、本发明的目的是这样实现的:一种基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,包括以下步骤:

3、步骤1)首先,获取待堆码的数据表格,根据数据表格构建数据集;

4、步骤2)其次,根据数据集的内容选择二维或者三维的堆码方式,并根据提供的数据集进行随机搜索解空间,取得初始解;

5、步骤3)再次,使用模拟退火算法中的变量t对初始解序列进行扰动,生成新序列,并将该生成的新序列存入禁忌表,以防止重复搜索,并对新序列利用率进行判断;

6、步骤4)最后,当循环结束时得出全局最优解,并将解的摆放信息输出。

7、作为本发明的进一步限定,所述步骤1)具体为:所述表格数据中包含了二维矩形的长宽、三维长方体的长宽高,构建出一个有序数据集,该数据集为一个列表,根据输入的顺序给每个对象编上序号、长宽高以及计算出面积、体积。

8、作为本发明的进一步限定,所述步骤2)中若数据集要求为二维堆码方式,则包括以下步骤:

9、步骤2-1)构建基于依据所述数据集的矩形列表;使用以毫秒为单位的系统当前时间作为随机数生成种子,对矩形列表进行乱序操作以生成新的矩形列表initgh;

10、步骤2-2)使用循环针对矩形列表中的数据进行遍历;每查询至一个待摆放对象时,对该点进行得分判断;若该点的得分比当前最高得分高,则将当前最高得分替换为该点的得分;此时若当前点得分有效时,根据数据集要求针对矩形进行旋转;删去该点的摆放点,视为在此放置了一个对象;同时生成两个待摆放点位,加入待摆放点位列表中;在矩形列表中删去已经摆放的对象;将该摆放对象加入矩形解列表中;当矩形列表查询结束时,矩形解列表即为向上级函数返回的需求解;该解被视为初始解。

11、作为本发明的进一步限定,所述步骤2)中若数据集要求为三维堆码方式,则包括以下步骤:

12、步骤2-3)构建基于依据所述数据集的立方体列表;使用以毫秒为单位的系统当前时间作为随机数生成种子,对立方体列表进行乱序操作以生成新的立方体列表initghfor3d;

13、步骤2-4)将待摆放空间作为一个空间对象进栈;

14、步骤2-5)首先,针对立方体列表进行过滤,将能够摆放进当前栈空间对象的立方体对象筛选出来,生成一个新的fitlist;若该fitlist为空,则视为该空间对象已经无法摆放任何立方体,将该空间对象出栈废弃;若fitlist不为空,取fitlist中随机对象,将其放置于栈顶空间对象的起点;将该空间对象出栈,利用极大空间切割方法,每当一个立方体被摆放时,就将该空间对象切割为四个部分,分别为:与立方体对象相同大小的已摆放空间,位于立方体上方的上层空间,位于立方体右侧的右侧空间,位于立方体下侧的下方空间;其中,立方体的长宽高参数为:(l,w,h),空间对象的坐标、长宽高参数为:(x0,y0,z0,l0,w0,h0),则对应的四个切割空间对象如下所示:

15、第一空间对象:(x0,y0,z0,l0,w0,h0)

16、第二空间对象:(x0,y0,z0+h,l,w,h0-h)

17、第三空间对象:(x0,y0+w,z0,l,w0-w,h0)

18、第四空间对象:(x0+l,y0,z0,l0-l,w0,h0)

19、其中第一空间对象已被摆放,剩余三个空间对象为空,针对这三个空间对象进行体积计算,并且排序,按照体积从大到小依次入栈;

20、步骤2-6)重复步骤2-5)所述内容,直至当前栈为空时,视为解空间搜索完毕,输出当前解立方体摆放序列,视为初始解。

21、作为本发明的进一步限定,所述步骤3)中若数据集要求为二维堆码方式,则包括以下步骤:

22、步骤3-1)首先,针对已经取得的初始解序列initgh使用模拟退火中定义的温度t值作为扰乱因子,随机打乱初始解序列initgh中矩形摆放序列以生成新序列,并将该新序列存入禁忌表,若禁忌表中存在该新序列,则跳过步骤3-2),重新打乱初始解顺序产生新序列;正如步骤2-1)中所述,将该新序列认为是步骤2-1)中产生的随机序列,重复步骤2-2)中的函数操作,新解的产生不再依赖完全随机产生的矩形序列,而是有依据的,从前一个解中演变而来;

23、步骤3-2)其次,对于已经改变过矩形序列的新序列来说,改变后的序列不一定能够正确的按照摆放规则摆放,可能会出现多个矩形覆盖、矩形间距小于要求值等情况;在旧解的基础上形成新解的同时,根据每个矩形摆放的位置和当前序列的区别进行判断,是否会出现矩形覆盖堆叠问题;当出现矩形堆叠覆盖问题时,弃用当前的矩形,从输入数据集中随机选取符合条件的矩形进行放入。

24、作为本发明的进一步限定,所述步骤3)中若数据集要求为三维堆码方式,则符合以下步骤:

25、步骤3-3)首先,针对已经取得的初始解序列initghfor3d使用模拟退火中定义的温度t值作为扰乱因子,随机打乱初始解序列initghfor3d中矩形摆放序列以生成新序列temp,并将该新序列存入禁忌表,若禁忌表中存在该新序列,则跳过步骤3-4)步骤,重新打乱初始解顺序产生新序列;正如步骤2-3)中所述的,将该新序列认为是步骤2-3)中产生的随机序列,重复步骤2-5)中的函数操作,新解的产生不再依赖完全随机产生的立方体序列,而是有依据的,从前一个解中演变而来;

26、步骤3-4)其次,如步骤3-2)所述,在三维空间中打乱解序列同样会导致立方体堆叠、重复占用空间;在对打乱后序列求解时,针对该序列进行模拟摆放;当模拟摆放时出现立方体无法在空间中摆放下时,则弃用当前的立方体,从立方体数据集中重新选取符合条件的立方体进行放入,若无立方体符合条件,则对当前摆放空间做出栈操作,将该空间视为不可划分空间并弃用。

27、作为本发明的进一步限定,所述步骤4)具体为:

28、若数据集要求为二维堆码方式,则不断重复步骤3-1)与步骤3-2)中的步骤;

29、若数据集要求为三维堆码方式,则不断重复步骤3-3)与步骤3-4)中的步骤;

30、针对模拟退火时的每个温度,都设定了一定的搜索次数,每次重复步骤统计当前解与当前温度的领域最优解,根据模拟退火算法的特性,若当前解低于当前温度领域最优解时,会存在一定的概率p接受当前解为当前领域最优解,其接受公式如下:

31、

32、上述公式中,p为继续迭代概率,e为自然对数的底数,et+1为当前解利用率,et为当前领域最优解利用率,k为迭代系数,t为当前搜索温度;不断重复上述操作,当时间直至温度t降低至目标值,视为搜索完成;输出最优解的利用率、最佳序列、计算时间等参数。

33、与现有技术相比,本发明的有益效果在于:

34、1、启发式算法大多不是纯数学方法,本发明借助模拟退火算法与禁忌算法两种启发式算法相结合的方式,在搜索的时引入t变量控制随机序列的生成;

35、2、此外,为了避免不必要的重复搜索,本发明将已搜索过的序列加入禁忌表中,当新解序列存在于禁忌表中时,放弃该次搜索,从而节约机器资源;

36、3、实现了二维与三维的堆码方式,可以应对多种不同的使用场景,提高企业仓库存储空间的利用率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1