当前位置: 首页 > 专利查询>扬州大学专利>正文

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

技术编号:38905798 阅读:18 留言:0更新日期:2023-09-22 14:24
本发明专利技术公开了对码方法领域一种基于禁忌算法、模拟退火算法的针对二维、三维堆码的优化方法,包括以下步骤:首先,获取待堆码的数据表格,根据数据表格构建数据集;其次,根据数据集的内容选择二维或者三维的堆码方式,并根据提供的数据集进行随机搜索解空间,取得初始解;再次,使用模拟退火算法中的变量T对初始解序列进行扰动,生成新序列,并将该序列存入禁忌表,以防止重复搜索,并对新序列利用率进行判断;最后,当循环结束时就可以得出全局最优解,本发明专利技术采用禁忌算法与模拟退火算法相结合的方式,在进一步提升空间的利用率同时降低程序时间上的开销,本发明专利技术涵盖了二维、三维的堆码方式,可以应用于多种不同的使用场景。可以应用于多种不同的使用场景。可以应用于多种不同的使用场景。

【技术实现步骤摘要】
基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码方法


[0001]本专利技术涉及对码方法领域,特别涉及一种针对二维、三维预制构件堆码方法。

技术介绍

[0002]堆码是我国预制构件生产企业在生产管理方面针对生产线的安排策略。堆码算法可以快速高效的计算出最佳的堆码方法,以确保最高的空间利用率,这在预制构件生产企业中有着非常广泛的作用。例如,预制构件制造企业具有多种不同类型的生产线,生产规格不同的预制构件,此时在仓库中堆叠预制构件时,就可以通过堆码优化算法快速高效的获取空间利用率较高的摆放方式。
[0003]目前企业中的堆码管理大多数都为单一产品线,且采用人工考虑堆码方式,空间利用率取决于摆放人员的经验,因此这样导致了企业仓库的利用率较为低下,水平参差不齐,存在着空间资源的浪费。此外,由于没有具体数据的支撑,人工堆码可能会导致摆放时出现构件损坏,重复摆放等浪费生产资源以及人力资源的问题。

技术实现思路

[0004]本专利技术的目的是提供一种基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,采用禁忌算法与模拟退火算法相结合的方式,在进一步提升空间的利用率同时降低程序时间上的开销,此外,本专利技术涵盖了二维、三维的堆码方式,可以应用于多种不同的使用场景。
[0005]本专利技术的目的是这样实现的:一种基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,包括以下步骤:
[0006]步骤1)首先,获取待堆码的数据表格,根据数据表格构建数据集;
[0007]步骤2)其次,根据数据集的内容选择二维或者三维的堆码方式,并根据提供的数据集进行随机搜索解空间,取得初始解;
[0008]步骤3)再次,使用模拟退火算法中的变量T对初始解序列进行扰动,生成新序列,并将该生成的新序列存入禁忌表,以防止重复搜索,并对新序列利用率进行判断;
[0009]步骤4)最后,当循环结束时得出全局最优解,并将解的摆放信息输出。
[0010]作为本专利技术的进一步限定,所述步骤1)具体为:所述表格数据中包含了二维矩形的长宽、三维长方体的长宽高,构建出一个有序数据集,该数据集为一个列表,根据输入的顺序给每个对象编上序号、长宽高以及计算出面积、体积。
[0011]作为本专利技术的进一步限定,所述步骤2)中若数据集要求为二维堆码方式,则包括以下步骤:
[0012]步骤2

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

2)使用循环针对矩形列表中的数据进行遍历;每查询至一个待摆放对象
时,对该点进行得分判断;若该点的得分比当前最高得分高,则将当前最高得分替换为该点的得分;此时若当前点得分有效时,根据数据集要求针对矩形进行旋转;删去该点的摆放点,视为在此放置了一个对象;同时生成两个待摆放点位,加入待摆放点位列表中;在矩形列表中删去已经摆放的对象;将该摆放对象加入矩形解列表中;当矩形列表查询结束时,矩形解列表即为向上级函数返回的需求解;该解被视为初始解。
[0014]作为本专利技术的进一步限定,所述步骤2)中若数据集要求为三维堆码方式,则包括以下步骤:
[0015]步骤2

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

4)将待摆放空间作为一个空间对象进栈;
[0017]步骤2

5)首先,针对立方体列表进行过滤,将能够摆放进当前栈空间对象的立方体对象筛选出来,生成一个新的FitList;若该FitList为空,则视为该空间对象已经无法摆放任何立方体,将该空间对象出栈废弃;若FitList不为空,取FitList中随机对象,将其放置于栈顶空间对象的起点;将该空间对象出栈,利用极大空间切割方法,每当一个立方体被摆放时,就将该空间对象切割为四个部分,分别为:与立方体对象相同大小的已摆放空间,位于立方体上方的上层空间,位于立方体右侧的右侧空间,位于立方体下侧的下方空间;其中,立方体的长宽高参数为:(L,W,H),空间对象的坐标、长宽高参数为:(X0,Y0,Z0,L0,W0,H0),则对应的四个切割空间对象如下所示:
[0018]第一空间对象:(X0,Y0,Z0,L0,W0,H0)
[0019]第二空间对象:(X0,Y0,Z0+H,L,W,H0‑
H)
[0020]第三空间对象:(X0,Y0+W,Z0,L,W0‑
W,H0)
[0021]第四空间对象:(X0+L,Y0,Z0,L0‑
L,W0,H0)
[0022]其中第一空间对象已被摆放,剩余三个空间对象为空,针对这三个空间对象进行体积计算,并且排序,按照体积从大到小依次入栈;
[0023]步骤2

6)重复步骤2

5)所述内容,直至当前栈为空时,视为解空间搜索完毕,输出当前解立方体摆放序列,视为初始解。
[0024]作为本专利技术的进一步限定,所述步骤3)中若数据集要求为二维堆码方式,则包括以下步骤:
[0025]步骤3

1)首先,针对已经取得的初始解序列InitGh使用模拟退火中定义的温度T值作为扰乱因子,随机打乱初始解序列InitGh中矩形摆放序列以生成新序列,并将该新序列存入禁忌表,若禁忌表中存在该新序列,则跳过步骤3

2),重新打乱初始解顺序产生新序列;正如步骤2

1)中所述,将该新序列认为是步骤2

1)中产生的随机序列,重复步骤2

2)中的函数操作,新解的产生不再依赖完全随机产生的矩形序列,而是有依据的,从前一个解中演变而来;
[0026]步骤3

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

3)首先,针对已经取得的初始解序列InitGhFor3D使用模拟退火中定义的温度T值作为扰乱因子,随机打乱初始解序列InitGhFor3D中矩形摆放序列以生成新序列Temp,并将该新序列存入禁忌表,若禁忌表中存在该新序列,则跳过步骤3

4)步骤,重新打乱初始解顺本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,其特征在于,包括以下步骤:步骤1)首先,获取待堆码的数据表格,根据数据表格构建数据集;步骤2)其次,根据数据集的内容选择二维或者三维的堆码方式,并根据提供的数据集进行随机搜索解空间,取得初始解;步骤3)再次,使用模拟退火算法中的变量T对初始解序列进行扰动,生成新序列,并将该生成的新序列存入禁忌表,以防止重复搜索,并对新序列利用率进行判断;步骤4)最后,当循环结束时得出全局最优解,并将解的摆放信息输出。2.根据权利要求1所述的基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,其特征在于,所述步骤1)具体为:所述表格数据中包含了二维矩形的长宽、三维长方体的长宽高,构建出一个有序数据集,该数据集为一个列表,根据输入的顺序给每个对象编上序号、长宽高以及计算出面积、体积。3.根据权利要求2所述的基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,其特征在于,所述步骤2)中若数据集要求为二维堆码方式,则包括以下步骤:步骤2

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

2)使用循环针对矩形列表中的数据进行遍历;每查询至一个待摆放对象时,对该点进行得分判断;若该点的得分比当前最高得分高,则将当前最高得分替换为该点的得分;此时若当前点得分有效时,根据数据集要求针对矩形进行旋转;删去该点的摆放点,视为在此放置了一个对象;同时生成两个待摆放点位,加入待摆放点位列表中;在矩形列表中删去已经摆放的对象;将该摆放对象加入矩形解列表中;当矩形列表查询结束时,矩形解列表即为向上级函数返回的需求解;该解被视为初始解。4.根据权利要求3所述的基于禁忌算法、模拟退火算法结合的针对二维、三维预制构件堆码的优化方法,其特征在于,所述步骤2)中若数据集要求为三维堆码方式,则包括以下步骤:步骤2

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

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

5)首先,针对立方体列表进行过滤,将能够摆放进当前栈空间对象的立方体对象筛选出来,生成一个新的FitList;若该FitList为空,则视为该空间对象已经无法摆放任何立方体,将该空间对象出栈废弃;若FitList不为空,取FitList中随机对象,将其放置于栈顶空间对象的起点;将该空间对象出栈,利用极大空间切割方法,每当一个立方体被摆放时,就将该空间对象切割为四个部分,分别为:与立方体对象相同大小的已摆放空间,位于立方体上方的上层空间,位于立方体右侧的右侧空间,位于立方体下侧的下方空间;其中,立方体的长宽高参数为:(L,W,H),空间对象的坐标、长宽高参数为:(X0,Y0,Z0,L0,W0,H0),则对应的四个切割空间对象如下所示:第一空间对象:(X0,Y0,Z0,L0,W0,H0)第二空间对象:(X0,Y0,Z0+H,L,W,H0‑
H)
第三空间对象:(X0,Y0+W,Z0,L,W0‑
W,H0)第四空间对象:(X0+L,Y0,Z0,L0‑
L,W0,H0)其中第一空间对象已被摆放,剩余三个空间对象为空,针对这三个空间对象进行体积计算,并且排序,按照体积从大到小依次入栈;步骤2

6)重复步骤2

5)所述内容,直至当前栈为空时,视为解空间搜索完毕,输出当...

【专利技术属性】
技术研发人员:张福安方启楠张宏鑫胡棪嵘张骏
申请(专利权)人:扬州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1