柔性作业车间调度问题的课程强化学习算法
doi: 10.11887/j.cn.202502004
卢超1 , 肖洋1 , 张彪2 , 高亮3
1. 中国地质大学(武汉) 计算机学院, 湖北 武汉 430078
2. 聊城大学 计算机学院, 山东 聊城 252000
3. 华中科技大学 智能制造装备与技术全国重点实验室, 湖北 武汉 430074
基金项目: 国家自然科学基金资助项目(52175490,51805495,52175490) ; 湖北省重点研发计划资助项目(2022BAD121)
Curriculum reinforcement learning algorithm for flexible job shop scheduling problems
LU Chao1 , XIAO Yang1 , ZHANG Biao2 , GAO Liang3
1. School of Computer Science, China University of Geosciences(Wuhan), Wuhan 430078 , China
2. School of Computer Science and Technology, Liaocheng University, Liaocheng 252000 , China
3. State Key Laboratory of Intelligent Manufacturing Equipment and Technology, Huazhong University of Science and Technology, Wuhan 430074 , China
摘要
针对深度强化学习在柔性作业车间调度问题上泛化能力不足的问题,提出结合课程学习和深度强化学习的方法。通过动态调整训练实例难度,重点增强最难实例的训练,以适应不同数据分布,避免学习过程中的遗忘问题。仿真测试结果表明,算法在未经训练的大规模问题和基准数据集上保持了不错的性能。在2种人造分布的4个未训练大规模问题上取得了更好的性能表现。相较于精确方法和元启发式方法,对于计算量较大的问题实例,能快速地获得质量不错的解。同时算法可以适应不同的数据分布的柔性作业车间调度问题,具有较快收敛速度和较好泛化能力。
Abstract
To address the issue of the lack of generalization capability of deep reinforcement learning in flexible job shop scheduling problems, a method combining curriculum learning and deep reinforcement learning was proposed. The training instance difficulty was dynamically adjusted, with an emphasis on enhancing the training of the most difficult instances, to adapt to different data distributions and avoid the forgetting problem during the learning process. Simulation test results demonstrate that the algorithm maintained decent performance on large-scale untrained problems and benchmark datasets. It achieves better performance on four large-scale untrained problems with two artificial distributions. Compared to exact methods and metaheuristic methods, for problem instances with larger computational complexity, it could rapidly obtain solutions of decent quality. Moreover, the algorithm can adapt to flexible job shop scheduling problems with different data distributions, exhibiting a relatively fast convergence speed and good generalization capability.
作业车间调度问题(job-shop scheduling problem,JSP)是一个经典的组合优化问题,对于实际任务的调度优化具有重大影响。随着新一代人工智能技术的发展,企业的制造、改进和分销模式朝着快速、智能和灵活的制造方向发展 [1-3]。柔性作业车间调度问题 [4](flexible job-shop scheduling problem,FJSP)是作业车间调度问题的扩展。相较于作业车间调度问题只需要确定作业排序,柔性作业车间调度问题包含2个子问题:确定各工件的加工机器选择子问题和确定各个机器上的加工工序排序子问题。
FJSP是一个NP-hard问题[4],因此使用传统数值优化方法(如约束规划方法)求解其最优解具有挑战性[5]。对它的研究在学术界和工业界一直是一个热点,现有的一些研究方法主要分为启发式调度规则[6-7]、元启发式算法[8-9]和深度强化学习(deep reinforcement learning, DRL)算法[10-11]。①启发式调度规则可以灵活地对调度计划中的意外事件做出反应,计算复杂度低且实现简单,从而能实现最佳的时间效率。然而,设计此类启发式规则是一项艰巨的任务,需要对问题有专门的了解,需要一定的先验知识和大量的试错成本。并且其既不能保证局部最优,也不能保证全局最优[12]。②元启发式算法是解决车间调度问题最常用的优化算法,通过不同的优化迭代算子在车间调度问题上搜索到局部最优解。元启发式算法在调度问题上可以获得高于启发式规则方法的准确度,目前此类方法广泛应用在各类车间调度问题上。但是元启发式算法需要多次迭代才能找到最优解,收敛速度较慢。并且由于元启发式算法需要在搜索空间中进行大量的随机尝试,因此计算量较大[13]。③深度强化学习算法是一种通过与环境交互来学习最优行为的机器学习方法[14]。在车间调度问题中,深度强化学习算法可以通过与环境交互来学习最优的调度策略。相比于启发式调度规则和元启发式算法,深度强化学习算法可以通过与环境交互来学习最优行为,因此可以处理车间调度中的不确定性。同时,深度强化学习算法能够快速处理复杂问题(强化学习模型在训练时需要跟环境多次交互产生大量数据来达到收敛,但在应用时可以快速处理车间调度中较复杂的问题)。与元启发式算法一样,深度强化学习算法同样需要大量迭代训练和计算资源。但是元启发式算法对于每一个问题都从头计算,每一个问题都需要一定的计算量和耗时。而深度强化学习算法在训练过程中计算量大和耗时,但在具体应用时可以非常快地给出一个较好的解。深度强化学习算法可以根据环境的反馈来自适应地调整策略,因此可以更好地适应车间调度中的变化。
但是目前大多数现有的深度强化学习算法都只是针对特定规模的问题训练,存在内存利用效率低的问题[10]。虽然在简单的场景中可以对每个特定规模的问题单独训练得到不错的效果,但是在复杂环境中学习成本不断增高,学习时间过长,泛化问题尚未得到解决。因此,现有技术需要一种提高柔性作业车间调度问题的深度强化学习模型收敛速度和泛化能力的方法。课程学习(curriculum learning,CL)是一种机器学习方法,最初的概念是由Bengio等提出的[15]。它将训练数据集分为多个难度级别,并按照从易到难的顺序对模型进行训练。这种方法可以有效地解决模型收敛和泛化能力的问题。
针对上述问题,本文提出一种采用课程学习训练策略的深度强化学习算法,用于求解柔性作业车间调度方法。①通过结合图嵌入方法和注意力机制,构建了一种适应不同问题规模的深度强化学习算法。在应用时可以通过一个模型对不同规模问题实例快速给出较好质量的解。②通过类比人类在教育领域的常见做法,设计了一种可以不断返回表现最差的实例规模进行再学习的阶梯课程学习算法,可以解决现有模型泛化能力不足的问题。
1 柔性作业车间调度问题的数学模型
首先描述柔性作业车间调度问题,然后建立模型并定义问题涉及的参数和变量。
1.1 问题描述
柔性作业车间调度问题可以描述为涉及n个工件和m台机器的调度问题,用集合J={J1J2,···,Jn}和M={M1M2,···,Mm}分别表示工件集合和机器集合。其中每个工件Jini道工序组成,这些工序必须按照特定的顺序处理,由Oi=Oi1Oi2Oini表示。所有工件的所有工序构成一个集合O=i=1n Oi。每个工序Oij有多台机器可以选择,但是最终只能选择在可用机器集合MijM中的一台机器上处理。每道工序的加工时间与选择的机器有关,工序Oij在机器MkMij上的处理时间被表示为pkij>0。柔性作业车间调度问题需要为每个工序确定一个适当的加工机器和机器上的排序以获得一个符合调度性能指标的良好调度方案。此外对于柔性车间调度问题还需要满足如下约束:
1)所有工件在初始0时刻同时到达;
2)所有机器在初始0时刻均空闲,能够被安排执行加工任务;
3)每个工序必须分配给一个合适的机器且只能分配给一个机器;
4)每台机器一次最多可以处理一个工序;
5)机器在加工过程中不可被中断;
6)不考虑机器的准备时间和维修时间;
7)不考虑工件的运输时间。
析取图是描述作业车间调度问题和柔性作业车间调度问题的良好工具。图1图2分别展示了一个柔性作业车间调度问题的实例和一个该问题的可行解。图1~2中不同颜色的线分别表示不同的机器,SE分别是虚拟的开始节点和约束节点。图1中虚线代表机器可处理的工序关系,图2中实线代表已经调度好的工序关系。
1柔性作业车间调度问题实例
Fig.1Instance of flexible job shop scheduling problem
2可行解
Fig.2Feasible solution
1.2 模型构建
表1为柔性作业车间调度问题的数学模型涉及的符号的说明。
1柔性作业车间问题符号说明
Tab.1 Notations description of flexible job shop problems
本文以最小化最大完工时间Cmax为优化目标。最大完工时间是从作业最早开始时间到最后结束时间的时间长度,具体为最后一道工序完成的时间,是衡量调度方案的最根本指标,主要体现车间的生产效率。柔性作业车间调度问题的数学模型如下所示。
目标函数:
minCmax=minmax1in Ci
(1)
约束条件:
sij+pijkcij
(2)
cijsi(j+1),j+1ni
(3)
ciniCmax
(4)
sij+pijkyijefksef
(5)
yijefk=1, Oij Mk Oef 0,
(6)
km xijk=1
(7)
xijk=1, Oij Mk 0,
(8)
sij0pijk0cij0
(9)
式(1)描述了柔性作业车间调度问题的优化目标函数;式(2)限制了工序必须在机器上不间断地处理;式(3)限制了工件的工序必须按照规定的顺序处理;式(4)表示每个工件的完工时间不能超过总的完工时间;式(5)和式(6)限制了机器在同一时刻只能处理一道工序;式(7)和式(8)限制了每道工序只能安排在一台机器上加工;式(9)要求工序的开始加工时间、处理时间和完成时间都大于或等于0。
2 算法构建
本文参考了Wang等提出的深度强化学习模型[16],并将其训练过程重构,使其能够在不同的大小规模上训练模型,这是本文能够采用课程学习算法进行泛化研究的基础。
2.1 深度强化学习算法
图3所示,经典的强化学习范式包括生成动作的智能体、返回奖励和更新状态的环境。给定一个n×m规模的柔性作业车间调度问题,调度过程如下:其工序总数为|O|,智能体逐步地构造解,在每个决策时刻t,智能体观察当前系统状态st并做出动作at,将未调度的工序分配给空闲机器。环境过渡到下一个决策时刻t+1。该过程不断迭代,直到所有工序都被调度。
3经典强化学习范式
Fig.3Classical reinforcement learning paradigm
状态:时刻t处所有工序和机器的条件构成状态st。工序可以根据其在确定时刻的状况分成三组:已完成的工序、正在处理的工序和未调度的工序。其中在某时刻t的决策只取决于正在处理的工序和未调度的工序,所以称正在处理的工序和未调度的工序为相关工序。已完成的工序不影响后续调度,为不相关工序。在某时刻t,机器分为两组:不能处理任何剩余未调度工序的机器称为不相关机器,能够处理剩余未调度工序的机器称为相关机器。定义Out)和Mut)为在时刻t处的相关工序集合和相关机器集合。在每个状态st,会更新工序Oij的开始时间sijt)。如果工序Oij已经调度,sijt)为确定的值sij。如果工序Oij未调度,sijt)是一个估计值:如果工序Oij的前一个工序Oij-1)已经调度在机器Mk,则sijt=sij-1+pij-1k;否则sijt=sij-1+p-ij-1p-ij-1=k=1m pij-1k/m为工序Oij-1)的平均处理时间。
动作:将工序选择和机器分配结合起来作为一个复合决策。At)为时刻t处互相匹配的工序-机器对的集合。在某时刻t的动作空间(所有可能的动作)是由At)中所有工序-机器对集合定义的。对于一个动作atAt),at是一个可行的工序和机器对(OijMk),Oij的前一个工序Oij-1)已经调度,MkMij是空闲的机器。
状态转换:根据状态st和动作at,环境会确定性地转移到新的状态st+1
奖励:奖励rt=rstatst+1)应被设计为引导智能体选择能够最小化整个任务总完成时间的动作。由此奖励定义为stst+1完工时间之差,rt=Cmaxst)-Cmaxst+1)。其中Cmaxst)为状态st时最大完工时间的估计。当折扣因子γ=1时,累积奖励为G=t=0|0| rstatst+1=Cmaxs0-Cmax。对于一个具体的柔性作业车间调度问题,Cmaxs0)是一个常数,所以根据累计奖励的公式,最小化Cmax等价于最大化累计奖励G。真实的完工时间只有在调度完成后才能知道,所以在调度过程中使用不同状态的估计完工时间下界。具体的估计过程如下:C_Oijst=C_Oij-1st+minkMij pijk,其中C_Oijst表示当前工序Oij在当前状态st下的完工时间下界,C_Oij-1st表示前序工序Oij-1)在当前状态st下的完工时间下界。为了计算的一般性,规定C_Oijst=0。
策略:随机策略用πat|st)表示,其实质是一个条件概率函数,表示在状态st对应动作at的概率分布。πat|st)函数可以使用DRL算法拟合。给定一个t时刻的状态st,该策略函数会返回选择at的概率分布。
结合嵌入和注意力机制的强化学习如图4所示,相关工序 Out)和相关机器 Mut)嵌入后的向量通过注意力层后与At)拼接,然后一起作为actor和critic的输入,因此对于不同规模的问题,都能用同一个模型处理,提高内存利用率。
4结合嵌入和注意力机制的强化学习
Fig.4Reinforcement learning combined with embedding and attention mechanism
假设hoij0hMk0分别为初始未经过注意力层的工序Oij和机器Mk的原始特征向量。其中工序对应的注意力层模块将相关工序 OijOut)的特征向量hoij0作为输入,通过计算与它的前继工序和后继工序(如果存在)的注意系数,来构建与它的前继工序和后继工序(如果存在)之间的关系。具体的注意系数为:
ei,j,p=LaTWhoij(0)WhOip(0)
(10)
式中:L(·)是激活函数;aT是权重向量,W是线性变换矩阵;p是前继或后继下标,需满足|p-j|≤1。
通过softmax激活函数ρ(·)对注意系数eijp进行处理,得到归一化后的注意系数:
αi,j,p=ρei,j,p
(11)
通过注意系数αijp变换工序的特征向量:
hOij(1)=σp=j-1j+1 αi,j,pWhOip(0)
(12)
式中,σ是非线性激活函数。
类似地,机器对应的注意力层模块将相关机器 MkMut)的特征向量hMk0作为输入。计算它与它的所有竞争机器的注意系数ukq
显然两台机器在它们都可以处理的工序上存在竞争关系,而随着不断有工序在被调度,这种竞争关系会不断变化。
定义Ckq为机器Mk和机器Mq相互竞争的工序集合。定义Nk=qCkq表示与机器Mk存在竞争关系的机器集合。为了方便计算,定义ckq=oijCkqOut hOij表示机器Mk和机器Mq之间竞争强度的度量(工序Oij的特征向量hOij越大,工序Oij越重要,竞争也就越激烈)。
借助ckq计算注意系数ukq
ukq=LbTZ1hMkZ1hMqZ2ckq
(13)
式中:MkMut),对每个输入特征hMk计算它与所有竞争机器的qNk的注意系数ukqZ1Z2是权值矩阵;bT是线性变换。
值得注意的是,Ckk是机器Mk可以处理的未调度工序集合,k总是属于集合Nk。因此ckk可以被看成机器Mk处理能力的一种度量。当集合CkqOut)为空时,ckq置为全零。
通过softmax激活函数对注意系数ukq进行处理,得到归一化后的注意系数:
αkq=ρukq
(14)
通过注意系数αkq变换机器的特征向量:
hMk(1)=σqNk αkqWhMq(0)
(15)
假设hOijLhMkL分别是hOij0hMk0经过L层注意力层后获得的特征向量。通过平均池化和拼接操作获得全局特征向量hGL,并作为后面决策部分的输入:
hG(L)=1OuOijOu hOij(L)1MuMkMu hMk(L)
(16)
在决策部分,采用基于actor-critic的决策网络。对于actor和critic分别采用两个多层感知机(multilayer perceptrons, MLPs),它们的参数分别用θφ表示。
具体地,actor网络通过两个步骤生成随机策略函数πθat|st):
首先通过连接所有与动作at=(OijMk)有关的特征向量作为多层感知机Cθ的输入得到动作的标量函数μat|st):
μatst=CθhOij(L)hMk(L)hG(L)hoij,Mk
(17)
然后通过softmax把动作的标量函数μat|st)转化成策略函数πθat|st):
πθatst=expμatstbtA(t) expμbtst
(18)
式中,πθat|st)输出的是在状态st下选择动作at的概率。
类似地,critic网络以hLG作为多层感知机Cφ的输入,生成一个标量函数νφst)作为状态st价值的估计。
νφst=CφhG(L)
(19)
2.2 课程学习算法
为了解决模型的泛化问题,引入如图5所示的课程学习算法。Iklassov等曾利用课程学习提高了深度强化学习在JSP问题上的泛化能力[17]。本文针对柔性车间调度问题设计了增强自适应阶梯课程学习,以提高模型的泛化能力。课程学习是一种模仿人类课程中有意义的学习顺序,从简单的数据向困难的数据训练机器学习模型的训练策略。课程学习策略作为一种易于使用的插件,在计算机视觉和自然语言处理等场景中,能提高各种模型的泛化能力和收敛速度。
图6所示,课程学习算法是一种使用渐进式复杂的数据进行策略学习的训练方法。简而言之,课程学习意味着“从容易的数据训练到难的数据”。更具体地说,其基本思想是“从小处开始”,用更容易的数据子集(或更容易的子任务)训练机器学习模型,然后逐渐提高数据(或子任务)的难度水平,直到训练整个数据集(或目标任务)。
5课程学习训练流程
Fig.5Curriculum learning training flow
6课程学习难度等级图
Fig.6Curriculum learning difficulty level chart
如算法1所示,将不同规模的实例划分成不同的难度等级,训练从最低难度等级l=lmin开始,目的是达到最高难度等级l=lmax。传统的课程学习往往在求解大规模问题时会出现灾难性遗忘的问题。为了解决这个问题,提出了增强自适应阶梯课程学习(enhanced adaptive staircase curriculum learning,EASCL)算法。具体地,每i次迭代后将预期结果和最优解的结果进行比较得到差值g。在数值上,算法对每个难度等级l′≤lg进行归一化得到gl)数组,并将其转化为概率形式。这样g越大就会被赋予越高的概率,而每个概率对应一个特定的问题大小。智能体在难度等级l迭代学习u次后,将gl)与阈值topt进行比较,当gl)≤topt时,EASCL选择下一个难度等级ll+1。否则,算法从g的分布中选取一个更小的困难等级l′。该算法通过重新访问已学习过的难度等级和锚定最困难的难度等级来强化训练,这极大避免了遗忘问题。
3 仿真实验
在本节中,将本文算法与几种基准方法进行比较,包括几种流行的启发式规则、Google OR-Tools的精确方法;并且将本文算法与当前先进的两种基于DRL的方法 [1618]进行对比。
3.1 数据集
一个有n个作业和m台机器的FJSP实例简称为“n×m”(工序的数量在不同的实例中有所不同)。与大多数相关工作一样,本文采用人工合成数据(synthetic data, SD)的FJSP实例用于训练和测试。第一种数据改编自文献[18],它允许作业拥有不同数量的工序,用SD1表示,其生成方法与文献[19]中众所周知的过程类似。如表2所示,对于SD1生成的n×m的FJSP实例,每个作业Jini个工序,ni是从均匀分布U(0.8m,1.2m)中采样的整数。对于每个工序Oij,可以选择的机器集合|Mij|和处理时间pkij是从均匀分布U(1,m)和U(1,20)采样的整数。
算法1 增强自适应阶梯课程学习
Alg.1 Enhanced adaptive staircase curriculum learning
2数据集SD1实例分布
Tab.2 Dataset SD1 instance distributions
第二种数据改编自文献[16],其工序的随机处理时间范围更大,用SD2表示。如表3所示,对于SD2生成的n×m的FJSP实例,每个作业有ni个工序。对于每个工序Oij,可以选择的机器集合|Mij|和处理时间pkij是从均匀分布U(1,m)和U(1,99)采样的整数。
3数据集SD2实例分布
Tab.3 Dataset SD2 instance distributions
为了方便比较,考虑了6种不同的FJSP问题规模:10×5、20×5、15×10、20×10、30×10、40×10。在4个较小的规模上执行训练,并使用最大的2种规模(30×10和40×10)来测试训练策略的泛化能力。测试数据是预先生成的,每种规模各有100个实例。
同时为了更好地比较,本文和文献[16]一样在4组公共基准数据集上评估训练后的模型,以探索它们在交叉分布任务上的能力,包括文献[18]中的mk1-10实例和文献[20]中的3组la1-40实例。
3.2 参数配置
本文算法在Pycharm(Community Edition)中基于Python 3.10语言编程实现,使用PyTorch和Gym框架,实验平台为Intel© CoreTM i7-12650H(@2.30GHz)CPU、NVIDIA GeForce RTX4060和8 GB RAM,运行在Windows11 64 bit系统。为了方便比较,参数设置与文献[16]和文献[18]中的一致。σ激活函数采用指数线性单元(exponential linear unit,ELU)。CθCφ都有两个隐藏层,维度为64,tanh作为激活函数。在损失函数中设置策略、值和熵系数分别为1、0.5和0.01。剪切参数、广义优势估计(generalized advantage estimation,GAE)参数和折扣因子分别设置为0.2、0.98和1。采用Adam优化器,学习率r=0.000 3。
3.3 基准方法和性能指标
对于基准方法,本文选择了4个在文献[21]中显示出良好性能的启发式规则(priority dispatching rules, PDRs),并将其推广到求解FJSP。在实验中,考虑到随机性质,每个启发式规则的结果采取5次独立运行的平均结果。具体启发式规则如下:
先进先出(first-in-first-out,FIFO):选择最早就绪的候选工序和最早就绪的可执行机器。
剩余最多工序(maximum operation processing number remaining, MOPNR):选择具有最多剩余后续工序的工序和可以立即处理它的机器。
最短加工时间(shortest processing time, SPT):选择加工时间最短的工序和机器的兼容对。
剩余最多工作量(most work remaining, MWKR):选择剩余后续工序的平均处理时间最多的工序以及能够立即处理该工序的机器。
评估指标使用平均的最大完工时间(Obj.)和最优解(最优近似解)之间的差距值(Gap),两者都是数值越小越好。为了与最优解进行比较,参考了基于约束规划的精确求解器Google OR-Tools,并且以其结果作为参考线计算Gap。Gap计算过程为:(当前解完工时间-最优解完工时间)/最优解的完工时间×100%。为了便于比较,直接导入文献[16]和文献[18]的公开结果,文献[18]为未使用注意力机制的深度强化学习方法,文献[16]为使用注意力机制的深度强化学习方法。包括在所有6种规模的测试实例的结果和在公共基准数据集上的结果,文献[16]和文献[18]都为一种规模对应一个模型,本方法为一个通用模型。在测试中和文献[18]一样采取贪婪和采样策略两种选择动作的策略。具体来说,采样策略根据actor网络的输出概率分布并行地采样一个实例100次,并记录最好的一次,以在可接受的计算负担下提高解决方案的质量。贪婪策略根据actor网络的输出概率分布每次贪婪地选取概率最大的动作。
模型的性能根据平均的最大完工时间和其与最优解(最优近似解)的相对差距进行评估。最优解(最优近似解)要么是OR-Tools对实例的解,要么是文献[22]中公开的公共基准数据集的最佳结果。在实验中,分别比较了贪婪和采样策略两种策略的性能,并在每个问题中用粗体强调了最佳结果。
3.4 结果
3.4.1 中等规模合成数据集上的结果
表4比较了本文模型和4种流行的启发式规则在测试实例上的Obj.和Gap。这些测试实例是使用与训练实例相同的分布生成的,包含了SD1和SD2两种分布和10×5、20×5、15×10、20×10四种规模。同时比较了本模型和文献[16]、文献[18]提出的方法,文献[16]和文献[18]的结果是公开的,为了公平比较,采用了相同的测试实例。对于文献[16]、文献[18]的模型,相同规模问题采用相同规模的模型进行比较。
从粗体数字中可以清楚地看出,对于所有问题规模的两个合成数据,本模型不仅明显优于所有启发式规则,而且相对于文献[16]和文献[18]中的DRL解决方案,也表现出了较好的改进。
4 种启发式规则受数据分布的影响较大,对于同样规模的问题,在SD2的数据集上表现出大幅度的降低,而DRL方法普遍保持了良好的性能表现。
可以看出,采取采样策略的结果明显好于采取贪婪策略的结果。在2种不同分布的6种规模的测试实例中,采样策略在6个结果上比贪婪策略提升5%。在所有的12种结果中采样策略均好于贪婪策略,平均提升6%。
另外,本模型在SD1数据上的20×10规模的测试实例上以1.05%的优势超越了OR-Tools的结果。可以看出,所有方法在SD2数据集上的表现都不如在同等规模的SD1数据集上的表现,当处理时间范围变大时,性能会受到影响,导致与最佳解决方案的差距增大。在这种情况下,本方法仍然表现良好,特别是在使用采样策略时,在规模为15×10和20×10的SD2数据集的测试实例采样策略相对于贪婪策略分别提升了17%和12%。
3.4.2 泛化能力分析
图7所示,在6种规模的合成数据集上,本模型对比了表现最好的文献[16]中的4个模型。除了在较小的问题规模(10×5和15×10)上表现略差,本模型在其余问题规模均达到了较好的表现。
4在中等规模问题上的结果
Tab.4 Results on medium-sized problems
7不同问题规模Gap对比
Fig.7Gap comparison for different problem scales
表5所示,在未训练过的规模为30×10和40×10的测试实例中比较模型在2个数据集上的泛化性能。由于文献[16]和文献[18]中一个问题规模训练一个模型,选取其表现最好的20×10模型用于比较。可以看出,除了在SD1数据集的贪婪策略上的结果略差于文献[16]的结果,本模型在计算成本可接受的情况下,始终在未训练过的大规模数据上表现良好。在使用采样策略时本模型优于其他所有比较的方法。值得注意的是,在规模为40×10的SD2数据实例上,本模型以7.09%的优势超越了OR-Tools的结果。
这些结果表明本模型采用的增强自适应阶梯课程学习算法可以通过小规模任务的训练来学习一般知识,这些知识可以用于解决看不见的大规模实例。同时相较于文献[16]和文献[18]中的方法,本模型具有较好的泛化能力。
由于真实世界的问题可能来自未知的分布。因此如表6所示,进一步测试了本模型(在合成数据上训练)在4个公共基准数据集上的性能。每个基准数据集包含不同问题规模的实例。
对于文献[16]和文献[18],选择了在这些基准测试中取得了最好的结果的模型比较(在SD1数据上训练的规模为10×5和15×10的模型)。对于启发式规则,在表6中只列出了4个PDR中表现最好的MWKR的结果。
在4个公共基准数据集上,可以看出本模型取得了良好的性能。在大多数情况下超过文献[16]和文献[18],在其余情况下表现相当。分别在mk实例和la(vdata)实例的采样策略、la(rdata)实例和la(vdata)实例的贪婪策略取得了最好结果。这些结果展示了课程学习能够确实提升模型的泛化能力,能够真正捕捉到FJSP问题的内在结构信息,适应不同分布和不同规模的问题,而不仅仅是学习特定规模问题的知识。
5在大规模问题上的结果
Tab.5 Results on large-scale problems
6在基准数据集上的结果
Tab.6 Results on benchmark data set
4 结论
针对柔性作业车间调度问题,本文提出了一种创新的结合课程学习的深度强化学习端到端框架。该框架整合了注意力机制和深度强化学习技术,并展现出对各种问题规模的良好适应性,允许从小规模问题训练起步,进而成功部署于大规模问题。为了优化这一过程,借鉴教育领域课程学习理念,设计了一种能够针对性地回溯并重新学习性能瓶颈实例规模的算法。实验证明,相较于传统PDRs方法及其他现有先进DRL方法,本方法在合成数据集和公开基准数据集上展现出了良好性能。特别是在未经直接训练过的不同规模实例上,该模型呈现良好的泛化能力,验证了课程学习策略的有效性。此外,区别于以往针对每个问题规模训练独立模型的做法,本研究提出的单一通用模型在限定内存条件下,能有效应对多种问题规模并保持性能。
然而,面对具有随机不确定性和动态变化属性的FJSP问题,以及其他局部可观测的复杂场景时,尽管本方法初步显示出优势,但仍需深入探究如何进一步提升模型在处理此类挑战性问题时的稳健性和泛化能力,这将是未来工作的主要发展方向。
1柔性作业车间调度问题实例
Fig.1Instance of flexible job shop scheduling problem
2可行解
Fig.2Feasible solution
3经典强化学习范式
Fig.3Classical reinforcement learning paradigm
4结合嵌入和注意力机制的强化学习
Fig.4Reinforcement learning combined with embedding and attention mechanism
5课程学习训练流程
Fig.5Curriculum learning training flow
6课程学习难度等级图
Fig.6Curriculum learning difficulty level chart
7不同问题规模Gap对比
Fig.7Gap comparison for different problem scales
1柔性作业车间问题符号说明
2数据集SD1实例分布
3数据集SD2实例分布
4在中等规模问题上的结果
5在大规模问题上的结果
6在基准数据集上的结果
ZHANG J, DING G F, ZOU Y S,et al. Review of job shop scheduling research and its new perspectives under Industry 4.0[J]. Journal of Intelligent Manufacturing,2019,30:1809-1830.
CHEN B M. On the trends of autonomous unmanned systems research[J]. Engineering,2022,12:20-23.
张洁, 高亮, 李新宇, 等. 前言——工业大数据与工业智能[J]. 中国科学: 技术科学,2023,53(7):1015. ZHANG J, GAO L, LI X Y,et al. Preface:industrial big data and industrial artificial intelligence[J]. Scientia Sinica Technologica,2023,53(7):1015.(in Chinese)
DAUZÈRE-PÉRÈS S, DING J W, SHEN L J,et al. The flexible job shop scheduling problem:a review[J]. European Journal of Operational Research,2024,314(2):409-432.
MENG L L, ZHANG C Y, REN Y P,et al. Mixed-integer linear programming and constraint programming formulations for solving distributed flexible job shop scheduling problem[J]. Computers & Industrial Engineering,2020,142:106347.
HUANG P Y. A comparative study of priority dispatching rules in a hybrid assembly/job shop[J]. International Journal of Production Research,1984,22(3):375-387.
陈亮, 王世进, 周炳海. 柔性作业车间调度问题的集成启发式算法[J]. 计算机工程,2008,34(1):256-258. CHEN L, WANG S J, ZHOU B H. Integrated heuristic algorithm for flexible job-shop scheduling problems[J]. Computer Engineering,2008,34(1):256-258.(in Chinese)
YU F, LU C, ZHOU J J,et al. A knowledge-guided bi-population evolutionary algorithm for energy-efficient scheduling of distributed flexible job shop problem[J]. Engineering Applications of Artificial Intelligence,2024,128:107458.
YU F, LU C, ZHOU J J,et al. Mathematical model and knowledge-based iterated greedy algorithm for distributed assembly hybrid flow shop scheduling problem with dual-resource constraints[J]. Expert Systems with Applications,2024,239:122434.
WANG L, PAN Z X, WANG J J. A review of reinforcement learning based intelligent optimization for manufacturing scheduling[J]. Complex System Modeling and Simulation,2021,1(4):257-270.
崔雪艳, 万烂军, 赵昊鑫, 等. 基于深度强化学习的柔性作业车间调度方法[J]. 制造技术与机床,2023(12):165-170. CUI X Y, WAN L J, ZHAO H X,et al. A flexible job shop scheduling method based on deep reinforcement learning[J]. Manufacturing Technology & Machine Tool,2023(12):165-170.(in Chinese)
NEWELL A, SIMON H A. Computer science as empirical inquiry:symbols and search[M]//Association for Computing Machinery, ACM Turing Award Lectures. New York: ACM,2007:1975.
尚正阳, 顾寄南, 唐仕喜, 等. 针对几种元启发式算法的应用性能对比研究[J]. 机械设计与制造,2021(4):34-38. SHANG Z Y, GU J N, TANG S X,et al. Comparative study on application performance of several meta-heuristic algorithms[J]. Machinery Design & Manufacture,2021(4):34-38.(in Chinese)
王冲, 景宁, 李军, 等. 一种基于多Agent强化学习的多星协同任务规划算法[J]. 国防科技大学学报,2011,33(1):53-58. WANG C, JING N, LI J,et al. An algorithm of cooperative multiple satellites mission planning based on multi-agent reinforcement learning[J]. Journal of National University of Defense Technology,2011,33(1):53-58.(in Chinese)
BENGIO Y, LOURADOUR J, COLLOBERT R,et al. Curriculum learning[C]//Proceedings of the 26th International Conference on Machine Learning,2009.
WANG R Q, WANG G, SUN J,et al. Flexible job shop scheduling via dual attention network based reinforcement learning[EB/OL].(2023-06-17)[2023-11-12].https://arxiv.org/abs/2305.05119v2.
IKLASSOV Z, MEDVEDEV D, SOLOZABAL R,et al. Learning to generalize dispatching rules on the job shop scheduling[EB/OL].(2022-11-15)[2023-11-12].https://arxiv.org/abs/2206.04423v2.
SONG W, CHEN X Y, LI Q Q,et al. Flexible job-shop scheduling via graph neural network and deep reinforcement learning[J]. IEEE Transactions on Industrial Informatics,2023,19(2):1600-1610.
BRANDIMARTE P. Routing and scheduling in a flexible job shop by tabu search[J]. Annals of Operations Research,1993,41:157-183.
HURINK J, JURISCH B, THOLE M. Tabu search for the job-shop scheduling problem with multi-purpose machines[J]. Operations-Research-Spektrum,1994,15:205-215.
SELS V, GHEYSEN N, VANHOUCKE M. A comparison of priority rules for the job shop scheduling problem under different flow time-and tardiness-related objective functions[J]. International Journal of Production Research,2012,50(15):4255-4270.
BEHNKE D, GEIGER M. Test instances for the flexible job shop scheduling problem with work centers[R]. Hamburg: Helmut Schmidt University,2012.