1. 引言
随着我国经济的快速发展,物流成为经济建设中不可或缺的行业,配送则是物流中一个极为重要的环节,而集装箱运输是一种非常重要的配送方法。因此,如何最大限度地利用集装箱容积和承载能力,从而降低配送成本成为物流运输研究的热点之一。
三维装箱问题属于NP-Hard问题,其解空间极为庞大。为了获得近似的最优解,众多启发式算法如极点法、砌墙法、中心骨架法、三空间分割法、空间重组以及拟人法等被开发出来。这些构造性算法依托于装箱经验,优化装箱布局,特别适用于处理货物异构性较低、装箱约束较少的问题[1]随着装箱问题研究的深入,研究者开始将更多复杂的实际约束纳入考量,并采用蚁群算法、化学优化算法[2]、遗传算法[3]以及多种混合邻域搜索算法[4]来解决装箱问题。这些算法通常先通过构造性算法生成初始的装载方案,随后利用邻域搜索算法进行优化,以得到复杂装箱问题的近似最优解。然而,由于单一目标的装箱算法难以适应多样化的装箱场景,Trivella等[5]开发了一种考虑负载平衡和装箱数量的多目标三维装箱算法。Erbayrak [6]等结合稳定性和负载平衡,将一系列产品打包在一起,提出多目标混合整数规划模型,解决了现实生活中多约束条件下的集装箱装载问题;Ramos [7]等提出了一种考虑静态稳定性和负载平衡的新适应度函数多群体偏置随机密钥遗传算法。赵向领等[8]提出了一种基于改进遗传算法的多目标飞机配载模型,有效地平衡了业载量和重心偏移量两个优化目标。侯莹等[9]设计了一种数据驱动的选择策略差分进化算法,显著提高了算法解决复杂多目标问题的效率。Takagi等[10]提出了一种基于权重自适应分解的多目标进化算法,通过计算不同子问题之间的欧氏距离来判断解的相似度,并据此调整解集的分布。这些改进旨在提高算法的性能,使其能够更有效地应对装箱问题的复杂性。
本文结合负载平衡约束,考虑解决集装箱空间利用率和车辆安全的CLP (Container Loading Problem)问题。所提出的模型将考虑两个目标。第一个目标是最大限度地利用集装箱的空间利用率,这一目标旨在提高集装箱的利用效率。而第二个目标与车辆负载安全性有关,通过减少车轴受力,使得运输过程变得更加安全。
2. 问题描述及数学模型
2.1. 问题描述
本研究考虑的装载容器为单一集装箱卡车,而待装货物包括N种不同类别的长方体形状物品,这些物品具有均匀的质量分布,且摆放方向不受限制。所面临的带轴重约束的平衡装载问题可以定义为:从N种货物中选取一定数量的物品进行组合,并以正交方式放置于卡车车厢内。在确保物品之间不发生重叠、不超过车厢边界、且不违反车辆的载重及轴重限制的前提下,目标是最大化车厢的装载空间和承载能力的利用,同时力求实现载荷的均衡分布。具体而言,将多目标三维装箱问题描述为:给定集装箱的长宽高分别为L、W、H,重量为M 的N个不同的货物序列
,考虑不同的实际约束条件。
2.2. 数学模型
在本研究中,数学模型将箱子和容器的特性定义为如下。
容器的尺寸为x,y,z。容器中的空间用三维坐标x,y,z表示,如图1所示。
Figure 1. Schematic diagram of container size
图1. 容器尺寸示意图
每个盒子有一个维度长度(Ii),宽度(Wi),高度(Hi)。给定一辆载着最大载荷Q的集装箱的车辆,最大载荷可以分配到前轴Q1,而Q2则是后轴的最大载荷[11]。车辆前部到前、后轴的距离分别为
和
,如图2所示。
本文把卡车分为三个部分:箱子可以放置在集装箱前部和前轴之间,称之为A区间;箱子放置在两个轴之间,称之为B区间;箱子放置在后轴至集装箱末端,称之为在C区间。
假设一个重量为qi的箱子被放置在卡车上的位置i上,由它在长度维度上的中点ci定义。那么施加在每个车轴上的力取决于重量和位置,方法如表1所示。
如果盒子放置在A区间,则1号轴上的力为正,2号轴上的力为负。如果盒子放在B区间,则两个力都是正的。如果盒子放在C区间,则1号轴上的力是负的,2号轴上的力是正的。但这些力必须是平衡的,不允许超过每个轴上的最大力。因此,盒子最终施加的力的总和必须小于或等于每个轴所能承受的最大力,因此需要满足以下约束:
(1)
(2)
式中
为box-i中点的坐标,
为box-i的重量。
Figure 2. Schematic diagram of truck dimensions
图2. 卡车尺寸示意图
Table 1. Determination of force punishment
表1. 力惩罚判定
区间 |
位置 |
轴1受到的力 |
轴2受到的力 |
A区间 |
|
|
|
B区间 |
|
|
|
C区间 |
|
|
|
关于CLP问题应当考虑的是每个盒子的位置和方向。因此,针对CLP问题的首要目标是box-i的原点坐标,而第二个目标则是是box- i的方向(
代表箱子的方向)。因此,定义第一个目标变量约束如下:
(3)
(4)
(5)
每件货物装入集装箱时,有六种可能的方向,如图3所示。
因此定义所提模型中的第二个目标变量约束:
其中
:方向遵循图(a);
:方向遵循图(b);
:方向遵循图(c);
:方向遵循图(d);
:方向遵循图(e);
:方向遵循图(f);
Figure 3. Orientation of goods
图3. 货物朝向状态
定义所提出模型的目标函数:
(6)
(7)
其中
(8)
(9)
所提出模型的约束条件如下:
a. 保证所有方框位置不重叠。
(10)
(11)
(12)
(13)
(14)
(15)
b. 确保所有箱体均位于集装箱内或无越界
(16)
(17)
(18)
c. 集装箱内所有箱体的最大重量小于车辆所能承受的最大重量。
(19)
d. 最后,非负约束和第二个决策变量的整数约束。
(20)
(21)
详细符号说明如下表2所示。
Table 2. Symbol explanation
表2. 符号说明
变量名 |
备注 |
X |
容器最大长度 |
Y |
容器最大宽度 |
Z |
容器最大高度 |
Q |
容器所能承受的最大重量 |
N |
装入集装箱的箱子数 |
|
分别代表box-i的原点(即左前底角坐标,
) |
di |
箱子的方向 |
li |
箱子的长度 |
wi |
箱子的宽度 |
hi |
箱子的高度 |
qi |
箱子的重量 |
ci |
箱子在x轴的中点 |
Q1 |
前轴所能承受的最大重量 |
Q2 |
Q2是后轴所能承受的最大重量 |
|
从卡车前轴到前部的距离 |
|
从卡车后轴到后部的距离 |
Pf |
代表来自前轴的惩罚 |
Pr |
代表来自后轴的惩罚 |
F1 |
空间利用率 |
F2 |
力惩罚 |
3. 混合遗传算法设计
针对三维装箱问题,鉴于其NP-hard特性以及实际约束条件导致的复杂性,本研究提出了一种混合遗传算法(Hybrid Genetic Algorithm, HGA) [12],该算法将有偏随机秘钥和精英策略的遗传算法相融合,同时改进了DBLF装箱策略,旨在解决带有平衡性约束的三维装箱问题。HGA算法通过改进后的DBLF策略进行装箱策略,以最大化容器内箱子的空间利用率。随后,算法进入遗传算法优化阶段,包括初始化种群、适应度评估、选择、交叉和变异操作,并特别设计了满足平衡性约束的遗传操作。通过迭代执行上述过程,直至满足终止条件,HGA算法能够在保证解的质量的同时提高计算效率,有效应用于实际大规模的3D装箱问题求解[13]。
3.1. 装箱策略
3.1.1. DBLF装箱策略
Karabulut [14]展示了DBLF策略的有效性,该策略被广泛采纳,用于优化集装箱的空间利用率并缩短计算时长。他们提出的机制遵循DBLF原则,将物品装入集装箱,并规定物品必须放置于首个满足条件的DBLF位置。DBLF位置定义为:在所有可用空间中,具有最小x坐标的位置;若存在多个这样的位置,则选择其中z坐标最小的;若仍有多个,则进一步选择y坐标最小的。首个允许的DBLF位置是新物品能够被安置的下一个位置。如图4所阐释。
Figure 4. DBLF packing strategy
图4. DBLF装箱策略
3.1.2. 改进装箱策略
本文的模型从坐标原点开始,尽量使货物靠近包装箱壁和已装填商品,以最大化空间利用率。为此,对所有货物的顺序是:首先按X坐标从小到大排序,然后根据Y坐标排序,最后按Z坐标排序。通过这样的排序,可以依次考虑每个货物的放置点。有效改善了重量分布,如图5所示。
Figure 5. Schematic diagram of building blocks
图5. 块构建示意图
3.2. 混合遗传算法设计
Figure 6. Algorithm flow framework
图6. 算法流程框架
在本项研究中,本文设计并实现了一种面向三维单集装箱装载问题的双目标多种群有偏随机密钥遗传算法(如图6所示)。该遗传算法(GA)设定了一系列特定参数,涵盖了代的大小(gen_size)、种群的数目(pop_num)、每个种群的规模(pop_size)、精英比例(elite_rate)、交叉概率(crossover_rate)以及变异概率(mutation_rate)。在遗传算法中,每一次迭代计算被称作一代,用变量t来表示,每一代由一组解构成,这些解共同形成了一个种群P(t)。在这个种群中,每个解被视作一个染色体,而染色体则由基因组成,即编码解决方案的遗传信息。
在每一代的进化过程中,每条染色体都会依据既定的适应度评价标准进行评估。新一代的个体C(t)可以通过三种基本的遗传操作产生:复制、交叉和变异。种群P(t)代表第t代的父代,而C(t)则代表由这些父代衍生的子代。为了维持种群规模的稳定,在新一代的生成过程中,将根据适应度评价和精英策略,从父代和子代中选择一部分个体,共同构成下一代的种群。通过这种方式,算法在每一代中不断优化解集,以期达到更优的装载方案。
3.2.1. 编码与解码
本文采用了有偏随机秘钥遗传算法(Biased Random Key Genetic Algorithm)解决所构建的模型。为了提升计算的效率,本研究并未采用二进制形式来表示这些变量。依据模型的数学定义,需确定两个关键的决策变量:一是箱子的起始坐标,二是箱子的朝向。本文通过两组染色体来分别表示这两个决策变量。其中,第一组染色体反映了箱子在装载序列中的顺序,而第二组染色体则指示了每个箱子的摆放方向。图7所示部分详细展示了解决方案的这种表示方法。
Figure 7. Random key display
图7. 随机密钥展示
将每条染色体的第一部分解码为装箱顺序,是通过将盒型基因按升序的排序方法实现。图8所示部分详细展示了解决方案的这种表示方法。
Figure 8. Decoding of packing sequence
图8. 装箱顺序解码
将每条染色体的第二部分解码为货物方向情况,图9所示部分详细展示了解决方案的这种表示方法。
Figure 9. Decoding process of cargo direction
图9. 货物方向解码过程
3.2.2. 交叉与变异
首先,对所有父代中的染色体进行复制,将它们传递给子代。然后通过交叉操作,根据特定的参数设置,每一代都会生成数量为种群大小与交叉率乘积的后代群体(详见图10)。在这个过程中,首先从种群中表现最为优秀的精英群体中随机选取一部分作为亲本1。而亲本2则是从种群的其他个体中选取。在交叉过程中,对于每一个基因,如果随机数的生成结果满足特定的条件,即低于判断条件0.7,那么子代将从精英群体中继承这一基因。
Figure 10. Parameterized uniform cross process
图10. 参数化均匀交叉过程
在进行交叉之后,它执行突变。突变从染色体中随机选择个体,并交换它们的位置。图11展示了突变过程。
Figure 11. Mutation process
图11. 突变过程
4. 仿真实验
4.1. 测试实例及参数设置
本项研究旨在通过BR实例来验证遗传算法在多目标集装箱装载问题方面的效率。BR实例由Bischoff等人设计,已成为集装箱装载问题研究领域的标准案例。该数据集涵盖了货物与集装箱尺寸的详细信息。BR实例共包含7个测试用例,分别为BR1-BR7,其中BR1-BR3为弱异构案例,弱异构是指箱子的种类较少;BR4-BR7为强异构案例,强异构是指箱子的种类较多;每个实例均涉及不同尺寸的集装箱。在这些测试实例中,需要被合理地装载进指定的集装箱中。所提供的测试数据设计从低异构性逐步过渡到高异构性,以全面评估算法的性能。为了验证负载平衡效果,为货物设置了密度,使货物存在一定质量。以表3 BR7算例为例展示部分货物信息。
Table 3. BR7 example information
表3. BR7算例信息
货号 |
长/cm |
宽/cm |
高/cm |
放置状态 |
质量/kg |
1 |
108 |
76 |
30 |
2 |
24.62 |
2 |
110 |
43 |
25 |
2 |
11.83 |
3 |
92 |
81 |
55 |
4 |
40.99 |
4 |
81 |
33 |
28 |
6 |
7.484 |
5 |
120 |
99 |
73 |
2 |
86.72 |
6 |
111 |
70 |
48 |
6 |
36.96 |
… |
… |
… |
… |
… |
… |
本文选择了两种元启发式算法:HGA和MOPSO (Multi-Objective Particle Swarm Optimization)来处理多目标CLP问题。这些算法的实施需要预先设定一些参数。为了找到这些参数的最佳设置,进行了一系列的预实验。基于这些实验的结果,确定了HGA和MOPSO算法的参数配置,这些配置如表4所示。
4.2. 基准数据集的对比
本文将MOPSO和HGA应用于所提出的CLP模型,使用BR数据集进行了实验[15],目的是验证算法的开发是否正确。本节在CLP模型中运行MOPSO和HGA。算法在每个BR数据集运行并重复30次,实验结果如表5和表6所示。
Table 4. Parameter settings
表4. 参数设置
HGA |
MOPSO |
参数 |
数值 |
参数 |
数值 |
种群规模 |
200 |
粒子群规模 |
200 |
最大迭代 |
200 |
最大迭代 |
200 |
交叉率 |
0.8 |
学习率1 |
1.5 |
变异率 |
0.6 |
学习率2 |
1.5 |
|
|
惯性权重 |
0.8 |
Table 5. Experimental results of space utilization efficiency
表5. 空间利用率实验结果
空间利用率 |
指标 |
BR1 |
BR2 |
BR3 |
BR4 |
BR5 |
BR6 |
BR7 |
MOPSO |
平均值 |
0.8018 |
0.7190 |
0.8381 |
0.8413 |
0.8119 |
0.8797 |
0.8293 |
最大值 |
0.9166 |
0.8653 |
0.8956 |
0.9128 |
0.8886 |
0.9329 |
0.9107 |
标准差 |
0.0686 |
0.0660 |
0.0384 |
0.0382 |
0.0338 |
0.0352 |
0.0486 |
最小值 |
0.5810 |
0.6052 |
0.6437 |
0.7250 |
0.7223 |
0.8056 |
0.7167 |
HGA |
平均值 |
0.7963 |
0.7093 |
0.8598 |
0.8688 |
0.8591 |
0.8928 |
0.8606 |
最大值 |
0.8712 |
0.7561 |
0.8835 |
0.9254 |
0.8993 |
0.9414 |
0.9158 |
标准差 |
0.0625 |
0.0619 |
0.0310 |
0.0364 |
0.0362 |
0.0342 |
0.0402 |
最小值 |
0.6781 |
0.6514 |
0.8322 |
0.8216 |
0.8125 |
0.8512 |
0.8051 |
加粗字体:更好的结果。
Table 6. Results of force punishment experiment
表6. 力惩罚实验结果
力惩罚 |
指标 |
BR1 |
BR2 |
BR3 |
BR4 |
BR5 |
BR6 |
BR7 |
MOPSO |
平均值 |
104,050 |
51,186 |
120,055 |
107,049 |
134,249 |
77,221 |
88,458 |
最大值 |
319,972 |
169,273 |
224,359 |
250,542 |
255,549 |
205,904 |
246,122 |
标准差 |
67,292 |
42,100 |
88,995 |
65,215 |
78,508 |
67,568 |
56,200 |
最小值 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HGA |
平均值 |
77,204 |
45,729 |
124,741 |
110,688 |
149,135 |
81,627 |
91,661 |
最大值 |
203,926 |
108,551 |
199,482 |
245,425 |
298,459 |
215,259 |
178,254 |
标准差 |
65,125 |
40,561 |
74,245 |
67,395 |
80,595 |
70,562 |
57,862 |
最小值 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
加粗字体:更好的结果。
由表5和表6可知,HGA与MOPSO在空间利用率方面,在BR1和BR2的算例中MOPSO的表现优于HGA。但在BR3-BR7的算例中,HGA的表现优于MOPSO;在力惩罚方面,BR5和BR7的HGA和MOPSO结果有显著差异。这表明HGA在解决弱异构问题的空间利用率略逊于MOPSO,但HGA在力惩罚方面优于MOPSO;在解决强异构装箱问题方面,HGA的空间利用率优于MOPSO,但力惩罚方面却不如MOPSO。图12~18显示了每个数据集的HGA和MOPSO的Pareto前沿。
Figure 12. Pareto solution set (BR1) for HGA and MOPSO
图12. HGA和MOPSO的Pareto解集(BR1)
Figure 13. Pareto solution set (BR2) for HGA and MOPSO
图13. HGA和MOPSO的Pareto解集(BR2)
Figure 14. Pareto solution set (BR3) for HGA and MOPSO
图14. HGA和MOPSO的Pareto解集(BR3)
Figure 15. Pareto solution set (BR4) for HGA and MOPSO
图15. HGA和MOPSO的Pareto解集(BR4)
Figure 16. Pareto solution set (BR5) for HGA and MOPSO
图16. HGA和MOPSO的Pareto解集(BR5)
Figure 17. Pareto solution set (BR6) for HGA and MOPSO
图17. HGA和MOPSO的Pareto解集(BR6)
Figure 18. Pareto solution set (BR7) for HGA and MOPSO
图18. HGA和MOPSO的Pareto解集(BR7)
根据这些结果,本研究更推荐使用HGA,因为对于大多数的BR数据集,HGA的结果明显优于MOPSO,特别是在空间利用率方面。另一方面,虽然HGA的力惩罚方面并不比MOPSO更好,但对于大多数数据集来说差异并不显著。
此外,由于元启发式算法涉及一些随机数来生成解,所以它们总是产生不同的结果。因此,本研究的实验结果是一个样本结果。
本研究应用统计分析来评估这些算法的性能,以获得更一般的结果。本文采用统计学t检验评分析HGA与MOPSO的显著性差异,如表7所示。
Table 7. T-test experimental results
表7. T检验实验结果
案例集 |
空间利用率 |
力惩罚 |
BR1 |
1.5055 |
2.7399 |
BR2 |
0.5727 |
2.0713 |
BR3 |
2.6841 |
1.8459 |
BR4 |
2.5612 |
1.6481 |
BR5 |
2.1458 |
1.9782 |
BR6 |
2.6281 |
0.9465 |
BR7 |
2.7180 |
2.0431 |
加粗字体:不服从假设。
本检验所采用的一般假设如下:
H0: UHGA = UMOPSO;
H1: UHGA ≠ UMOPSO。
显著性水平α为5%。表7总结了统计量t检验结果。由表6可知,HGA与MOPSO在空间利用率上的差异除BR1和BR2外均显著。在力惩罚方面,BR1和BR2的HGA和MOPSO结果有显著差异。根据这些结果,本研究推荐使用HGA,因为对于大多数数据集,结果明显优于MOPSO,特别是在利用率方面。另一方面,虽然力惩罚并不比MOPSO更好,但对于大多数数据集来说差异并不显著。
除了结果对比以外,本文还基于运行时间对HGA和MOPSO的性能进行对比,如表8所示,MOPSO运行速度比HGA快。这是因为与HGA相比,MOPSO的算法相对简单。
Table 8. Algorithm calculation time
表8. 算法计算时间
|
BR1 |
BR2 |
BR3 |
BR4 |
BR5 |
BR6 |
BR7 |
HGA |
6235 |
6425 |
7025 |
7513 |
7824 |
8095 |
8569 |
MOPSO |
2358 |
1652 |
2232 |
2352 |
1795 |
2639 |
3145 |
此外,为了分析参数设置对结果的影响,本文使用不同的参数组合进行实验仿真。本文取两类货物差异明显的案例集(BR1和BR7)数据集上进行实验。在本文中测试了几种不同的参数组合设置。表9和表10总结了实验结果。这些结果表明,不同的参数设置可能会得到不同的结果。这些结果可能用于确定实际应用的参数设置。
Table 9. MOPSO results under different parameter combinations
表9. 不同参数组合下MOPSO的结果
权重 |
学习率1 |
学习率2 |
|
空间利用率 |
力惩罚 |
BR1 |
0.8 |
1.0 |
1.5 |
Average |
0.851 |
137,436 |
0.8 |
1.5 |
1.0 |
Average |
0.834 |
107,853 |
0.8 |
1.5 |
1.5 |
Average |
0.822 |
104,050 |
0.6 |
1.0 |
1.5 |
Average |
0.811 |
92,584 |
0.6 |
1.5 |
1.0 |
Average |
0.891 |
207,119 |
0.6 |
1.5 |
1.5 |
Average |
0.894 |
212,127 |
BR7 |
0.8 |
1.0 |
1.5 |
Average |
0.795 |
55,623 |
0.8 |
1.5 |
1.0 |
Average |
0.787 |
49,537 |
0.8 |
1.5 |
1.5 |
Average |
0.892 |
88,458 |
0.6 |
1.0 |
1.5 |
Average |
0.789 |
51,038 |
0.6 |
1.5 |
1.0 |
Average |
0.841 |
100,709 |
0.6 |
1.5 |
1.5 |
Average |
0.875 |
134,852 |
Table 10. The results of HGA using different parameter combinations
表10. 不同参数组合下HGA的结果
交叉率 |
变异率 |
|
空间利用率 |
力惩罚 |
BR1 |
0.8 |
0.6 |
Average |
0.796 |
97,204 |
0.8 |
0.4 |
Average |
0.803 |
89,452 |
0.9 |
0.6 |
Average |
0.798 |
86,548 |
0.9 |
0.4 |
Average |
0.835 |
103,457 |
BR7 |
0.8 |
0.6 |
Average |
0.861 |
111,661 |
0.8 |
0.4 |
Average |
0.870 |
137,572 |
0.9 |
0.6 |
Average |
0.824 |
81,964 |
0.9 |
0.4 |
Average |
0.814 |
79,165 |
因此,决策者需要根据与其利益相关的指标选择一个参数组合。例如,在空间利用率比力惩罚更重要的情况下,那么他们应该选择一个在满足力惩罚条件的情况下空间利用率的最大值。
5. 结论
综上所述,本研究首先构建了一个数学模型,该模型综合考虑了装载效率、轴重限制等因素。接着,本研究提出了一种改进的DBLF装箱策略来生成货物布局方案,基于NSGA-II的基础上提出混合遗传算法,并将结果与MOPSO进行对比,通过多目标优化问题的目标值和质量指标对两种算法的结果进行评估,发现在货物种类较少时,MOPSO的空间利用率优于HGA,而在货物种类繁多的情况下,HGA的表现更佳。此外,HGA在计算时间上比MOPSO更长,这是由于HGA的程序更为复杂。因此,在实际应用中,物流企业可以根据自身需求选择使用调整参数后的HGA或MOPSO算法,以实现集装箱的高利用率和运输安全性。
基金项目
上海市哲学社会科学一般项目;项目编号:2022BGL010;项目类型:一般项目。
NOTES
*第一作者。
#通讯作者。