一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度强化学习的货箱堆叠优化方法

2022-06-01 14:08:57 来源:中国专利 TAG:


1.本发明涉及货箱堆叠技术领域,特别涉及一种基于深度强化学习的货箱堆叠优化方法。


背景技术:

2.货箱堆叠问题,是一个在物流中有广泛应用的基本决策问题,在港口堆场以及仓库等存储系统中经常可见。一般来说,货箱的存储顺序和提箱顺序并非存在完全的联系,后被提取的货箱最好不要堆在先被提取的货箱之上,同时存在使用栈数和栈最高堆叠层数的限制,因此若采用随机堆叠的方式,会造成大量的无序堆叠,为提箱造成麻烦。若对同时提取的货箱堆叠在一起,即使用专用堆叠,也会造成存储空间的浪费。因此,需要一种优化方法实现高效的货箱堆叠,提高效率。
3.针对此货箱堆叠优化问题的求解,目前有多种方法,比如精确求解方法、堆叠规则、启发式方法和元启发式方法等。精确求解方法,主要通过cplex等商用求解软件对建立的数学模型进行求解,此方法受限于模型的复杂度,一般只在小规模问题上使用。堆叠规则的制定,需要一定的专业知识和经验,且不同的规则适用于不同的问题,难以找到一个普适的规则。启发式方法的求解易陷入局部最优解,而元启发式方法对于大型问题的求解仍需要较长的迭代时间。
4.深度强化学习方法,作为一种智能优化的框架,已在很多领域成功应用,但尚未在堆叠问题上应用。该方法能够解决较大规模的货箱堆叠优化问题,且在时间性能和求解质量上是目前最为理想的一种方法,同时该方法可以解决一定的随机性问题,比如可以堆叠货箱数和栈最高堆叠层数发生一定变化的问题,为堆叠优化问题的解决开辟了一条新思路。然而,深度强化学习方法这一智能优化框架的各个环节,必须根据问题的特性重新设计,无法直接套用现有已成功应用的方法。


技术实现要素:

5.为解决上述技术问题,本发明提供了一种基于深度强化学习的货箱堆叠优化方法,能够适应货箱数和栈最高堆叠层数发生变化的情况,以达到提高货箱堆叠和提取效率的目的。
6.为达到上述目的,本发明的技术方案如下:
7.一种基于深度强化学习的货箱堆叠优化方法,包括如下步骤:
8.步骤一,状态获取:根据货箱堆叠顺序及提箱优先级,设计m个环境状态变量来代表每个栈的堆存状态,再根据当前步骤使用的n个栈状态及其待堆叠的货箱状态,计算得到当前时刻的n
×
m维状态矩阵s,并将其传递给特征提取网络;
9.步骤二,特征提取:通过设计特征提取网络,提取状态矩阵s中适合于堆叠决策网络决策的特征,得到n
×
p维的特征矩阵t,并将其传递给堆叠决策网络;
10.步骤三,堆叠决策:首先设计堆叠决策网络的结构,然后再将特征矩阵t作为堆叠
决策网络的输入数据,输出为各个栈的概率分布,进而选择一个栈堆叠货箱;
11.步骤四,堆叠策略训练:使用深度强化学习算法进行特征提取网络和堆叠决策网络的训练,采用决策评价网络对特征提取网络和堆叠决策网络的输出进行评价,优化堆叠决策并更新特征提取网络和堆叠决策网络的参数,通过训练后的特征提取网络和堆叠决策网络进行特征提取和堆叠决策。
12.上述方案中,步骤一中,环境状态变量的个数m=6,具体包括如下:
13.(1)栈中已堆叠货箱数占最高堆叠层数的百分比;
14.(2)下一个要堆放的货箱优先级;
15.(3)待堆叠货箱中的最高优先级;
16.(4)栈优先级,等于栈最顶部货箱的优先级;
17.(5)待堆叠货箱中优先级高于栈优先级的个数;
18.(6)栈中货箱的无序堆叠数。
19.上述方案中,步骤二中,特征提取网络为基于自注意力机制的特征提取网络,将状态矩阵s进行变换得到特征矩阵t的计算公式如下:
[0020][0021]
q=s
×
wq,k=s
×
wk,v=s
×
wv[0022]
其中,t为特征矩阵,attention表示自注意力机制层,softmax为激活函数,q、k和v分别是状态矩阵s通过不同的权重矩阵变换得到的矩阵;和分别是用于生成q、k和v的权重矩阵,均为可学习的参数;dq,dk和dv分别表示权重矩阵wq、wk和wv中最后一维的维度大小。
[0023]
上述方案中,步骤三中,堆叠决策网络包括多层感知机网络、mask层和softmax函数,所述多层感知机网络包括输入层、隐层和输出层,隐层为三层,输入层神经元个数为64,隐层神经元个数分别为128、128和32,输出层的神经元个数为1。
[0024]
进一步的技术方案中,所述多层感知机网络中进行的运算如下:
[0025]
h1=w1t b1,
[0026]
h2=w2h1 b2,
[0027]
h3=w3h2 b3,
[0028]
o=w4h3 b4;
[0029]
其中,h1、h2、h3分别为三层隐层的值,维度分别为n
×
128、n
×
128、n
×
32;t为特征矩阵;o为多层感知机网络的输出,维度为n
×
1;w1∈r
64
×
128
、w2∈r
128
×
128
、w3∈r
128
×
32
和w4∈r
32
×1为权重矩阵,均为可学习的参数;b1、b2、b3和b4为偏置。
[0030]
进一步的技术方案中,特征矩阵t作为堆叠决策网络的输入,经过多层感知机网络以后,得到的数据维度为n
×
1,然后对数据进行降维,得到各个栈的初始得分;然后再连接mask层,其输出为经过进一步筛选的各个栈的得分;这些筛选后的各个栈的得分再通过softmax函数计算得到n个栈的概率。
[0031]
上述方案中,步骤三中,进行栈选择时,采用贪心策略,即选择可选栈概率最大的,或者对栈概率分布进行采样选择。
[0032]
上述方案中,步骤四中,深度强化学习算法为ppo算法。
[0033]
进一步的技术方案中,所述决策评价网络为多层感知机网络,包括输入层、隐层和输出层,隐层为三层,输入层神经元个数为64,隐层神经元个数分别为128、128和32,输出层的神经元个数为1。
[0034]
进一步的技术方案中,所述决策评价网络的输入为特征矩阵t进行均值池化后得到的当前价值估计,输出为一个标量值,以此评估特征提取网络和堆叠决策网络的表现。
[0035]
通过上述技术方案,本发明提供的一种基于深度强化学习的货箱堆叠优化方法具有如下有益效果:
[0036]
1、本发明在堆叠决策过程中,如训练良好,求解结果质量高于无序堆叠货箱数最少规则和货箱堆叠最佳匹配规则等常用规则。
[0037]
2、本发明可以处理不同数量的货箱堆叠问题,本发明中自注意力机制层和多层感知机网络在计算时都为矩阵计算,保存的网络参数只和矩阵最后一维相关,在解决货箱规模发生一定变化的堆叠问题时,神经网络依然可以很好地提取特征并做出决策。
[0038]
3、本发明中通过设计状态变量栈中已堆叠货箱数占最高堆叠层数的百分比,使得在栈最高堆叠层数发生变化时,保存的深度模型仍然能够使用,且效果很好。
[0039]
4、本发明将深度强化学习方法引入解决实际中的货箱堆叠问题,具备训练后求解快速的特点,求解时间相比集束搜索方法可以缩小几十倍,通过使用本发明中的状态获取和特征提取网络的设计,可以获得良好的训练结果,进而得到好的堆叠决策结果。
[0040]
5、本发明的训练可以通过加载上一级规模堆叠问题的深度模型来继续训练,因此可以解决大规模(例如500货箱)货箱堆叠问题。
[0041]
6、本发明可应用于在有限栈中进行相关存储的问题中,并非只局限在货箱堆叠中,比如钢厂中钢板的堆放、水泥厂中水泥管的堆放等。
附图说明
[0042]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0043]
图1为3个栈5层的存储空间中存储10个货箱产生的无序堆叠数示意图;
[0044]
图2为本发明提供的一种基于深度强化学习的货箱堆叠优化方法流程示意图;
[0045]
图3为自注意力机制网络结构图;
[0046]
图4为本发明的网络整体架构图;
[0047]
图5为mask层的逻辑图;
[0048]
图6a为小规模货箱堆叠问题深度强化学习训练曲线;
[0049]
图6b为中规模货箱堆叠问题深度强化学习训练曲线;
[0050]
图6c为大规模货箱堆叠问题深度强化学习训练曲线;
[0051]
图7a为货箱数量发生变化的堆叠问题求解结果;
[0052]
图7b为栈最高堆叠层数发生变化的堆叠问题求解结果。
具体实施方式
[0053]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述。
[0054]
本发明提供了一种基于深度强化学习的货箱堆叠优化方法,设计了最小化相邻货箱无序堆叠数的目标来优化堆叠过程,优先级低(数值大)的货箱堆在了优先级高(数值小)的货箱之上则为无序堆叠。在图1中,在3个栈5层的存储空间中存储10个货箱产生的无序堆叠数为3个(数字下方有下划线的为无序堆叠)。
[0055]
本发明的方法能够适应货箱数和栈最高堆叠层数发生变化的情况,提高货箱堆叠效率。具体如图2所示,包括如下步骤:
[0056]
步骤一,状态获取:根据货箱堆叠顺序及提箱优先级,设计m个环境状态变量来代表每个栈的堆存状态,再根据当前步骤使用的n个栈状态及其待堆叠的货箱状态,计算得到当前时刻的n
×
m维状态矩阵s,并将其传递给特征提取网络;
[0057]
本实施例中,通过试验法,利用无序堆叠货箱数最少规则和货箱堆叠最佳匹配规则对货箱堆叠问题进行总结和提炼,设计了6个环境状态变量来代表每个栈的堆存状态(m=6),具体包括如下:
[0058]
(1)栈中已堆叠货箱数占最高堆叠层数的百分比(此栈中的货箱数除以最高堆叠层数);
[0059]
(2)下一个要堆放的货箱优先级;
[0060]
(3)待堆叠货箱中的最高优先级;
[0061]
(4)栈优先级,等于栈最顶部货箱的优先级;
[0062]
(5)待堆叠货箱中优先级高于栈优先级的个数;
[0063]
(6)栈中货箱的无序堆叠数。
[0064]
其中,上述优先级都是数字形式(正整数),数字越小优先级越高。设堆叠优化问题中有n个栈(n=n),则可通过状态获取计算得到当前步骤代表栈的堆存状态的6个环境状态变量值,进而得到n
×
6维的状态矩阵s,每堆叠一个货箱,状态矩阵s随之改变,直至货箱堆叠完成。
[0065]
步骤二,特征提取:通过设计特征提取网络,提取状态矩阵s中适合于堆叠决策网络的特征,得到n
×
p维的特征矩阵t,并将其传递给堆叠决策网络。
[0066]
状态矩阵s由n组6维向量组成,每组向量代表一个栈当前步骤的堆存状态,n组向量之间有一定的关系,但是实际决策的时候可能无法充分利用这些输入之间的关系而导致堆叠决策结果极差。注意力机制可以使得神经网络具备专注于其输入(或特征)子集的能力,而自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。为此,针对全连接深度神经网络对于多个相关输入无法建立起相关性的问题,设计基于自注意力机制的特征提取网络,符合本方法中特征提取的要求。
[0067]
本实施例中,特征提取网络采用自注意力机制网络,如图3所示,其中,matmul表示矩阵相乘,scale表示调节因子(大小为)用于对值进行压缩,softmax为激活函数用于进行归一化。基于常用的单层神经元个数,再通过不同层数试验,本方法设计了单头单层自注意力机制的特征提取网络,将状态矩阵s变换得到n
×
64维的特征矩阵t(p=64)。计算公式如下:
[0068][0069]
q=s
×
wq,k=s
×
wk,v=s
×
wv[0070]
其中,t为特征矩阵,attention表示自注意力机制层,softmax为激活函数,q、k和v分别是状态矩阵s通过不同的权重矩阵变换得到的矩阵;和分别是用于生成q、k和v的权重矩阵,均为可学习的参数;dq,dk和dv分别表示权重矩阵wq、wk和wv中最后一维的维度大小。
[0071]
步骤三,堆叠决策:首先设计堆叠决策网络的结构,然后再将特征矩阵t作为堆叠决策网络的输入数据,输出为各个栈的概率分布,进而选择一个栈堆叠货箱。
[0072]
本实施例中,堆叠决策网络包括多层感知机网络、mask层和softmax函数,在具体设计中本着提高学习效果和尽量降低模型复杂度的原则,通过试验法将多层感知机网络设计为包括输入层、隐层和输出层,隐层为三层,输入层神经元个数为64,隐层神经元个数分别为128、128和32,输出层的神经元个数为1。
[0073]
多层感知机网络中进行的运算如下:
[0074]
h1=w1t b1,
[0075]
h2=w2h1 b2,
[0076]
h3=w3h2 b3,
[0077]
o=w4h3 b4;
[0078]
其中,h1、h2、h3分别为三层隐层的值,维度分别为n
×
128、n
×
128、n
×
32;t为特征矩阵;o为多层感知机网络的输出,维度为n
×
1;w1∈r
64
×
128
、w2∈r
128
×
128
、w3∈r
128
×
32
和w4∈r
32
×1为权重矩阵,均为可学习的参数;b1、b2、b3和b4为偏置。
[0079]
特征矩阵t作为堆叠决策网络的输入,经过多层感知机网络以后,得到的数据维度为n
×
1,然后对数据进行降维(去掉维度为1的条目),得到各个栈的初始得分;然后再连接mask层,其输出为经过进一步筛选的各个栈的得分;这些筛选后的各个栈的得分再通过softmax函数计算得到n个栈的概率。本发明的三个网络的整体结构如图4所示。mask层的逻辑如图5所示,开始时,根据使用的各个栈堆存状态,判断该栈存储货箱是否已达最高堆叠层数限制,若是,则该栈不可再用,得分置为负无穷,结束;若否,则该栈可再用,结束。
[0080]
进行栈选择时,采用贪心策略,即选择可选栈概率最大的,或者对栈概率分布进行采样选择。
[0081]
步骤四,堆叠策略训练:使用深度强化学习算法进行特征提取网络和堆叠决策网络的训练,采用决策评价网络对特征提取网络和堆叠决策网络的输出进行评价,优化堆叠决策并更新特征提取网络和堆叠决策网络的参数,通过训练后的特征提取网络和堆叠决策网络进行特征提取和堆叠决策。
[0082]
未经过训练的特征提取网络和堆叠决策网络得到的输出结果很差,需要通过深度强化学习算法进行堆叠策略训练,使得特征提取网络和堆叠决策网络中的参数能够更好地解决货箱堆叠问题。奖励设计为一组待堆叠货箱堆叠完成后产生的无序堆叠数的负值,训练向着增大奖励的方向进行,这和最小化无序堆叠数的目标是一致的。
[0083]
训练中通过决策评价网络对特征提取网络和堆叠决策网络的输出进行评价,决策
评价网络是一个值网络,评价当前状态下特征提取网络和堆叠决策网络得到的输出的优劣,并依据决策评价网络的输出指导特征提取网络和堆叠决策网络的参数更新。决策评价网络为多层感知机网络,包括输入层、隐层和输出层,隐层为三层,输入层神经元个数为64,隐层神经元个数分别为128、128和32,输出层的神经元个数为1。
[0084]
决策评价网络的输入为特征矩阵t进行均值池化后得到的当前价值估计,输出为一个标量值,以此评估特征提取网络和堆叠决策网络的表现。
[0085]
通过设置随机数种子生成实例作为训练集,具体包括小规模(30个货箱)、中规模(200个货箱)和大规模(500个货箱)三种规模的实例训练,不同规模问题中采用的特征提取网络和堆叠决策网络是一样的。设10个货箱的实例为:[1,3,5,6,8,4,7,10,2,9],数字的顺序表示货箱到达顺序,数值表示优先级,数值越小优先级越高,相对应的提箱顺序越靠前,在此例中第2个到达的货箱第3个被提走。深度强化学习算法为ppo算法,设定ppo算法参数对特征提取网络和堆叠决策网络进行训练,训练中每得到更好的结果时,保存相应的网络权重参数(称为深度模型),不同规模货箱堆叠问题训练曲线如图6a、图6b和图6c所示。由图可知,本发明的方法在训练过程中学习效果明显,且通过加载中规模问题的深度模型,使得大规模问题训练难度降低。
[0086]
训练结束后,加载深度模型进行货箱堆叠问题优化,小规模(30个货箱)、中规模(200个货箱)和大规模(500个货箱)货箱堆叠问题在栈最高堆叠层数为5个货箱的情况下,在100个实例中得到的平均无序堆叠数如表1所示,其中,cplex、货箱堆叠最佳匹配规则和集束搜索为现有的方法,drl为本发明的基于深度强化学习的方法,drl(贪心)是选择动作概率最大的,drl(采样)是根据概率采样20次选择最好结果。
[0087]
表1货箱堆叠问题不同方法求解结果
[0088][0089]
由表1可见,本发明的方法具备优势,尤其是在大规模货箱堆叠问题中优势更为明显,cplex求解大规模问题在半小时内未得到可行解,因此,表中未显示结果。训练后的模型可以求解不同数量的货箱堆叠问题和栈最高堆叠层数发生变化的货箱堆叠问题,小规模货箱数量变化(30
±
10个货箱)、中规模货箱数量变化(200
±
50个货箱)和大规模货箱数量变化(500
±
100个货箱)的货箱堆叠问题求解结果如图7a所示,小、中、大规模货箱堆叠问题栈最高堆叠层数变化(5
±
1层)的求解结果如图7b所示,由图可知,当货箱数量和栈最高堆叠层数发生变化时,保存的深度模型仍然能够使用,且效果很好。
[0090]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献