An improved genetic algorithm for the flexible job shop scheduling problem with multiple time constraints(一种改进遗传算法解决多时间约束柔性作业车间调度问题)
1、介绍
柔性作业车间调度问题是工厂调度中一个非常重要的问题。现有的研究大多只考虑了每项作业的处理时间,而下一项作业往往需要将作业转移到另一台机器上进行处理,而下一项作业往往需要进行准备。 此外,与这些步骤相关的时间增加了这个问题的复杂性。 本文解决了包含加工时间、准备时间和运输时间的柔性作业调度问题。
问题描述如下: N个作业需要在M台机器上处理,每个作业可以包含一个或多个操作。每个操作只能由一台机器进行,即操作任选机组中的任何一台机器。 当作业的一个操作完成时,它将被转移到下一个操作。如果两个相邻作业使用同一台机器,则无需考虑运输时间。 如果加工机的两个相邻操作是相同的(即,做相同的事情),就不需要考虑准备时间。
选择合适的机器对不同的工件进行不同的加工,合理安排工件的顺序,可以减少工件的最大完成时间、工件总运输时间和总准备时间。
本文将加工时间、运输时间和安装时间作为FJSP的独立时间因素。提出了一种改进的遗传算法来解决这一问题。 为了加快收敛速度,提高解的质量,我们采用了三种不同的方法生成初始解,既提高了初始解的质量,又保持了初始解的多样性。 在遗传算子阶段,我们设计了更有效的交叉算子和变异算子,前者是通过人工交叉配对进行交叉,后者是通过自适应权值法获取变异概率和邻域搜索范围
2、问题定义
- 每台机器一次只能进行一种操作。
- 同一作业只能由一台机器在同一时间处理,并且一旦该作业开始处理,该过程就不能中断。
- 每个作业的处理顺序都有自己的顺序。也就是说,每次操作完成后,它会被发送到选择进行下一个操作的机器上。
- 加工时间因所选机器而异。处理时间是已知的。
- 当同一作业在不同机器上的两个相邻工序之间进行时,运输时间随工序所使用的机器而变化,运输时间已知。如果在同一台机器上连续加工同一工件的两个工序,则运输时间为0。
- 不同的操作有不同的准备时间,因为所选的加工机器是已知的。如果一个作业的两个进程在同一台机器上连续处理,则准备时间为0。
3、算法
编码