一种结合优化算法和精确求解的人员排班方法

文档序号:37491281发布日期:2024-04-01 13:59阅读:16来源:国知局
一种结合优化算法和精确求解的人员排班方法

本技术涉及计算机,具体涉及一种结合优化算法和精确求解的人员排班方法。


背景技术:

1、人员排班问题,作为非确定性多项式问题(np-hard,non-deterministicpolynomial-hard)的一种,一直以来都是充满挑战性的工作。实际工作中,建立一个排班表需要考虑法律法规、员工负荷、人员类别和技能等约束等多个维度,并且不同的班次对人员类别和人员等级还具有一定的要求,这就提高了排班的困难性。

2、现有技术中,通常采用混合整数规划模型、并通过精确算法求解(例如采用cplex或gurobi等数学求解器求解),可以从理论上确定出人员排班的最优方案。然而,在面向大规模的人员排班问题时,精确算法通常面临着求解时间长、效率低的问题。

3、由此,如何提高对人员排班的效率,成为需要解决的问题。


技术实现思路

1、本技术实施例提供的一种结合优化算法和精确求解的人员排班方法,可以提高对人员进行排班的效率。

2、第一方面,本技术实施例提供了一种结合优化算法和精确求解的人员排班方法,包括:基于预设条件,利用第一求解器生成待排班人员中每一个人员的初始排班结果,预设条件包括:用于约束人员工作状态和排班规则的约束条件,以及第一求解器的运行时长;检测初始排班结果是否为最优解;当初始排班结果不是最优解时,将初始排班结果输入至可变邻域下降算法中,生成每一个人员的排班结果,排班结果包括每一个人员在预设日期的值班类型和值班班次。

3、本技术实施例提供的人员排班方法,针对大规模人员排班问题,通过采用求解器和可变邻域下降算法结合的方式,可以提高人员排班的效率。

4、在一种可能的实现方式中,将初始排班结果输入至可变邻域下降算法中,生成每一个人员的排班结果,包括:基于预先设置的组合邻域,按照组合邻域规模由小至大的顺序,对初始排班结果进行迭代搜索求解;基于迭代搜索求解的结果,生成排班结果;其中,组合邻域由多个邻域形成,多个邻域包括以下至少两项:多个人员之间的换班邻域、每一个人员的日期交换邻域、值班请求修复邻域和值班人数修复邻域。

5、在一种可能的实现方式中,基于迭代搜索求解的结果,生成排班结果,包括:检测是否达到搜索停止条件,搜索停止条件包括:迭代搜索求解的次数达到预设阈值,或者相邻两次迭代搜索结果之间的差值小于或等于预设阈值;当达到搜索条件时,将最近一次的迭代搜索求解的结果,作为排班结果。

6、在一种可能的实现方式中,约束条件包括第一约束条件和第二约束条件;第一约束条件包括以下至少一项:人员一天之内至多分配一个班次、人员的值班班次之间不相邻、每个人员的最多班次数、人员的最大工作时间和最小工作时间、每个人员连续工作的最多班次数量、人员的最小连续值班次数、人员的最小连续休息次数、各人员不能工作的日期;第二约束条件包括每一天各班次的值班人数。

7、在一种可能的实现方式中,生成每一个人员的排班结果之后,人员排班方法还包括:基于第二约束条件,对排班结果进行评价,生成评价结果,评价结果包括排班结果中惩罚值低的区域和惩罚值高的区域;将惩罚值低的区域作为约束条件,结合预设条件,利用第二求解器生成待排班人员的排班结果。

8、在一种可能的实现方式中,基于第二约束条件,对排班结果进行评价,生成评价结果,包括:将预设日期中每一天的值班人数与值班人数阈值进行比较,基于比较结果,生成第一惩罚值;基于每一个员工的值班和休假请求,对每一天中每一个员工的值班情况进行评价,基于评价结果,生成第二惩罚值;基于第一惩罚值和第二惩罚值,生成每一个员工在每一天的工作状态的惩罚值;基于每一个员工在每一天的工作状态的惩罚值,生成评价结果。

9、在一种可能的实现方式中,人员排班方法还包括:当初始排班结果是最优解时,输出初始排班结果。

10、第二方面,本技术提供了一种人员排班装置,该装置包括:第一生成模块,用于基于预设条件,利用第一求解器生成待排班人员中每一个人员的初始排班结果,预设条件包括:用于约束人员工作状态和排班规则的约束条件,以及第一求解器的运行时长;检测模块,用于检测初始排班结果是否为最优解;第二生成模块,用于当初始排班结果不是最优解时,将初始排班结果输入至可变邻域下降算法中,生成每一个人员的排班结果,排班结果包括每一个人员在预设日期的值班类型和值班班次。

11、在一种可能的实现方式中,第二生成模块还包括:求解子模块,用于基于预先设置的组合邻域,按照组合邻域规模由小至大的顺序,对初始排班结果进行迭代搜索求解;生成子模块,用于基于迭代搜索求解的结果,生成排班结果;其中,组合邻域由多个邻域形成,多个邻域包括以下至少两项:多个人员之间的换班邻域、每一个人员的日期交换邻域、值班请求修复邻域和值班人数修复邻域。

12、在一种可能的实现方式中,生成子模块具体用于:检测是否达到搜索停止条件,搜索停止条件包括:迭代搜索求解的次数达到预设阈值,或者相邻两次迭代搜索结果之间的差值小于或等于预设阈值;当达到搜索条件时,将最近一次的迭代搜索求解的结果,作为排班结果。

13、在一种可能的实现方式中,约束条件包括第一约束条件和第二约束条件;第一约束条件包括以下至少一项:人员一天之内至多分配一个班次、人员的值班班次之间不相邻、每个人员的最多班次数、人员的最大工作时间和最小工作时间、每个人员连续工作的最多班次数量、人员的最小连续值班次数、人员的最小连续休息次数、各人员不能工作的日期;第二约束条件包括每一天各班次的值班人数。

14、在一种可能的实现方式中,生成每一个人员的排班结果之后,人员排班装置还包括:评价模块,用于基于第二约束条件,对排班结果进行评价,生成评价结果,评价结果包括排班结果中惩罚值低的区域和惩罚值高的区域;第三生成模块,用于将惩罚值低的区域作为约束条件,结合预设条件,利用第二求解器生成待排班人员的排班结果。

15、在一种可能的实现方式中,评价模块具体用于:将预设日期中每一天的值班人数与值班人数阈值进行比较,基于比较结果,生成第一惩罚值;基于每一个员工的值班和休假请求,对每一天中每一个员工的值班情况进行评价,基于评价结果,生成第二惩罚值;基于第一惩罚值和第二惩罚值,生成每一个员工在每一天的工作状态的惩罚值;基于每一个员工在每一天的工作状态的惩罚值,生成评价结果。

16、在一种可能的实现方式中,人员排班装置还包括:输出模块,用于当初始排班结果是最优解时,输出初始排班结果。

17、第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器、存储器和接口;存储器,用于存储指令;接口,用于与其他设备通信;处理器,用于执行存储器中存储的指令,以使电子设备执行如第一方面所述的方法。

18、第四方面,本技术实施例提供了一种可读存储介质,该可读存储介质包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法。

19、可以理解的是,本技术第二至第四方面的技术方案与本技术的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1