集装箱包装系统转让专利

申请号 : CN201980051425.6

文献号 : CN112533834B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阙晓存于江生

申请人 : 华为技术有限公司

摘要 :

提供了一种在集装箱中装载箱子的方法。获得具有相等尺寸的集装箱集合的特性。获得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性。创建层描述符集合,每个层描述符包括层厚度、分配给层的箱子的标识和对箱子在该层中的布置的描述。每个箱子都分配给单个层描述符。确定对集装箱的层描述符的优化分配。为每个集装箱生成装箱指令的有序列表。根据集装箱的有序列表将箱子装载到其分配的集装箱中。

权利要求 :

1.一种在集装箱中装载箱子的方法,其特征在于,所述方法包括:获得具有相等尺寸的多个集装箱的特性;

获得将要包装到所述多个集装箱的一个或多个集装箱中的多个箱子的特性;

创建多个层描述符,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对所述一个或多个箱子在所述层中的布置的描述,所述多个箱子中的每个箱子都分配给单个层描述符,所述层的厚度小于所述多个集装箱的集装箱尺寸;

确定对所述多个集装箱的子集中的集装箱的层描述符的优化分配;以及根据对所述集装箱的层描述符的优化分配将所述多个箱子装载到所述子集中的每个集装箱中。

2.根据权利要求1所述的方法,其特征在于,创建多个所述层描述符包括创建未分配箱子集合,所述未分配箱子集合包括所述多个箱子中的所有箱子,并且当所述未分配箱子集合是非空时,重复以下操作:

基于所述未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的候选层厚度CLT集合;

针对所述CLT集合中的每个CLT,从所述未分配箱子集合中确定一个或多个箱子的CLT中的优化单层布置,并且计算所述优化单层布置的包装效率;

选择包装效率大于或等于所述CLT集合中任何其他CLT的包装效率的CLT;

向所述多个层描述符中添加层描述符,添加的所述层描述符包括所述选择的CLT的厚度、针对所述选择的CLT的优化单层布置中的一个或多个箱子的标识和每个箱子在针对所述选择的CLT的所述优化单层布置中的位置和朝向;以及从所述未分配箱子集合中移除针对所述选择的CLT的所述优化单层布置中的所述一个或多个箱子。

3.根据权利要求2所述的方法,其特征在于,基于一个或多个基本约束从所述未分配箱子集合中确定所述一个或多个箱子的CLT中的所述优化单层布置。

4.根据权利要求3所述的方法,其特征在于,基于与所述多个箱子中的箱子相关的一个或多个实际约束进一步从所述未分配箱子集合中确定所述一个或多个箱子的CLT中的所述优化单层布置。

5.根据权利要求1至4中任一项所述的方法,其特征在于,基于与所述多个集装箱中的集装箱相关的一个或多个实际约束确定对所述集装箱的层描述符的优化分配。

6.根据权利要求1至4中任一项所述的方法,其特征在于:为所述集装箱内沿至少两个正交方向定向的层创建所述多个层描述符并且确定所述层描述符的优化分配,

所述方法进一步包括:

计算所述至少两个正交方向中每个正交方向上对所述多个集装箱的子集中的集装箱的所述层描述符的优化分配的包装效率,所述包装效率是基于所述多个集装箱的子集中的集装箱的数量和所述多个集装箱的子集中的每个集装箱的包装效率计算的;以及根据针对具有包装效率大于或等于任何其他正交方向的包装效率的正交方向的层描述符的优化分配,将所述多个箱子装载到所述多个集装箱的子集中的每个集装箱中。

7.根据权利要求1至4中任一项所述的方法,其特征在于,对集装箱子集的层描述符的优化分配包括每个层在其分配的集装箱中的位置,所述方法进一步包括:为所述集装箱子集中的每个集装箱创建装箱指令的有序列表,所述有序列表基于每个箱子的层的位置和箱子在所述层的优化单层布置中的位置和朝向从第一个待装载箱子排序到最后一个待装载箱子。

8.一种在集装箱中装载箱子的装置,其特征在于,包括:存储器,用于存储指令;以及

处理器,耦合到所述存储器,并且用于执行所述指令以:获得具有相等尺寸的多个集装箱的特性;

获得将要包装到所述多个集装箱的一个或多个集装箱中的多个箱子的特性;

创建多个层描述符,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对所述一个或多个箱子在所述层中的布置的描述,所述多个箱子中的每个箱子都分配给单个层描述符,所述层的厚度小于所述多个集装箱的集装箱尺寸;

确定对所述多个集装箱的子集中的集装箱的层描述符的优化分配;以及为所述子集中的每个集装箱生成装箱指令的有序列表,所述有序列表基于对所述集装箱的层描述符的优化分配从第一个待装载箱子排序到最后一个待装载箱子,每个装箱指令包括箱子的标识、所述箱子的朝向和所述箱子在所述集装箱中的位置。

9.根据权利要求8所述的装置,其特征在于,所述处理器进一步用于执行所述指令以:创建未分配箱子集合,所述未分配箱子集合包括所述多个箱子中的所有箱子,并且当所述未分配箱子集合是非空时,重复以下操作:基于所述未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的候选层厚度CLT集合;

针对所述CLT集合中的每个CLT,从所述CLT中的所述未分配箱子集合中确定一个或多个箱子的优化单层布置,并且计算所述优化单层布置的包装效率;

选择包装效率大于或等于所述CLT集合中任何其他CLT的包装效率的CLT;

向所述多个层描述符中添加层描述符,添加的所述层描述符包括所述选择的CLT的厚度、针对所述选择的CLT的优化单层布置中的一个或多个箱子的标识和每个箱子在针对所述选择的CLT的所述优化单层布置中的位置和朝向;以及从所述未分配箱子集合中移除针对所述选择的CLT的所述优化单层布置中的所述一个或多个箱子。

10.根据权利要求9所述的装置,其特征在于,所述处理器进一步用于执行所述指令,以基于一个或多个基本约束确定所述CLT中的所述未分配箱子集合中的一个或多个箱子的优化单层布置。

11.根据权利要求10所述的装置,其特征在于,所述处理器进一步用于执行所述指令,以另外基于与所述多个箱子中的箱子相关的一个或多个实际约束确定所述CLT中的所述未分配箱子集合中的一个或多个箱子的优化单层布置。

12.根据权利要求8至11中任一项所述的装置,其特征在于,所述处理器进一步用于执行所述指令,以基于与所述多个集装箱中的集装箱相关的一个或多个实际约束确定对所述集装箱的层描述符的优化分配。

13.根据权利要求12所述的装置,其特征在于,对所述多个集装箱的子集的层描述符的优化分配包括每个层在其分配的集装箱中的位置。

14.根据权利要求8至11中任一项所述的装置,其特征在于,所述处理器进一步用于执行所述指令以:

为所述集装箱内沿至少两个正交方向定向的层创建所述多个层描述符并且确定对所述多个集装箱的子集的层描述符的优化分配;

计算所述至少两个正交方向中每个正交方向上对所述多个集装箱的子集中的集装箱的所述层描述符的优化分配的包装效率,所述包装效率是基于所述多个集装箱的子集中的集装箱的数量和所述多个集装箱的子集中的每个集装箱的包装效率计算的;以及基于具有包装效率大于或等于任何其他正交方向的包装效率的正交方向,为所述多个集装箱的子集中的每个集装箱生成装箱指令的有序列表。

15.一种非瞬时性计算机可读介质,用于存储计算机指令,当一个或多个处理器执行所述指令时,使所述一个或多个处理器用于:获得具有相等尺寸的多个集装箱的特性;

获得将要包装到所述多个集装箱的一个或多个集装箱中的多个箱子的特性;

创建多个层描述符,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对所述一个或多个箱子在所述层中的布置的描述,所述多个箱子中的每个箱子都分配给单个层描述符,所述层的厚度小于所述多个集装箱的集装箱尺寸;

确定对所述多个集装箱的子集中的集装箱的层描述符的优化分配,所述优化分配包括每个层在其分配的集装箱中的位置;以及为所述多个集装箱的子集中的每个集装箱生成装箱指令的有序列表,所述有序列表基于对所述集装箱的层描述符的优化分配从第一个待装载箱子排序到最后一个待装载箱子,每个装箱指令包括箱子的标识、所述箱子的朝向和所述箱子在所述集装箱中的位置。

16.根据权利要求15所述的非瞬时性计算机可读介质,其特征在于,所述计算机指令进一步使所述一个或多个处理器用于:创建未分配箱子集合,所述未分配箱子集合包括所述多个箱子中的所有箱子,并且当所述未分配箱子集合是非空时,重复以下操作:基于所述未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的候选层厚度CLT集合;

针对所述CLT集合中的每个CLT,从所述CLT中的所述未分配箱子集合中确定一个或多个箱子的优化单层布置,并且计算所述优化单层布置的包装效率;

选择包装效率大于或等于所述CLT集合中任何其他CLT的包装效率的CLT;

向所述多个层描述符中添加层描述符,添加的所述层描述符包括所述选择的CLT的厚度、针对所述选择的CLT的优化单层布置中的一个或多个箱子的标识和每个箱子在针对所述选择的CLT的所述优化单层布置中的位置和朝向;以及从所述未分配箱子集合中移除针对所述选择的CLT的所述优化单层布置中的所述一个或多个箱子。

17.根据权利要求16所述的非瞬时性计算机可读介质,其特征在于,所述计算机指令进一步使所述一个或多个处理器执行所述指令,以基于一个或多个基本约束确定所述CLT中的所述未分配箱子集合中的一个或多个箱子的优化单层布置。

18.根据权利要求17所述的非瞬时性计算机可读介质,其特征在于,所述计算机指令进一步使所述一个或多个处理器执行所述指令,以另外基于与所述多个箱子中的箱子相关的一个或多个实际约束确定所述CLT中的所述未分配箱子集合中的一个或多个箱子的优化单层布置。

19.根据权利要求15至18中任一项所述的非瞬时性计算机可读介质,其特征在于,所述计算机指令进一步使所述一个或多个处理器基于与所述多个集装箱中的集装箱相关的一个或多个实际约束确定对所述集装箱的层描述符的优化分配。

20.根据权利要求15至18中任一项所述的非瞬时性计算机可读介质,其特征在于,所述计算机指令进一步使所述一个或多个处理器用于:为所述集装箱内沿至少两个正交方向定向的层创建所述多个层描述符并且确定对所述集装箱集合的子集的层描述符的优化分配;

计算所述至少两个正交方向中每个正交方向上对所述多个集装箱的子集中的集装箱的所述层描述符的优化分配的包装效率,所述包装效率是基于所述集装箱集合的子集中的集装箱的数量和所述多个集装箱的子集中的每个集装箱的包装效率计算的;以及基于具有包装效率大于或等于任何其他正交方向的包装效率的正交方向,为所述多个集装箱的子集中的每个集装箱生成装箱指令的有序列表。

说明书 :

集装箱包装系统

[0001] 相关申请案交叉申请
[0002] 本申请要求于2018年8月3日递交的发明名称为“集装箱包装系统”的第16/054,551号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本
文。

技术领域

[0003] 本发明涉及在集装箱中装载箱子的技术领域。

背景技术

[0004] 在运输行业中使用标准尺寸、多模态集装箱已经非常普遍。因此,运输成本与用于装运的此类集装箱的类型和数量相关。用于装运的集装箱的数量直接与包装效率或货物所
占集装箱空间的百分比有关。包装效率越高,需要的集装箱的数量就越少,从而在货物装运
中产生更高的效率和更低的成本。

发明内容

[0005] 在一实施例中,本发明包括一种在集装箱中装载箱子的方法。方法包括:获得具有相等尺寸的集装箱集合的特性;获得将要包装到集装箱集合的一个或多个集装箱中的多个
箱子的特性;创建层描述符集合,每个层描述符包括层厚度、分配给层的一个或多个箱子的
标识和对一个或多个箱子在该层中的布置的描述,多个箱子中的每个箱子都分配给单个层
描述符;确定对集装箱集合的子集中的集装箱的层描述符的优化分配;以及根据对集装箱
的层描述符的优化分配将多个箱子装载到子集中的每个集装箱中。
[0006] 该方面的另一种实现方式提供了一种方法,其中创建层描述符集合包括创建未分配箱子集合,未分配箱子集合包括多个箱子中的所有箱子,并且当未分配箱子集合是非空
时,重复以下操作:基于未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的
候选层厚度(candidate layer thicknesses,简称CLT)集合;针对CLT集合中的每个CLT,从
CLT中的未分配箱子集合中确定一个或多个箱子的优化单层布置,并且计算优化单层布置
的包装效率;选择包装效率大于或等于CLT集合中任何其他CLT的包装效率的CLT;向层描述
符集合中添加层描述符,层描述符包括选择的CLT的厚度、针对选择的CLT的优化单层布置
中的一个或多个箱子的标识和每个箱子在针对选择的CLT的优化单层布置中的位置和朝
向;以及从未分配箱子集合中移除针对选择的CLT的优化单层布置中的一个或多个箱子。
[0007] 该方面的另一种实现方式提供:基于一个或多个基本约束确定CLT中的未分配箱子集合中的一个或多个箱子的优化单层布置。可选地,在前述任一方面中,该方面的另一种
实现方式提供:基于与多个箱子中的箱子相关的一个或多个实际约束进一步确定CLT中的
未分配箱子集合中的一个或多个箱子的优化单层布置。可选地,在前述任一方面中,该方面
的另一种实现方式提供:基于与集装箱集合中的集装箱相关的一个或多个实际约束确定对
一个或多个集装箱的层描述符的优化分配。
[0008] 该方面的另一种实现方式提供:为集装箱内沿至少两个正交方向定向的层创建层描述符集合并且确定层描述符的优化分配,方法进一步包括:计算至少两个正交方向中每
个正交方向上对集装箱子集的层描述符的优化分配的包装效率,包装效率是基于集装箱子
集中的集装箱的数量和集装箱子集中的每个集装箱的包装效率计算的;以及根据针对具有
包装效率大于或等于任何其他正交方向的包装效率的正交方向的层描述符的优化分配,将
多个箱子装载到集装箱子集中的每个集装箱中。可选地,在前述任一方面中,该方面的另一
种实现方式提供:对集装箱子集的层描述符的优化分配包括每个层在其分配的集装箱中的
位置,方法进一步包括:为集装箱子集中的每个集装箱创建装箱指令的有序列表,列表基于
每个箱子的层的位置和箱子在层的优化单层布置中的位置和朝向从第一个待装载箱子排
序到最后一个待装载箱子。
[0009] 在一实施例中,本发明包括一种装置,包括:存储器,用于存储指令;以及处理器,耦合到存储器,并且用于执行指令以:获得具有相等尺寸的集装箱集合的特性;获得将要包
装到集装箱集合的一个或多个集装箱中的多个箱子的特性;创建层描述符集合,每个层描
述符包括层厚度、分配给层的一个或多个箱子的标识和对一个或多个箱子在该层中的布置
的描述,多个箱子中的每个箱子都分配给单个层描述符;确定对集装箱集合的子集中的集
装箱的层描述符的优化分配;以及为子集中的每个集装箱生成装箱指令的有序列表,列表
基于对集装箱的层描述符的优化分配从第一个待装载箱子排序到最后一个待装载箱子,每
个装箱指令包括箱子的标识、箱子的朝向和箱子在集装箱中的位置。
[0010] 该方面的另一种实现方式提供:处理器进一步用于执行指令以:创建未分配箱子集合,未分配箱子集合包括多个箱子中的所有箱子,并且当未分配箱子集合是非空时,重复
以下操作:基于未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的CLT集合;
针对CLT集合中的每个CLT,从CLT中的未分配箱子集合中确定一个或多个箱子的优化单层
布置,并且计算优化单层布置的包装效率;选择包装效率大于或等于CLT集合中任何其他
CLT的包装效率的CLT;向层描述符集合中添加层描述符,层描述符包括选择的CLT的厚度、
针对选择的CLT的优化单层布置中的一个或多个箱子的标识和每个箱子在针对选择的CLT
的优化单层布置中的位置和朝向;以及从未分配箱子集合中移除针对选择的CLT的优化单
层布置中的一个或多个箱子。
[0011] 该方面的另一种实现方式提供:处理器进一步用于执行指令,以基于一个或多个基本约束确定CLT中的未分配箱子集合中的一个或多个箱子的优化单层布置。可选地,在前
述任一方面中,该方面的另一种实现方式提供:处理器进一步用于执行指令,以另外基于与
多个箱子中的箱子相关的一个或多个实际约束确定CLT中的未分配箱子集合中的一个或多
个箱子的优化单层布置。可选地,在前述任一方面中,该方面的另一种实现方式提供:处理
器进一步用于执行指令,以基于与集装箱集合中的集装箱相关的一个或多个实际约束确定
对一个或多个集装箱的层描述符的优化分配。可选地,在前述任一方面中,该方面的另一种
实现方式提供:对集装箱集合的子集的层描述符的优化分配包括每个层在其分配的集装箱
中的位置。
[0012] 该方面的另一种实现方式提供:处理器进一步用于执行指令以:为集装箱内沿至少两个正交方向定向的层创建层描述符集合并且确定对集装箱集合的子集的层描述符的
优化分配;计算至少两个正交方向中每个正交方向上对集装箱子集的层描述符的优化分配
的包装效率,包装效率是基于集装箱子集中的集装箱的数量和集装箱子集中的每个集装箱
的包装效率计算的;以及基于具有包装效率大于或等于任何其他正交方向的包装效率的正
交方向,为子集中的每个集装箱生成装箱指令的有序列表。
[0013] 在一实施例中,本发明包括一种非瞬时性计算机可读介质,用于存储计算机指令,当一个或多个处理器执行指令时,使一个或多个处理器用于:获得具有相等尺寸的集装箱
集合的特性;获得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性;创建
层描述符集合,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对一个或
多个箱子在该层中的布置的描述,多个箱子中的每个箱子都分配给单个层描述符;确定对
集装箱集合的子集中的集装箱的层描述符的优化分配,优化分配包括每个层在其分配的集
装箱中的位置;以及为集装箱子集中的每个集装箱生成装箱指令的有序列表,列表基于对
集装箱的层描述符的优化分配从第一个待装载箱子排序到最后一个待装载箱子,每个装箱
指令包括箱子的标识、箱子的朝向和箱子在集装箱中的位置。
[0014] 该方面的另一种实现方式提供:指令进一步使一个或多个处理器用于:创建未分配箱子集合,未分配箱子集合包括多个箱子中的所有箱子,并且当未分配箱子集合是非空
时,重复以下操作:基于未分配箱子集合中的箱子的一个或多个特性创建具有不同厚度的
CLT集合;针对CLT集合中的每个CLT,从CLT中的未分配箱子集合中确定一个或多个箱子的
优化单层布置,并且计算优化单层布置的包装效率;选择包装效率大于或等于CLT集合中任
何其他CLT的包装效率的CLT;向层描述符集合中添加层描述符,层描述符包括选择的CLT的
厚度、针对选择的CLT的优化单层布置中的一个或多个箱子的标识和每个箱子在针对选择
的CLT的优化单层布置中的位置和朝向;以及从未分配箱子集合中移除优化单层布置中的
一个或多个箱子。
[0015] 该方面的另一种实现方式提供:指令进一步使一个或多个处理器执行指令,以基于一个或多个基本约束确定CLT中的未分配箱子集合中的一个或多个箱子的优化单层布
置。可选地,在前述任一方面中,该方面的另一种实现方式提供:指令进一步使一个或多个
处理器执行指令,以另外基于与多个箱子中的箱子相关的一个或多个实际约束确定CLT中
的未分配箱子集合中的一个或多个箱子的优化单层布置。可选地,在前述任一方面中,该方
面的另一种实现方式提供:指令进一步使一个或多个处理器用于:基于与集装箱集合中的
集装箱相关的一个或多个实际约束确定对一个或多个集装箱的层描述符的优化分配。
[0016] 该方面的另一种实现方式提供:指令进一步使一个或多个处理器用于:为集装箱内沿至少两个正交方向定向的层创建层描述符集合并且确定对集装箱集合的子集的层描
述符的优化分配;计算至少两个正交方向中每个正交方向上对子集的层描述符的优化分配
的包装效率,包装效率是基于集装箱子集中的集装箱的数量和集装箱子集中的每个集装箱
的包装效率计算的;以及基于具有包装效率大于或等于任何其他正交方向的包装效率的正
交方向,为集装箱子集中的每个集装箱生成装箱指令的有序列表。
[0017] 为清楚起见,上述任一实施例可以与上述其他任何一个或多个实施例结合以创建本发明范围内的新实施例。
[0018] 通过结合附图和权利要求的以下详细描述,将更清楚地理解这些和其他特征。

附图说明

[0019] 为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
[0020] 图1为本发明提供的系统的方框图;
[0021] 图2A和图2B描绘了本发明提供的一种在集装箱中装载箱子的方法的流程图;
[0022] 图3描绘了本发明提供的样本候选层厚度;
[0023] 图4描绘了层内的箱子的样本布置;
[0024] 图5描绘了本发明提供的一种向集装箱分配层的方法中的阶段;
[0025] 图6描绘了本发明提供的一种在集装箱中装载箱子的第二种方法的流程图;
[0026] 图7示出了本发明实施例提供的一种用于计算包装方案的装置的示意图。

具体实施方式

[0027] 首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决
不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设
计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
[0028] 将箱子装入集装箱是三维装箱问题(three‑dimensional bin packing problem,3D‑BPP)的一个示例。3D‑BPP启发法的示例包括多维背包法、混合整数线性规划模型以及采
用分支定界、有限枚举或遗传算法技术的方法。3D‑BPP在学术界和工业界(运输、托盘或集
装箱或航空货物的装载、生产/调度)都是一类重要且具有挑战性的问题。3D‑BPP被归类为
强非确定性多项式时间(non‑deterministic polynomial‑time hardness,NP‑hard 
hardness)问题。由于涉及的复杂程度,已发表的用于解决3D‑BPP的著作仍然受到限制。数
学编程(或数学优化)只能解决包装少量箱子的实例,而不需要比在商业应用中分配更多的
时间和/或计算机能力。此外,大多数文献甚至商业软件中的3D‑BPP方案往往都无法适应实
际约束,并且可能会产生不切实际的包装方案。
[0029] 本文公开了一种用于解决3D‑BPP的有效且鲁棒的过程,其解决了现有方法的实际局限性。所公开的过程的第一步考虑了3D‑BPP的变体,其中仅存在单个假设箱,并且假设箱
的长度可以调整以容纳包装在其中的箱子。该第一步的目的是将所有箱子装进总长度最小
的假设箱中。作为第一步的一部分,执行层包装以将问题(即单箱3D‑BPP)减少为系统的一
系列二维装箱问题(two‑dimensional bin packing problem,2D‑BPP),从而得到层描述符
集合。
[0030] 层是穿过集装箱的“切片”,其深度至少是一个箱子。具有至少一个小于或等于该层的深度的尺寸的箱子可以包装到该层中,其中该箱子可以旋转以适合该层。与原始3D‑
BPP相比,将箱子包装成层的2D‑BPP的计算强度更低。2D‑BPP技术的示例包括两级分解,以
及模拟退火法、遗传算法和邻域搜索启发法。
[0031] 评估候选层描述符以得到包装效率(或包装百分比),并且选择包装效率更高的候选层。在将箱子分配给层时,应用基本约束和实际约束。每个层描述符标识分配给层的箱
子、该层中箱子的物理布置和该层的厚度。
[0032] 接下来,使用最先匹配递减(first fit decreasing,FFD)过程或用于一维装箱问题(one‑dimensional bin packing problem,1D‑BPP)的其他合适过程,例如使用遗传算
法、粒子群启发法或最小箱松弛启发法的过程)基于每一层的厚度将层描述符分配给多个
实际箱(或集装箱)。在将箱子分配给集装箱时,再次应用基本约束和实际约束。最后,按照
如分配给集装箱的层描述符中所指定的由箱子的层和在层中的物理位置所确定的顺序,将
分配给每个集装箱的箱子包装到集装箱中。
[0033] 因此,所公开的过程提供了用于选择层厚度的鲁棒技术,从而允许每一层的紧凑包装,这提高了所公开过程的整体效率。包装方案从单箱包装问题扩展到多箱包装问题。多
箱包装问题在实践中很重要且更难解决。FFD(或其他1D‑BPP算法)的最优界限允许在不牺
牲整体性能的情况下完成从单箱包装问题到多箱包装问题的扩展。
[0034] 所公开的过程还允许进行调整以适应装箱问题的基本约束和实际约束。可以应用于箱子或集装箱的基本约束的非限制性示例包括正交包装(不以一定角度包装箱子)、无重
叠包装(箱子不能占据集装箱的相同区域)和集装箱尺寸限制(包装时,箱子不能延伸到集
装箱外)。可以应用于箱子或集装箱的实际约束的非限制性示例包括:包装是否可以旋转箱
子(以及在哪个方向上旋转)、可以堆叠多高的箱子、对箱子布置的稳定性限制、对集装箱的
重量限制,以及出于安全考虑,确保包装箱子的重心靠近集装箱的中心。
[0035] 图1为本发明提供的系统100的方框图。装运整合服务器102接收识别箱子和相关联的目的地的装运订单。装运整合服务器102从多个订单中合并具有相同目的地的箱子,以
产生具有共同目的地的箱子的整合列表104。装运整合服务器102将整合列表104发送到箱
子分配服务器106。
[0036] 箱子分配服务器106在执行根据本发明的方法时将基本约束120和实际约束122应用到整合列表104以生成具有分配的箱子及其在集装箱中的位置的相关联的有序列表的集
装箱列表108。箱子分配服务器106将列表108发送到集装箱装载服务器110。
[0037] 在一些实施例中,集装箱装载服务器110打印或显示列表108,以供个人将箱子装载到其分配的集装箱中使用。在其他实施例中,集装箱装载服务器110根据需要将列表108
格式化,以供机械系统将箱子装载到其分配的集装箱中使用。
[0038] 尽管根据本发明使用层将箱子布置在集装箱中,但是这些层仅仅是该方法的制品。一旦分配给集装箱的每个箱子都根据其层的位置及其在该层中的位置分配在集装箱中
的位置,则装箱指令的有序列表的创建将箱子与其层解除关联。箱子不必逐层装载,因为在
一些实施例中,层在集装箱中以侧对侧或从底部到顶部布置。相反,按照列表的顺序,以常
规方式从集装箱的封闭端到开放端装载箱子。
[0039] 图2A和图2B描绘了本发明提供的一种在集装箱中装载箱子的方法200的流程图。图2A呈现了方法200中的步骤,而图2B呈现了在执行图2A的方法200的步骤之一时所采取的
步骤的详细描述。
[0040] 在步骤202中,根据本发明的系统获得具有相等尺寸的集装箱集合的特性。此处使用的“相等尺寸”是指等于制造公差或在运输行业中使用的其他公差内的尺寸。特性包括集
合中集装箱的数量。
[0041] 在一些实施例中,系统获得将使用特定类型的工业标准集装箱集合的指示。在此类实施例中,系统可以从一种或多种类型的集装箱的特性数据库中获得该类型的集装箱的
特性。在其他实施例中,系统可以接收指定集装箱集合的特性的列表。获得的特性的非限制
性示例包括集装箱的尺寸、对装载到集装箱中的货物的重量限制和包装货物的重心靠近集
装箱中心的要求。
[0042] 在步骤204中,系统获得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性。尽管本发明涉及箱子,但应理解,所公开的系统和方法可以用于托盘、捆包、桶和
用于装运的其他类型的包装。所公开的系统和方法可以用于包括不同包装类型的混合物的
装运。
[0043] 获得的箱子的特性的非限制性示例包括每个箱子的尺寸、每个箱子的重量、对可以堆叠的此类箱子的数量限制、在包装时对每个箱子的朝向(旋转)的限制和对每个箱子的
稳定性限制(如果有)。如果所有被包装的箱子都相同,则系统可以获得适用于多个箱子中
的所有箱子的单个特性集合。系统可以获得包括根据本发明的方法未使用的信息的特性列
表,并且从该列表中提取方法所需要的特性。
[0044] 在步骤206中,系统创建层描述符(layer descriptor,LD)集合,如结合图2B将更详细地解释。每个LD描述了一层将要包装到集装箱中的箱子,并且包括层厚度、分配给层的
一个或多个箱子的标识和分配给该层的一个或多个箱子的位置和朝向。将多个箱子中的每
个箱子都分配给单个LD,并且LD集合包括多个箱子中的所有箱子。
[0045] 在步骤208中,系统确定对集装箱集合的子集的LD的优化分配。优化分配是因为试图最小化用于装运箱子的集装箱的数量。因此,子集可以小于集装箱集合。LD集合中的每个
LD都分配给单个集装箱,并且LD集合中的所有LD已被分配给集装箱子集。结合图5更详细地
描述一种用于确定对集装箱子集的LD的优化分配的方法。
[0046] 最后,在步骤210中,根据对集装箱的LD的优化分配,将多个箱子装载到集装箱子集中为其分配的集装箱中。为子集中的每个集装箱生成装箱指令的有序列表。列表从第一
个待装载到集装箱的箱子排序到最后一个待装载到集装箱的箱子。列表是基于集装箱中每
个箱子的层的位置和箱子在其层的优化单层布置中的位置和朝向生成的。
[0047] 对于每个箱子,装箱指令的有序列表包括箱子的标识、箱子的朝向和箱子在集装箱中的位置。一旦被装载,箱子的朝向可以表示为箱子的高度、宽度和深度。一旦被装载,箱
子在集装箱中的位置可以表示为箱子在集装箱中的指定角落的X/Y/Z位置。可以结合同一
个指定角落来描述所有箱子位置:在一个非限制性示例中,当从集装箱的开放端观看时,箱
子的最前面、最下面、最左边的角落。
[0048] 在一些实施例中,打印或显示针对每个集装箱的装箱指令的有序列表,以供实际将箱子装载到集装箱中的个人使用。在其他实施例中,将装箱指令的有序列表传输到自动
系统,以控制其将箱子机械装载到集装箱中。在其他实施例中,显示并传输有序列表以通过
组合的人/机械装载系统完成箱子的装载。
[0049] 图2B描绘了在结合图2A描述的方法200的步骤206中创建LD集合时所执行的步骤。如上,每个LD描述了一层箱子,并且包括层厚度、分配给层的一个或多个箱子的标识和对箱
子在该层中的布置的描述。将多个箱子中的每个箱子分配给单个LD,并且LD集合包括多个
箱子中的所有箱子。
[0050] 在步骤220中,根据本公开的系统创建未分配箱子集合。最初,集合包括在步骤204中获得特性的多个箱子中的所有箱子。
[0051] 在步骤222‑232中,方法200为未分配箱子集合中的一些箱子创建LD。如图5所示,方法200是在从集装箱的封闭端到开放端的包装方向上创建LD。因此,方法200创建的所有
LD具有集装箱的高度和宽度的横截面,并且其厚度沿集装箱的长度延伸。如结合图6将更详
细地描述的,方法200可以用于在集装箱内的其他包装方向上创建LD。
[0052] 在步骤222中,系统创建具有不同厚度的候选层厚度(candidate layer width,CLT)集合。一个CLT的厚度基于未分配箱子集合中任何一个箱子的最大尺寸(高度、宽度或
深度)。另一个CLT的厚度基于未分配箱子集合中任何一个箱子的最小尺寸。其他CLT的厚度
基于未分配箱子集合中的箱子的中等尺寸。
[0053] 图3描绘了本发明提供的三个样本候选层厚度。横截面302是被包装集装箱的横截面。厚度304是最大的箱子尺寸,厚度306是中等的箱子尺寸,而厚度308是最小的箱子尺寸。
[0054] 在步骤224中,为在步骤222中创建的CLT集合中的一个CLT(即“当前CLT”)创建优化单层布置(single‑layer arrangement,SLA)。优化SLA是当前CLT中单层上一个或多个箱
子的2D布置。对SLA进行了优化,因为试图最小化未装满箱子的CLT的体积。即,优化SLA试图
最大化CLT的包装效率。在步骤224中可以使用任何合适的2D‑BPP方案来创建优化SLA。
[0055] 图4描绘了层内的箱子401‑407的样本布置400。箱子401和403不会延伸层的整个高度,留有空白空间410。类似地,箱子403‑406不会延伸集装箱的整个宽度,留有空白空间
412。最后,箱子401不会延伸层的整个厚度,在箱子401的前面(或后面)留有空白空间414。
然而,布置400可以是具有最大包装效率的布置,并且可以是针对当前CLT的优化SLA。
[0056] 针对CLT的任何优化SLA可能要求满足一个或多个基本约束。在基本约束的一个示例中,箱子的边缘必须垂直或平行于集装箱的边缘。在另一个示例中,箱子可能不会相互贯
通,以占用CLT中的相同空间。在另一个示例中,箱子不会延伸出CLT的任何一侧。
[0057] 针对CLT的任何优化SLA也可能要求满足一个或多个实际约束。在一个示例中,在包装过程中或最终包装时,一些箱子可能不会旋转到某些朝向(例如,侧放或倒置)。在另一
个示例中,一些箱子可以仅在竖直方向上堆叠得很高。在另一个示例中,稳定性限制可能要
求布置400中的箱子401(不会延伸CLT的整个深度)具有最小厚度以允许其以稳定的方式支
撑箱子403(例如,不允许箱子403在装运期间翻倒)。
[0058] 返回图2B,在步骤226中,从CLT集合中移除步骤224中创建了优化SLA的当前CLT。在步骤228中,方法200检查CLT集合现在是否为空,并且如果CLT集合中有剩余的CLT,则返
回步骤224,为CLT集合中的另一CLT创建另一优化SLA。
[0059] 如果步骤228发现在CLT集合中没有剩余的CLT,则已经为每个CLT创建了优化SLA。在步骤230中,选择具有最高包装效率的CLT(即,具有最高包装效率的相关联SLA)。如果若
干个CLT的SLA具有同样高的包装效率,则可以通过任何合适的技术选择这些CLT中的其中
一个。作为非限制性示例,方法200可以选择高包装效率的CLT中的任意一个或SLA具有最大
箱数的CLT。
[0060] 在步骤232中,为选择的CLT和SLA创建LD(如结合图2A中步骤206所描述),并将LD添加到LD集合中。在步骤234中,从在步骤220中创建的未分配箱子集合中移除在新LD中标
识的箱子。在步骤236中,方法200检查是否还有剩余的未分配的箱子。如果是,则方法200返
回步骤222;如果不是,则完成步骤206,并且方法200继续进行以在图2A的步骤208中将LD分
配给集装箱。
[0061] 图5描绘了本发明提供的一种向集装箱分配层的方法中的阶段。任何合适的1D‑BPP过程都可以用于将LD分配给图2A的步骤208中的集装箱,但是当前本发明采用FFD来说
明一个可能的实施例。
[0062] 六个集装箱502被分配用于多个箱子的装运。图2A和图2B的步骤206的执行产生了LD 510、520和530。LD 510具有大的层厚度,LD 520具有中等的层厚度,而LD 530具有小的
层厚度。
[0063] 在向集装箱502分配LD的第一阶段中,FFD流程首先将最大的LD(510)中的每个LD分配到将适合的第一个集装箱中,如LD 511‑515所示,从而产生包装方案540。虽然LD 516
可以装入第三个集装箱,但LD 515和516的组合重量将超出集装箱最大重量限制的实际约
束,因此LD 516已被分配给第四个集装箱。通过未修改的FFD应用,将中等的LD 521‑527和
小的LD 531‑537分配给集装箱502。
[0064] 在第二阶段,可以应用另一实际约束,从而在一个或多个集装箱502内重新布置LD以生成包装方案542。在该示例中,实际约束是确保包装箱子的重心靠近集装箱的中心。在
第二个集装箱中,LD 522中箱子的组合重量大于LD 513或514的组合重量,因此,LD已重新
布置到LD 513和514之间的LD 522位置。类似地,在第三个集装箱中,LD 515已经移动至更
靠近集装箱的中心,第五个集装箱中的LD 527也是如此。
[0065] 简要地返回图2A的步骤210,系统现在具有与其集装箱中每个层的位置相关的信息和来自该层LD的与该层中每个箱子的位置相关的信息,并且可以生成装箱指令的有序列
表,其中列表从第一个待装载到集装箱的箱子排序到最后一个待装载到集装箱的箱子。
[0066] 在步骤206中创建LD 510、520和530,并且在步骤208中将LD分配给集装箱,从而为步骤202和204中分别获得的多个箱子和集装箱集合产生包装方案542。可以基于在包装方
案中使用的集装箱的数量(越小越好)和每个集装箱的包装效率(越高越好)来计算包装方
案542的包装效率的度量。
[0067] 已经提出了本发明的实施例,其使用不同厚度的垂直层将箱子分配到集装箱中的位置,其中这些层沿着从集装箱的封闭端(后面)到开放端(前面)的包装方向布置。本发明
的其他实施例可以采用垂直层,其中每个层从集装箱的后部延伸到集装箱的前部,即,从集
装箱的一侧延伸到另一侧的层。在其他实施例中,可以使用从集装箱的底部到顶部的水平
层。即,根据本发明的方法中的层可以在三个正交轴中的任一轴上和这些轴中的每个轴的
任一方向上:从后到前、从前到后、从右到左、从左到右、从下到上或从上到下创建。因此,存
在六个可能的正交包装方向,在这些方向上可以应用根据本发明的实施例。
[0068] 图6描绘了本发明提供的一种在集装箱中装载箱子的第二种方法600的流程图。在方法600中,在六个可能的包装方向中的两个或两个以上方向上创建层,并且比较每个方向
的包装方案的包装效率,以找到产生最高包装效率的方向。
[0069] 在步骤602中,创建包装方向集合。集合包括六个可能的包装方向中的两个或两个以上方向。在步骤604中,使用方法200或根据本发明的另一种方法,针对其中一个包装方向
(当前方向)创建包装方案(当前方案)。在步骤606中,计算当前方案的包装效率。如上,计算
包装方案的包装效率将倾向于使用较少集装箱且更充分地包装每个使用的集装箱的方案。
[0070] 在步骤608中,从包装方向集合中移除当前方向。在步骤610中,确定包装方向集合中是否有剩余的任何包装方向。如果有剩余的包装方向,则方法600返回步骤604。
[0071] 如果包装方向集合为空,则在步骤612中,方法600选择包装方案具有最高包装效率的包装方向。如果捆绑两个或多个包装方案以实现最高包装效率,则可以选择这些包装
方案中的任意一种,也可以使用其他打破平局的方法。最后,在步骤614中,根据选择的包装
方案将箱子装载到集装箱中,如图2A的步骤210。
[0072] 图7为本发明实施例提供的一种用于计算包装方案的装置700的示意图。装置700适用于实施如本文的公开实施例。在一实施例中,装置700可以是网络服务器或独立计算机
系统。装置700包括:用于接收数据的入端口710和接收器单元(receiver unit,简称Rx)
720;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,简称
CPU)730;用于传输数据的发射器单元(transmitter unit,简称Tx)740和出端口750;以及
用于存储数据的存储器760。装置700还可以包括与入端口710、接收器单元720、发射器单元
740和/或出端口750耦合的光电(optical‑to‑electrical,简称OE)组件和电光
(electrical‑to‑optical,简称EO)组件,用于光信号或电信号的出或入。
[0073] 处理器730可以通过硬件和软件实现。处理器730可用作一个或多个中央处理器(CPU)芯片、核芯(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/
或数字信号处理器(DSP)予以实现。处理器730与入端口710、接收器单元720、发射器单元
740、出端口750和存储器760通信。处理器730包括层描述符模块(layer descriptor 
module,简称LDM)770和层分配模块(layer assignment module,简称LAM)780。LDM7 70和
LAM780实施本文的公开实施例。例如,LDM 770配置处理器730以创建层描述符集合,LAM 
780配置处理器730将层描述符分配给集装箱。因此,LDM 770和LAM 780的包含对装置700的
功能进行了实质性的改进,并实现了针对3维装箱的NP困难技术问题的非常规技术方案。或
者,LDM 770和LAM 780实现为存储在存储器760中并由处理器730执行的指令。
[0074] 存储器760包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可以用作溢出数据存储设备,以便在选择执行此类程序时存储程序,并且存储在程序执行期间读取的指令
和数据。存储器760可以是易失性和/或非易失性,并且可以是只读存储器(read‑only 
memory,简称ROM)、随机存取存储器(random access memory,简称RAM)、三态内容寻址存储
器(ternary content‑addressable memory,简称TCAM)和/或静态随机存储器(static 
random‑access memory,简称SRAM)。
[0075] 一种在集装箱中装载箱子的方法,包括:获得具有相等尺寸的集装箱集合的特性;获得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性;以及创建层描述符
集合的设备。其中,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对一个
或多个箱子在该层中的布置的描述,多个箱子中的每个箱子都分配给单个层描述符。该方
法还包括:确定对集装箱集合的子集中的集装箱的层描述符的优化分配;以及用于根据对
集装箱的层描述符的优化分配将多个箱子装载到子集中的每个集装箱中。
[0076] 一种装置,包括:存储器设备,用于存储指令;以及处理器设备,耦合到存储器设备,处理器设备用于执行存储器设备中存储的指令以:获得具有相等尺寸的集装箱集合的
特性;获得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性;创建层描述
符集合,每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对一个或多个箱
子在该层中的布置的描述,多个箱子中的每个箱子都分配给单个层描述符;确定对集装箱
集合的子集中的集装箱的层描述符的优化分配;以及为子集中的每个集装箱生成装箱指令
的有序列表,列表基于对集装箱的层描述符的优化分配从第一个待装载箱子排序到最后一
个待装载箱子,每个装箱指令包括箱子的标识、箱子的朝向和箱子在集装箱中的位置。
[0077] 在示例性实施例中,装置700包括:集装箱集合模块,用于获得具有相等尺寸的集装箱集合的特性;箱子特性模块,用于获得将要包装到集装箱集合的一个或多个集装箱中
的多个箱子的特性;层描述符模块,用于创建层描述符集合,每个层描述符包括层厚度、分
配给层的一个或多个箱子的标识和对一个或多个箱子在该层中的布置的描述,多个箱子中
的每个箱子都分配给单个层描述符;分配模块,用于确定对集装箱集合的子集中的集装箱
的层描述符的优化分配;以及装载模块,用于根据对集装箱的层描述符的优化分配将多个
箱子装载到子集中的每个集装箱中。在一些实施例中,装置700可以包括用于执行实施例中
描述的步骤中的任何一个或组合的其他或附加模块。进一步地,如任何附图中所示或任何
权利要求中所引用的方法的任何附加或替代实施例或方面也被认为包括相似的模块。
[0078] 一种用于存储计算机指令的非瞬时性计算机可读设备,当一个或多个处理设备执行计算机指令时,使一个或多个处理设备用于:获得具有相等尺寸的集装箱集合的特性;获
得将要包装到集装箱集合的一个或多个集装箱中的多个箱子的特性;创建层描述符集合,
每个层描述符包括层厚度、分配给层的一个或多个箱子的标识和对一个或多个箱子在该层
中的布置的描述,多个箱子中的每个箱子都分配给单个层描述符;确定对集装箱集合的子
集中的集装箱的层描述符的优化分配,优化分配包括每个层在其分配的集装箱中的位置;
以及为集装箱子集中的每个集装箱生成装箱指令的有序列表,列表基于对集装箱的层描述
符的优化分配从第一个待装载箱子排序到最后一个待装载箱子,每个装箱指令包括箱子的
标识、箱子的朝向和箱子在集装箱中的位置。
[0079] 虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的实例应被视
为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可
以在另一系统中组合或合并,或者某些特征可以省略或不实施。
[0080] 此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论
述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某
一接口、设备或中间部件间接地耦合或通信。当第一元件被显示或描述为响应于第二元件
时,第一元件可以直接响应或间接响应于第二元件。其他变化、替代和改变的示例可以由本
领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。