摘要
结合实际生产或项目中的排班情况,提出考虑排班的人力资源投入问题。针对该问题建立了以最小化人力资源投入为目标的数学模型。根据资源投入量与排班约束的性质,将原问题数学模型简化,证明简化后问题的数学模型与原问题最优解一致,并通过CPLEX软件求解过程,说明简化后的数学模型在求解速度上表现出很大的优越性。对于大规模问题,由于排班约束会导致班次间资源占用,使用传统任务列表编码方式难以获得较优的解。为此,提出了一种新型编码方式的遗传算法。该算法采用对作业延迟时间进行编码的方式,对作业开始时间进行搜索。为了提升算法的局部搜索能力,对作业延迟时间和开始时间进行局部优化。最后,通过数值实验与CPLEX和文献的算法比较,表明该算法的有效性。
资源投入问题(resource investment problem, RIP)是一种经典的项目调度问题,其目标是优化人力资源的投入,使其成本最小化。然而人力资源作为一种重要的生产资源,在实际生产中,如飞机移动装配线,是以排班的形式进行生产作业的,因此资源的投入会受排班的影响。此时,调度的关键在于合理地安排作业和排班,从而确定每个班次的作业调度计划和资源投入情况,使得总体的人力资源投入最小化。在本文中,这一问题被称之为考虑人力资源排班的人力资源投入问题(resource investment problem based on employee-timetabling,RIP⁃ET),其本质上是资源投入和人力资源排班(employee timetabling problem, ETP)的整合问题。与传统的RIP问题相比,RIP⁃ET问题有以下几项难点: RIP⁃ET需要考虑工人排班的约束;RIP⁃ET不仅要决策作业的开始时间,而且还要决策作业投入的每个工人;对于RIP⁃ET问题,每个班次的资源投入是可变的,由于排班约束,班次之间存在资源占用情况;与RIP问题优化目标为资源峰值不同,该问题的目标是降低投入整个项目的人数。由于RIP⁃ET问题与传统RIP的决策范围与约束范围不同,现有的模型和算法无法适用,因此,对RIP⁃ET问题的建模与算法研究具有重要的理论与实际意义。
RIP是从经典的项目调度问题(resource constrained project scheduling problem, RCPSP)中衍生而来,问题的目标是在给定工期的情况下求解资源投入的最小值。Möhrin
人力资源排班是将具有特殊技能的人力资源分配到特定的班次,以满足特定时间段的服务需求。随着人力资源排班用于各种领域,人力资源排班的形式也呈现多样化。由于工作内容的不同,Bake
RIP作为RCPSP的一个衍生问题,也是一种经典的项目调度问题,经常应用于实际项目决策中,它本身也对RIP⁃ET的研究具有很重要的意义。本文研究的RIP⁃ET除了考虑RIP的特性之外,还需要考虑人力资源排班约束,具有较高的复杂度,精确算法在求解这类大规模的问题时效率较低。遗传算法由于具有较好的全局搜索能力,在RIP中得到了很好的使
在分析现有文献中人力资源投入问题与人力资源排班问题和遗传算法的基础上,本文以最小化人力资源投入作为目标,从实际生产活动的决策需求出发,建立了RIP⁃ET的数学模型。通过分析,将该整合问题拆分为了人力资源投入和人力资源排班问题,并且设计了一种新型编码方式的遗传算法,通过对作业延迟时间进行编码的方式,对作业的开始时间进行全局搜索,此外还对作业延迟时间和开始时间进行局部优化。
记一个项目由若干项作业构成,为项目的作业集合。其中,为虚任务不占用时间和资源,为作业编号,其标准作业时间为;全部作业共需要种人力资源进行作业,资源集合,为人力资源种类编号,其中第种人力资源对应的单价为;定义为第种人力资源中的工人编号,集合表示第种人力资源的集合,同时假设同类资源下的所有资源不具有差异性。
项目的总工期为,每个班次8 h,将项目分为个班次,定义班次集合为,为班次编号,对于每个工人,规定在连续的3个班次中只能工作1个班次。假设作业从开始到结束不得中断,当班次结束时,若当前作业未完成,不允许工人加班,必须换上相同数目的同类工人继续该工作。在实际的人力资源排班中,很多情况下使用的是三班制排班。在文本中,不妨也使用三班制排班,假设每个班次8 h,将1 d分为3个班次。
为作业的紧前作业的集合,表示作业为作业的紧前作业;表示作业对第种人力资源的需求量。对时间进行离散化,为离散时间点,,为项目的实际完工时间。
定义决策变量如下:
—— 变量,作业在时刻处于执行状态为1,否则为0;
变量,第种人力资源中的第号工人在时间执行作业则为1,否则为0。
定义中间变量如下:
变量,第种人力资源中的第号工人在第班次中进行作业则为1,否则为0;
——变量,第种人力资源中的第号工人投入了整个项目则为1,否则为0。
RIP⁃ET问题的数学模型如下:
目标函数为
(1) |
传统RIP约束为
(2) |
(3) |
(4) |
(5) |
(6) |
排班约束为
(7) |
(8) |
(9) |
决策变量可行域为
(10) |
其中,式(1)为最小化人力资源的投入;式(2)表示作业的执行时间等于作业工期;式(3) 为优先关系约束;式(4)为项目工期约束;式(5) 表示任务一旦开始就不能中断;式(6)为资源约束;式(7)为 决策变量与中间变量的关系;式(8)为人力资源排班约束,单个个体的人力资源在连续3个班次中只能工作1个班次;式(9)表示中间变量与中间变量的关系;式(10)表示定义所有决策变量中间变量的可行域。
上节给出问题的数学模型,是对作业调度与人力资源排班进行同时决策,需要在满足排班约束下求出人力资源投入的最小值。然而,通过分析发现,由于同种人力资源中每个个体之间不存在差异性,因此对于类人力资源,总有:
性质1 考虑排班约束下的总投入总是等于不考虑排班约束下最大的连续3个班次的总投入。即,其中为第种人力资源在班次的投入数量。
证明 假设所有作业的开始和结束时间已经确定,对于k类人力资源,假设有++=(++),其中为一个特定的班次,令。首先证明++的人数在满足工人休息的情况下能够满足作业要求, 即。由已知可得:≥,表示对于+3班次对人力资源的需求可以由班次释放的工人来满足, 从而可以推理得到≤+,≤++,由数学归纳法可以得到,对于w∈W,≤++,即++≥,得证。第二步,证明++≤,使用反正法证明。若++>,由于不等式两边都是正整数,可以假设=++1),此时在+2班次中由于人力资源不足,无法进行作业,则++>是错误的,即++≤,得证。从而可得(++)=。
根据性质1,发现求解原问题可以转化为:先根据项目调度计算每个班次需要投入人力资源的数量,进而计算最终的人力资源投入。本文将这个问题称之为问题。得到最优的人力投入之后,再根据每个班次的需求量对人力资源进行排班,这个问题称之为问题。因此,对原问题的求解,变成了求解问题与问题。针对问题,建立如下的数学模型。
定义决策变量如下:
—— 变量,作业在时刻处于执行状态为1,否则为0;
——整数变量,第种人力资源在时间的投入数量。
定义中间变量如下:
——整数变量,第种人力资源在班次的投入数量。
目标函数:
(11) |
(12) |
(13) |
(14) |
(15) |
(16) |
(17) |
(18) |
其中,式(11)为最小化人力资源投入;式(12) 表示作业的执行时间等于作业工期;式(13)为优先关系约束;式(14)为工期约束;式(15)表示任务一旦开始就不能中断;式(16)为资源约束;式(17)表示中间变量与决策变量之间的关系;式(18)表示决策变量和中间变量的定义域。
问题是对工人的工作班次进行分配,在不考虑资源均衡的情况下,并没有目标函数。问题的决策变量和模型如下:
—— 变量,第种工人中的第号工人在第班次中工作则为1,否则为0。
(19) |
(20) |
其中,式(19)表示单个工人在连续3个班次内只能工作1个班次;式(20)表示决策变量与问题中间变量的关系。
为了验证问题简化的有效性,使用CPLEX对测试问题库中的小算例进行求解,来对比两种建模方式求解的速度。设定资源种类,任务工期设置为由关键链方法(critical path method, CPM)得出的项目工期的1.2倍。
从实验对比可以发现,将问题转换之后,使用CPLEX求解的速度显著提升,因此将原问题转换为问题与问题在小规模的求解中是很有必要的。
针对RIP⁃ET的特点,本文设计了一种对作业开始时间进行搜索的遗传算法,可以有效避免RIP在考虑工人排班时带来的难点。采用这种编码方式可以通过解码直接求出各个作业的开始时间,进而根据式(11)求出人力资源的投入量,解码过程中并不需要通过控制可用资源和作业的优先级来决策作业的开始时间。
Najafi
本文采用实数编码方式,对每个作业的延迟开始时间进行编码,编码长度为,分别对应每一个作业的延迟开始时间,如

图1 作业延迟时间编码
Fig.1 Coding with work delay time
关于延迟开始时间的相关定义如下:
定义1 在作业1(i1)已经调度的基础上,作业i的延迟时间等于作业i的最早开始时间与实际开始时间的差值,即
(21) |
式中:表示作业实际的开始、结束时间。
定义2 在所有作业的延迟时间D给定的情况下,作业的最早开始时间等于其最晚紧前任务的结束时间,即令时,作业的开始时间,即
(22) |
定义3 在所有作业的延迟时间D给定的情况下,作业i的最晚开始时间等于令最后一个任务的结束时间为项目工期,倒序所求出的作业的开始时间,即
(23) |
式中:表示作业紧后任务的集合。
当所有的延迟时间都为0时,或者未赋值时,所有作业的最早(晚)开始时间 ()为不考虑资源使用的情况下,由关键链方法所求得的最早(晚)开始时间,当某个作业延迟时间给定时,其他作业的最早(晚)开始时间也会发生改变。
对于

图2 项目的AON网络的一个实例
Fig.2 An example of AON network of a project

图3 项目调度时间图
Fig.3 Scheduling time map of a given project
假设此项目的工期为15,通过逆向调度,将截止时间视为开始时间,结束任务作为开始任务,可得到项目逆向调度图,如

图4 项目逆向调度时间图
Fig.4 A project time map with reverse scheduling
于是,项目中所有作业的最早开始时间、实际开始时间等见
此外,考虑到解的可行性,对于一组延迟时间,它必须满足:对于任意作业,该作业的延迟时间不能超过该作业的最晚开始时间与最早开始时间之差,即
(24) |
对于染色体的评估,可以根据目标函数计算染色体的适应值。本文所采用的对作业延迟时间编码的方式,可以有效地搜索所有作业可能的开始时间,通过确定所有作业的开始时间,来确定每个班次需要分配的资源。
采用正向和逆向两种方法生成初始的染色体群。根据上文所提到的,要保证解的可行性,基因。于是,需要先求得作业的最早开始时间与最晚开始时间,然后再给基因随机赋值。为了防止先生成的过大,导致后续的取值受限。本文采用如

图5 产生基因的三角分布图
Fig.5 Triangular distribution for gene i generation
从作业1到作业顺序生成每个基因的值。算法步骤如下:
步骤1 初始化,,计算所有的、。
步骤2 令,在中随机选取一个小数,。
步骤3 ,计算作业的最早开始时间,在中随机选取一个小数,令。
步骤4 若,则停止运算,否则转步骤3。
选取父代染色体、进行交叉,生成子代染色体、。子代染色体中的一部分直接复制父代的染色体,另外一部分通过2条父代染色体交叉得到。
定义4 在给定的调度基础上,作业延迟时间的可减少值等于作业的实际开始时间减去作业最早的开始时间,即
(25) |
定义5 在给定的调度基础上,作业延迟时间的可增加值等于作业的最晚开始时间减去作业的实际开始时间,即
(26) |
染色体交叉的算法步骤如下:
步骤1 令C1[i]=P1[i],C2[i]=P2[i],。
步骤2 对于父代、,计算所有作业延迟时间的可减少值和可增加值,记为、、、。
步骤3 在范围内随机生成一个整数q。
步骤4 在范围随机生成一个小数。若,转步骤5,反之转步骤9。
步骤5 令。
步骤6 令,对于子代、,计算作业延迟时间的可减少值和可增加值,记为、、、。
步骤7 染色体的交叉步骤,根据上面得到的结果不同,可以分为几下几种情形。
情形1 当, ,即父代中作业的可减少与可增加时间都大于0,令
情形2 不满足情形1,并且,时。此时与交叉。即令
情形3 即不满足情形1与情形2,此时取中的随机一个整数。
按照生成的交叉操作生成子代的第个基因。
步骤8 若停止运算,否则转步骤6。
步骤9 令。
步骤10 对于子代、,计算作业延迟时间的可减少值和可增加值,记为、、、。
步骤11 重复步骤7的操作。
步骤12 若则停止运算,否则令转步骤10。
选取染色体进行变异,随机选择该染色体一部分的基因进行变异,其他部位的基因保持不变。与染色体的生成相似,计算作业的、。采用三角分布对重新赋值。
染色体变异的算法步骤如下:
步骤1 从随机选择两个整数、,其中。
步骤2 从随机选取一个小数,若,转步骤3,否则转步骤7。
步骤3 令。
步骤4 ,对于染色体,计算所有任务延迟时间的可减少值和可增加值,记为、。
步骤5 在中随机生成一个小数,。
步骤6 若,运算结束,否则转步骤4。
步骤7 令。
步骤8 对于染色体,计算作业延迟时间的可减少值和可增加值,记为、。
步骤9 在中随机生成一个小数,。
步骤10 若,则停止运算,否则令,转步骤8。
为了提高解的适应性,本节采用两种局部优化方法对作业的延迟时间和作业的开始时间进行优化。
对于一个已经给定的调度,每个作业都有一个延迟开始时间,改变作业延迟时间可以改变目标函数的值。例如,对于
该局部优化的算法步骤如下:
步骤1 令,计算当前调度下目标函数值为。
步骤2 计算作业延迟时间的可增加值和可减少值、。
步骤3 从中选择使得目标函数值最优的,更新,。若,停止运算,否则令转步骤2。
对于一个给定的调度,提前或推迟作业的开始时间可以改变目标函数的值,通过对每个任务开始时间的优化可以优化整个项目的资源投入。
定义6 表示作业i在不影响其他作业的基础上最早的可开始时间,等于所有紧前任务最晚的完成时间,即
(27) |
式中:表示作业的实际完成时间。
定义7 表示作业在不影响后续作业开始时间的基础上最晚可开始的时间,等于所有紧后任务最早的开始时间减去作业的持续时间,即
(28) |
该局部优化的算法步骤如下:
步骤1 令,计算当前调度下目标函数值为。
步骤2 计算作业最早开始时间和最晚开始时间、。
步骤3 从中选择使得目标函数值最优的,更新、。若,停止运算,否则令转步骤2。
为了验证本文设计的采用对作业延迟时间编码的遗传算法(DTGA)的有效性, 选取10 jobs、14 jobs、18 jobs、30 jobs、60 jobs、90 jobs,各10个算例进行数值实验,与文献中对采用作业浮动时间进行编码的遗传算法(FTGA
为了对比两种算法的优劣性,在其他设置参数相同的情况下,对比两种算法在不同的迭代次数下的求解结果。在3种不同规模下,各取10个案例,记录每个案例在不同迭代次数下的平均值,再对10个案例取平均值。

图6 30 jobs实验数据对比
Fig.6 Comparison of scheduling result of 30 jobs

图7 60 jobs实验数据对比
Fig.7 Comparison of scheduling result of 60 jobs

图8 90 jobs实验数据对比
Fig.8 Comparison of scheduling result of 90 jobs
本文在考虑实际生产过程中存在的换班情况下,提出了以最小化人力成本投入为目标的考虑排班的人力资源投入问题,建立了人力成本投入最小化为目标的数学模型。此外,本文将所提出的数学模型进行拆分,使得小规模问题可以直接用CPLEX进行求解。为了解决大规模问题,本文又提出了对作业延迟开始时间进行解码的遗传算法,并且对作业开始时间和延迟时间进行局部优化,从而得到最佳目标值。算例实验结果表明,无论是小规模的模型拆分还是大规模算法的构建都取得不错的效果。
在实际中,同一种人力资源之间,由于个体的不同也可能存在差异,然而本文中并没有考虑这种差异性,这也是本文未来的研究方向之一。
参考文献
MÖHRING R H. Minimizing costs of resource requirements in project networks subject to a fixed completion time[J]. Operations Research, 1984, 32(1): 89. [百度学术]
DEMEULEMEESTER E. Minimizing resource availability costs in time-limited project networks [J]. Management Science, 1995, 41(10): 1590. [百度学术]
RANGASWAMY B. Multiple resource planning and allocation in resource-constrained project networks [D]. Boulder: Graduate School of Business, University of Colorado, 1998. [百度学术]
YAMASHITA D, ARMENTANO V, LAGUNA M. Scatter search for project scheduling with resource availability cost [J]. European Journal of Operational Research, 2006, 169(2): 623. [百度学术]
SHADROKH S, KIANFAR F. A genetic algorithm for resource investment project scheduling problem, tardiness permitted with penalty [J]. European Journal of Operational Research, 2007,181(1): 86. [百度学术]
RANJBAR M, KIANFAR F, SHADROKH S. Solving the resource availability cost problem in project scheduling by path relinking and genetic algorithm[J]. Applied Mathematics and Computation, 2008,196(2): 879. [百度学术]
ZHU X, RUI Z R, LI S, et al. An effective heuristic for project scheduling with resource availability cost[J]. European Journal of Operational Research, 2017,257(3): 746. [百度学术]
陆志强,周皓雪.带资源空窗期的资源投入型问题的建模与优化[J]. 同济大学学报(自然科学版),2019,47(10):1520. [百度学术]
LU Zhiqiang, ZHOU Haoxue. Modeling and optimization of resource investment problem with resource window[J]. Journal of Tongji University(Natural Science), 2019, 47(10):1520. [百度学术]
任逸飞,陆志强.多技能资源投入项目调度问题的建模与优化[J]. 同济大学学报(自然科学版),2017,45(11):1713. [百度学术]
REN Yifei, LU Zhiqiang. Model and optimization of resource investment project scheduling problem with multi-skill [J]. Journal of Tongji University(Natural Science), 2017, 45(11):1713. [百度学术]
SU C T, SANTORO M C, MENDES A B. Constructive heuristics for project scheduling resource availability cost problem with tardiness[J]. Journal of Construction Engineering and Management, 2018, 144(8): 04018074. [百度学术]
BAKER K R. Workforce allocation in cyclical scheduling problems: a survey[J]. Operational Research Quarterly, 1976,27(1): 155. [百度学术]
KLETZANDER L, MUSLIU N. Solving the general employee scheduling problem[J]. Computers & Operations Research, 2020, 113: 104794. [百度学术]
BERGH J V D, BELIËN J, BRUECKER P D, et al. Personnel scheduling: a literature review[J]. European Journal of Operational Research, 2013, 226(3): 367. [百度学术]
DANIELS R L, MAZZOLLA J B, SHI D. Flow shop scheduling with partial resource flexibility[J]. Management Science, 2004,50(5): 658. [百度学术]
DREZET L E,BILLAUT J C.Predictive and proactive approaches for RCPSP with labour constraints[J]. IFAC Proceedings Volumes,2006, 39(3): 125. [百度学术]
ARTIGUES C, GENDREAU M, ROUSSEAU L M, et al. Solving an integrated employee timetabling and job-shop scheduling problem via hybrid branch-and-bound[J]. Computers & Operations Research, 2009, 36(8): 2330. [百度学术]
GUYON O, LEMAIRE P,PINSON É, et al. Cut generation for an integrated employee timetabling and production scheduling problem[J]. European Journal of Operational Research, 2010, 201(2): 557. [百度学术]
SMET P, ERNST A T, BERGHE G V. Heuristic decomposition approaches for an integrated task scheduling and personnel rostering problem[J]. Computers & Operations Research, 2016, 76: 60. [百度学术]
VAN DEN EECKHOUT M , MAENHOUT B, VANHOUCKE M. A heuristic procedure to solve the project staffing problem with discrete time/resource trade-offs and personnel scheduling constraints[J]. Computers & Operations Research, 2019, 101: 144. [百度学术]
LI H, XIONG L, LIU Y, et al. An effective genetic algorithm for the resource levelling problem with generalized precedence relations[J]. International Journal of Production Research, 2018, 56(5): 2054. [百度学术]
SELVAM G, TADEPALLI T C M. Genetic algorithm based optimization for resource leveling problem with precedence constrained scheduling[J/OL]. International Journal of Construction Management, 2019.https://doi.org/10.1080/15623599.2019.1641891. [百度学术]
REN Y, LU Z. A flexible resource investment problem based on project splitting for aircraft moving assembly line[J]. Assembly Automation, 2019, 39(4): 532. [百度学术]
LU Z, REN Y, Wang L, et al. A Resource investment problem based on project splitting with time windows for aircraft moving assembly line[J]. Computers & Industrial Engineering, 2019, 135: 568. [百度学术]
NAJAFI A A, NIAKI S T A. A genetic algorithm for resource investment problem with discounted cash flows[J]. Applied Mathematics and Computation, 2006,183(2): 1057. [百度学术]