《Adaptive scheduling for assembly job shop with uncertain assembly times based on dual Q-learning》
International journal of production research/2021
1 摘要
针对装配作业车间生产环境的不确定性,结合强化学习的实时性,针对装配作业车间调度问题,提出了一种双Q学习(dual Q learning,D-Q)方法,通过自学习来增强对环境变化的适应性。在最小化总加权提前惩罚和完工时间成本的目标函数的基础上,顶层Q-学习着眼于局部目标,以求最小机器闲置和均衡机器负载的调度策略;底层Q-学习,侧重于全局目标,以学习最优调度策略,使所有作业的整体提前时间最小。理论分析和仿真实验表明,在不同条件下产品到达频率不同的情况下,该算法总体上比单一Q学习(SQ)和其他调度规则获得了更好的结果,并表现出良好的自适应性能。
2 介绍
装配作业车间(AJSSP)可以被认为是一种特殊形式的作业车间调度,涉及加工和装配操作。AJSSP中的产品具有复杂的装配结构,具有多层子组件。每个产品都有组件和子组件的树形结构,只有在前面所有较低级别的组件和/或子组件都完成后,才能组装较高级别的组件。同时,在AJSSP的特定操作中,较早完成的操作必须等待其并行操作以进行汇编,从而导致超前操作,而不是对作业执行的所有操作的严格顺序。对于某些操作,存在不同的机器选择。因此,AJSSP比传统的作业车间更复杂、更具挑战性,比AFSSP更具灵活性。
在不确定的装配环境下,如何减少各工序装配的等待时间,从而使提前总成本最小是装配作业车间优化的主要目标,也是一类重要的调度问题。为了方便地描述问题,产品的试制、拆卸和试制时间都服从负指数分布,不考虑准备时间。
为了解决不确定生产环境下装配作业车间调度的自适应问题,结合RL的实时性特点,针对AJSSP问题,提出了一种双重Q-学习方法(D-Q),其中顶层Q学习集中在局部目标上,以寻找最小机器闲置和均衡机器负荷的调度策略;下层Q学习集中在全局目标上,学习最优调度策略,使所有作业的整体提前期最小。D-Q学习系统的自适应调度机制如图所示。
3 顶层Q-learning
顶层Q-learning的任务是将全局缓冲区的任务分配给合适的机器。根据当前工作的特点和每台可用机器的负载,设计顶层Q-learning,通过合理选择加工机器,提高机器利用率,平衡机器当前负载,顶层Q-learning的算法流程如图3所示。
3.1 动作
根据顶层Q-学习的目标和装配作业车间的特点,选择LL(即LLC+LPT)和LS(即LLC+SPT)调度规则作为顶层Q-学习动作集中的动作,具体定义如下:
(1)LL规则:先用LLC选择BOM中编码最低的全局缓冲区的操作,再用LPT选择加工时间最短的操作,打破同级编码的操作之间的平局。
(2)LS规则:先用LLC选择BOM中编码最低的全局缓冲区的操作,SPT进一步用于选择加工时间最短的操作,以打破具有相同级别代码的操作之间的联系。
一旦选择了工序,它将分配给机器进行加工。如果有一台可选的机器,将选择这台机器。然而,如果操作可以在多台机器上进行,那么将选择负载最小的机器。通过应用q学习,选择合适的调度策略,对系统状态变化时等待启动的作业进行调度,从而实现装配作业车间的自适应调度。
3.2 顶层Q learning的奖励函数
在顶层Q学习目标的基础上,采用当前所有机器剩余加工时间的方差作为负载平衡因子。由于Q-学习收敛到最大值,这里使用的是相反的数字,顶层Q-学习的奖励函数设计如下:
:机器q当前剩余加工时间;
当前所有机器的平均加工时间,m:机器数量。
顶层Q学习的必要性:
定义1 :假设装配作业车间的机器负荷为ω,用机器缓冲区中工件的加工时间表示;当前可加工的机器缓冲区的总加工时间为ωt。
动作1:在顶层的Q学习中,适当地将其分配给并行机的全局缓冲区,可以提高并行机的利用率,平衡并行机的当前负载,从而提高了并行机的利用率。
4 底层Q-learning
当产品的所有工序都被分配到合适的机器缓冲区时,Q学习的底层集中在全局目标上,以学习最优调度策略,从而使所有作业的整体提前期最小化。底层Q学习的算法流程图如图7所示。
4.1 动作
根据底层Q-学习的目标和装配作业车间的特点,选择LL(即LLC+LPT)、LS(即LLC+SPT)、LPL(即LPT+LLC)和SL(即SPT+LLC)四种调度规则组成底层Q-学习的动作集,其中LL和LS规则的定义与顶层Q-学习相同,LPL和SL规则表示如下:
(1)LPL规则:先用LPT选择BOM中加工时间最长的工序,再用LLC选择编码较低的工序,打破加工时间相同的工序之间的平局。
(2)LPL规则:先用LPT选择BOM中加工时间最长的工序,再用LLC选择编码较低的工序,打破加工时间相同的工序之间的平局。
4.2 奖励函数
设τiδjk(T)表示操作Oiδjk的提前信息的指示函数,定义如下:
于是,然后将下一步决策时的奖励函数定义为:
在
到达的装配任务的数量,
是第u步决策对应的时间。
5 状态
定义了4中状态形式:
(1)状态1:描述当前队列中所有类型的的工件数
:在等待队列中的工件数;
.
(2)状态2:反映下一到达产品的紧急程度
:当前时间与产品最新到货时间之间的间隔时间;
产品到达的间隔时间;
是随机变量
的平均值.
(3)状态3:描述了当前所有装配team的相对工作量
:表示team q的剩余处理时间;
是所有装配team的平均剩余处理时间;
(4)状态4:反映当前时刻的团队利用率
表示当前非空闲加工团队的team数量。