求解异构并行机调度问题的混合烟花算法
2020-06-16石庆民
石 庆 民
(新乡学院人事处 河南 新乡 453000)
0 引 言
异构并行机调度(Unrelated parallel machine scheduling,UPMS)是实际生产制造过程中常见的一类调度问题,具有广泛的工程应用背景,例如:云计算、半导体加工、纺织生产等[1-2]。传统的UPMS问题多以时间指标为优化目标,如makespan、提前/拖期总和等。现如今,低碳节能调度已成为实现低碳制造的重要途径,并已引起社会各界的广泛关注[3]。与此同时,快速响应客户需求也构成了企业竞争力的重要组成部分。因此,研究以能耗和延迟成本为目标的UPMS问题具有较高的理论意义和应用价值。
UPMS已经被证明是具有NP-hard性质的组合优化问题,因而设计有效的求解算法成为这一领域的研究重点。目前,求解UPMS问题的算法分为三类:精确求解算法、启发式算法和现代优化算法[4]。精确求解算法包括分枝定界、动态规划等,这类算法能够获得该问题的精确解,但实用性较弱,无法在合理的时间内求解中大规模算例[5]。启发式算法是利用调度规则对问题进行快速求解,具有运算时间短、求解精度较高等优点,但该类算法对问题的设置具有严格限制,通用性较差[6]。近年来,随着现代优化算法的快速发展,学者们逐步开始使用智能算法来求解这一问题,相关算法包括遗传算法、禁忌搜索算法、模拟退火算法等。研究表明,这类算法能够在较短的时间内获得中大规模算例的满意解,且具有较强的通用性[7]。因此,本文基于基本烟花算法(Firework algorithm,FWA)设计了改进算法用于求解考虑节能的异构并行机调度问题。
FWA是Tan等[8]提出的新型现代优化算法,属于群智能优化算法,该算法受烟花爆炸行为的启发通过烟花爆炸生成火花这一过程实现迭代进化。FWA具有收敛速度快、求解精度高等优点,目前已经在数据挖掘、神经网络训练、车辆路径规划等多个方面获得了成功应用[9]。即便如此,FWA在中大规模测试问题的求解过程中仍然存在易陷入局部最优、收敛速度慢等缺点。因此,提升FWA的寻优性能仍然是该邻域的一个重难点。
基于以上研究内容,本文考虑一类加工时间可控的并行机调度问题,并以能耗和拖期惩罚成本为优化目标构建了混合整数线性规划(Mixed Integer Linear Programming,MILP)模型。算法设计中创建了特定的编解码方法以表示问题的解,同时融入了反向学习初始化方法以提升初始解的质量,并构建了基于变邻域搜索算法的局部优化流程用以强化基本算法的寻优性能。仿真测试中,利用正交实验对算法参数进行校验,并将HFWA的优化结果与多种经典的优化算法进行比较,测试结果验证了HFWA的可行性和有效性。
1 问题模型
1.1 问题描述
在UPMS-ETC问题中,假设有n个任务需要在m台机器上加工,各个机器存在多种不同的加工速度,各机器在不同加工速度下的能耗存在差异性。此外,已知各个订单的交货期,晚于规定的时间交货将会产生延迟惩罚成本。
本文以最小化所有任务的加工能耗成本和延迟惩罚成本总和为目标,决策内容包含以下三点:1) 各个机器所加工的任务集合;2) 各个机器上加工任务的排序;3) 各任务的加工速度。
1.2 数学建模
为了构建UPMS-ETC问题的MILP模型,定义以下数学符号。
问题参数:
m:机器总数,i∈{1,2,…,m}。
n:任务总数,v∈{1,2,…,n}。
l:加工位置编号,l∈{1,2,…,n},各台机器均设有n个加工位置。
Qi:机器i可选的速度类别总数,s∈{1,2,…,Qi}。
lv:任务v的标准加工时间。
ris:机器i以第s种加工速度的取值。
tvis:任务v在机器i上以速度ris加工时相应的加工时间,tvis=lv/ris。
eis:机器i在单位时间内以速度ris运行所产生的能耗。
dv:任务v的交货期。
Cv:任务v的完成时间。
τv:任务v的延误时间,τv=max{0,Cv-dv}。
μv:任务v单位时间的延误惩罚成本。
决策变量:
xvils:0-1变量,任务v在机器i以速度ris进行加工,xvils取值为1;否则,xvils取值为0。
Bil:机器i上位置l任务开始加工的时间。
基于以上问题描述和符号定义,构建了UPMS-ETC问题的MILP模型。
目标函数:
(1)
约束条件:
(2)
(3)
(4)
τv≥Bi,l+tvis·xvils-(1-xvils)·M-dj
i∈{1,2,…,m},s∈{1,2,…,Qi},v∈{1,2,…,n},
l∈{1,2,…,n}
(5)
τv≥0v∈{1,2,…,n}
(6)
xvils∈{0,1},i∈{1,2,…,m},s∈{1,2,…,Qi},
v∈{1,2,…,n},l∈{1,2,…,n}
(7)
式(1)表示目标函数,即所有任务的加工能耗成本和延误惩罚成本之和;式(2)用于确保各个加工任务所选的加工机器、加工位置和加工速度的唯一性;式(3)表示各台机器上每个加工位置处最多只能安排一个加工任务;式(4)用于计算机器i上位置l处加工任务的开始时间;式(5)-式(6)用于计算各个任务的延误时间;式(7)定义了决策变量的取值范围。
2 基本烟花算法
FWA以烟花表示待优化问题的解,并通过烟花爆炸生成火花这一过程迭代进化。首先依据各烟花个体的评价函数值计算相应的爆炸火花数目和爆炸半径数值;其次,采用均分分布和高斯分布生成新个体;最后,利用选择规则构建新种群以进入下一次迭代。具体实现步骤归纳如下:
Step1初始化算法参数,利用随机方法构建初始种群并对每个烟花个体进行评价。
Step2依据评价函数计算当前种群中各个烟花的爆炸火花数目和爆炸半径。
Step3利用均分分布和高斯分布生成爆炸火花和高斯变异火花。
Step4利用烟花、爆炸火花和高斯变异火花构建候选种群,并依据筛选规则生成新种群。
Step5判断是否满足终止条件。若满足则停止迭代搜索并输出当前最优解;否则,转Step 2。
FWA的核心内容包含以下四点:(1) 计算爆炸火花数目和爆炸半径;(2) 生成爆炸火花;(3) 生成高斯变异火花;(4) 基于选择规则构建新种群。
计算爆炸火花数目和爆炸半径:以N表示烟花数目,以xi表示当前种群中的第i个烟花,N个烟花数目生成的爆炸火花总数记为SN。以最小化问题为例,对于烟花xi,以符号fi表示其评价函数值,以Si和Ri表示由xi生成的爆炸火花数目和相应的爆炸半径。Si和Ri的计算公式归纳如下:
(8)
(9)
式中:fmax和fmin分别表示当前烟花种群中最大和最小的评价函数值;A表示基本爆炸半径,需要预先设定;ε为机器最小值,用以避免除零操作。同时,为了对上述Si计算公式做修正以确保优势烟花个体生成的火花数不过多、劣势烟花个体生成的火花数不过少,修正公式为:
(10)