利用遗传算法实现的自动排班方法及系统与流程

文档序号:11729943阅读:4547来源:国知局
利用遗传算法实现的自动排班方法及系统与流程

本发明涉及一种遗传算法应用领域,特别是涉及一种利用遗传算法实现的自动排班方法及系统。



背景技术:

排班是合理安排上班人力的重要手段,在所有企业中均广泛应用。排班主要是根据公司实际业务发展需要,合理的安排各个时间段内上班人力,保证满足公司业务需求,且又不引起人力资源的浪费。一般企业中大都由管理人员或者专门的排班师进行手动排班,该工作方式存在天然缺陷:

1、排班结果难以量化比较,排班人员的经验、技能、应变能力等各方面的综合素质都会影响排班结果。

2、排班的效率低、耗时长,对排班人员的工作压力提出较高要求。

3、每个排班人员有自己的排班风格和偏好,会引起排班结果存在较大差异,对上班员工的自我调节能力存在一定的考验。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中手工排班存在很多缺点的缺陷,提供一种利用遗传算法实现的自动排班方法及系统。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种利用遗传算法实现的自动排班方法,其特点在于,包括以下步骤:

s1、接收排班请求,提交排班参数开始排班;

s2、获取原始排班数据;

s3、利用遗传算法对原始排班数据进行调整,生成新的排班数据;

s4、返回所述新的排班数据。

较佳地,步骤s1中所述排班参数包括上班时长;步骤s2中所述原始排班数据包括原始上班时长;步骤s3包括:

s31、计算原始上班时长矩阵;

其中,所述原始上班时长矩阵为1×n矩阵,所述原始上班时长矩阵中只有一个元素取值为1、其余元素取值为0,n个元素依次对应时长递增的n个上班时长,取值为1的元素对应所述原始上班时长;

s32、生成概率转移矩阵;

其中,所述概率转移矩阵为n×n矩阵,所述概率转移矩阵中的每个元素aij表示每个组上班时长从ti调整为tj的概率,i∈[1,n],j∈[1,n],t1-tn依次对应时长递增的所述n个上班时长;

aij=a(n-i+1)(n-j+1);

在所述概率转移矩阵的每一行中,aii均为每一行的最大值,并且每一行越靠近aii的元素取值越大;

s33、用所述原始上班时长矩阵乘以所述概率转移矩阵,得到调整为各种上班时长所对应的概率;

s34、按照调整为各种上班时长所对应的概率,随机生成一个新的上班时长;

所述新的排班数据包括所述新的上班时长。

较佳地,在所述时长递增的n个上班时长中,任意相邻两个上班时长的差值相等。

较佳地,步骤s1中所述排班参数包括上班时间;步骤s2中所述原始排班数据包括原始上班时间;步骤s3包括:

s31’、生成步长调整概率矩阵;

其中,所述步长调整概率矩阵为1×m矩阵,m个元素依次对应递增的m个时间调整幅度;

tk=tm-k;

s32’、根据所述步长调整概率矩阵,随机生成一个调整步长;

s33’、将所述调整步长与所述原始上班时间进行加法运算,生成新的上班时间;

所述新的排班数据包括所述新的上班时间。

较佳地,在所述递增的m个时间调整幅度中,任意相邻两个时间调整幅度的差值相等。

本发明的目的在于还提供了一种利用遗传算法实现的自动排班系统,其特点在于,包括:

接收模块,用于接收排班请求,提交排班参数开始排班;

获取模块,用于获取原始排班数据;

生成模块,用于利用遗传算法对原始排班数据进行调整,生成新的排班数据;

返回模块,用于返回所述新的排班数据。

较佳地,所述排班参数包括上班时长;所述原始排班数据包括原始上班时长;

所述生成模块包括:

第一计算单元,用于计算原始上班时长矩阵;

其中,所述原始上班时长矩阵为1×n矩阵,所述原始上班时长矩阵中只有一个元素取值为1、其余元素取值为0,n个元素依次对应时长递增的n个上班时长,取值为1的元素对应所述原始上班时长;

第一生成单元,用于生成概率转移矩阵;

其中,所述概率转移矩阵为n×n矩阵,所述概率转移矩阵中的每个元素aij表示每个组上班时长从ti调整为tj的概率,i∈[1,n],j∈[1,n],t1-tn依次对应时长递增的所述n个上班时长;

aij=a(n-i+1)(n-j+1);

在所述概率转移矩阵的每一行中,aii均为每一行的最大值,并且每一行越靠近aii的元素取值越大;

乘法运算单元,用于用所述原始上班时长矩阵乘以所述概率转移矩阵,得到调整为各种上班时长所对应的概率;

第一随机单元,用于按照调整为各种上班时长所对应的概率,随机生成一个新的上班时长;

所述新的排班数据包括所述新的上班时长。

较佳地,在所述时长递增的n个上班时长中,任意相邻两个上班时长的差值相等。

较佳地,所述排班参数包括上班时间;所述原始排班数据包括原始上班时间;

所述生成模块包括:

第二生成单元,用于生成步长调整概率矩阵;

其中,所述步长调整概率矩阵为1×m矩阵,m个元素依次对应递增的m个时间调整幅度;

tk=tm-k;

第二随机单元,用于根据所述步长调整概率矩阵,随机生成一个调整步长;

加法运算单元,用于将所述调整步长与所述原始上班时间进行加法运算,生成新的上班时间;

所述新的排班数据包括所述新的上班时间。

较佳地,在所述递增的m个时间调整幅度中,任意相邻两个时间调整幅度的差值相等。

为了避免现有技术的手工排班存在的诸多缺点,本发明采用计算机自动排班,可以在各个维度上进行量化比较、避免排班人员的经验、技能、偏好而导致的排班结果差异。

业内计算机自动排班算法中,遗传算法是一种较成熟且有成功案例的算法。该算法一般由:择优复制、交叉、变异等步骤组成,其中变异是遗传算中最重要的步骤。在自动排班中各个组每天的上班时间和上班时长时可以在规定范围内随机调整,故可将其抽象为算法中变异算子。要求变异过程所代表的实际调整内容尽量符合实际业务场景。实际使用过程中可以采用合适的概率(转移)矩阵作为调整参数,使上班时间和上班时长的调整,符合实际的业务场景。

本发明的积极进步效果在于:本发明能够保证在排班过程中,对上班时间、上班时长的调整贴近实际业务场景,精确控制每种调整的概率,并且本发明的排班结果的整体拟合度无震荡、平稳上升,可以达到排班目标、满足业务需求。

附图说明

图1为本发明的实施例1的利用遗传算法实现的自动排班方法的流程图。

图2为本发明的实施例2的利用遗传算法实现的自动排班系统的模块示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,本实施例的利用遗传算法实现的自动排班方法包括以下步骤:

步骤101、接收排班请求,提交排班参数开始排班;

步骤102、获取原始排班数据;

步骤103、利用遗传算法对原始排班数据进行调整,生成新的排班数据;

步骤104、返回所述新的排班数据。

其中,步骤101中所述排班参数包括上班时长;步骤102中所述原始排班数据包括原始上班时长;步骤103包括:

步骤1031、计算原始上班时长矩阵;

其中,所述原始上班时长矩阵为1×n矩阵,所述原始上班时长矩阵中只有一个元素取值为1、其余元素取值为0,n个元素依次对应时长递增的n个上班时长,其中优选地,在所述时长递增的n个上班时长中,任意相邻两个上班时长的差值相等;取值为1的元素对应所述原始上班时长;

在本实施例的具体实施过程中,例如上班时长的范围依次为8、8.5、9、9.5、10、10.5、11小时,则n取值即为7,若原始上班时长矩阵为(1000000),则表示原始上班时长为8小时,若原始上班时长矩阵为(0010000),则表示原始上班时长矩阵为9小时,以此类推。

步骤1032、生成概率转移矩阵;

其中,所述概率转移矩阵为n×n矩阵,所述概率转移矩阵中的每个元素aij表示每个组上班时长从ti调整为tj的概率,i∈[1,n],j∈[1,n],t1-tn依次对应时长递增的所述n个上班时长;

aij=a(n-i+1)(n-j+1);即保证上班时长在调整区间内平衡;

即从任何一个上班时长ti调整为其他各种上班时长的概率之和为1,以贴近实际业务情况;

在所述概率转移矩阵的每一行中,aii均为每一行的最大值,并且每一行越靠近aii的元素取值越大;即表示上班时长不变的概率最大,调整幅度越小其调整概率越大;

遗传算法为在一个原始解的基础上,逐步交叉、变异、择优而向最优解逼近的过程。一般排班过程中所有班次的上班时长规定在一个区间内,例如上班时长为8小时到11小时(上班时长的时间粒度为半小时),根据实际的业务场景,每个组每天的上班时长可以根据实际业务需要延长或者减少。实际调整过程中要求:

1、每次调整的幅度尽量小,调整的内容尽量平衡;

2、调整的区间满足实际的业务规定;

3、排班拟合度应该平稳上升;

实际调整过程中,如果在代码中根据不同原始输入值,分别控制调整到不同上班时长的概率,将导致代码混乱,逻辑不清晰,后期修改不便等问题。定义一个上班时长的概率转移矩阵,可以统一控制各种情况下的调整概率。

例如8到11小时的上班时长区间内一共有:8,8.5,9,9.5,10,10.5,11小时七种上班时长,定义一个7×7的概率转移矩阵,覆盖所有上班时长的调整场景。

例如生成的概率转移矩阵如下:

步骤1033、用所述原始上班时长矩阵乘以所述概率转移矩阵,得到调整为各种上班时长所对应的概率;

采用概率转移矩阵之和,可以利用矩阵运算,直接计算从ti上班时间调整为其他上班时长的概率,从而减少编码过程中的复杂度。例如从8小时的上班时长调整为其他上班时长的概率就可以进行如下计算:

其中o即表示原始上班时长为8小时的原始上班时长矩阵,上述计算结果即表示从原始上班时长为8小时调整为新的上班时长8、8.5、9、9.5、10、10.5、11的概率分别为:0.4、0.3、0.2、0.05、0.05、0、0,其他场景的调整意义类似,在遗传算法每次变异过程中,所有班次的上班时长都根据概率转移矩阵调整,精确控制各种调整的概率。

步骤1034、按照调整为各种上班时长所对应的概率,随机生成一个新的上班时长;所述新的排班数据包括所述新的上班时长。

用本实施例的上述调整手段,调整后的新的上班时长和原始上班时长关系较大,保证某次变异出现大幅度调整的概率较小。由于概率转移矩阵的平衡性保证了上班时长调整的平衡。

另外,优选地,步骤101中所述排班参数包括上班时间;步骤102中所述原始排班数据包括原始上班时间;步骤103包括:

步骤1031’、生成步长调整概率矩阵;

其中,所述步长调整概率矩阵为1×m矩阵,m个元素依次对应递增的m个时间调整幅度;在所述递增的m个时间调整幅度中,任意相邻两个时间调整幅度的差值相等。

即所有可以调整的步长概率之和为1;

tk=tm-k;即各组上班时间向前调整、向后调整相同步长的概率相同;

对于开始上班时间的调整,各组上班时间的范围从0点到24点,其粒度为半小时,如果采用类似上班时长的概率转移矩阵,其矩阵规模达48×48,将会导致计算量大幅度增加,且在该矩阵中间存在很多概率为0的点(上班时间的调整时间跨度不能太大)。

在上班时间在实际的调整过程中,采用步长调整概率矩阵更为合适,该矩阵对每组、每种开始上班时间的调整都是一样的,故只需用一个1×m的步长调整概率矩阵即可。

例如步长调整概率矩阵如下:

t=(0.020.080.20.40.20.080.02),表示所述步长调整概率矩阵表示上班时间调整-1.5、-1、-0.5、0、0.5、1、1.5小时的概率(根据实际业务场景可以自由调整各种步长及对应的概率)。

步骤1032’、根据所述步长调整概率矩阵,随机生成一个调整步长;

步骤1033’、将所述调整步长与所述原始上班时间进行加法运算,生成新的上班时间;所述新的排班数据包括所述新的上班时间。

例如假设生成的调整步长为0.5小时,原始上班时间为9:00,那么调整后的新的上班时间则为9:30。

用上述的概率转移矩阵和步长调整概率矩阵,逐个作用于每个组每天的上班时间、上班时长的调整操作,对于这两种调整,期间均不考虑实际业务场景中的各项约束条件,故在完成相应的调整操作后,需根据实际调整的结果,进行相关约束条件的检查,如果发现调整之后违反任意一个约束条件,须回滚相关操作,即将调整后的值恢复为原始值,以保证解的合法性。

实施例2

如图2所示,本实施例的利用遗传算法实现的自动排班系统包括接收模块1、获取模块2、生成模块3以及返回模块4;

其中,所述接收模块1用于接收排班请求,提交排班参数开始排班;

所述获取模块2用于获取原始排班数据;

所述生成模块3用于利用遗传算法对原始排班数据进行调整,生成新的排班数据;

所述返回模块4用于返回所述新的排班数据。

优选地,所述排班参数包括上班时长;所述原始排班数据包括原始上班时长;

所述生成模块包括:

第一计算单元,用于计算原始上班时长矩阵;

其中,所述原始上班时长矩阵为1×n矩阵,所述原始上班时长矩阵中只有一个元素取值为1、其余元素取值为0,n个元素依次对应时长递增的n个上班时长,在所述时长递增的n个上班时长中,任意相邻两个上班时长的差值相等。取值为1的元素对应所述原始上班时长;

第一生成单元,用于生成概率转移矩阵;

其中,所述概率转移矩阵为n×n矩阵,所述概率转移矩阵中的每个元素aij表示每个组上班时长从ti调整为tj的概率,i∈[1,n],j∈[1,n],t1-tn依次对应时长递增的所述n个上班时长;

aij=a(n-i+1)(n-j+1);

在所述概率转移矩阵的每一行中,aii均为每一行的最大值,并且每一行越靠近aii的元素取值越大;

乘法运算单元,用于用所述原始上班时长矩阵乘以所述概率转移矩阵,得到调整为各种上班时长所对应的概率;

第一随机单元,用于按照调整为各种上班时长所对应的概率,随机生成一个新的上班时长;

所述新的排班数据包括所述新的上班时长。

另外,优选地,所述排班参数包括上班时间;所述原始排班数据包括原始上班时间;

所述生成模块包括:

第二生成单元,用于生成步长调整概率矩阵;

其中,所述步长调整概率矩阵为1×m矩阵,m个元素依次对应递增的m个时间调整幅度;在所述递增的m个时间调整幅度中,任意相邻两个时间调整幅度的差值相等

tk=tm-k;

第二随机单元,用于根据所述步长调整概率矩阵,随机生成一个调整步长;

加法运算单元,用于将所述调整步长与所述原始上班时间进行加法运算,生成新的上班时间;

所述新的排班数据包括所述新的上班时间。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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