掌桥专利:专业的专利平台
掌桥专利
首页

一种基于强化学习的事件驱动型柔性作业车间调度方法

文献发布时间:2024-04-18 20:00:50


一种基于强化学习的事件驱动型柔性作业车间调度方法

技术领域

本发明涉及一种基于强化学习的事件驱动型柔性作业车间调度方法,属于工业智能仿真技术领域。

背景技术

FJSP(柔性作业生产调度问题)作为JSP(作业生产调度问题)的扩展问题,加了工序柔性,使每道工序的可选机器集扩大,更加符合现代离散制造车间的生产方式和工艺流程。FJSP作为一个复杂的NP-hard(非确定性多项式)问题,解空间的规模膨胀,其难点在于任务和资源存在多重约束、任务之间存在先后顺序、资源之间存在合作关系,且由不同的优化目标或约束衍生出各类问题,如针对最小化完工时间、最小化拖期时间、最小化能耗等全局目标,考虑AGV(自动导向车)运输、考虑缓存区容量等附加约束。

因此,对于该类调度问题,考虑到复杂的约束、优化目标、解搜索空间,使用最优化方法无法在多项式时间内进行精确求解,所以目前国内外的相关研究主要围绕启发式算法展开。启发式算法来源于受自然现象或生物活动规律的启发而产生,不同于传统的精确算法,不保证找到全局最优解,但通常可以在可接受的时间内找到接近最优的解。

已经有大量研究将启发式算法用于柔性作业车间的调度问题上。虽然在很多FSJP场景或用例上,启发式算法表现优异,但仍然存在一些弊端。首先,启发式算法的解质量不稳定,大部分算法都是针对某一用例设计的,难以有效迁移模型,泛化能力不足;其次,容易陷入局部最优解,尽管可以通过算法融合或引入随机性解决,但这会加剧问题的求解难度;再者,在面对大规模用例时,启发式算法的求解效率低下,通常需要不断迭代和搜索解空间找到最优值。

此外,近年来随着人工智能算法的广泛普及,大量研究开始专注于使用强化学习解决车间调度问题,虽然其应用取得了一定的成果,但是还存在着一些问题值得探索。其中一个问题是智能体状态的选择,强化学习的状态空间需要能够全面反映车间加工情况,并要适当控制维度提高求解速度。然后是动态调度框架的通用性,由于不同车间的生产过程和约束条件不同,因此现在的调度模型框架很难针对不同的车间进行扩展。此外,奖励函数的设置也是一个需要关注的问题,即要保证全局目标,避免出现局部最优解的问题,也要利用合适的局部奖励引导智能体收敛。为了解决这些问题,本课题将进一步深入研究DRL(深度强化学习)在FJSP上的理论及实践应用,为实现智能制造提供支持。

因此,为了克服这些缺陷,如何采用更加智能化的调度算法应对愈发复杂的车间调度问题,是本领域技术人员急需要解决的技术问题。

发明内容

目的:为了克服现有技术中存在的不足,本发明提供一种基于强化学习的事件驱动型柔性作业车间调度方法,能够通过将柔性作业车间动态调度问题转化为马尔科夫决策过程,采用强化学习的方法训练工件智能体和机器智能体进行实时调度,可以有效应用于规模愈发庞大且工序信息愈发复杂的车间调度任务,保证了调度决策的实时性和高效性。

技术方案:为解决上述技术问题,本发明采用的技术方案为:

一种基于强化学习的事件驱动型柔性作业车间调度方法,包括如下步骤:

步骤1、从调度现场读取相关数据,根据相关数据构建事件驱动型的柔性作业车间环境模型,利用事件流机制触发更新事件驱动型的柔性作业车间环境模型中的状态集合。

步骤2、将事件驱动型的柔性作业车间环境模型中的状态集合作为状态空间,将调度规则集合、延时等待策略、待机判别机制和共享通知机制作为动作空间,根据状态空间、动作空间构建基于马尔可夫决策过程的车间实时调度模型。

步骤3、根据事件驱动型的柔性作业车间环境模型获取车间状态,基于车间状态利用多智能体深度强化学习算法训练车间实时调度模型,得到训练完成的车间实时调度模型。

步骤4、利用训练完成的车间实时调度模型根据实时车间状态进行车间调度和任务的分配。

作为优选方案,所述步骤1中事件驱动型的柔性作业车间环境模型,计算公式如下:

其中:ENV为事件驱动型的柔性作业车间环境模型,

其中,

使用如公式(3)所示的三元组来表述,分别为:/>

使用如公式(4)所示的四元组来表述,分别为:/>

使用公式(5)所示的工件J

作为优选方案,对于工件状态机和工序状态机的状态集合,设置了四个状态:待加工、待分配、加工中、完成,初始状态设为待分配。

对于机器状态机的状态集合,设置了四个状态:空闲、加工、待机、等待,初始状态设为空闲。

作为优选方案,所述步骤1中利用事件流机制触发更新事件驱动型的柔性作业车间环境模型中的状态集合,包括:

设置车间事件e用三元组<t,obj,f>表示,如公式(6)所示,

e=f

其中,t表示全局时间戳,指定事件生效的时间,obj表示事件作用对象,指定事件的作用范围,f表示事件作用函数,指定具体的作用函数或方法。

建立最小堆管理事件队列

从事件队列

作为优选方案,所述马尔可夫决策过程的车间实时调度模型包括:工件智能体、机器智能体,用有限的马尔可夫决策过程描述:

其中,S表示状态空间,其中s和s′均为S的元素,状态空间包含三类用于智能体观测的特征状态值:全局状态特征f(t)、机器选择状态特征f

A(s)表示动作空间,包括:调度规则集合、延时等待策略、待机判别机制和共享通知机制作。

表示状态转移矩阵。

表示奖励函数。

γ表示折扣因子。

a表示动作,即调度规则。

作为优选方案,所述全局状态特征f(t),至少包括以下其中之一:在加工时刻t,机器M

所述机器选择状态特征f

所述工件选择状态特征f

作为优选方案,所述调度规则集合包括:机器智能体选工件的规则,工件智能体选机器的规则,其中:机器智能体选工件的规则如表3所示:

表3机器智能体选工件规则

工件智能体选机器的规则如表4所示:

表4选机器规则

所述延时等待策略,包括:使机器适当等待,使某道工序先于缓存区内已有工序。

所述待机判别机制,包括:当一个机器除了缓存区内的工件外,已经不存在需要等待的工件时,应该被禁止采用延时等待策略。

所述共享通知机制,包括:一道工序的待选机器不止一个,所以存在多个机器同时等待一个工件的情况,如果这个工件进入某一机器的缓存区后,为防止其他机器继续待机等待,需要通过事件流注册相应事件唤醒所有等待该工件的机器。

作为优选方案,所述步骤3,包括:

步骤s1、随机参数θ初始化工件智能体的策略网络和目标网络以及机器智能体的策略网络和目标网络,初始化工件智能体和机器智能体经验回放池,初始化工件智能体监听队列job_q和机器智能体监听队列machine_q。

步骤s2、基于事件驱动型的柔性作业车间环境模型,实时获取车间状态。

步骤s3、加载用例D,初始化车间环境参数。

步骤s4、判断是否存在待分配工序O

步骤s5、将实时获取工件智能体的相关状态s

步骤s6、执行a

步骤s7、判断是否存在空闲机器M

步骤s8、将实时获取智能体的相关状态s

步骤s9、执行a

步骤s10、执行智能体选取的动作a

步骤s11、监听队列反馈状态值s

步骤s12、将现有样本(s,a,s

步骤s13、每隔指定周期进行学习,训练工件智能体和机器智能体,从经验回放池中获取b个样本作为mini-batch,通过目标网络计算目标Q值,并计算目标Q值与预测值的损失L(θ),根据得到的L(θ)使用mini-batch的梯度下降方式来更新网络参数,;每隔一段事件复制网络参数到目标网络;重复执行步骤s13,直到周期结束;

步骤s14、输出最优网络参数θ

有益效果:本发明提供的一种基于强化学习的事件驱动型柔性作业车间调度方法,首先采用事件驱动方式对柔性作业车间环境进行建模,通过有限状态机描述车间实体对象(机器、工件、工序)的状态转移过程,通过事件流机制描述车间调度和加工过程;设计了基于通用车间状态的状态空间、基于调度规则的动作空间、基于延迟反馈的局部奖励和基于迭代更新的全局奖励,将调度问题转化为马尔科夫决策过程;利用多智能体深度强化学习算法训练车间实时调度模型;利用训练完成的调度模型进行实际车间调度。本发明为实现FJSP高效调度提供了有效的解决方案,能够有效且实时地处理大规模调度用例,提高生产效率。

附图说明

图1为本发明方法总体调度框架图。

图2为本发明中车间实体的有限状态机模型示意图。

图3为本发明机器、工件、工序状态示意图。

图4为本发明中的事件流机制示意图。

图5为本发明中用于多智能强化学习的训练框架图。

图6为本发明中实施例调度甘特图。

具体实施方式

下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

下面结合具体实施例对本发明作更进一步的说明。

如图1-2所示,本发明提供一种基于强化学习的事件驱动型柔性作业车间调度方法,包括以下步骤:

步骤1、从调度现场读取相关数据(订单信息与状态,机器状态,工件状态,工序状态等),根据相关数据构建事件驱动型的柔性作业车间环境模型。

首先,使用状态机模型描述车间相关实体的状态变化,所述状态机模型包括:工件状态机、机器状态机、工序状态机。所述车间相关实体包括:工件、机器、工序。

表示工件集/>

表示工件J

其中:ENV为事件驱动型的柔性作业车间环境模型,

其中,

使用如公式(3)所示的三元组来表述,分别为:/>

使用如公式(4)所示的四元组来表述,分别为:/>

使用公式(5)所示的工件J

当前状态集合S通过输入Σ、状态转移函数δ得到下一时刻状态集合S′,

如图3所示,对于工件状态机和工序状态机的状态集合,设计了四个状态:待加工(Toprocess)、待分配(Toallocate)、加工中(Processing)、完成(Finish),初始状态设为待分配。

对于机器状态机的状态集合,设计了四个状态:空闲(Idle)、加工(Process)、待机(Sleep)、等待(Wait),初始状态设为空闲。

如图4所示,其次,建立事件流机制来描述和管理车间事件e。车间事件e用三元组<t,obj,f>表示,如公式(6)所示。其中,t表示全局时间戳,指定事件生效的时间,obj表示事件作用对象,指定事件的作用范围,f表示事件作用函数,指定具体的作用函数或方法。

e=f

建立最小堆管理事件队列

例如,当工件进入机器缓存区时,一个事件用于触发工件状态机从Toallocate状态转移到Toprocess状态;当机器完成某道工序时,一个事件用于触发机器状态机从Process状态转换到Idle状态。

如图5所示,步骤2、构建基于马尔可夫决策过程的车间实时调度模型,车间实时调度模型包括两个智能体:工件智能体jobagent和机器智能体machineagent,用有限的马尔可夫决策过程描述:

其中,S表示状态空间,描述系统中所有能够观测到的状态集合,其中s和s′均为S的元素,包含三类用于智能体观测的特征状态值:11个全局状态特征f(t)、5个机器选择状态特征f

表1

全局状态特征1:在加工时刻t,机器M

全局状态特征2:在加工时刻t,所有机器利用率的标准差如公式(9)所示;

全局状态特征3:在加工时刻t,工件J

全局状态特征4:在加工时刻t,所有工件的工时完成度的标准差如公式(12)所示;

全局状态特征5:在加工时刻t,所有工序的总工时完成度如公式(13)所示;

全局状态特征6:在加工时刻t,工件J

全局状态特征7:在加工时刻t,所有工件的工序数完成度的标准差如公式(16)所示;

全局状态特征8:在加工时刻t,所有工件的总工序数完成度如公式(17)所示;

全局状态特征9:在加工时刻t,工件J

全局状态特征10:在加工时刻t,所有工件等待时间占比的标准差如公式(20)所示;

全局状态特征11:在加工时刻t,理想剩余完工时间(Ideal RemainingCompletion Time,IRCT)如伪代码表2所示,理想意味着不考虑工件间竞争机器资源的限制下最快的完工时间,即剩余加工时间。

f

表2

机器选择状态特征1:在加工时刻t,机器M

机器选择状态特征2:在加工时刻t,机器M

机器选择状态特征3:在加工时刻t,机器M

机器选择状态特征4:在加工时刻t,机器M

机器选择状态特征5:在加工时刻t,机器M

f

工件选择状态特征1:在加工时刻t,工件J

工件选择状态特征2:在加工时刻t,工件J

工件选择状态特征3:在加工时刻t,工件J

工件选择状态特征4:在加工时刻t,工件J

工件选择状态特征5:在加工时刻t,工件J

/>

工件选择状态特征6:在加工时刻t,工件J

工件选择状态特征7:在加工时刻t,工件J

工件选择状态特征8:在加工时刻t,工件J

A(s)表示在状态s下动作空间,包括:调度规则集合(如表3所示为17个机器智能体选工件的规则,如表4所示为12个工件智能体选机器的规则)、延时等待策略(使机器适当等待使某道工序先于缓存区内已有工序,并引入待机判别机制和共享通知机制来解决机器智能体采样效率降低的问题)、待机判别机制(当一个机器除了缓存区内的工件外,已经不存在需要等待的工件时,应该被禁止采用延时等待策略)、共享通知机制(由于FJSP问题存在机器柔性,即一道工序的待选机器不止一个,所以存在多个机器同时等待一个工件的情况,这时如果这个工件进入某一机器的缓存区后,为防止其他机器继续待机等待,需要通过事件流注册相应事件唤醒所有等待该工件的机器)。

表3选工件规则

/>

表4选机器规则

表示状态转移矩阵,当系统在决策时刻点t处于状态s,执行决策a后,系统在下一决策时刻点t+1时处于状态s′的概率是/>

表示奖励函数,当系统在决策时刻点t处于状态s,执行决策a后,到达状态s′后,系统获得的即时回报为/>

γ表示折扣因子。

然后,定义奖励函数;采用如公式(36)所示的局部奖励和全局奖励相结合的方式来训练智能体。局部奖励r

α、β为超参数。

步骤3、利用多智能体深度强化学习算法训练车间实时调度模型,得到训练完成的车间实时调度模型;

步骤s1、随机参数θ初始化工件智能体策略网络和目标网络以及机器智能体策略网络和目标网络,初始化工件智能体和机器智能体经验回放池,初始化工件智能体监听队列job_q和机器智能体监听队列machine_q;

步骤s2、创建事件驱动型的柔性作业车间环境模型,实时获取车间状态;

步骤s3、加载用例D(表示某个FJSP),初始化车间环境参数;

步骤s4、判断是否存在待分配工序O

步骤s5、将实时获取工件智能体的相关状态s

步骤s6、执行a

步骤s7、判断是否存在空闲机器M

步骤s8、将实时获取智能体的相关状态s

步骤s9、执行a

步骤s10、执行智能体选取的动作a

步骤s11、监听队列反馈状态值s

步骤s12、将现有样本(s,a,s

步骤s13、每隔指定周期进行学习,训练工件智能体和机器智能体,获取b个样本从经验回放池中作为mini-batch,通过目标网络计算目标Q值,并计算目标值与预测值的损失

步骤s14、输出最优网络参数θ

以上算法计算程序如表5所示:

表5

步骤4、利用训练完成的车间实时调度模型根据实时车间状态进行车间调度和任务的分配。

实施例:

以某企业智能制造车间的实际调度加工过程为例,该车间产线以模具生产为任务,具有14台机床,包括数控车床、铣床、磨床、线切割机、钻攻中心等,一个包含14个工件的加工订单,所有工序的柔性为[1,5]。如表6所示为该加工订单的工序信息表,由于具体的工序和工时信息过于庞大和复杂,所以只列出每道工序的可加工机器数量和平均加工时间。利用本发明的状态机和事件流模型对该车间环境和订单任务进行建模,并分别使用强化学习模型对订单的调度过程进行求解,调度甘特图如图6所示,总完工时间为153分钟。

表6生产订单工序信息

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种高稳定性直流无刷绝缘转子
  • 一种绝缘稳定性好的永磁无刷直流电动机
技术分类

06120116543059