掌桥专利:专业的专利平台
掌桥专利
首页

一种面向任务的长短期结合的排班方法及系统

文献发布时间:2023-06-19 10:21:15


一种面向任务的长短期结合的排班方法及系统

技术领域

本公开涉及排班优化技术领域,特别涉及一种面向任务的长短期结合的排班方法及系统。

背景技术

本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。

员工排班是即是一类复杂的数学优化问题,同时也是出现在几乎所有企事业单位的决策问题。从整体的角度看,一个单位的排班质量直接决定了该单位的生产或工作输出效率。从个人的角度看,员工的排班质量同时决定了每个员工的工作和生活质量。如何对排班问题进行建模和求解一直以来都是工业和学术界研究的热点问题之一。

发明人发现,目前已有的大部分排班模型针对的都是某个时间段内班次、员工和时间单位的对应关系。例如在一周(或者一天)的时间中,求解对于某个员工的在某天(或某个时间内)的班次。尽管该方法可以刻画一大类的排班需求,例如护士排班、学生课表排班或其他类的排班等,但实际生活中还会经常出现基于任务的排班,例如在某天某几个员工集中一段时间完成某个任务。例如在一些单位中的项目会议,医护单位中的会诊或者手术等等。在该类问题中一项任务往往都需要有具体的要求例如具体的所需人员、每项任务所需的工作及任务时长。另外如果需要对该类问题进行连续多次的排班且需要掌握员工长时间的上班情况,则需要将短期和长期的排班结合来生成整体并满足一定约束的排班表,然后现有技术中缺少对该类问题的研究,尚无法实现考虑长短期的排班。

发明内容

为了解决现有技术的不足,本公开提供了一种面向任务的长短期结合的排班方法及系统,既可以生成短期的基于任务的排班表,同时又能够将短期和长期的排班进行连接从而满足长期的排班需求。

为了实现上述目的,本公开采用如下技术方案:

本公开第一方面提供了一种面向任务的长短期结合的排班方法。

一种面向任务的长短期结合的排班方法,包括以下步骤:

获取排班的员工数据、排班时间数据和任务需求数据;

根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

作为可能的一些实现方式,排班模型包括短期面向任务的决策变量,如果员工i在d天时间t内分配到任务a的工作j,则变量为1,否则为0。

作为可能的一些实现方式,排班模型包括长期面向工作的决策变量,如果员工i在d天至少被分配到某个工作,长期面向工作的决策变量的值为1,表示上班;否则为0,表示休息。

作为可能的一些实现方式,所述排班模型包括第一硬性约束,用于刻画某个任务在其规定时间内所有的工作能够被分配的员工覆盖。

作为可能的一些实现方式,所述排班模型包括适用于短期内时间单位的第二硬性约束,用于刻画员工在某个时刻的单一性,某个时间内一个员工只能做一个工作。

作为可能的一些实现方式,所述排班模型包括第三硬性约束,用于描述对于某个任务的某个工作在整个任务期间必须由同一个员工完成,且不得换人。

作为可能的一些实现方式,所述排班模型包括第四硬性约束,用于连接短期面向任务的决策变量和长期面向工作的决策变量,如果一个员工在某天被分别任务在该员工在当天视为上班。

本公开第二方面提供了一种面向任务的长短期结合的排班系统。

一种面向任务的长短期结合的排班系统,包括:

数据获取模块,被配置为:获取排班的员工数据、排班时间数据和任务需求数据;

排班模块,被配置为:根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

本公开第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的面向任务的长短期结合的排班方法中的步骤。

本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的面向任务的长短期结合的排班方法中的步骤。

与现有技术相比,本公开的有益效果是:

1、本公开所述的方法、系统、介质或电子设备,既可以生成短期的基于任务的排班表,同时又能够将短期和长期的排班进行连接从而满足长期的排班需求,长短期是相对的,在实际使用过程中可以根据需求来进行选取,例如可以将一天的时间作为短期,将一周的时间作为长期,或者将一周的时间作为短期,将一年的时间作为长期,可以应用于多种排班类别。

2、本公开所述的方法、系统、介质或电子设备,排班是建立在任务基础上的,可以刻画任务的多种需求,例如人数,等级限制,时间,具体工作数量等等,同时这里的任务是一种一般意义的概念,在实际使用过程中可以用于描述不同种类的需要多人多时间完成的任务。

3、本公开所述的方法、系统、介质或电子设备,可以结合已有的排班优化问题中不同约束条件从而进行扩展,例如可以加入长短期的角度下与工作量、请假、工作模式或工作班次需求等的约束,从而可以应用于更多的时间排班场合。

本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本公开实施例1提供的面向任务的长短期结合的排班方法的流程示意图。

图2为本公开实施例1提供的第1天的排班表。

图3为本公开实施例1提供的第2天的排班表。

图4为本公开实施例1提供的第3天的排班表。

图5为本公开实施例1提供的第4天的排班表。

图6为本公开实施例1提供的第5天的排班表。

图7为本公开实施例1提供的未使用短期工作时长约束时的第1天的排班表。

具体实施方式

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

实施例1:

如图1所示,本公开实施例1提供了一种面向任务的长短期结合的排班方法,包括以下步骤:

获取排班的员工数据、排班时间数据和任务需求数据;

根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

具体的,包括以下内容:

S1:读取排班相关的参数,包括任务相关的需求、员工、时间等其他数量

为了更好的进行描述,首先对模型进行介绍。不失一般性,本实施例使用一天的时间来表示短期的排班时间段,其中时间单位为小时,这里的时间范围使用8个小时。某个单位在某一天的时间内需要进行多项任务,每个任务需要占用连续的几个小时。在某个任务中又分为多个工作(或者子任务);

每个工作需要一定数量的员工来完成,同时具有一定的能力限制,例如某项工作只能由部分员工来完成。对于一项任务,如果一个员工被分配了一个工作则该员工要在整个任务期间一直进行该工作不能改变,如果对于时间上不重合的任务,同一个员工可以在一天的时间内分配到多个任务。

以某天作为短期则长期时间为多天或者一周或者一个月。如果一个员工在某天中至少被分配了一个任务中的工作,则该员工在该天被定义为工作。在长期范围内,对于员工的工作天数会有具体的需求。同时在长期范围内对工作的小时数也有具体的需求。例如不超过上限和不少于下限等。

下标和集合说明:这里使用I(i∈I)表示员工集合;A(a∈A)表示任务集合;J(j∈J)表示工作集合;T(t∈T)表示时间集合;D(d∈D)表示天数的集合。分别使用|I|、|A|、|J|、|T|和|D|来表示每个集合元素的数量。

参数说明:这里使用Wd,a,j,t来表示在d天任务a的工作j在t时间内需要的员工数。例如Wd1,a1,j1,t1=2表示在d1天的t1时间内需要2名员工来完成工作j1;使用I j来表示能够从事工作J的员工集合;例如如果I j={0,2,4}则表示对于工作J只能由0号2号或者4号员工来完成,该参数可以用来刻画能力等级限制等工作能力限制。

首先需要对每天的任务需求的参数进行读取,可以使用读取文本文件等方式将参数初始化,主要包括所有的集合数量,每天的所有任务的Wd,a,j,t和I j等主要参数。

S2:建立短期面向任务的和长期面向工作的决策变量

短期面向任务的决策变量如下:

x

该变量表示如果员工i在d天时间t内分配到任务a的工作j则x的值为1,其他情况为0。

长期用于描述工作的决策变量如下:

y

该变量表示如果员工i在d天至少被分配到某个工作,则y的值为1,即表示上班,其他情况为0,表示休息。

S3:添加与任务相关的约束条件和长短期决策变量的连接约束条件

该步骤主要用于添加描述模型的硬性约束,即在优化过程中不能违反的约束条件。

硬性约束1:该约束用于刻画某个任务在其规定时间内所有的工作能够被分配的员工覆盖。

硬性约束2:该约束用于刻画员工在某个时刻的单一性,即某个时间内一个员工只能做一个工作;注意该约束只适用于短期内的时间单位;对于某一天来说,一个员工可以从事多个不冲突的任务,因此不需要对任务进行单一性的约束。

硬性约束3:该约束用于描述对于某个任务的某个工作在整个任务期间必须由同一个员工完成,不得换人;在引入约束前为了方便建模对任务相关的参数进行处理,首先得到每个任务的时间窗口区间,这里使用Pd,a来表示。该数值定义为一个连续整数的区间。例如Pd,a=[2,4)则表示d天的任务a的时间跨度为当天的第2到第4个小时,这里使用左闭右开的方式定义是为了方便不等式的描述,约束不等式如下:

该不等式的含义为对于任意天的任意任务,在其时间跨度内员工的值必须全部相等。

硬性约束4:该约束用于连接x和y变量,即如果一个员工在某天被分别任务在该员工在当天视为上班,约束如下,其中M是一个足够大的正数。

不等式确保了如果左边为0则右边也必须为0;如果左边大于0则右边为1。

S4:添加长期和短期相关的松弛变量及相应约束

在该步骤中添加软性约束,即在优化过程中尽可能而不是必须要满足的约束。在本实施例中,主要添加了长期视角下的最大和最小工作天数限制(分别用dmax和dmin表示),而短期视角下的最大和最小工作时间长度(分别用hmax和hmin表示)。

软性约束:该约束用于限制长期内的最大工作天数,由于是软性约束因此引入松弛变量如下:

以上两个变量用于描述某个员工的实际工作天数和最大最小值之间的偏移量。

以上两个变量用于描述某个员工在某天实际工作的小时数。

约束不等式如下:

其中不等数组(6)描述了最大和最小的天数限制,不等式(7)和(8)描述了每天的工作时长限制。

S5:建立优化目标函数并求解

目标函数为最小化软性约束中的所有的松弛变量的和。

实例分析和排班结果

为了验证本实施例所述方法的效果,这里给出一个具体的排班模型和最终结果,结果如图2-6所示假设这里短期为一天,使用8小时的工作制,长期时间为5天,即一周的时间,员工数量为9个,每天的任务为2到3个,每个任务需要2到3个工作,假设每个工作都可以由所有员工来完成;Wd,a,j,t的具体数值如下;这里为了简化描述,使用在W的t下标使用区间来表示该任务的时间跨度;其中dmax=3,dmin=2,hmax=6,hmin=4。

第一天:Wd1,a1,j1,[t1,t4]=2,Wd1,a1,j2,[t1,t4]=1,Wd1,a2,j1,[t3,t6]=1,Wd1,a2,j1,[t3,t6]=2,Wd1,a3,j2,[t5,t8]=2,Wd1,a3,j3,[t5,t8]=2;

第二天:Wd2,a1,j1,[t2,t3]=2,Wd2,a1,j2,[t2,t3]=3,Wd1,a2,j1,[t1,t7]=1,Wd2,a2,j2,[t1,t7],Wd2,a2,j3,[t1,t7]=1;

第三天:Wd3,a1,j1,[t6,t8]=1,Wd3,a1,j2,[t6,t8]=2,Wd3,a1,j3,[t6,t8]=1,Wd3,a2,j2,[t3,t4]=2,Wd3,a2,j3,[t3,t4]=3;

第四天:Wd4,a1,j1,[t2,t4]=1,Wd4,a1,j2,[t2,t4]=1,Wd4,a2,j1,[t3,t5]=3,Wd4,a2,j2,[t3,t5]=1,Wd4,a3,j2,[t6,t8]=2,Wd4,a3,j3,[t6,t8]=2;

第五天:Wd5,a1,j1,[t5,t7]=2,Wd5,a1,j3,[t5,t7]=1,Wd5,a2,j1,[t2,t4]=1,Wd5,a2,j2,[t2,t4]=1,Wd5,a2,j3,[t2,t4]=2。

本实施例使用的是Cplex 12.7优化求解器对模型进行求解,最优值为71,求解后的排班表如下所示。为了便于可视化,这里采用人员-时间-任务的方式来展示结果。不同的任务采用了不同颜色进行区分。结果中的序号下标从0开始。表中的最右列是根据变量y的值决定,即是否上班。

从图2-图6可以看到,所有的硬性约束全部满足,图7是没有使用短期约束显示软性约束最优解的第一天的排班结果,即在模型中去掉不等式集合(7)和(8)。对比图2能够看出,在使用短期约束的情况下只有一个员工一天完成了两项任务(员工3)。而图7的结果中有三名员工完成了两项任务,则该实验验证了软性约束的有效性。

实施例2:

本公开实施例2提供了一种面向任务的长短期结合的排班系统,包括:

数据获取模块,被配置为:获取排班的员工数据、排班时间数据和任务需求数据;

排班模块,被配置为:根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

所述系统的工作方法与实施例1提供的面向任务的长短期结合的排班方法相同,这里不再赘述。

实施例3:

本公开实施例3提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开实施例1所述的面向任务的长短期结合的排班方法中的步骤,所述步骤为:

获取排班的员工数据、排班时间数据和任务需求数据;

根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

详细步骤与实施例1提供的面向任务的长短期结合的排班方法相同,这里不再赘述。

实施例4:

本公开实施例4提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的面向任务的长短期结合的排班方法中的步骤,所述步骤为:

获取排班的员工数据、排班时间数据和任务需求数据;

根据获取的工数据、排班时间数据和任务需求数据,结合预设排班模型,得到排班结果;

其中,所述排班模型至少包括长期视角下的最大工作天数约束、最小工作天数约束和每天的工作时长约束,以上述约束的最小值为目标函数进行排班优化。

详细步骤与实施例1提供的面向任务的长短期结合的排班方法相同,这里不再赘述。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

相关技术
  • 一种面向任务的长短期结合的排班方法及系统
  • 一种跨季节与短期储热结合的太阳能供暖系统及其控制方法
技术分类

06120112518202