0 为什么要分级

柔性作业车间调度问题(Flexible job-shop scheduling problem, FJSP)是传统作业车间调度问题(Job-shop scheduling problem, JSP)的扩展。在作业车间调度问题中,每道工序仅能选择一台设备加工,加工时间也是固定的,调度只需要确定工序的先后顺序。而在求解柔性作业车间调度问题时,每道工序可以有多台可选设备,并且在不同的设备上加工时间也可以不同,这就增加了调度的柔性和问题的求解空间,因此柔性作业车间调度更符合实际生产需求,是亟待解决的一类调度问题。

在智能制造生产环境中,因其规模大目标多约束复杂扰动频繁等特点,希望将所有因素考虑到自动计算中非常困难,因此调度人员往往不太相信计算机的自动计算结果,而调度人员可以整合所有实际因素,根据已有的经验知识,确定任务批次的同时,将任务优先或禁止安排在某些设备,并设置希望完工的里程碑节点等,通过这样的设置来干预调度结果。如果能将这些经验和偏好作为约束嵌入到调度优化算法中,既保证了调度人员的意愿又能得到一个较优的调度结果。但是目前研究大多解决的是经典的FJSP标准问题,并没有将调度人员的偏好和经验作为约束融合到算法中,因而无法满足实际调度问题的需要。

因此分级的目的就是实现将交互式操作自动优化相结合,人的智能机器智能相集成,在满足多重约束的前提下优化调度结果。

1  分级调度策略

将采用人机交互约束设置进行调度优化求解前的预处理,提出一种适应于柔性作业车间的两级调度求解策略。



分层强化学习 算法 分级或分层优化_作业调度算法代码

图1 分级调度策略

第一级:结合灵活的交互式约束设置手段,利用基于优先级的规则算法快速获取满足交互约束的可行解,调度人员可以依据对可行解的分析,不断调整约束设置,直至得到较为满意的调度结果然后进入下一级的优化求解。

第二级:在第一级的数据、边界、约束进行了充分设置后,已经对部分决策变量的取值进行了约束设置,降低了问题求解的搜索空间,并得到具有一定质量的初始解。在此基础上,智能优化算法以基于优先级的工序编码和基于偏好的设备编码对工序进行分派,利用算法的进化策略,不断更新工序的优先级和设备选择,使得结果收敛于最终结果。

2  基于优先级的启发式分派算法

2.1 人工干预策略

调度员的经验和偏好通过人工设置约束而影响调度结果的方式体现,约束的设置如表1所示。



分层强化学习 算法 分级或分层优化_退火算法车间调度_02

表1 约束类型及处理

2.2 优先级计算

优先级计算分为工序优先级和设备优先级,分别按照工序属性和设备属性进行计算。

2.2.2 工序优先级

任务的优先级数值不仅直接影响调度方案的构建,而且是给调度人员一个对该任务轻重缓急的警示。优先级的计算方式采用了规则式的判定形式,依据任务几个关键属性进行综合评判,包括交货期、零件重要程度、零件交付松弛率、拖期惩罚这四个关键属性,如图2所示。



分层强化学习 算法 分级或分层优化_作业调度算法代码_03

图2 工序优先级

2.2.2 设备选择优先级

当对一个工序任务进行安排时,需要从该工序任务的可替换设备集合中选择一台设备进行加工,选取设备时需要考虑调度人员设置的设备选择偏好,该任务在设备上的完工时间,以及设备负荷的均衡程度,对这三个因素采取打分的方式对可选设备的优先级进行判定,得分越高,设备的优先级越高。

2.3 基于优先级的任务分派

基于优先级规则的任务分派方式主要计算过程如算法1所示。



分层强化学习 算法 分级或分层优化_退火算法车间调度_04

算法1

3  基于约束的智能优化算法

在第一级中的调度构造中,工序任务是按照固定规则得到的优先级高低确定分派顺序的,虽然这些规则可以很容易地被调度人员理解和接受,且在实际生产中也有一定的合理性,但这个过程因其短视性并不一定能得到一个性能较优的解,实际上也没有进行优化搜索,所以在第二级中需要利用智能优化算法,对工序直接采用优先级编码,对设备则采用整数编码表示设备在工序可选设备集合中的序号。利用第一级中满足交互约束的调度构造方法进行解码,快速得到调度方案并进行目标评估,通过迭代对工序优先级数值进行优化搜索,从而实现满足交互约束的调度优化求解。

3.1粒子群-遗传混合算法

粒子群算法主要通过粒子间的位置和速度来更新自己,故求解速度很快,但其寻优能力主要来自粒子之间的相互作用和相互影响,粒子本身没有变异机制,从而PSO容易陷入局部最优解,导致算法的收敛精度不高。而遗传算法利用交叉和变异算子对解空间进行搜索,交叉算子组合了父辈个体的特征,是产生新个体的主要途径,它和选择算子相集合,构成遗传算法中交换信息的主要方法,同时也加强了其全局搜索能力。因此将粒子群算法与遗传算法相结合,利用粒子群中信息的处理模式和遗传算法中的遗传操作,提出一种改进的混合算法(Modified Segmented Encoding Based Particle Swarm Genetic Algorithm,简称MSE-PSGA)

MSE-PSGA算法的流程主要是对遗传算法的个体数据结构交叉方式进行改造。根据粒子群算法的个体数据结构,MPSGA算法也在个体的数据结构中添加个体经验信息,来保留个体在搜索过程中的最优适应度及其编码;粒子群算法在迭代过程中,个体更新受到自身经验和群体经验的双重影响。同样,在MSE-PSGA中也设计了一种保留自身经验的方式的交叉算子,使得这种交叉操作不仅可以融合其他粒子的信息,也可以融合该粒子的自身经验信息。

3.1.1 染色体编码和解码



分层强化学习 算法 分级或分层优化_基于时间片的高优先级调度_05

图3 工序和设备编码

柔性作业车间调度问题需要为每道工序从其可选设备集合中选择一台加工设备并对所有的工序进行排序。由于在求解过程中需要满足调度人员设置的约束和偏好,此时工序编码和设备编码存在有一定的关联关系

因此,设备编码将根据工序任务的属性进行特殊处理。设工序总数为,工序染色体和设备染色体的长度均为工序总数,每个基因位用整数表示,依次按照零件和工序的升序排列,工序染色体每个基因位上的整数表示该工序在分派时的优先级,通过优先级确定工序的排序顺序,设备染色体每个基因位上的整数表示设备在工序可选设备集合中的序号,如图3所示。

当工序任务对设备存在一定的偏好时,编码中对应的位置将以不同概率选择偏好的设备,而这将在变异操作过程中实现。



分层强化学习 算法 分级或分层优化_jsp大作业_06

表2 工序属性与编码之间的关系

解码过程则是将优先级编码转换成工序顺序,同时再为每道工序选择相应的设备,解码后的结果将保留第一级中设置的约束,对图3的染色体编码进行解码结果如图4。



分层强化学习 算法 分级或分层优化_分层强化学习 算法_07

图4 染色体解码

3.1.2 选择操作

采用 GOLDBERG 等提出的三元锦标赛方法,从种群中随机选择三个个体,选择最好的个体放到交叉池中,同时被选择的个体还放回到种群中,可以重新参与选择。

3.1.3 交叉操作

为了保证染色体中每个基因位表示的优先级不同的同时,保留自身经验,工序染色体采用改进的部分映射交叉(Modified Partially mapped crossover,MPMX),其主要步骤为:

①在串中随机选择两个分割点,由两个分割点定义的子串称作映射片断;

②在两个父代间交换子串从而产生原型后代;

③将第二个父代中所有子串中已有的符号全部去掉,余下的顺序包含了原型子代需要的符号;

④根据从左到右的顺序将符号放入原型子代余下的空位中,这样就产生了一个子代。

在提出的MES-PSGA中,父代个体之间的交叉,不再是由两个个体直接互换映射片段,而是先将个体j的当前编码xj与个体i的自身经验最优的编码pi进行MPMX交叉,然后生成中间编码(pi×xj)。再将(pi×xj)与个体i当前编码xi进行MPMX交叉,从而生成个体的子代。个体i的子代保留经验编码pi。同时对称地生成个体j。如果新生成的编码的适应度优于其经验编码的适应度,则更新该个体经验编码。



分层强化学习 算法 分级或分层优化_基于时间片的高优先级调度_08

图5 工序编码交叉

由于存在工序对设备的限制,所以设备染色体中有些基因位是不能改变的,在交叉过程中将这些不能改变的基因位剔除,剩下的部分染色体则采用改进的均匀交叉,最后再将交叉后得到的子染色体填充回原染色体,这样在求解大规模问题时会大大减少进化时间,体现了约束设置能降低搜索空间的作用,并有效的避免可能会导致违反约束的交叉操作,其过程如图6所示。



分层强化学习 算法 分级或分层优化_基于时间片的高优先级调度_09

图6 设备编码交叉

3.1.4 变异操作

变异操作通过随机改变染色体的某些基因对染色体进行较小扰动生成新的个体,主要是为了维持群体的多样性,防止早熟现象同时改善算法的局部搜索性能。针对采用优先级编码的工序染色体可采用互换变异,从染色体中随机选择两个位置的基因进行互换,从而改变工序的优先级;而对于设备染色体,由于工序的属性设置使得其只能固定于某一设备,或对某一设备存在偏好,变异过程如下:首先将不能改变的基因位剔除后,随机选择r个位置,对每个位置,按照偏好概率随机从对应的工序可选设备集合中选择一台设备,最后将子染色体填充回原染色体。



分层强化学习 算法 分级或分层优化_jsp大作业_10

图7 互换变异和设备变异

4  实验结果

为了验证分级调度策略的可行性,首先对比分析了在随机样本下MSE-PSGA与其他算法的计算结果,然后针对具体案例说明分级调度策略的调整和优化过程。

4.1 计算分析

4.1.1 随机样本

随机样本由指定的数据限制按照均匀分布产生,表3给出了随机样本产生的数据限制。



分层强化学习 算法 分级或分层优化_jsp大作业_11

表3 数据限制

交货期采用改进的TWK进行计算:

其中是一个松弛因子,用于设置交付的松紧程度,该值越大表示交货期越松弛,在此取1~1.5。

4.1.2 对比分析

针对上一节中随机样本生成方法,10x10,15x15,20x20,30x15,30x20等五类规模的测试样本用于算法对比分析,其中每个规模包含10个样本,总计50个样本。参数设置见表4。



分层强化学习 算法 分级或分层优化_jsp大作业_12

表4 参数设置

PSO、GA和MSE-PSGA这三种算法均独立运行10次,具体的运算结果如表5所示。



分层强化学习 算法 分级或分层优化_基于时间片的高优先级调度_13

表5 计算结果

通过分析计算结果,可得出以下结论:

  • (1) 提出的MSE-PSGA在五类问题中均能获取最优解,说明其具有较优的搜索性能;
  • (2) MSE-PSGA在五类求解问题中的平均值均最小,说明算法具有较好的稳定性。

4.2 案例应用

针对具体应用案例来说明分层调度的调整和优化过程。订单信息、设备信息和工艺信息见表6-表8。



分层强化学习 算法 分级或分层优化_jsp大作业_14

表6 订单信息

分层强化学习 算法 分级或分层优化_jsp大作业_15

表7 设备信息

分层强化学习 算法 分级或分层优化_作业调度算法代码_16

表8 工艺信息

调度人员在基础信息的基础上,根据车间实际确定投料时间即任务的最早开始时间,外协工序什么时候完工受制于协作部门的能力是否充足,不充足则将影响后续工序任务的开始时间,调度人员可根据经验大致估计外协工序返回的时间,并将这个时间作为外协任务后置工序的最早开始。本案例中,A零件的A4工序最早4月30日完工;D零件的D3工序最早5月2日完工;H零件的H3工序最早5月3日完工。基于此设置,首先将全部工序任务在顺序移动和不允许加班的条件下依据优先级进行初始解构造,图8为初始解的甘特图展示,在初始解中可以看出零件A和C拖期了5天,零件D拖期了3天,零件B和I均拖期了2天,零件D和J拖期了1天。



分层强化学习 算法 分级或分层优化_退火算法车间调度_17

图8 初始解

通过对初始解的分析,可以进行以下调整:

初始解中存在严重的拖期,其中零件A关键等级最高且拖期惩罚最大,应该尽可能保证按时交付。通过分析零件A发现,其松弛率最小且零件最重要,初始解中A已经具有最高优先级,并不存在其他零件影响其交付,所以针对A应该采取加班和平顺的策略,让其尽快通过。

第一次调整之后,零件C拖期4天,零件B和I拖期2天,零件D和J拖期1天,如图9所示。



分层强化学习 算法 分级或分层优化_基于时间片的高优先级调度_18

图9 第一次交互的结果

通过对第一次交互的结果进行分析,可做出以下调整:

  • (1)零件A作为最重要的零件正好不拖期,可对A所有的工序进行锁定。
  • (2)零件C拖期最严重且没有等待的工序,所以考虑平顺和加班。

第二次调整之后,零件B和I拖期2天,零件C、D和G拖期1天,如图10。



分层强化学习 算法 分级或分层优化_退火算法车间调度_19

图10 第二次交互的结果

通过对第二次调整的结果进行分析,进行以下设置:

  • (1)零件I没有等待工序,所以采取平顺策略。
  • (2)零件B拖期的主要原因是其第一道工序B1因为优先级较低开始的很晚,同时零件E完工时间较早,所以可以尝试将B1调整至E2前面。

三次调整之后,只有零件D拖期2天,零件C、G和J拖期1天,如图11。



分层强化学习 算法 分级或分层优化_分层强化学习 算法_20

图11 第三次交互的结果

三次调整之后,调度员对调度结果较为满意,可以进行下一级的优化求解。

图12显示了使用提出的MSE-PSGA在表5中参数设置下的优化结果,其中只有零件C和D拖期1天。



分层强化学习 算法 分级或分层优化_退火算法车间调度_21

图12 优化后的结果

5  结论和展望

本文提出了一种适用于复杂作业车间调度中具有复杂约束和调度员参与求解需求的两级调度求解策略,在第一级求解中利用了满足多重约束环境的基于优先级规则的快速调度构建算法,作为调度人员交互式约束调整的快速响应求解算法。在第二级调度中以基于工序优先级的快速调度构建方法为目标评估的函数,利用MSE-PSGA混合算法对优先级数值进行优化和设备选择进行搜索,实现了满足第一级调度中设置的多重约束的优化求解算法。该方法较好地融入了调度人员的经验知识和偏好,反映了调度人员的交互操作,增加了调度求解结果的可信度,另外结合了优化搜索求解算法,使得调度求解结果更加具有合理性和优化性。该方法已在多家航空制造车间进行了应用验证,取得较好的应用效果。

随着传感器、RFID数据采集技术的发展以及CPS等先进理念的提出,通过集成先进的感知、计算、通信、控制等信息技术和自动化技术,可以实现“信号-数据-信息-知识-决策”,因此未来的研究将着重考虑如何根据车间内自动获取的信号,通过提取、分析得到真实的状态,进而自动决策影响调度。