Page 29 - 《软件学报》2021年第12期
P. 29

阳名钢  等:求解二维装箱问题的强化学习启发式算法                                                        3693


         生成 400 000 组数据;(2)  矩形块数为 100 生成 300 000 组数据;(3)  矩形块数为 50 的块数共生成 300 000 组数
         据.同时生成 100 000 组数据集作为测试样本.通过随机种子生成较大的训练数据集,是为了能尽可能地涵盖不
         同的样本,使得模型能学习到丰富的样本.

         3.2   实验环境和参数设置
             强化学习模型主要通过 pytorch 实现,实验运行环境如下:Ubuntu 16.04 LST,处理器为 Intel Core E5-2620 v4,
         处理器频率 2.10GHz,内存 62G,显卡为 NVIDIAGeForceRTX2080Ti,显存为 11G.
             在实验中,我们使用了 1 000 000 组的训练数据和 100 000 组的测试数据.在实验过程中,每批训练的样本量
         是 128,解码器中 GRU 的隐层单元数量为 128,输入数据也将被嵌入到 128 的向量中.本文使用 Xavier                     [38] 初始化
         方法对 Actor 和 Critic 网络进行初始化,使用 Adam 优化器,学习速率为 0.0001,同时,为了防止过拟合的问题,使
         用了 L2 范数对梯度进行裁剪.在解码器中使用了 0.1 的 dropout,dropout 可以比较有效地缓解过拟合的产生.模
         型在单个 GPU 上训练 1 000 个时期.
             训练好的模型将为 HHA 提供初始解,接下来,我们将把 RLHA 和目前优秀的启发式算法 GRASP                         [17] ,SVC [32] ,
         ISA [19] ,SRA [20] ,CIBA [21] 和 HHA [22] 算法进行实验对比,验证算法的效果.每个算法将在所有的数据集上运行 10
         次,每个实例的运行时间限制为 60s,部分大规模数据集运行时间会超过 60s.对比算法的实验结果直接取自原文
         献(原文献中的参数设置都是原作者通过实验选择的最优参数),以保证算法对比的公平性.
         3.3   实验结果
             为了验证 RLHA 的有效性,我们将训练好的模型框架同当前著名的启发式算法进行对比分析.本节进行对
         比分析的实验数据一部分来自标准的数据集,为了更合理地说明 RLHA 的性能,另一部分是由算法 3.1 和算法
         3.2 生成的数据.由于训练的数据集与强化学习的算法性能还是存在一定关联的,因此另一部分实验分析将在数
         据生成算法生成的数据上进行,可以更客观的展现算法的性能.
             (1)  标准数据集的对比分析
                          [9]
             我们将在 C   [12] ,N ,NT [33] ,2SP [17] ,BWMV [34,35] 和 Nice&Path [36] 这 6 个标准数据集上进行实验(见表 1),对比 7
         个算法的实验效果,用粗体标出最佳解的数据.之所以没有考虑标准数据集 ZDF                          [37] 的原因在于:这个数据集存在
         大规模的实例,目前强化学习模型在处理大规模的实例时,运行时间会过长.由于计算能力和运行时间的限制,
         这两个包含大规模问题实例的数据集就不做实验分析.
                                           Table 1   Benchmark data
                                              表 1   标准数据集
                                      Dataset   Instances  n  zero-waste
                                        C        21    16~197   Yes
                                        N        13    10~3152  Yes
                                        NT       70    17~199   Yes
                                        2SP      38    7~200     No
                                      BWMV      500    20~100    No
                                     Nice&Path   72    25~5000   No

             从表 2 的实验结果可以看出,RLHA 在 N 数据集上的表现同 HHA 表现一样.N 数据集是一个零浪费率的数
         据集,我们的算法在大部分实例上都已经取得最优解,因此两个算法在这个数据集上表现并无差别.RLHA 在
         2SP 数据集上的表现与 HHA 获得的结果持平.出现这个情况的原因可能与该数据的特点有关系,该数据矩形个
         数较少且存在一些比较特殊的实例,需要更精细的策略来改善.我们的启发式设计的规则在这个数据集上的表
         现可能陷入了瓶颈,因此并没有取得更优的结果.对其余数据集,RLHA 均超过了 HHA,在所有数据集的表
         现,RLHA 均显著超过了其他 5 个算法.
             RLHA 在 C,NT,BWMV,Nice 和 Path 上的表现都比 HHA 略提升了一些,虽然提升的幅度不大,但是可以看
         到,强化学习模型的加入的确提升了实验结果.这也可以说明强化学习模型能有效地改进启发式获得解的质量.
   24   25   26   27   28   29   30   31   32   33   34