基于深度强化学习的柔性作业车间动态调度
Posted 码丽莲梦露
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于深度强化学习的柔性作业车间动态调度相关的知识,希望对你有一定的参考价值。
文献来源:International Journal of Production Research(2022)南洋理工大学(IJPR/2022)Full article: Deep reinforcement learning for dynamic scheduling of a flexible job shop (tandfonline.com)
1 摘要
在追求敏捷和灵活的生产调度方面,处理不可预测的动态事件的能力变得越来越重要。与此同时,生产系统中的网络-物理融合产生了大量需要实时挖掘和分析的工业数据。为了便于这种实时控制,本研究提出了一种分层分布式的体系结构来解决动态柔性作业车间调度问题。采用双深度Q网络算法(DDQN)训练调度智能体,捕捉生产信息与调度目标之间的关系,为具有恒定任务到达的柔性作业车间实时做出调度决策。为了处理动态调度中问题的可变规格说明,提出了专门的状态和动作表示法。此外,还提出了一种代理奖励整形技术(surrogate reward-shaping technique),以提高学习效率和调度效果。通过仿真研究,验证了该方法在不同场景下的性能。数值结果表明,与现有的调度策略相比,该方法不仅具有更好的性能,而且在制造系统配置发生变化的情况下,其优势依然存在。
2 问题描述
柔性作业车间包含多个工作中心,每个工作中心可能包含多台机器。所有作业必须按照预先确定和唯一的加工顺序访问每个工作中心一次。在分层和分布式调度系统中,调度决策是由分别连接到每个工作中心和机器的路由和排序代理(即机器选择和工序排序)做出的;框架如图1所示。
3 验证方案和目标 (可以看做是算例介绍)
影响生产绩效的因素主要为:
(1)工件到达率:更高的到达率会导致更高的机器利用率和更高的系统拥塞
(2)工件和机器的异构性:工件在不同机器上的加工时间和交货期紧密性是不同的,并且机器的工作负载和可用性也各不相同。
(3)交期密集程度:由于工件在拥堵的情况下(平均)有更多的空闲时间来消耗,因此作业的relaxed TTD会导致较低的总延误和平均延误。此外,如果系统中作业的关键程度不同,调度程序可以利用某些作业的高空闲时间来保护更关键的作业。
基于这些观察,我们介绍了三种用于训练和验证的场景:
(1)预计到达率/使用率
将工件到达率与系统的预期利用率相匹配。令E(t)是所有机器上所有操作的预期处理时间,E(interval)表示作业到达之间的预期时间间隔。假设M台机器均匀分布在所有工作中心,系统的预期利用率可计算为:
指定预期利用率后,可以计算预计到达时间间隔。让我们假设随机变量X工作到达之间的时间间隔服从指数分布:X∼Exp(β),β=E(interval)。
基于恒定、平稳到达和相同工件的假设,计算预计利用率率。实际上,由于到达间隔时间、加工顺序和机器加工时间的随机性,一些空闲容量是不可避免的。在本研究中,假设预期利用率为90%,以近似每年的产量。
(2)加工时间的异质性
我们认为两个场景具有相同的平均加工时间:(1)高度异质性场景:t∼U[5,25],其中最大时间是最小时间的五倍;(2)低异质性场景:t∼U[10,20],其中最大时间仅为最小时间的两倍。
(3)交期密集程度
在生成工件后,它被分配一个与预期总处理时间成比例的原始TTD。原始TTD、原始空闲时间和到期日计算如下:
αi 比率表示job Ji 的到期日。我们考虑两个紧密度的情形:(1)高到期日紧性:αi∼U[1,2],其中作业的平均原始空闲时间是其总处理时间的一半;和(2)低到期日紧度:αi∼U[1,3],其中平均原始空闲时间等于作业的总处理时间。
使用了四种场景组合:(1)高异质性和高紧密性:HH([5,25]/[1,2]);(2)高异质性和低紧密性:HL([5,25]/[1,3]);(3) 低异质性和高紧密性:LH([10,20]/[1,2]);低异质性和低紧密性:LL([10,20]/[1,3])。
研究的目标:最大限度地减少所有工作的累积延误(Minimising cumulative tardiness of all jobs)!
4 算法设计
4.1 State representation
4.2 Action representation
route agent(RA) 的动作直接对应工作中心内的机器
sequencing agent (SA)的动作则通过规则来实现,主要通过4种规则:
(1)SPT:选择最短加工时间的工件
(2)WINQ:选择最小剩余时间的工件
(3)CR:选择(TDD/剩余加工时间)最小的工件
(4)MS:选择空闲时间最短的工件
4.3 Surrogate reward-shaping
以尽量减少延误为目标,一个自然的奖励机制是以已实现的工作延误作为该工作已完成的所有RAS和SA的联合奖励信号。然而,对多Agent RL的研究表明,即使代理可以从联合奖励中学习以实现共同目标,他们也可能从队友的行为中收到虚假的奖励信号(Sunehag等人)。2017);这一挑战被称为多Agent信贷分配问题。
图2显示了一个包含三个工序工件的生产历史示例。工件到达车间时,其初始持续时间TTD大于其加工时间之和,这会留下一些空闲时间作为排队缓冲。随着工件排队等待处理,空闲时间逐渐消耗;如果工件在其加工完成之前消耗了所有空闲时间,则会导致迟到。
防止和减少迟到相当于在生产的每个阶段节约空闲时间。然而,奖励临时目标并不是一个低回报的目标,而是一个高回报的目标(Kuhnle,Schafer等人,2019年)。为了确保培训的成功,必须考虑几个方面:
(1)奖励功能需要在追求与拖期相关的不同延误时平衡相互冲突的目标。例如,当系统被大量新到达的、交货期很紧的作业淹没时,与其他规则相比,SPT规则显著减少了延误总和和延误作业的比例,但以最大拖期为代价,它牺牲了处理时间较长的作业,而是优先处理时间消耗较短的作业,而不考虑它们的关键程度。必须给予不偏不倚的奖励,以按照主要目标改进绩效,在本研究中,主要目标是累计延误。
(2)奖励必须与系统层面的绩效保持一致。为了避免信用分配问题,RA和SA被训练为主要基于本地信息做出决策;奖励也是根据个别工序而不是最终的延误来计算的。培训成功的关键是确保奖励与整体绩效之间的一致性,即通过追求短期奖励来提高系统层面的绩效。
(3)要保持所有作业的空闲时间是非常困难的,尤其是在拥塞的系统中,或者当系统出现故障时,为了量化作业变得迟缓和延迟的可能性,很难将作业延迟的可能性量化。对于工件Ji 我们使用Sigmoid函数将其空闲时间Si 转换为关键系数Fi,以消除异常值(过大的值):
F∈(0,2),其中β是一个用户指定的因子,用于调整Sigmoid函数的曲率;随着β的值的增加,Sigmoid函数变得更加平坦和光滑。
基于上述考虑,我们提出了两个松弛驱动的奖励函数:
RA的代理奖励函数:
RA需要评估所有机器的可用性和适宜性,并将作业分配给一台将长期累计拖期降至最低的机器。
工件完成后的估计松弛时间(at time step t+1)
实际松弛时间:
奖励按实际松弛的收益/损失计算时间与估计的松弛时间进行比较,由作业的临界系数进行调整。
SA的代理奖励函数:
SA需要对排队作业进行优先级排序,并选择最大限度地减少长期累计延误的作业。
将已保存或延长的排队时间描述为松弛时间的增益或损失。对于所选作业,松弛时间增益/损失定义为由Js的临界系数调整的其他作业的平均处理时间,减去后续工作的调整可用时间中心:
未选择的作业的平均空闲时间收益/损失等于Js上的处理时间减去其后续工作中心的调整后的平均可用时间,减去其关键系数的平均值。
δ是调整可用时间大小的因子,因为它通常比处理时间大几倍;在没有这种调整的情况下,代理会过度关注后续工作中心的工作量。最终奖励计算如下:
4.4 状态转移
4.5 训练过程
RA和SA的训练是分开进行的,以避免非平稳性,模拟和训练过程如下:
RA和SA的ANN架构如图5所示。在SA的双分支体系结构中,实例规范化层仅处理通道1到4中的数据,因为通道5和6中的抽象数据具有适当的量级。
5 实验
实验分为三个阶段:
(1)独立效用测试 测试SA和RA在指定场景中的独立效用,并根据其在累计延误方面的表现(主要目标)确定基准规则进入第二阶段的资格
(2)基于第一阶段结果的集成DRL测试,其中使用多个排序和路由规则组合来验证集成SA和RA的性能。还比较了最近基于DRL和基于GP的DFJSP解决方案。
(3)可伸缩性测试,研究RA和SA在大规模系统中的性能,即可伸缩性。
使用以下性能指标评估性能:
(1)标准化性能(NP):作为基线,运行中规则或算法的标准化性能计算如下:
NP度量性能增益;正值意味着比基线表现更好,越高越好。NP表示为'。下图中各1'面板;建议的DRL方法的平均值绘制为绿点线。
(2)获胜率(Win rate):规则或算法导致最低累计延误的运行百分比。为了更好地展示所提出的DRL方法相对于基准规则的表现,在下图中,我们展示了有无DRL代理的获胜率。2'和'。分别为3'面板。
5.1 独立效用测试
5.1.1 RA的独立效用测试
RA(DRL-RA)的独立效用是下表中6个规则作为基准。它们都与先进先出(FIFO)排序规则相结合,以最小化排序决策的影响;最早可用(EA)路由规则是基线。
实验结果如下:
5.1.2 SA的独立效用测试
5.2 集成DRL的验证
5.3 可伸缩实验
6 结论
未来工厂的调度将在很大程度上依赖于以实时响应处理不可预测的动态事件的能力。本研究提出了一种DRL体系结构来解决DFJSP,作为该方向的一种尝试。
用双DQN算法训练的两类调度代理的性能优于现有的调度规则,无论作为独立组件或在以集成方式部署时;优势证明系统配置会发生变化。除了性能改进之外,本研究的主要贡献还包括:
(1)专门化表示:动态调度面临着不断变化的规范的问题,这是现有机器学习(ML)算法的静态体系结构无法处理的。目前的大多数研究都假设调度问题的规模是固定的。本研究开发抽象的状态特征和间接的动作表征来解决这一问题。该方法可以解决工期较长、作业数量较多的调度问题。
(2)基于知识的奖励塑造:在DRL取得巨大成功的常见任务(如棋类游戏和视频游戏)中,大多数生产计划和控制问题不能被表述为一项‘取胜’或‘生存’的任务,而是专注于对本质上复杂的目标进行受限的优化。基于领域知识的报酬塑造对于在求解质量和实施成本之间取得平衡至关重要。本研究开发了一种代理奖励成形技术,以提高训练效率并鼓励调度代理之间的合作。它提供了比简单的联合奖励方法更高的稳定性和性能,使我们的工作能够很好地重复性。
(3)高效的训练和应用:轻量级的神经网络保证了毫秒级延迟的快速决策,使实时控制成为可能。我们提出的体系结构还表现出了良好的训练效率:10万个单元的模拟时间(训练)最多需要20分钟才能完成,这使得快速迭代能够适应动态环境。调度代理可以通过结合新的体验来重放内存或调整参数,从而快速获得新的行为。尽管所提出的体系结构在一个小型制造系统中得到了演示,但在计算能力更强的支持下,即使在较大规模的系统中,其效率也有望保持。
对实时动态调度的研究包括发现有助于决策的特征和研究如何操作这些特征。与基于规则的方法(人工设计或自动进化)相比,DRL算法具有更强的处理高维输入空间的能力和对特征复杂度增加的较低敏感度。自动化培训还可以实现快速学习,最大限度地减少人工专业知识的参与,从而降低设计和开发成本。最重要的是,DRL是一种高度参数化的算法,神经网络的使用提供了感知和管理复杂系统动态的能力。通过结合算法创新和利用快速增长的计算能力,可以预期更多的性能改进。
DRL还可以在动态环境中同时实现高质量和高响应。尽管元启发式算法长期以来一直被用来产生实用的“最优”调度(考虑到jsp和fjps的NP难度),然而,没有知识与调度一起创建,以促进新调度的开发。基于学习的方法克服了这一缺点。参数化的知识方便泛化并转移,这些功能支持快速原型和部署,是敏捷生产调度系统的核心功能。
然而,将DRL研究转移到生产领域存在挑战和机遇:
与DRL取得巨大成功的应用程序中的表格或图形状态表示不同,工业数据是杂乱无章的。特征的选择、抽象和预处理仍然需要人类的专业知识。这一过程可以通过在ML研究中引入创新的数据解释技术来促进。此外,车间是一个复杂的环境,研究更多类型的动态事件,如随机加工时间和机器故障,将有助于使DRL更接近现实应用。
人工制定奖励依赖于领域专业知识,需要花费大量精力进行设计和微调。此外,行动可能会产生持久而广泛的影响,这是很难用标量奖励来评估的。将因果学习和推理与关联学习相结合来确定行为及其影响之间的关系是一个热门的研究课题,其在工业应用中的潜力是很有前途的。
在网络物理制造系统中,智能主体之间的合作行为还没有得到很好的研究。其他流行的合作多代理RL技术,如代理之间的通信(Foerster等人,2016)和自动价值分解(Sunehag等人,2017),也被证明在改善多代理系统的性能方面很有价值;然而,它们在动态调度中的应用仍有待探索。
好巧不巧,我竟然还找到了作者的账号,偷偷下载了他的源代码,哈哈哈:
感谢能看到最后的您,同时祝你科研顺利!
如果你进不去下载不了,那不妨花几块钱在我的资源处下载吧,原谅见钱眼开的我,就当资源搬运费,哈哈哈:
(3条消息) 深度强化学习求解动态柔性作业车间调度问题-机器学习文档类资源-CSDN文库
超强干货来袭 云风专访:近40年码龄,通宵达旦的技术人生以上是关于基于深度强化学习的柔性作业车间动态调度的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow2.0|基于深度强化学习(DQN)实现动态柔性作业车间调度问题(DFJSP)
车间调度基于matlab候鸟算法MBO求解柔性作业车间调度问题含Matlab源码 2354期