混合流水车间调度问题(Hybrid Flow Shop Scheduling Problem, HFSP)是一种典型的流水车间调度问题。它综合了经典流水车间和并行机两种调度的特点。
如下图所示,从开始到结束有m个加工阶段,每个加工阶段内有不同数量的并行机,需要加工的工件从开始一次经过每个加工阶段,在每个加工阶段中可以被该阶段内的任意一台设备加工。
一般假设:
1)同一阶段中所有机器都相同;
2)每个工件可以在某阶段的任意一台机器上进行加工;
3)任意时刻每个工件至多在一台机器上加工;
4)每台机器某时刻只能加工一个工件;
5)工件的加工过程不允许中断。
通过迭代的思路建立的模型:
对于种群中任一个体的编码,首先加工第一道工序,在空闲机器上按编码中工件顺序依次加工相应的工件;
加工第二道工序时,按照先完工先加工的原则,在空闲机器上优先加工当前可用工件(已在上一阶段完成加工),以此类推直到最后一个工件在最后一个阶段结束完工。
(1)式表示第1个工件第1道工序的加工时间等于该工件在第一阶段的完工时间;
(2)式表示第1个工件第k道工序完工的时间等于该工件紧前工序的完工时间加上当前工序的加工时间;
(3)式表示工件j第1道工序的完工时间,等于同一机器上紧前工件第1道工序的完工时间加上工件j第1道工序的加工时间;
(4)式表示工件j在阶段k的完工时间,等于工件j紧前工序的完工时间或同一机器紧前工件j-1的完工时间中的最大值加上工件j在阶段k的加工时间。
目标函数:
即:最后一个工件加工完成的时刻的最小值,也就是整个任务的最小完工时间(makespan)
遗传算法编码/解码设计:
采用工件编号随机全排列的方法,将工件按照1-n的顺序编号,编码代表了工件被处理的优先级。如图假设有7个工件,当有空闲机器时且满足加工条件时,优先考虑加工1号工件。
解码过程是从编码到最大完工时间的映射。下面举例说明该编码的解码过程:
为了简便,假设有3个工件,2道工序,2台并行机。工件在各阶段的加工时间为:
则解码如下图所示
1)工件2为第一个加工的工件,所有机器都空闲,因此工件2的第一道工序安排在工序1机器1上;
2)工件1为第二个加工的工件,工序1机器1占用,因此工件1的第一道工序安排在工序1机器2上;
3)工件3为第三个加工的工件,工序1机器2上的工件先完成,因此工件3的第一道工序安排在工序1机器2上;
4)第一道工序里,工件1先完成,且工序2的机器都空闲,因此工件1的第二道工序安排在工序2的机器1上;
5)第一道工序里,工件2第二个完成,且工序2的机器2空闲,因此工件2的第二道工序安排在工序2的机器2上;
6)第一道工序里,工件3最后完成,且工序2的机器都占用,工件3等待,到工件1的第二道先完成之后,工件3的第二道工序安排在工序2的机器2上,在工件1加工完成后开始加工;
后面的选择、交叉、变异操作可以自行设计,如轮盘赌选择、双点交叉,两点变异等。采用遗传算法进行迭代优化,获取满足实际需求完工时间的较好可行解。
备注:文章学习来源微信公众号“数据魔术师”。