一种基于多Agent考虑订单插入的柔性机加工场景调度方法

文档序号:34380666发布日期:2023-06-08 01:50阅读:217来源:国知局
一种基于多Agent考虑订单插入的柔性机加工场景调度方法

本发明属于生产计划,用于作业车间的生产计划优化,具体涉及一种基于多agent考虑订单插入的柔性机加工场景调度方法。


背景技术:

1、柔性车间调度问题(fjsp)作为柔性机加工场景调度问题的高度抽象,在过去几十年中得到了广泛的研究。fjsp和已被证明是np-hard的经典车间调度问题相比,更难处理,因为每个操作都可以分配到一台或多台可用机器上。到目前为止,大多数用于解决fjsp的现有方法都假设了一个静态制造环境,其中车间的信息是事先完全已知的,因此在整个工作过程中输出了一个没有任何修改的确定性调度方案。然而,在当今复杂多变的制造系统中,动态事件如订单的插入、取消或修改、机器故障、处理时间等的变化是不可避免的。这些干扰分散了静态进度计划的实际执行,远离其预期结果,严重降低了生产效率。因此,开发动态fjsp(dfjsp)的在线调度方法以实时处理不确定事件具有重要意义。

2、动态调度作为学术界和工业界一个极具吸引力的研究领域,在过去的几十年中得到了广泛的研究。已经提出了各种方法,其中使用最广泛的是调度规则和元启发式。调度规则立即对动态事件做出反应,从而实现最佳的时间效率。然而,它们甚至不能保证局部最优,更不能保证全局最优。同时,由于不同的规则适用于不同的场景,决策者很难在特定时间点选择最佳规则。元启发式总是将动态调度问题分解为一系列静态子问题,并通过一些智能优化算法(如遗传算法和粒子群优化)分别解决它们。它们获得了更高的解决方案质量,但对于实时调度来说可能耗时且不可行。

3、基于此,提供一种能同时满足及时性以及车间性能的柔性机加工场景调度方法是本领域亟待解决的技术问题。


技术实现思路

1、本发明要解决的技术问题是:提供一种能同时满足及时性以及车间性能的柔性机加工场景调度方法,为了解决该技术问题,本发明采取的技术方案是:对基于多agent考虑订单插入的柔性机加工场景建立数学模型,并建立马尔可夫模型,基于gru和fcn的调度决策以及基于d3qn深度强化学习算法的调度决策优化,从而优化柔性机加工场景中最小化最大累积延误的性能指标。

2、该技术方案具体如下:

3、建立订单插入的柔性机加工场景调度数学模型,给出各类假设条件以及相关约束;

4、将调度决策问题转换为序贯决策问题,对订单插入的柔性机加工场景进行马尔可夫建模,得到马尔可夫五元组模型ε={s,a,s',γ,r},其中s表示状态,a表示动作,s'表示下一时刻状态,γ表示折扣率,r表示奖励,将最小化最大累积延误作为马尔可夫五元组模型的评价指标;

5、根据序贯决策问题的特性,采用gru门控循环单元和fcn全连接网络对动作值函数和目标值函数进行拟合,采用d3qn更新动作值函数的权重参数,并采用软目标更新策略更新目标值函数的权重参数,最终得到训练好的多agent模型;

6、使用训练好的多agent模型对序贯决策问题进行求解并给出调度方案,输出甘特图。

7、进一步地,所述建立订单插入的柔性机加工场景调度数学模型,给出各类假设条件以及相关约束,具体步骤包括:

8、建立一种考虑订单插入的柔性机加工场景调度数学模型,定义所述柔性机加工场景调度数学模型中的参数、函数及约束如下:

9、有n个随机到达的工件j={j1,m2,…,jn}需要在m台机器m={m1,m2,…,mm}上进行处理;每个工件ji由ni个工序组成,其中oi,j是工件ji的第j道工序;每个工序oi,j都有一个可处理的机器集

10、柔性机加工场景调度数学模型表示为:

11、

12、

13、

14、

15、

16、

17、

18、

19、

20、

21、其中,n表示工件数量,m表示机器数量,ji表示第i个工件,ni表示第i个工件的工序数,mk表示第k个机器,oi,j表示第i个工件的第j个工序,mi,j表示工序oi,j的可选机器集合,ti,j,k表示工序oi,j在机器mk上的处理时间,ai表示工件ji的到达时间,di表示工件ji的交货期,ci,j表示工序oi,j的实际完成时间,i,h表示工件的索引,j,g表示工序的索引,k表示机器的索引;xi,k,k为决策变量,若工序oi,j在机器mk上加工,则xi,j,k=1,否则xi,j,k=0;yi,j,h,g为决策变量,若工序oi,j在oh,g前加工,则yi,j,h,g=1,否则yi,j,h,g=0;xi,j,k决定了在哪台机器上分配工序,而yi,j,h,g决定了两个工序之间的优先级;

22、在上述约束及定义中,具体约束每道工序的完成时间必须为非负;每道工序只能分配给一台机器;每道工序的完工时间均大于到达时间;同一工件的工序的有前后优先级的关系;每台机器一次最多只能处理一道工序。

23、进一步地,所述采用门控循环单元和全连接网络对动作值函数和目标值函数进行拟合,采用d3qn更新动作值函数的权重参数,并采用软目标更新策略更新目标值函数的权重参数,最终得到训练好的多模型,具体步骤包括:

24、a:提取当前工件状态矩阵x和机器状态矩阵y;

25、b:对选择机器的智能体ma构建ma的动作值函数qm(sm,am;θm,θm,v,θm,a)、目标值函数对选择工件的智能体ja构建ja的动作值函数qj(sj,aj;θj,θj,v,θj,a)、目标值函数采用gru门控循环单元和fcn全连接网络对动作值函数qm(sm,am;θm,θm,v,θm,a)、qj(sj,aj;θj,θj,v,θj,a)和目标值函数进行拟合,并初始化

26、其中,sm为机器特征,am为机器动作,sj为工件特征,aj为工件动作;θm为ma的动作值函数神经网络内部权重wm和偏置bm的集合,θm,v为ma的状态价值函数的权重wm,v和偏置bm,v的集合,θm,a为ma的优势函数的权重wm,a和偏置bm,a的集合,θ'm为ma目标值函数神经网络内部权重w'm和偏置b'm的集合;θ'm,v为ma的目标状态价值函数的权重w'm,v和偏置b'm,v,θ'm,a为ma的目标优势函数的权重w'm,a和偏置b'm,a;θj为ja的价值函数神经网络内部权重wj和偏置bj的集合,θj,v为ja的状态价值函数的权重wj,v和偏置bj,v的集合,θj,a为ja动作优势函数的权重wj,a和偏置bj,a的集合,θ'j为目标值函数神经网络内部权重w'j和偏置b'j的集合;θ'j,v为ja的目标状态价值函数的权重w'j,v和偏置b'j,v,θ'j,a为ja的目标优势函数的权重w'j,a和偏置b'j,a;

27、c:选择机器的智能体ma有3个动作,选择工件的智能体ja有5个动作;

28、在训练阶段,每个决策点的动作采用ε-greedy递减的方法随机选择,当d小于εt时,随机选择动作,当d大于等于εt时,选择使q值最大的动作,即有:

29、

30、

31、式中,d∈(0,1)为随机生成的自然数,t为当前决策点,εend为结束时的ε值,εstart为开始时的ε值,episode为当前迭代次数,episode为总的迭代次数,random表示随机数,st表示t时刻状态,a表示可选择的动作,εt表示t时刻探索度;

32、采用softmax函数将网络组件输出转变为每个调度规则的概率,再根据概率进行动作选择,即:

33、

34、式中,μ是一个超参数,用于控制softmax策略中的熵,|a|表示可选动作集的大小,ak表示第k个可选择的动作;

35、d:设计奖励函数r(t)对整个调度决策进行评估,并使用d3qn算法更新动作值函数的参数θ,实现调度策略的更新;

36、在奖励函数设计方面,以最小化最大累积延误作为评价指标;

37、对于选择工件的智能体ja,设计具有“紧急度”的奖励函数,有:

38、

39、

40、

41、

42、式中,east(t)为估计平均松弛时间;erst(t)为估计平均剩余加工时间;m为机器数;n为工件数;t为决策点;opi(t)为决策点t时,已完成工序数;nco(t)表示t时刻,工件已完成工序数;pi,j,k为第i个工件的第j道工序的第k个可选机器;pave,i,j为第i个工件的第j道工序的平均加工时间;di为第i个工件的交货期;omi,j为第i个工件的第j道工序的可选机器数,δ是一个超参数;

43、对于机器选择的智能体ma,设计奖励函数如下:

44、

45、

46、r2(t)=utilizationave(t)×(dselect(t)-eselect(t))

47、式中,utilizationk(t)为t时刻机器k的利用率;cpk(t)为t时刻机器k已加工的工序数;ph(t)为t时刻机器k已加工工序的加工时间;cmax(t)为t时刻机器k的总运行时间;utilizationave(t)为t时刻机器平均利用率;dselect为t时刻所选择工件的交货期;eselect(t)为t时刻所选择工件的工序完工时间;

48、预期目标值函数的计算公式为:

49、

50、式中,γ为折扣系数,rt为t时刻采取动作的即时奖励;

51、e:损失函数的计算及动作值函数的参数更新;

52、使用最小化平方损失函数的随机梯度下降的方式进行更新动作值函数的参数θ,其损失函数的计算公式为:

53、

54、式中,|msub|为经验缓冲区批采样样本大小;

55、动作值函数的参数θ的更新公式为:

56、

57、式中,α为学习率,θt+1为t+1时刻的权重和偏差集合,θt为t时刻的权重和偏差集合,表示对θt梯度下降;

58、f:进行状态转移p(s'|s,a),并将状态s、动作a、奖励r和下一步的状态s'存储到经验缓冲区中;

59、在发生订单插入、工序完成的时间点称为决策点,在每个决策点将进行状态转移,由状态s执行动作a经过状态转移,更新车间环境,提取状态s',将状态s、动作a、奖励r和下一步状态s'依次存储到经验缓冲区当中;

60、g:目标值函数的参数更新;

61、通过下式让目标值函数的网络参数缓慢跟踪动作值函数,即有:

62、

63、式中,τ∈(0,1)为软参数。

64、进一步地,所述步骤a中,工件状态x={crjave,crjstd,eastave,eaststd,emaxstmax,emaxststd,eminstmin,eminststd,npcave,npcstd,etrave,atrave}记录所有工件的综合特征,即工件平均完成率crjave、工件完成率的标准差crjstd、工件平均松弛时间eastave、工件平均松弛时间的标准差eaststd、工件最大松弛时间emaxstmax、工件最大松弛时间的标准差emaxststd、工件最小松弛时间eminstmin、工件最小松弛时间的标准差eminststd、工件下道工序平均加工时间npcave、工件下道工序平均加工时间标准差npcstd、工件平均估计拖延率etrave、工件平均实际拖延率atrave;

65、其中,工件平均完成率:

66、

67、

68、工件完成率的标准差:

69、

70、工件平均松弛时间:

71、

72、

73、工件平均松弛时间的标准差:

74、

75、工件最大松弛时间:

76、

77、

78、工件最大松弛时间的标准差:

79、

80、工件最小松弛时间:

81、

82、

83、工件最小松弛时间的标准差:

84、

85、工件下道工序平均加工时间:

86、

87、工件下道工序平均加工时间标准差:

88、

89、工件平均估计拖延率:

90、

91、

92、工件平均实际拖延率:

93、

94、

95、式中,t为决策点的时间,opi(t)为第i个工件已完成工序数,n为工件数,ni为第i个工件的总工序数,pi,j,k为第i个工件的第j道工序的第k个可选机器,pave,i,j为第i个工件的第j道工序的平均加工时间,di为第i个工件的交货期,omij为第i个工件的第j道工序的可选机器数,pmax,i,j为第i个工件的第j道工序的最大加工时间,pmin,i,j为第i个工件的第j道工序的最小加工时间。

96、进一步地,所述步骤a中,机器状态y={uave,ustd,mftave,mftstd,mfpave,mfpstd,npcave,npcstd,nesave,nesstd,nerave,nerstd}记录所有机器的综合特征,即机器平均利用率uave、机器平均利用率的标准差ustd、机器平均完成时间mftave、机器平均完成时间的标准差mftstd、机器平均完成工序个数mfpave、机器平均完成工序个数的标准差mfpstd、工件下道工序平均加工时间npcave、工件下道工序平均加工时间标准差mpcstd、工件下道工序后的平均估计松弛时间nesave、工件下道工序后的平均估计松弛时间的标准差nesstd、工件下道工序后的平均估计延误率nerave、工件下道工序后的平均估计延误率的标准差nerstd;

97、其中,机器平均利用率:

98、

99、

100、机器平均利用率的标准差:

101、

102、机器平均完成时间:

103、

104、机器平均完成时间的标准差:

105、

106、机器平均完成工序个数:

107、

108、机器平均完成工序个数的标准差:

109、

110、工件下道工序平均加工时间:

111、

112、工件下道工序平均加工时间标准差:

113、

114、工件下道工序后的平均估计松弛时间:

115、

116、工件下道工序后的平均估计松弛时间的标准差:

117、

118、工件下道工序后的平均估计延误率:

119、

120、

121、工件下道工序后的平均估计延误率的标准差:

122、

123、式中,ctk(t)为分配给机器mk的最后一次操作的完成时间,cpk(t)为机器mk上已完成加工的工序数。

124、进一步地,所述步骤b中,选择工件的智能体ja的动作值函数由1个gru和6层fcn组成;

125、其中,第一层为fcn全连接层,输入节点个数为12,输出节点个数为32;

126、第二层为gru,gru的隐藏单元个数为64,输入大小为1×32,输出大小为1×64;

127、第三层为fcn全连接层,输入节点个数为64,输出节点个数为128;

128、第四层为fcn全连接层,输入节点个数为128,输出节点个数为128;

129、第五层为fcn全连接层,输入节点个数为128,输出节点个数为64;

130、第六层为fcn全连接层,输入节点个数为64,输出节点个数为ja的动作个数5;

131、第七层为fcn全连接层,输入节点个数为64,输出节点个数为1。

132、进一步地,所述步骤b中,选择机器的智能体ma的动作值函数由1个gru和6层fcn组成;

133、其中,第一层为fcn全连接层,输入节点个数为12,输出节点个数为32;

134、第二层为gru,gru的隐藏单元个数为64,输入大小为1×32,输出大小为1×64;

135、第三层为fcn全连接层,输入节点个数为64,输出节点个数为128;

136、第四层为fcn全连接层,输入节点个数为128,输出节点个数为128;

137、第五层为fcn全连接层,输入节点个数为128,输出节点个数为64;

138、第六层为fcn全连接层,输入节点个数为64,输出节点个数为ma的动作个数3;

139、第七层为fcn全连接层,输入节点个数为64,输出节点个数为1。

140、进一步地,在每层fcn后会都添加了激活函数,具体表示如下:

141、relu(x)=max{0,x}

142、式中,x表示输入。

143、进一步地,所述步骤c中,对于选择工件的智能体ja的5种动作如下:

144、动作1:从待加工工件中选择工序完成率最低的工件;

145、动作2:从待加工工件中选择交货期最早的工件;

146、动作3:从待加工工件中选择剩余工序的平均加工时间最小的工件加工;

147、动作4:从待加工工件中选择下道工序平均加工时间最小的工件加工;

148、动作5:从待加工工件中选择单位时间工序完成率最小的工件加工。

149、进一步地,所述步骤c中,对于选择机器的智能体ma的3种动作如下:

150、动作1:从工件的下道工序的可选机器集中选择机器完工时间最小的机器;

151、动作2:从工件的下道工序的可选机器集中选择机器利用率最低的机器;

152、动作3:从工件的下道工序的可选机器集中选择下一道工序加工时间最小的机器。

153、本发明提供的技术方案带来的有益效果:

154、1、本发明考虑了最小化最大累积延误的评价指标,建立了考虑订单插入的柔性机加工调度问题地数学模型,将调度决策问题转变为序贯决策问题,建立马尔可夫模型,利用d3qn算法对模型进行求解,通过训练可以获得较优调度决策安排,同时训练好的智能体可以快速求解出同规模新的动态柔性机加工问题。

155、2、本发明用gru门控循环单元和fcn全连接网络来拟合动作值函数和目标值函数,将提取的特征输入模型,结合了以最小化延误为目标的奖励函数,为每次调度决策选取最优策略。

156、3、本发明基于d3qn深度强化学习算法,可以求解相关动态柔性机加工场景问题,该算法依据提取的状态,进行启发式调度规则选取,更加符合实际。

157、4、本发明所提出的d3qn深度强化学习具有实时性强、灵活性高和适应性广的优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1