作业车间调度问题java代码禁忌算法 车间的调度_作业车间调度问题java代码禁忌算法

参考:《基于强化学习的智能车间调度策略研究综述》

车间调度问题:车间调度问题是指如何在机器等资源有限的情况下,合理调度生产资源来安排车间生产任务,以满足一至多个优化目标的过程。

求解方法:数学规划,智能算法,强化学习

强化学习能应对环境不确定性,适合大规模问题

车间调度问题分类:

作业车间,流水车间,加工车间

静态车间:生产信息已知且生产环境确定

动态车间:生产环境不确定(机器故障,紧急插单)

1.作业车间调度

作业车间调度问题:一个加工系统有 M 台机器, 要求加工 N 个工件,其中,每个工件完工都需要经过一定的工序加工。各工序的加工时间已确定,并且每个工件必须按照工序的先后顺序加工,工件所有工序只有唯一的加工机器。 调度任务是安排所有作业的加工顺序,在满足约束条件的同 时,使性能指标得到优化。

柔性作业车间调度:作业车间调度+工序加工资源柔性(一道工序有多台机器可供选择),包括机器分配和机器上作业分配



作业车间调度问题java代码禁忌算法 车间的调度_调度问题_02

1.1静态调度

单智能体

(1)柔性作业车间调度分解成机器分配子问题和机器上作业分配子问题

(2)双资源约束的柔性作业车间,考虑分配机器和工人资源,最小化最大完工时间

多智能体

(3)多智能体深度强化学习解决并行不相关机器的作业车间调度,以最小化托期时间和最大化完工时间为优化目标,实验结果表明,其在大规模问题上的性能要比混合整数线性规划算法更有优势。

(2)将柔性作业车间分成两个子问题,训练两个DQN智能体

作业车间调度问题java代码禁忌算法 车间的调度_强化学习_03

 算法融合(强化学习收敛速度慢,易陷入局部最优)

(1)协同边缘计算框架,DQN,迁移学习,实验结果表明,该方法在不同参数规模下都比传统方法具有更好的收敛效果

(2)基于析取图的DRL框架,优先经验的D3QN,实验证明,针对小规模问题,该算法能够获得最优解;对于大规模问题,其性能优于任何单一的启发式规则,且与遗传算法相当。

(3)K均值聚类和Q学习解决作业车间调度,所提算法的性能优于一些基于最短加工时间规则和最大作业剩余时间规则的启发式算法。

(3)结合Q learning和Sarsa改进遗传算法,实验结果表明,所提算法的性能优于一些基于最短加工时间规则和最大作业剩余时间规则的启发式算法。

AC强化学习

(1)卷积层和全连接层的AC网络,异步更新和DDPG的并行训练算法,针对静态调度环境,该方法比传统启发式算法性能更好,同时也能推广到动态调度环境中应用。

(2)图神经网络和PPO算法,实验表明,所提出的框架在训练得到模型后,无须进一步训练即可应用于新的作业车间调度问题中,大大节省了重新训练所需的时间。

(3)生产成本和能源成本,利用多智能体 PPO 算法来解决该问题,其中每个智能体都代表一台机器且必须处理一定数量的作业。

1.2动态调度

机器故障

(1)机器故障时,Q智能体能同时选择该处理的工序及替代机器,故障前初始方案由遗传算法获得,减杀动态环境下的作业延迟时间,实验结果表明,与单一调度规则相比,所提方案能够减少频繁动态环境中的 作业延迟时间。

(2)多智能体DQN,每个产品设置成一个智能体,共用经验回放池

作业随机到达

(1)双循环DQN(探索+利用)

(2)DQN+最小化作业延误时间,该方案比两个启发式调度规则:最短处理时间和最早到期日更有效。

(3)过早完工的库存压力和延期完工的客户满意度,多智能体动态调度系统模型,机器,缓冲区,状态,作业设为智能体,加权Qlearning确定加工顺序,动态贪婪搜索策略

新作业插入

(1)减少作业延误的成本,DQN,重调度点状态

(2)双层DQN在线重调度框架,上层 DQN 用来控制下层 DQN 的临时优化目标,在每个重调度点,它将当前状态特征作为输入,并根据优化目标来指导下层 DQN 的行为。下层 DQN 将状态特征和从上层 DQN传递的优化目标作为输入,将每个调度规则的 Q 值作为输出。 基于该 Q 值,可选择每个重调度点上最可行的调度规则。

机器故障和作业随机到达

(1)可变领域搜索,最小化完工时间,使用Qlearning在重调度点更新参数,实验结果表明,该方案比传统启发式调度规则更有效。

作业随机到达和产品随机到达

(1)减少库存提前完工的库存压力,多智能体Qleaning,将每个产品设为智能体并能够根据实时信息在每个生产步骤选择机器。与标准调度规则的比较表明,该方案具有更好的性能。

作业车间调度问题java代码禁忌算法 车间的调度_最小化_04

AC强化学习(解决动态作业车间处于初步探索阶段)

(1) 机器故障,工件返工,PPO,最小化完工时间,将状态定义为三个矩阵,分别为作业处理状态矩阵、 机器指定矩阵和工序的处理时间矩阵,所提方案的性能优于传统启发式规则以及遗传算法,且在一定程度上可以实现自适应调度。


 2.流水车间调度

流水车间调度问题:N 个工件要在 M 台机器上加工,每个工件需要经过 M 道工序,N 个工件在 M 台机器上的加工顺序相同。工件在机器上的加工时间给定,要求确定每个工件在每台机器上的最优加工顺序

柔性流水车间调度问题(混合流水车间调度):流水车间调度+工序加工资源柔性

置换流水车间调度问题:规定 N 个工件的加工顺序对所有 M 台机器均相同

非置换流水车间调度问题:允许在不同机器上工件的加工顺序改变

无等待流水车间调度问题:每台机器加工任意两相邻工件时没有空闲时间


两阶段流水车间调度问题:产品的生产主要包括两个阶段:加工阶段和装配阶段,在每个


阶段都要经过多台机器加工,该问题即为两阶段流水车间调度问题 。


作业车间调度问题java代码禁忌算法 车间的调度_算法_05


2.1静态调度

值函数强化学习

(1)Qlearning解决柔性流水车间,波尔兹曼探索和利用,在确保复杂度相同的情况下,该算法的性能优于遗传算法,且该算法的收敛速度比人工免疫算法更快

(2)自适应Q学习算法,解决序列相关生产时间,机器初始化准备时间的置换流水车间调度,状态定义为作业优先级,动作定义为更改作业优先级

(3)Q学习算法,状态定义为作业序列,动作定义为可选择的工作,相较于其他智能算法以及启 发式规则,Q 学习算法的寻优能力更好。

(4)深度时间差分网络解决非置换流水车间调度,实验证明,相较于群智能算法,该算法的性能更优。

AGV(柔性搬运系统)

(1)Q学习算法解决流水车间中AGV的调度问题,总完工时间最小化为优化目标,AGV作为智能体在问题规模较大的情况下,该算法的性能优于多智能体算法。

(2)两个机器人的流水车间调度,double Q learning,一个机器人负责最小化机器空闲时间,而另一个则负责最小化作业等待时间,为验证算法性能,用快速、中速以及慢速机器人进行仿真实验,结果表明,两个快速机器人之间的完全协作能够取得最佳效果

算法融合

(1)Q learning 自主调整ATCS(考虑准备时间的直观延误成本)规则中的K1和K2,K值能将平均延迟降低5%

(2)置换流水车间调度,启发式算法生成作业初始排序,结合自适应Q学习算法及局部搜索算法,将该算法与包括粒子群算法在内的 8 种其他算 法进行比较,结果表明,所提方案能在较短时间内得到更高质量的解。

(3)深度强化学习训练模型获得初始调度接,反馈机制的迭代贪婪算法优化初始解

(4)可变领域搜索算法解决无空闲流水车间调度问题,Q学习算法自适应调节可变领域搜索算法的参数该算法的性能优于传统迭代贪婪算法。

AC强化学习(研究较少)

(1)PPO算法解决具有相同并行机的混合流水车间调度,最小化最大完工时间为优化目标,在晶片酸洗实例上,该算法的性能优于遗传算法。

(2)置换流水车间调度,异构网络深度强化学习(长短期内存网络LSTM和注意力网络),该模型在较小规模问题上的性能优于传统启发式算法和其他相同结构的深度强化学习模型。

2.2动态调度

值函数强化学习(起步阶段)

(1)DRL解决考虑新作业到达的动态置换流水车间调度,A2C算法,该方案在解决方案质量、CPU 计算时间以及泛化能力等方面都明显优于传统元启发式算法

(2)DDQN解决新作业到达的动态置换流水车间调度,其效果优于一些经典的调度规则

(3)多智能体Q学习,每个机器为智能体

AC强化学习(1)

(1)PPO解决动态两阶段装配流水车间调度,最小化总延迟,无论规模大小,总是优于单一调度规则

总结

(1)解决方案落地化。目前利用强化学习方法来解决车间调度问题的研究还处于不成熟阶段,大多数还停留在理论研究层面。由于生产调度是企业生产运营的关键环节,要提高生产效率还需要将算法运用到实际生产系统中。信息技术和运营技术融合是从理论转换成系统,从知识转换成生产力的必然趋势。因此,生产调度问题还需要从实际系统部署层面进行更深一步的研究。

(2)多目标车间调度。目前的研究成果在解决车间调度题时,所要优化的目标基本都是最大完工时间最小化,过于单一。企业的实际需求还需要考虑到节能减排、订单延误、 库存压力等问题。因此,未来在对车间调度问题的研究中,可以考虑更倾向于多目标优化。

(3)采用混合算法。单一智能算法解决车间调度问题已经不能满足其多样性需求,因此混合算法成为解决该问题的新宠,其可以弥补单一算法存在的局限性。目前已有一些学者结合强化学习算法和遗传算法来解决车间调度问题,并取得了一定的成效。未来可以考虑结合其他领域算法,如机器 学习算法、博弈论等。

(4)考虑工人因素。目前的研究仅局限于优化机器资源,事实上机器需要由工人来操作,工人资源的分配也会对生产效率产生极大影响。因此,未来需要考虑机器与工人双资源约束的车间调度问题。

(5)基于强化学习算法的改进。强化学习算法以试错的方式进行学习,如果无法平衡其探索和利用,就极易陷入局部最优解。在未来,应设计出更好的探索和利用方案。此外,大多研究者倾向于应用 Q 学习,DQN 等传统强化学习算法来解决车间调度问题。当前,已设计出了很多其他性能更优的算法。因此,研究者可以尝试将新算法应用于车间调度问题。

动态车间调度

作业车间调度问题java代码禁忌算法 车间的调度_作业车间调度问题java代码禁忌算法_06