利索能及
我要发布
收藏
专利号: 2024100910180
申请人: 江苏科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-03-02
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于布局优化下的船舶分段堆场调度方法,其特征在于,包括如下步骤:S1:初始化分段堆场布局并检查初始布局状态;

S2:设计堆场布局优先规则;

S3:基于堆场布局优先规则,调整分段堆场布局,确定分段堆场最佳布局;

S4:将最佳布局下的分段堆场作为当前环境,设计分段进出堆场的移动策略及干涉分段的移动策略;

S5:基于马尔可夫决策过程,采用深度Q网络算法,设计算法的运行环境;

S6:设置深度Q网络算法代理程序的参数和模型;

S7:构建神经网络模型;

S8:根据当前状态选择动作,根据探索率随机选择动作或者根据Q值选择最佳动作;

S9:将状态、动作、奖励、下一个状态和完成标志存储在代理程序的记忆中;

S10:训练代理程序的神经网络模型,通过随机抽样记忆中的经验进行训练,得到最大化累积奖励,减少干涉分段移动次数;

所述步骤S1中初始化分段堆场布局并检查初始布局状态方法的具体过程为:将尚未存放于堆场内的分段按照长度划分为x组,并将规格已知的堆场根据分组暂时划分为x行,此时每行的行宽对应于分段分组后每组的分段长度;然后堆场内划分的行与行之间按照从大到小依次排序,并通过原堆场已知的长宽信息与现划分的堆场长宽信息作对比,若现划分的堆场长和宽均在原堆场的长宽约束范围内,则直接计算堆场按行划分的布局利用率;若不在范围内,则需进一步调整分段堆场布局;

所述步骤S2中堆场布局优先规则包括优先规则1和优先规则2,具体如下:优先规则1:当暂定x行的堆场长度超出原堆场长度时,则查看只存在一个或两个分段的一行,检索所在行上行是否能在满足堆场宽度范围内增加此行的分段,若都能,则优先选择只含有一个分段的放置;

优先规则2:当执行优先规则1后所更新的堆场长度仍超出原堆场长度,则查看只存在三个及以下分段的一行,检索所在行上两行是否能在满足堆场宽度范围内增加此行的分段,若都能,则优先选择只含有一个分段的放置,其次是两个分段,最后考虑三个分段的放置;

其中,行与行之间间隔为(0.5~1)m,有利于后续对分段进出场调度,同时减少分段与分段之间存在近距离干涉;另外,每一行的所放置的分段宽度之和不得超出堆场宽度,若超出,则需在所在行的下一行新增一行放置超出堆场宽度的多余分段;

所述步骤S3中调整分段堆场布局,确定分段堆场最佳布局的方法为:选择基于优先规则1的布局优化函数,循环迭代用以更新堆场布局,若优先规则1的优化函数迭代结束后仍未满足需求,则采用基于优先规则2的布局优化函数继续更新布局,直到满足优化后的布局结果在分段堆场实际规格范围内即可得出最佳优化布局下的堆场;

所述步骤S4中分段进出堆场的移动策略的具体内容为:

对于搬入目标分段:将分段置于需要放置得所在行的最外侧,不进行干涉移动;

对于搬出目标分段:

方法1:先将干涉分段搬出场地,目标分段搬出后,将干涉分段按照出场时间进行降序排列,重新放入场内;

方法2:若上/下行有位置,则将干涉分段移至相邻的上下行中,待目标分段搬出后不放回原所在行,若未放回的干涉分段在现所在行再次成为干涉分段时,则搬回原所在行;

干涉分段的移动策略的具体内容为:

对于目标分段的进场采用的是无干涉分段策略,故进场分段的任务的干涉移动次数为

0;对于目标分段出场,先判断t时刻的第h个分段是否有目标分段移出堆场,如果且该分段所在位置的上行或下可供其搬出且无干涉分段,则干涉次数为1;若有干涉分段,则使出场分段在所在位置的本行搬出,此时,若本行的干涉分段较少,则待出进场分段搬出后不放回原位,此时每个干涉分段的干涉次数记为1;若干涉分段较多时,则将干涉分段待出进场分段搬出后不放回原位,此时每个干涉分段的干涉次数记为2;

目标函数干涉分段移动次数表示为:

其中,T为分段堆场调度周期;t为时间单位;n为分段总数;i为调度周期内分段编号,i∈{1,2,…,n},同一时间分段可能存在进场和出场2个任务;Ht时间t内,分段进场和出场的任务数;ori分段i出场时遇到的阻挡分段个数; 为时间t的第h个分段任务是否是将分段i存放在堆场,是则为1,不是则为0; 为时间t的第h个分段i不可上一行或下一行搬出,是则为1,不是则为0; 为搬运干涉分段是否可放回原位,不是则为1,是则为0;

约束条件为:

由于堆场占地空间有限现将长度近似的分段进行归类,考虑长度近似的情况,设以某一长度la为标准,长度近似在0.1~0.5m分段统一使用和la相同的行,现给定候选长度,设长度为la的行共有x个,则应有:其中,

对于每一种x,都有

X={x1,x2,…,xc},0≤xc≤xm

其中,c指除去长度近似在0.1~0.5m以内分段所设置的候选行宽,式中m指所有的候选行宽;

每个分段包含均搬入堆场时间tsi,搬出堆场时间tri,长度li和宽度wi4种信息:bi=(tsi,tri,li,wi)

规定计划进场的分段其进场时间tsi和出场时间tri在调度周期内:

0≤ts≤tsi≤te

0≤ts≤tri≤te

其中,te为调度周期最后一天;

单独设置至少一行位置供大长度分段放置,长度较小的分段不单独设置行,将其合并到普通分段较小长度的行中,设最大长度为l1,最小长度为l2,则约束条件即可写成:xa≥0,a≤(i={3,...,c})

保证每次任务只能对一个分段进行一次操作,包括进场或出场操作:其中, 为时间t的第h个分段任务是否是将分段i搬出在堆场;

每个分段只能进场和出场各一次,且分别在其进场和出场的时间内执行,下式表示分段在其进场时间内被存放在堆场:其中,sti为分段i的进场时间;

分段在其离场时间内被提取出堆场:

其中,rti为分段i的出场时间;

建立平板运输车操作和堆场的映射关系,确保每一个分段在进场后到其离场前,必须在分段堆场上指定行中:其中, 为时间t的第h个分段任务是将分段i搬出堆场;

所述步骤S5具体为:

A1:在某一时间步中,智能体将观测环境的状态,该状态包括堆场内分段堆放的状态和道路方向,智能体根据堆场中分段的当前状态,在下一次更新堆场状态时,自适应选择分段移动策略中的一种,使得干涉分段移动次数降至最低;堆场是一个矩形场地,水平方向上有m个单元格,垂直方向上只有1个单元格,且只有垂直方向的右边用作入口/出口,所以它以m个水平单元格和2个垂直单元格的形式定义,其状态表达式如下:m×2

St=[sij]∈R

假设分段堆场的某一行已经有分段放置在场内,当有新的分段需要进入该行中,则该分段自适应场地内的位置,即根据已存放在场内的分段位置自动放置在距离场内分段0.1米处,分段之间放置间隔0.1米用以防止分段间不必要的干涉;此外,智能体识别场内分段的出场时间,从而锁定目标分段,根据该分段的场内位置识别是否有干涉分段,若有,则根据设计的移动策略自决策一个最适合的方法进行调度;

A2:当智能体获取环境状态S后会给出动A,其包括搬运目标分段和移动干涉分段;智能体在搬运分段过程中从五个动作中决定一个动作:向上、向下、向左或向右移动或加载/卸载一个分段,表达式如下:at∈A=[a1,a2,a3,a4,a5]

A3:传统的马尔可夫模型通过状态转移矩阵预测未来的状态,但当状态空间为高维连续时,采用状态转移概率进行预测:状态转移概率可通过神经网络学习而得;

A4:t时刻智能体在状态St下选择执行动作at,执行完移分段动动作后智能体得到反馈奖惩值rt,并以概率P转移到下一时刻t+1的堆场状态St+1;智能体在堆场状态St+1下选择并执行分段移动动作at+1,同时获得该时刻惩罚值rt+1,并以概率p转移到下一时刻t+2的堆场状态St+2,这个过程会一直进行下去,直到到达最终目标的堆场状态St+n;奖励值设置如下:

1)当代理机器人靠近目标分段时,根据其与目标分段的距离给予奖励;距离越近,奖励越高,奖励为300~500;

2)当代理机器人到达目标分段时,会给予500~1000的额外奖励,表示成功到达目标分段;

3)如果代理机器人成功搬运分段,则会给予800~1200的额外奖励;

4)当在所有分段任务完成、所有目标分段都被正确搬运并放置,而且环境状态达到一种“终止”或“成功”状态时给予奖励10000~15000;

5)选择正确的分段移动动作,即上/下/左/右移动,若代理选择的动作不在上述动作中,则扣除奖励值100~500;

6)目标分段在搬运过程中存在干涉分段时,为了惩罚代理机器人的行为,对奖励进行减少2000~2500的惩罚,以阻止代理机器人再次执行可能导致干涉的动作;

强化学习的目标是使得马尔可夫决策过程中长期奖惩值最大化,其中马尔可夫决策过程表示为MDP,从而学习到一种选择最优动作的策略,其中,MDP中奖惩表示为:其中,n表示MDP中当前状态到目标状态的步数;

强化学习是为给定的MDP找到最优策略的过程;MDP中的策略π定义了智能体在状态S下动作的映射关系,由上式可知长期惩罚的获取必须要等整个MDP过程结束,假若状态集合规模过大,则整个强化学习系统的储存量太大,运行太慢,故为了学习最优策略,一个可行的π建模方法是利用值函数近似表示,强化学习引入两类价值函数:状态值函数V(S)和动作值π函数Q (S,a),其中,状态值函数表示在状态S下获得的期望回报,其贝尔曼方程形式定义为:V(S)=E(rt+γV(St+1))

动作值函数表示在状态S下执行动作a后获得的期望回报,强化学习的智能体学习目标是动作值函数最大化,其贝尔曼方程表示为:V(S)=E(rt+γV(St+1))

式中,S′为在状态S下采取动作a时所对应的下一个状态;a′为在状态S′能获取到最大动作值函数值的动作;

根据马尔可夫特性,状态值函数和动作值函数之间的关系如下:

π π

Q(S,a)=E[rt+1+γV(St+1)]

2.根据权利要求1所述的一种基于布局优化下的船舶分段堆场调度方法,其特征在于,所述步骤S7中构建的神经网络模型包括输入层、隐藏层、输出层、输出层激活函数,具体如下:输入层:将环境状态的特征数量作为神经元;

隐藏层:两个具有24个神经元的隐藏层,都使用ReLU作为激活函数;

输出层:将动作的数量作神经元,即神经元数量设置为4,对应上移、下移、左移、右移四种动作;

输出层激活函数:输出层使用线性激活函数,因为DQN旨在输出每个动作的Q值,以便选择最优动作;

模型使用均方误差(MSE)作为损失函数,并使用Adam优化器来进行网络参数的优化,这种结构允许代理程序根据当前状态预测每个动作的Q值,并基于这些值来选择最佳的动作。

3.根据权利要求1所述的一种基于布局优化下的船舶分段堆场调度方法,其特征在于,所述步骤S8具体为:B1:根据探索率随机选择动作,当随机数小于等于探索率且计数大于0时,代理程序会随机选择动作,这是为了在一开始的训练阶段增加探索,通过随机选择动作来探索环境并学习新的经验;

B2:根据Q值选择最佳动作:如果随机数不小于探索率或者计数不大于0,代理程序会根据当前状态的Q值来选择最佳动作,具体包括获取当前状态的Q值预每个动作对应一个Q,根据Q值选择最佳动作,即比较水平和垂直方向上的距离,选择Q值较大的动作,即选择具有最高Q值的动作;

其中,“计数”是在每个Episode中的循环中使用的一个变量,在每个Episode的循环中,“计数”被用于控制在代理程序与环境交互时进行的动作次数,在每次循环迭代中,代理程序选择一个动作并执行,然后“计数”减少1,直到“计数”降至0为止,此时代理程序完成了一系列动作的执行。

4.根据权利要求1所述的一种基于布局优化下的船舶分段堆场调度方法,其特征在于,所述步骤S9具体为:将当前状态state、选择的动作action、获得的奖励reward、下一个状态next_state和完成标志done作为参数,并将这些信息被打包成一个元组(state,action,reward,next_state,done)添加到代理程序的记忆中,通过不断地将这些元组添加到队列中,代理程序在训练过程中积累了一系列的经验样本,供后续的经验回放和神经网络的训练使用。

5.根据权利要求3所述的一种基于布局优化下的船舶分段堆场调度方法,其特征在于,所述步骤S10具体为:首先检查记忆中是否有足够的经验,如果记忆中的经验数量足够,则从记忆中随机抽取每次更新时所用的样本,以便于训练;对于抽样的每个经验样本,首先计算目标Q值,如果当前状态不是最终状态,则目标Q值为当前获得的奖励加上折扣因子乘以下一个状态对应的最大Q值,如果当前状态是最终状态,则目标Q值仅为当前获得的奖励;使用当前状态的Q值预测目标Q值数组,将计算得到的目标Q值赋值给对应选择的动作的Q值;将更新后的目标Q值数组与当前状态进行训练,以调整神经网络模型的参数;最后,如果探索率大于最小探索率,则逐步降低探索率,以便代理程序在训练过程中逐渐减少探索、更多地利用学到的经验。