基于深度强化学习的自适应作业车间调度问题研究

获取更多资讯,赶快关注公众号(名称:智能制造与智能调度,公众号:deeprlscheduler)]吧!


今天给大家带来一篇我们关于使用深度强化学习求解作业车间调度问题的新作: Han, B. A., & Yang, J. J.(2020). Research on Adaptive Job Shop Scheduling Problems Based on DuelingDouble DQN. Ieee Access, 8,186474-186495. doi:10.1109/ACCESS.2020.3029868.

[video(video-MyEWM8Vp-1606186077484)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=970473074)(image-https://img-blog.csdnimg.cn/img_convert/3ac2144e3808e49d42c8fcb49f08d038.png)(title-Research on Adaptive Job Shop Scheduling Problems Based on Dueling Double DQN)]

视频来源:2020 IEEE Access Best Multimedia Award

摘要:针对传统调度算法实时性较差而难以应对复杂多变的实际生产调度环境等问题,提出一个基于基于析取图分派的深度强化学习调度框架。该框架综合深度卷积神经网络和强化学习实时性、灵活性的优势,直接依据输入的加工状态进行行为策略选取,更贴近实际订单反应式生产制造系统的调度决策过程。通过把利用析取图进行调度求解的过程转化为多阶段决策问题,用深度卷积神经网络模型拟合状态动作值函数,创新性地把制造系统加工状态特征数据表达为多通道图像并输入模型,采用考虑优先级经验回放的竞争双层深度Q网络(DDDQNPR)训练模型,把启发式算法或分配规则作为调度决策候选行为,结合强化学习在线评价-执行机制,从而为每次调度决策选取最优组合行为策略。85个静态案例的实验结果表明,在小规模问题上,所提出的方法可以求得最优解,在大规模问题上,该方法可以求得优于任意单一规则的调度结果,同时与遗传算法的调度性能相当,平均调度分数为90.79%;为了证明算法的泛化性和鲁棒性,在训练代理时使用带有随机初始状态的案例作为验证集以选择泛化性能最优的模型,然后测试学习到的策略在具有不同初始状态的调度案例上的性能,结果表明代理可以自适应地获得较优解,同时对工时不确定的动态案例进行了实验研究,结果表明,该方法在动态环境下仍然快速地获得鲁棒解。

关键词:自适应调度,卷积神经网络,深度强化学习,作业车间调度,规则选择,析取图

1、论文贡献

本研究的贡献在于(1)提出了使用考虑了优先级经验回放的dueling double DQN模型(Dueling Double DQN with prioritized replay,DDDQNPR)来构建调度问题的深度强化学习框架,在该框架中包含了目标网络和估计网络,以解决一般DQN存在的过高估计问题;(2)首次建立了基于析取图模型的强化学习环境,将基于析取图的调度求解过程转化为序列决策过程。在该环境中调度可以从非零的状态开始,即可以先交互式地安排一些工序,然后再对剩余的工序进行优化调度;(3)在每一离散时间步,将调度状态创新性地表示为多通道图像,避免了传统强化学习中手动构造调度特征,卷积神经网络根据输入的状态进行启发式规则选择,从而从当前可调度任务集合中选择最优先的工件;(4)设计了一种新颖的与制造期等效的奖励函数,用来评价每一次分派时对调度目标的影响;(5)提出了一种改进的考虑精英策略的epsilon-decreasing策略,该策略在训练后期将以一定的概率选择当前最优解中的最优规则,实验结果表明,该策略在所有案例上的调度性能平均提升5.92%。(6)进行了大量的实验研究,分析了不同超参数的灵敏度,验证了所提出方法在静态问题上的有效性,以及在反应式调度和工时不确定的动态问题上的泛化性。

2、论文框架

构造了一套基于值函数的深度强化学习算法与析取图相结合的自适应调度架构,如图1所示。

图1

图1 深度强化学习调度框架

3、调度环境

在这里插入图片描述

图2 析取图

在这里插入图片描述

图3 析取图实例化

在这里插入图片描述

图4 拓扑排序

所以通过析取图来表达调度问题的解,实际上就是在满足顺序约束和能力约束的基础上,确定各个工序的顺序,本质上为序列决策问题,当然就可以通过强化学习进行训练,在下一节中将会详细介绍如何表达调度问题为强化学习问题并进行求解。

4、调度问题转化

状态特征表达

在这里插入图片描述

图5 调度状态转移

系统动作定义

在这里插入图片描述

报酬函数设计

机床平均利用率 U = 1 N M ∑ m = 1 N M ∑ i = 1 N J ∑ h = 1 N O i P i b n C max ⁡ = P N M ⋅ C max ⁡ \mathrm{U}=\frac{1}{N M} \sum_{m=1}^{N M} \frac{\sum_{i=1}^{N J} \sum_{h=1}^{N O_{i}} P_{i b n}}{C_{\max }}=\frac{P}{N M \cdot C_{\max }} U=NM1m=1NMCmaxi=1NJh=1NOiPibn=NMCmaxP,令 r k = U ( k ) − U ( k − 1 ) r_{k}=U(k)-U(k-1) rk=U(k)U(k1),则有

R = ∑ k = 1 K r k = ∑ k = 1 K U ( k ) − U ( k − 1 ) = U ( 1 ) − U ( 0 ) + U ( 2 ) − U ( 1 ) + ⋯ + U ( k ) − U ( k − 1 ) = U ( k ) − U ( 0 ) = U ( k ) = P N M ⋅ C max ⁡ ( k ) \begin{aligned} R=\sum_{k=1}^{K} r_{k} &=\sum_{k=1}^{K} U(k)-U(k-1) \\ &=U(1)-U(0)+U(2)-U(1) \\ &+\cdots+U(k)-U(k-1) \\ &=U(k)-U(0)=U(k) \\ &=\frac{P}{N M \cdot C_{\max }(k)} \end{aligned} R=k=1Krk=k=1KU(k)U(k1)=U(1)U(0)+U(2)U(1)++U(k)U(k1)=U(k)U(0)=U(k)=NMCmax(k)P

在这里插入图片描述

图6 不同时刻的Cmax

探索和利用策略

a = { arg ⁡ max ⁡ a ′ Q ( a ′ )  with probability  ( 1 − ε ) ∗ 0.5 π best ( s )  with probability  ( 1 − ε ) ∗ 0.5 random with probability  ε a=\left\{\begin{array}{l} \arg \max _{a^{\prime}} Q\left(a^{\prime}\right) & \text { with probability }(1-\varepsilon)^{*} 0.5 \\ \pi^{\text {best}}(s) & \text { with probability }(1-\varepsilon)^{*} 0.5 \\ \text {random} & \text {with probability }\varepsilon \end{array}\right. a=argmaxaQ(a)πbest(s)random with probability (1ε)0.5 with probability (1ε)0.5with probability ε

其中 π best ( s ) \pi^{\text {best}}(s) πbest(s)为目前为止的已知最优策略。

5、深度强化学习调度算法

在这里插入图片描述

6、超参数灵敏度分析

在这里插入图片描述

在这里插入图片描述

网络结构

在这里插入图片描述

学习率

在这里插入图片描述

贪婪率

在这里插入图片描述

缓存大小

在这里插入图片描述

目标网络更新频率

在这里插入图片描述

批量

在这里插入图片描述

不同跳帧率下的调度得分和单片段运行时间

7、训练过程

在这里插入图片描述

片段奖励

在这里插入图片描述

制造期

在这里插入图片描述

初始Q值

在这里插入图片描述

误差

在这里插入图片描述

ft06调度状态转移可视化

8、实验结果

在这里插入图片描述

两种探索和利用策略对比

在这里插入图片描述

不同算法调度得分对比
  • 23
    点赞
  • 162
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松间沙路hba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值