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

3688                                Journal of Software  软件学报 Vol.32, No.12, December 2021

         的框架图 2 所示.强化学习方法是一种自我学习驱动的过程,该过程仅依赖输出序列所计算获得的奖励值来训
         练网 络 . 网络模 型 ( 即图 2 中的 Net) 采 用简化 版的 指针网 络输 出一个 初始 的装箱 序列 , 然后 调 用
         ConstructiveHeuristic(即算法 1.1)计算该装箱序列所获得的解,将该解获得的高度值作为奖励信号来验证网络
         的可行性,根据奖励值不断的调整网络,使网络能以最大的概率输出较好的装箱序列.训练好的模型将为 HHA
         提供初始序列,整体的算法本文称为强化学习启发式算法(reinforcement learning heuristic algorithm,简称
         RLHA),详细的算法流程见算法 2.1.













                              Fig.2    Reinforcement learning heuristic algorithm framework
                                        图 2   强化学习启发式算法框架
             算法 2.1.  强化学习启发式算法.
             Input:
             W: the width of the strip;
             Seq: unpacked sequence of rectangles;
             Output:
             H: a packing solution.
             1    Load the trained reinforcement learning model
             2   EmptyLayout only have one cave,which consists of the whole strip,with a width equal to W
             3   H=∞
             4   Obtaining initial solution bestSeq from reinforcement learning
             5   while the stop criterion is not satisfied do
             6      tempH=HierachicalSearch(bestSeq)
             7      if tempH<H then
             8        bestSeq=sortSeq
             9        H=SwapRandom(bestSeq)
             10  return H
         2.2   网络模型
             网络模型使用的是简化版的指针网络,该模型结构与 Nazari 等人                  [27] 使用的结构一致,其框架考虑了静态和
         动态的元素.针对二维装箱问题,我们仅考虑了静态元素,因为装箱问题与 VRP 不同,2DSPP 不存在动态的元素,
         比如 VRP 的配送点除了坐标,还有配送点的货物量,这个值是会动态改变的.模型由循环神经网络(GRU)和注意
         力机制组成,每一步把输入元素的嵌入(embedding)直接作为解码器的输入,解码器的输出会传递给注意力机制,
         获得输出的概率分布.Nazari 等人        [27] 认为:  循环神经网络编码器增加了额外的复杂性,因为只有当输入需要传
         递顺序信息的时候才需要循环神经网络.比如文本翻译,需要知道词的先后顺序才能准确翻译.但是在组合优化
         中输入集并没有顺序之说,任何随机排列都包含与原始输入相同的信息.因此在简化版指针网络中,忽略了编码
         器,直接使用了嵌入层(embedding layer)代替编码器.本文同样使用了简化版指针网络,因为通过这种修改减少
         了计算的复杂性,提高了性能.
   19   20   21   22   23   24   25   26   27   28   29