排序问题是生产系统和服务系统中的一类典型问题, 它作为传统问题和热点问题, 至今一直有众多学者研究. 根据工件的不同加工特点, 排序问题可分为流水作业排序(flow-shop scheduling)、自由作业排序(open-shop scheduling)和异序作业排序(job-shop scheduling)[1], 其中Flow-shop排序又可分为同顺序和任意序两大类, 同顺序Flow-shop排序问题又称置换流水车间调度问题(Permutation Flow Shop Problem, PFSP). 相关理论证明, 3台机器以上的PFSP即为NP难题[2], 至今还未发现具有多项式时间的优化算法.
目前, 解决这类问题有效方法主要包括: 精确算法, 启发式算法, 智能优化算法. 如枚举法、分支定界法等精确算法只对小规模问题的求解有着很好的效果. 如Gupta法、RA法和NEH法等启发式算法可以求解快速构造问题的解, 但是解的质量较差[3]. 近年来, 遗传算法[4]、人工神经网络[5]、蚁群算法[6]、粒子群算法[7], 烟花算法[8]、进化算法[9]等智能优化算法因能在合理的时间内获得较优解, 受到了众多学者的广泛研究, 并已经成为解决该类问题的重要方法.
近年来, 随着技术的进步, 机器学习领域里一个古老又崭新的理论——强化学习[10,11], 又得到了科研人员的广泛重视. 但目前强化学习主要应用在游戏比赛、控制系统和机器人等领域[12–14], 应用在生产调度中的并不多. Wang等学者将Q-学习算法应用到单机作业排序问题上, 发现智能体经过学习能够从给定的规则中选出较好的规则, 证明了将强化学习应用到生产调度的可能性和有效性[15,16]. Zhang等学者利用多智能协作机制解决了非置换流水车间调度问题[17], 国内的潘燕春等学者将Q-学习算法与遗传算法有机的结合起来, 在作业车间调度取得较好的效果 [18,19]. 王超等学者提出了改进的Q-学习算法运用于动态车间调度, 构建了一系列符合强化学习标准的规则[20]. 可以看到, 过往的文献里面强化学习应用在调度上大部分是多智能体协作, 或者与其它算法结合去解决调度问题. 因此, 本文用单智能体的强化学习来解决置换流水车间调度问题, 合理的将状态定义为作业序列, 将动作定义为机器前可选加工的工件, 来适应强化学习方法. 智能体通过与环境不断交互, 学习一个动作值函数, 该函数给出智能体在每个状态下执行不同动作带来的奖赏, 伴随函数值更新, 进而影响到行为选择策略, 从而找到最小化最大完工时的状态序列. 最后用该算法对OR-Library提供Flow-shop国际标准算例进行仿真实验分析, 最终的实验结果验证了算法的有效性.
2 置换流水车间调度问题描述置换流水车间调度可以描述为[21,22]: n个工件要在m个机器上加工, 每个工件的加工顺序相同, 每一台机器加工的工件的顺序也相同, 各工件在各机器上的加工时间已知, 要求找到一个加工方案使得调度的目标最优. 本文选取最小化最大加工时间为目标的调度问题. 对该问题常作出以下假设:
1)一个工件在同一时刻只能在一台机器上工;
2)一台机器在同一时刻智能加工一个工件;
3)工件一旦在机器上加工就不能停止;
4)每台机器上的工件加工顺序相同.
问题的数学描述如下, 假设各工件按机器1到m的顺序加工, 令
$\left\{ {\begin{array}{*{20}{l}} {C\left( {{\pi _1},1} \right) = {p_{{\pi _1},1}}}\\ {C\left( {{\pi _i},1} \right) = C\left( {{\pi _{i - 1}},1} \right) + {p_{{\pi _1},1}}}\\ {C\left( {{\pi _i},j} \right) = C\left( {{\pi _1},j - 1} \right) + {p_{{\pi _1},j}}}\\ {C\left( {{\pi _i},j} \right) = \max \left\{ {C\left( {{\pi _{i - 1}},j} \right),C\left( {{\pi _i},j - 1} \right)} \right\} + {p_{{\pi _i},j}}} \end{array}} \right.$ | (1) |
${{makespan = }}{{{C}}_{{\rm{max}}}}\left( \pi \right){\rm{ = C}}\left( {{\pi _n},m} \right)$ | (2) |
其中, 式(1)中的
强化学习是人工智能领域中机器学习的关键技术, 不同于监督学习和无监督学习, 主要特点在于与环境交互, 具有很强的自适应能力, 具有实时学习的能力. 强化学习的目标是在与环境的试探性交互中学习行为策略, 来获取最大的长期奖赏[23]. 图1描述了强化学习的过程, 强化学习最主要的是两个主体, 分别为智能体和智能体所处的环境, 环境意味着多样的复杂状态, 所有的状态可以看成一个集合
强化学习的算法可以分为2类, 一类是基于模型已知的动态规划法, 一类是基于模型未知的算法如蒙特卡洛算法、Q-Learning算法、TD算法等. 本文采用的Q-Learning算法来解决问题. 算法的核心是一个简单的值迭代更新, 每个状态动作对都有一个Q值关联, 当智能体处在t时刻的状态
$ \begin{aligned} Q\left( {{s_t},{a_t}} \right)\! \leftarrow &\!Q\left( {{s_t},{a_t}} \right)\! \\ &+ \alpha \left[ {{r_t} \!+\! \gamma \left( {{{\max }_{{a_{t + 1}}}}Q\left( {{s_{t{\rm{ + 1}}}},{a_{t{\rm{ + 1}}}}} \right) \!- \!Q\left( {{s_t},{a_t}} \right)} \right)} \right] \end{aligned}$ | (3) |
式(3)中,
算法1. QL算法 |
初始化Q值 |
for each episode: |
初始化状态s |
for each episode step: |
在t时刻下状态
|
执行动作
|
更新Q值: |
|
|
end for |
end for |
算法中的智能体有2种不同动作选择策略: 探索和利用, 而
利用强化学习解决PFSP问题, 最重要是如何将问题映射到强化学习模型中, 并利用相关算法来得到优化的策略结果. 本文构建了环境中的状态集, 动作和反馈函数, 并采用QL算法来进行优化.
定义1. 状态集. 将n×m的PFSP问题中m个机器中的第一个机器当作智能体, 将第一台机器前的未加工的工件作为环境状态. 根据文献[25], 智能体的状态可以设定为
定义2. 动作集. 将智能体前可以选择加工的工件作为可选的动作. 因此, 在我们的案例中可选择的动作集为
定义3. 反馈函数. 我们选取最小化最大完工时间作为奖励信号, 最小化最大完工时间越小, 奖励值越大, 意味着选取的动作也好, 函数表示如下:
$r = \frac{1}{{makespan}}$ | (4) |
根据上述的定义, 将PFSP问题映射到QL算法中, 具体描述如算法2所示.
算法2. QL解决PFSP问题算法 |
初始化: |
Q(s, a)={} |
Best={} |
for each episode step: |
初始化状态s={} |
while not finished(所有工件): |
初始化所有动作值 |
根据状态s利用贪心行动值法来选择动作 |
执行动作, 得到下一个状态st+1和奖赏值r(1/makespan) |
更新Q(s, a) |
|
|
end while |
if makespan(s) < makespan(Best): |
|
end for |
5 实验结果分析
为验证QL算法解决置换流水车间问题的性能, 选择OR-Library中Carl类例题, 21个Reeves例题来进行测试, 将实验结果与一些算法进行比较. 算法程序用Python3.0编写, 运行环境为Windows 7 64位系统, 处理器为2.60 GHz, 4 GB内存. 经过初步实验, 分析了不同学习参数对学习的影响, 最后确定了相关参数, 迭代次数为5000, 学习率为0.1, 折扣因子为0.8, 贪婪率为0.2. 以相对误差率
选择Car类例题与文献[25]提到的萤火虫算法(FA)、粒子群算法(PSO)、启发式算法NEH来进行比较. 从表1和图2中我们可以看出, QL算法在Car类算例中基本能找到最优值, 与PSO, FA等智能算法寻优效果上相差不大, 而启发式算法NEH求解算例最优的效果一般, 只适用于对精度要求不高的场合. 在算例的平均误差上, QL算法求解质量优于PSO算法, 和FA算法不相上下, 展现了QL算法的良好稳定性. 说明QL算法对置换流水车间调度问题有较好的寻优能力.
选取算例Car4算例来分析QL算法的收敛能力, 从图3中发现QL算法刚开始下降较快, 在中间一段时间内虽然两次陷入了局部最优值, 但最后都成功跳出了局部最优, 达到最优值.
表2给出了QL算法对Reeves例题(Rec37、Rec39、Rec41 3个算例的值不是最优值, 而是最优上界). 测试结果, 并与PSO[25], GA[26]等知名算法比较, QL算法的平均最优值最小, 表明整体上QL算法的寻优能力比GA和PSO算法都好.
6 结束语
面对日益增长的大规模调度问题, 开发新型算法越来越重要. 本文提出了基于QL算法解决置换流水车间调度问题的算法, 通过对Car算例和Reeves算例等基准问题进行测试并与已有的算法进行比较, 评价了该算法的有效性. 结果表明, 该方法是解决置换流水车间调度问题的一种有效的方法.
[1] |
唐国春, 井彩霞. 现代排序论应用. 自然杂志, 2015, 37(2): 115-120. |
[2] |
Garey MR, Johnson DS, Sethi R. The complexity of flowshop and jobshop scheduling. Mathematics of Operations Research, 1976, 1(2): 117-129. DOI:10.1287/moor.1.2.117 |
[3] |
刘延风. 置换流水车间调度问题的几种智能算法[博士学位论文]. 西安: 西安电子科技大学, 2012.
|
[4] |
Vallada E, Ruiz R. Genetic algorithms with path relinking for the minimum tardiness permutation flowshop problem. Omega, 2010, 38(1–2): 57-67. DOI:10.1016/j.omega.2009.04.002 |
[5] |
El-Bouri A, Balakrishnan S, Popplewell N. A neural network to enhance local search in the permutation flowshop. Computers & Industrial Engineering, 2005, 49(1): 182-196. |
[6] |
Rajendran C, Ziegler H. Ant-colony algorithms for permutation flowshop scheduling to minimize makespan/total flowtime of jobs. European Journal of Operational Research, 2004, 155(2): 426-438. DOI:10.1016/S0377-2217(02)00908-6 |
[7] |
张其亮, 陈永生. 一种新的混合粒子群算法求解置换流水车间调度问题. 计算机应用研究, 2012, 29(6): 2028-2030, 2034. DOI:10.3969/j.issn.1001-3695.2012.06.006 |
[8] |
曹磊, 叶春明, 黄霞. 应用混沌烟花算法求解置换流水车间问题. 计算机应用与软件, 2016, 33(11): 188-192. DOI:10.3969/j.issn.1000-386x.2016.11.044 |
[9] |
王大志, 刘士新, 郭希旺. 求解总拖期时间最小化流水车间调度问题的多智能体进化算法. 自动化学报, 2014, 40(3): 548-555. |
[10] |
Sutton RS, Barto AG. Reinforcement learning: An introduction. IEEE Transactions on Neural Networks, 1998, 9(5): 1054. |
[11] |
Mitchell TM, Carbonell JG, Michalski RS. Machine learning: A guide to current research. Boston, MA, USA: Springer, 1997.
|
[12] |
杨文臣, 张轮, Zhu F. 多智能体强化学习在城市交通网络信号控制方法中的应用综述. 计算机应用研究, 2018, 35(6): 1613-1618. DOI:10.3969/j.issn.1001-3695.2018.06.003 |
[13] |
孟伟, 洪炳熔, 韩学东. 强化学习在机器人足球比赛中的应用. 计算机应用研究, 2002, 19(6): 79-81. DOI:10.3969/j.issn.1001-3695.2002.06.026 |
[14] |
王斐, 齐欢, 周星群, 等. 基于多源信息融合的协作机器人演示编程及优化方法. 机器人, 2018, 40(4): 551-559. |
[15] |
Wang YC, Usher JM. Learning policies for single machine job dispatching. Robotics and Computer-Integrated Manufacturing, 2004, 20(6): 553-562. DOI:10.1016/j.rcim.2004.07.003 |
[16] |
Wang YC, Usher JM. Application of reinforcement learning for agent-based production scheduling. Engineering Applications of Artificial Intelligence, 2005, 18(1): 73-82. DOI:10.1016/j.engappai.2004.08.018 |
[17] |
Zhang ZC, Wang WP, Zhong SY, et al. Flow shop scheduling with reinforcement learning. Asia-Pacific Journal of Operational Research, 2013, 30(5): 1350014. DOI:10.1142/S0217595913500140 |
[18] |
潘燕春, 周泓, 冯允成, 等. 同顺序Flow shop问题的一种遗传强化学习算法. 系统工程理论与实践, 2007, 27(9): 115-122. DOI:10.3321/j.issn:1000-6788.2007.09.015 |
[19] |
潘燕春, 周泓. Job-shop排序问题的遗传强化学习算法. 计算机工程, 2009, 35(16): 25-28. DOI:10.3969/j.issn.1000-3428.2009.16.009 |
[20] |
王超, 郭静, 包振强. 改进的Q学习算法在作业车间调度中的应用. 计算机应用, 2008, 28(12): 3268-3270. |
[21] |
王福才, 周鲁苹. 混合精英策略的元胞多目标遗传算法及其应用. 电子学报, 2016, 44(3): 709-717. DOI:10.3969/j.issn.0372-2112.2016.03.032 |
[22] |
王凌. 车间调度及其遗传算法. 北京: 清华大学出版社, 2003.
|
[23] |
胡文伟, 胡建强, 李湛, 等. 基于强化学习算法的自适应配对交易模型. 管理科学, 2017, 30(2): 148-160. DOI:10.3969/j.issn.1672-0334.2017.02.012 |
[24] |
Tsitsiklis JN. Asynchronous stochastic approximation and Q-learning. Proceedings of the 32nd IEEE Conference on Decision and Control. San Antonio, TX, USA. 1994.
|
[25] |
刘长平, 叶春明. 置换流水车间调度问题的萤火虫算法求解. 工业工程与管理, 2012, 17(3): 56-59, 65. DOI:10.3969/j.issn.1007-5429.2012.03.010 |
[26] |
Yuan K, Hennequin S, Wang XJ, et al. A new heuristic-em for permutation flowshop scheduling. IFAC Proceedings Volumes, 2006, 39(3): 33-38. |