一种基于强化学习的流水车间加工调度方法

阅读: 评论:0



1.本发明涉及加工调度领域,具体的讲是一种基于强化学习的流水车间加工调度方法。


背景技术:



2.流水车间调度问题因其在运输、采购、计算设计、信息处理和通信等行业中的重要性而引起了研究人员的关注。因为这个问题是np难的,在多项式时间内到解是很难的,所以提出了许多算法来克服这个问题。目前,解决这类问题有效方法主要包括:精确算法,启发式算法,智能优化算法.如枚举法、分支定界法等精确算法只对小规模问题的求解有着很好的效果。如gupta法、ra法和neh法等启发式算法可以求解快速构造问题的解,但是解的质量较差。近年来,随着技术的进步,机器学习领域里一个古老又崭新的理强化学,又得到了科研人员的广泛重视。将强化学习与调度结合是一个崭新的方向,同时在计算最小化最大完成时间的方法上通过计算二维矩阵的副对角线最大值之和应用在流水车间调度上也是一个新颖的方法。伴随着产品的种类,规模数量问题规模快速增加,需要解决方案的复杂性也随着问题范围的增加而加大,对于规模较大的流水车间调度问题仍需进一步研究。


技术实现要素:



3.本发明要解决的技术问题是针对以上不足,提供一种基于强化学习的流水车间加工调度方法。
4.为解决以上技术问题,本发明采用以下技术方案:
5.一种基于强化学习的流水车间加工调度方法,包括以下步骤:
6.步骤1、确定工序数量、需要加工的工件数量以及每个工件在不同工序上的加工时间,设每个工件的加工工序均一致,首道加工工序为起始工序,加工序列即为将不同工件放入起始工序进行加工的先后顺序;
7.步骤2、将剩余待加工的工件序号作为状态,将下一次起始工序选择加工的工件序号作为可选的动作,每个状态下的不同动作均对应不同的状态-动作权重值,通过优先选择权重值更大的状态和动作,生成加工序列;
8.步骤3、计算加工序列中每个工件的最小化最大完工时间makespan,通过q-learning算法更新加工每个工件时对应的状态和动作的状态-动作权重值,所有工件计算完毕后,本次迭代完成,判断是否达到预设最大迭代次数,若是,转到下一步,否则迭代次数加1,转到上一步;
9.计算每个工件对应的最小化最大完工时间makespan的方法为:
10.排列构造一个n
×
m的二维矩阵,矩阵的行代表已加工工件,按加工先后顺序由上到下进行排列,矩阵的列代表加工工序,由左到右代表由先到后的加工工序,矩阵中的元素为对应工件在对应工序下加工的所需时间,该二维矩阵有n+m-1条副对角线,取每条副对角线上的最大值进行求和得到最小化最大完工时间makespan;
11.步骤4、保存最后一次迭代的权重值作为最终权重值;
12.步骤5、利用最终权重值进行状态和动作的选择,得到最优加工序列。
13.进一步的,所述步骤3中,权重值的更新公式为:
14.q’=q+alpha
×
[reward+gamma
×
max((q(s’,a’))-q]
[0015]
公式中,q’为当前状态和动作对应的更新后的权重值,q为当前状态和动作对应的更新前的权重值,q(s’,a’)为下一步的所有可行状态下的不同动作对应的状态-动作权重值集合,alpha和gamma为预设值,reward为奖励值,计算公式为:
[0016][0017]
进一步的,所述步骤2中,所有状态-动作的初始权重值均为0。
[0018]
进一步的,所述步骤2中,通过随机选择确定初始加工序列。
[0019]
本发明的有益效果为:
[0020]
1.加快了计算时间,提高了运算效率。
[0021]
2.增加了收敛速度,收敛的时间缩小了。
[0022]
3.结合了最新的强化学习和矩阵数学理论,提高了正确率和产生全局最优解。
[0023]
下面结合附图和实施例对本发明进行详细说明。
附图说明
[0024]
图1为本发明方法流程示意图;
[0025]
图2为强化学习原理示意图。
具体实施方式
[0026]
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0027]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”“顺时针”“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0028]
如图1-2所示,本发明的目的是使流水车间调度的加工时间最小,因此使用强化学习算法,能够求解全局最优解,训练出需要的模型。因此,本文用单智能体的强化学习来解决流水车间调度问题,将状态定义为作业序列,将动作定义为机前可选加工的工件,来适应强化学习方法。智能体通过与环境的不断交互,学习一个动作值函数,该函数给出智能体在每个状态下执行不同动作带来的奖赏,伴随函数值更新,进而影响到行为选择策略,从而到最小化最大完工时的调度序列。
[0029]
流水车间调度可以描述为n个工件要在m个机器上加工,每个工件的加工顺序相同,每一台机器加工的工件的顺序也相同,各工件在各机器上的加工时间已知,要求到一个加工方案使得调度的目标最优。
[0030]
具体的步骤如下:
[0031]
步骤1、初始化参数,包括迭代次数,学习率,折扣因子,贪婪率等信息。
[0032]
步骤2、设置最大值为maxsize,使用函数sys.maxsize得到最大值,初始化状态0,1,...,n-1;
[0033]
步骤2中,所述的流水车间调度的模型,模型的具体阐述如下:
[0034]
c(j1,1)=p
j1,1
[0035]
c(ji,1)=c(j
i-1
,1)+p
j1,1
[0036]
c(ji,1)=c(j1,j-1)+p
j1,j
[0037]
c(ji,j)=max{c(j
i-1
,j),c(ji,j-1)}+p
ji,j
[0038]
makespan=c
max
(j)=c(jn,m)
[0039]
其中j
i,j
是为工件i在机器上j的加工时间,不考虑所有工件准备时间,c(p
i,j
)为工件ji在机器j上加工完成时间。式中i=2,

,n;j=2,

,n,最后一行的makespan为最大完工时间。
[0040]
步骤3、生成q表,每个状态动作对应的初始值设为0。
[0041]
将强化学习的q-learning应用到流水车间调度,对机器和工件的概念进行重新定义,包括:
[0042]
将n
×
m的流水车间调度问题中m个机器中的第一个机器当作智能体,将第一台机器前的未加工的工件作为环境状态;案例中只有一个智能体,所有状态的集合为|s|=2n,表示为s={s1,s2,...,s
2n
};
[0043]
将智能体前可以选择加工的工件作为可选的动作.因此,在我们的案例中可选择的动作集为a={a1,a2,...,an};
[0044]
选取最小化最大完工时间作为奖励信号,最小化最大完工时间越小,奖励值越大,意味着选取的动作也好,作为反馈函数,用r表示,函数表示为:
[0045][0046]
该方法是用q-learning的特征将流水车间调度问题相结合;在确定了状态集和动作集后,又确定了反馈函数,得到奖励值;由于我们的目标是最小化最大完工时间越小越好,所以设置奖励值和其目标值成反比;智能体开始随机选择不同的动作,计算权重值;模型训练完成后,智能体每次会选择最优的动作,使得目标值越小;
[0047]
权重的计算公式为:
[0048]
q’=q+alpha
×
[reward+gamma
×
max((q(s’,a’))-q]
[0049]
公式中,q’为当前状态和动作下,迭代后的权重值,q为当前状态和动作下,迭代前的权重值,q(s’,a’)为下一步的所有可行状态下的不同动作对应的状态-动作权重值集合,alpha和gamma为预设值,reward为奖励值。
[0050]
具体的算法步骤为:
[0051]
将加工工件的机器和需要被加工的工件按顺序排列构造成一个n
×
m的二维矩阵,该二维矩阵每个数量值则是不同工件在不同机器上的加工时间。根据要求,矩阵按照对角线进行遍历。一共有n+m-1条副对角线。这样就把计算最小化最大完成时间转换成矩阵的计算问题。
[0052]
每个矩阵一共有n+m-1条对角线,相邻的对角线的遍历方向不同,当前遍历方向为从左上到右上,则紧挨着的下一条对角线遍历方向为从右上到左下;
[0053]
设对角线从上到下的编号为i∈[0,m+n-2]:
[0054]
当i为偶数时,则第i条对角线的走向是从下往上遍历;
[0055]
当i为奇数时,则第i条对角线的走向是从上往下遍历;
[0056]
当第i条对角线从下往上遍历时,每次行索引减1,列索引加1,直到矩阵的边缘为止:
[0057]
当i《m时,则此时对角线遍历的起点位置为(i,0);
[0058]
当i≥m时,则此时对角线遍历的起点位置为(m-1,i-m+1);
[0059]
当第i条对角线从上往下遍历时,每次行索引加1,列索引减1,直到矩阵的边缘为止:
[0060]
当i《n时,则此时对角线遍历的起点位置为(i,0);
[0061]
当i≥n时,则此时对角线遍历的起点位置为(i-n+1,n-1)。
[0062]
以三个工件和三个工序为例,设三个工序的顺序固定,每个工件在均需要在三个工序上顺次进行加工,三个工件序号分别为0,1,2;工件0在3个工序上的加工时间分别为3,2,0(min);工件1在3个工序上的加工时间分别为2,4,4(min);工件2在3个工序上的加工时间分别为2,1,1(min);初始状态-动作权重值如下表1所示:
[0063]
表1
[0064][0065][0066]
初始加工序列为随机选择,设初始加工序列为1,2,0,即分别将工件1,2,0放入起始工序进行加工,首次迭代时,先计算起始工序的最小化最大完工时间,此时三个工件均没有被加工,因此剩余代加工工件的序号为(0,1,2),即此时的状态为(0,1,2),由于初始加工序列为1,2,0,因此,第一个加工的工件是工件1,即动作为1,因此对应的状态-动作为((0,1,2),1)
[0067]
计算的最小化最大完成时间时构造如下矩阵
[0068]
244
[0069]
因为目前只有一个工件被加工,因此矩阵中只有1行,由左到右分别为工件1在三个工序上的加工时间,该矩阵共一条副对角线,每条副对角线的值分别为2;4;4;则最小化最大完成时间为2+4+4=10。
[0070]
每个值是不同工件在不同机器对应的加工时间。
[0071]
q’=q+alpha
×
[reward+gamma
×
max((q(s’,a’))-q]
[0072]
根据reward计算方法得到reward为1/10=0.1,所有状态初始权重值均为0,根据公式
[0073]
q((0,1,2),1)’=q((0,1,2),1)+alpha
×
[0.1+gamma
×
max(q((1,2),1),q((1,2),2))-q((0,1,2),1)]=0+0.4
×
[0.1+0.8
×
max(0,0)-0]=0.04
[0074]
得到状态-动作((0,1,2),1)对应的新的权重值为0.04;
[0075]
由于初始加工序列为1,2,0,因此下一步选择一个动作2,即加工工件2,此时剩余代加工工件的序号为(0,1,2),即此时的状态为(1,2),动作为2,对应的状态-动作为((1,2),2),得到的已加工序列为1,2,则得到的二维矩阵为
[0076][0077]
该二维矩阵共四条副对角线,每条副对角线的值分别为2;2,4;1,4;3;所有副对角线的最大值之和为2+4+4+3=13。根据reward计算方法得到reward为0.0769,带入到权重公式计算得到状态-动作((1,2),2)的新的权重值为0.0307,
[0078]
再选择最后一个动作0,即加工工件0,此时剩余代加工工件的序号为0,即此时的状态为0,动作为0,对应的状态-动作为(0,0)根据得到的已加工序列为1,2,0,则得到的二维矩阵为
[0079][0080]
该二维矩阵共5条副对角线,每条副对角线的值分别为2;2,4;3,1,4;2,3;0;所有副对角线的最大值之和为2+4+4+3+0=13。得出最小化最大完工时间13,根据reward计算方法得到reward为0.0769,带入到权重公式计算得到状态-动作(0,0)对应的新的权重值为0.0307;
[0081]
第一次迭代完成,表1更新为如下表2:
[0082]
表2
[0083][0084]
下一次迭代将根据第一次的权重大小进行选择,例如本次迭代时,0.04>0.0307=0.0307,即下一次将0.04对应的动作1排在加工序列第一位,将0.0307对应的动作2和0随机排在加工序列后两位,选择相对较优的动作,得到新的加工序列,利用新的加工序列进行再次迭代,对相应的权重值进行更新,经过多次迭代,将表格中的值进行多次更新,得出最终的权重值;
[0085]
根据最终的权重值得出最优的调度序列为2,1,0。
[0086]
以上所述为本发明最佳实施方式的举例,其中未详细述及的部分均为本领域普通
技术人员的公知常识。本发明的保护范围以权利要求的内容为准,任何基于本发明的技术启示而进行的等效变换,也在本发明的保护范围之内。

技术特征:


1.一种基于强化学习的流水车间加工调度方法,其特征在于,包括以下步骤:步骤1、确定工序数量、需要加工的工件数量以及每个工件在不同工序上的加工时间,设每个工件的加工工序均一致,首道加工工序为起始工序,加工序列即为将不同工件放入起始工序进行加工的先后顺序;步骤2、将剩余待加工的工件序号作为状态,将下一次起始工序选择加工的工件序号作为可选的动作,每个状态下的不同动作均对应不同的状态-动作权重值,通过优先选择权重值更大的状态和动作,生成加工序列;步骤3、按顺序计算加工序列中每个工件的最小化最大完工时间makespan,通过q-learning算法更新加工每个工件时对应的状态和动作的状态-动作权重值,所有工件计算完毕后,本次迭代完成,判断是否达到预设最大迭代次数,若是,转到下一步,否则迭代次数加1,转到上一步;计算每个工件对应的最小化最大完工时间makespan的方法为:排列构造一个n
×
m的二维矩阵,矩阵的行代表已加工工件,按加工先后顺序由上到下进行排列,矩阵的列代表加工工序,由左到右代表由先到后的加工工序,矩阵中的元素为对应工件在对应工序下加工的所需时间,该二维矩阵有n+m-1条副对角线,取每条副对角线上的最大值进行求和得到最小化最大完工时间makespan;步骤4、保存最后一次迭代的权重值作为最终权重值;步骤5、利用最终权重值进行状态和动作的选择,得到最优加工序列。2.根据权利要求1所述的基于强化学习的流水车间加工调度方法,其特征在于,所述步骤3中,权重值的更新公式为:q’=q+alpha
×
[reward+gamma
×
max((q(s’,a’))-q]公式中,q’为当前状态和动作对应的更新后的权重值,q为当前状态和动作对应的更新前的权重值,q(s’,a’)为下一步的所有可行状态下的不同动作对应的状态-动作权重值集合,alpha和gamma为预设值,reward为奖励值,计算公式为:3.根据权利要求2所述的基于强化学习的流水车间加工调度方法,其特征在于,步骤2中,所有状态-动作的初始权重值均为0。4.根据权利要求2所述的基于强化学习的流水车间加工调度方法,其特征在于,所述步骤2中,通过随机选择确定初始加工序列。

技术总结


本发明涉及一种基于强化学习的流水车间加工调度方法,本发明提出了一种新的解决流水车间调度问题的方法。该方法适用于流水车间调度领域,选取最小化最大加工时间为目标的调度问题。通过强化学习的Q-Learning调度算法,通过引入状态变量和行为变量,将组合优化的排序问题转换成序贯决策问题,来解决置换流水车间调度问题。在引入强化学习之前,将加工工件的机器和需要被加工的工件按顺序排列构造成一个二维矩阵,通过计算该矩阵的每个副对角线数量级最大数之和即可得出目标值。本发明能够大大提高计算时的速度和效率,在验证正确性时有很大的作用。很大的作用。很大的作用。


技术研发人员:

杜利珍 宣自风 徐杰 罗凯 刘春玲 张亚军 叶涛

受保护的技术使用者:

武汉纺织大学

技术研发日:

2022.12.02

技术公布日:

2023/3/28

本文发布于:2023-03-31 13:04:10,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/85098.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工件   加工   权重   工序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图