排班系统模块设计说明书.doc

上传人:牧羊曲112 文档编号:4264124 上传时间:2023-04-12 格式:DOC 页数:17 大小:618KB
返回 下载 相关 举报
排班系统模块设计说明书.doc_第1页
第1页 / 共17页
排班系统模块设计说明书.doc_第2页
第2页 / 共17页
排班系统模块设计说明书.doc_第3页
第3页 / 共17页
排班系统模块设计说明书.doc_第4页
第4页 / 共17页
排班系统模块设计说明书.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《排班系统模块设计说明书.doc》由会员分享,可在线阅读,更多相关《排班系统模块设计说明书.doc(17页珍藏版)》请在三一办公上搜索。

1、话务预测、人力预测和人力转换为空班表开发模块设计说明书Version 1.02013.12.09Written By Creator湖南科创信息技术股份有限公司All Rights Reserved记录更改历史序号更改原因版本作者更改日期备 注1新增1.0宋勇2013-12-09由中南大学唐教授起草目 录1 引言41.1 目的41.2 范围41.3 读者对象41.4 术语与缩略语42 模块汇总42.1 模块汇总表52.2 模块关系图53 话务预测的模块设计53.1 二次移动平均法53.2 一次指数平滑法63.3 二次指数平滑法73.4 三次指数平滑法84 人力预测的模块设计84.1 根据服务水

2、平计算人力84.2 根据应答百分比计算人力94.3 根据坐席利用率计算人力104.4 根据平均应答速度计算人力115 人力转化空班表的模块设计125.1 特殊班次算法125.2 混合模式算法141 引言1.1 目的本模块开发文档主要记录说明模块开发的过程。让开发可视化,实现高效率,简化沟通。1.2 范围本模块开发文档仅适用于“话务预测、人力预测和人力转换为空班表开发”。1.3 读者对象开发人员1.4 术语与缩略语名称详细说明话务预测根据排除异常数据的历史话务数据量(每半小时为时间段单位),通过对数据多维度的挖掘分析,抽取其中蕴含的多种影响因素和其特有的变化规律,建立准确的话务预测模型。此模型能

3、够根据历史话务情况,预测未来某时段内每半小时话务量(每半小时为时间段单位)。人力预测实现根据单位时间内呼叫量、平均通话时长、服务水平目标等待时长和一个可换算参数(坐席数量、坐席利用率、应答百分比、服务水平、平均应答速度)中的一个,作为输入参数,能换算出其他可换算参数的结果。人力转化为空班表指每天根据每半小时的人力需求数及相关的约束配置,来生成一系列最优的班次,并计算这些班次相应的人力数,达到即能满足每半小时的人力需求又能使班次趋向最优。班次最优是指班次比较人性化且班次安排的工时及人力要使成本最低。约束配置为了简化生成班次的复杂度及更好的为后续的自动排班功能(空班表安排员工)服务,决定采用班系来

4、管理这些约束配置。班系是指一类班次的约束配置,即班次根据班系的配置来生成。换句话说,通过配置多个班系,人力转化为空班表时每个班系都要生成零到多个班次,来共同组成最优班次集,再安排相应的人力。2 模块汇总2.1 模块汇总表子系统A模块名称功 能 简 述话务预测通过选定的算法,对已排除异常的历史话务量进行处理,再考虑到实际的影响系数和增长系数等外界影响因素,从而预测出未来一段时间内的话务量。子系统B模块名称功 能 简 述人力资源预测利用爱尔兰算法,对已预测出的未来时期的话务量进行处理,通过不同的参数的选取,都能将其转换成需要的人力数。子系统C模块名称功 能 简 述人力转化为空班表通过该程序能实现根

5、据每半小时的人力需求数及相关的约束配置,来生成一系列最优的班次,并计算这些班次相应的人力数,达到即能满足一天内每半小时的人力需求又能使班次趋向最优的空班表2.2 模块关系图3 话务预测的模块设计3.1 二次移动平均法模块名称话务预测之二次移动平均法功能描述系统需要根据排除异常数据的历史话务数据量(单位:每半小时时间段),通过对数据多维度的挖掘分析,抽取其中蕴含的多种影响因素和其特有的变化规律,建立准确的话务预测模型。此模型能够根据历史话务情况,预测未来某时段内每半小时话务量(单位:每半小时时间段),算法采用二次移动平均法。接口与属性提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函

6、数功能、输入参数、输出参数、返回值等。在此处粘贴即可。数据结构与算法1、 支持建立第一移动平均的公式:Ft=( At +At-1+At-2+At-3+At-n)/n Ft 为第t期的一次平均值Ft+1-对下一期的预测值; n-移动平均的时期个数; At当前实际值; At-1,At-2,At-3和At-n分别表示前两期、前三期直至前n期的实际值。2、 在一次移动平均序列的基础上在进行一次移动平均,即二次移动平均法,其公式:Ft2= (Ft+Ft-1+Ft-2+Ft-3+Ft-n-1)/n-1Ft2 为第t期的二次平均值, Ft,Ft-1,Ft-2,Ft-3,Ft-n分别表示前一期、两期、前三期直

7、至前n期的一次平均值3、 为了消除滞后偏差对预测的影响,我们在一次、二次移动平均值的基础上,利用滞后偏差的规律来建立线性趋势模型,利用线性趋势模型进行预测。建立线性趋势预测模型:Ft+1 = a + b* At 其中: a = 2Ft Ft2, 表示截距b=2*(Ft-Ft2)/n-1, 表示斜率输入项通话历史数据输出项话务预测数据流程用流程图和必要的说明来表示本程序的流程。注释说明本程序中必要的注释。补充说明3.2 一次指数平滑法模块名称一次指数平滑法功能描述系统需要根据排除异常数据的历史话务数据量(单位:每半小时时间段),通过对数据多维度的挖掘分析,抽取其中蕴含的多种影响因素和其特有的变化

8、规律,建立准确的话务预测模型。此模型能够根据历史话务情况,预测未来某时段内每半小时话务量(单位:每半小时时间段),算法采用一次指数平滑法。接口与属性提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函数功能、输入参数、输出参数、返回值等。在此处粘贴即可。数据结构与算法一次指数平滑法公式:Ft+1 = At*a + (1-a)*FtFt 为第t期的预测值Ft+1-对下一期的预测值; At当前实际值;a 为权数,0a1;算法主要是要求出权数a。a 取值规则:在0a1范围之内,分别求出预测值与实际的均方差最小的a值为算法需要的a值。输入项通话历史数据输出项话务预测数据流程用流程图和必要的说

9、明来表示本程序的流程。注释说明本程序中必要的注释。补充说明3.3 二次指数平滑法模块名称.二次指数平滑法功能描述系统需要根据排除异常数据的历史话务数据量(单位:每半小时时间段),通过对数据多维度的挖掘分析,抽取其中蕴含的多种影响因素和其特有的变化规律,建立准确的话务预测模型。此模型能够根据历史话务情况,预测未来某时段内每半小时话务量(单位:每半小时时间段),算法采用二次指数平滑法。接口与属性提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函数功能、输入参数、输出参数、返回值等。在此处粘贴即可。数据结构与算法二次指数平滑法公式:St1 = a*At + (1-a)*St-11St2=

10、a*St1 + (1-a)*St-12Ft+1 = m + n* At 其中:St1 为一次指数平滑值;St2 为二次指数平滑值; m= 2 St1 St2, n=a*( St1- St2)/1-a,Ft 为第t期的预测值Ft+1-对下一期的预测值; At当前实际值;a 为权数,0a1;算法主要是要求出权数a。a 取值规则:在0a1范围之内,分别求出预测值与实际的均方差最小的a值为算法需要的a值。输入项通话历史数据输出项话务预测数据流程用流程图和必要的说明来表示本程序的流程。注释说明本程序中必要的注释。补充说明3.4 三次指数平滑法模块名称.三次指数平滑法功能描述系统需要根据排除异常数据的历史

11、话务数据量(单位:每半小时时间段),通过对数据多维度的挖掘分析,抽取其中蕴含的多种影响因素和其特有的变化规律,建立准确的话务预测模型。此模型能够根据历史话务情况,预测未来某时段内每半小时话务量(单位:每半小时时间段),算法采用三次指数平滑法。接口与属性提示:用专业的设计(开发)工具来设计本模块的接口与属性,说明函数功能、输入参数、输出参数、返回值等。在此处粘贴即可。数据结构与算法三次指数平滑法公式:yt+m=(3yt-3yt+yt)+(6-5a)yt-(10-8a)yt+(4-3a)yt*am/2(1-a) 2+ (yt-2yt+yt)*a2m2/2(1-a)2式中,yt=ayt-1+(1-a

12、)yt-1a 为权数,0a1;算法主要是要求出权数a。a 取值规则:在0a1范围之内,分别求出预测值与实际的均方差最小的a值为算法需要的a值。说明: 一般来说,如果数据波动较大,值应取大一些,可以增加近期数据对预测结果的影响。如果数据波动平稳,值应取小一些。输入项通话历史数据输出项话务预测数据流程用流程图和必要的说明来表示本程序的流程。注释说明本程序中必要的注释。补充说明4 人力预测的模块设计4.1 根据服务水平计算人力模块名称人力资源预测(根据服务水平计算人力)功能描述人力与服务水平换算算法程序,通过该程序能实现根据单位时间内呼叫量、平均通话时长、服务水平目标等待时长和一个可换算参数(服务水

13、平、应答百分比、坐席利用率、平均应答速度)中的一个,作为输入参数,能换算出其他可换算参数的结果。接口与属性数据结构与算法爱尔兰算法公式:输入项话务预测数据,服务水平ServiceL输出项人力数流程注释说明本程序中必要的注释。补充说明4.2 根据应答百分比计算人力模块名称人力资源预测(根据应答百分比计算人力)功能描述人力与服务水平换算算法程序,通过该程序能实现根据单位时间内呼叫量、平均通话时长、服务水平目标等待时长和一个可换算参数(服务水平、应答百分比、坐席利用率、平均应答速度)中的一个,作为输入参数,能换算出其他可换算参数的结果。接口与属性数据结构与算法爱尔兰算法公式:输入项话务预测数据,应答

14、百分比ReplyRate输出项人力数流程注释说明本程序中必要的注释。补充说明4.3 根据坐席利用率计算人力模块名称人力资源预测(根据坐席利用率计算人力)功能描述人力与服务水平换算算法程序,通过该程序能实现根据单位时间内呼叫量、平均通话时长、服务水平目标等待时长和一个可换算参数(服务水平、应答百分比、坐席利用率、平均应答速度)中的一个,作为输入参数,能换算出其他可换算参数的结果。接口与属性数据结构与算法爱尔兰算法公式:输入项话务预测数据,坐席利用率Sit_Rate输出项人力数流程注释说明本程序中必要的注释。补充说明4.4 根据平均应答速度计算人力模块名称人力资源预测(根据平均应答速度计算人力)功

15、能描述人力与服务水平换算算法程序,通过该程序能实现根据单位时间内呼叫量、平均通话时长、服务水平目标等待时长和一个可换算参数(服务水平、应答百分比、坐席利用率、平均应答速度)中的一个,作为输入参数,能换算出其他可换算参数的结果。接口与属性数据结构与算法爱尔兰算法公式:输入项话务预测数据,平均应答速度ASA11输出项人力数流程注释说明本程序中必要的注释。补充说明5 人力转化空班表的模块设计5.1 特殊班次算法模块名称人力转化为空班表(特殊班次算法)功能描述通过该程序能实现根据每半小时的人力需求数及相关的约束配置,来生成一系列最优的班次,并计算这些班次相应的人力数,达到即能满足一天内每半小时的人力需

16、求又能使班次趋向最优的空班表。接口与属性本程序主要有五个类:班次数据类(ClassBean):该类的主要是将输入的班次信息转换为算法所需要的数据类型以及测试时班次信息的输出格式的限定。本类中的函数主要有:预设班次时间转换为算法所需数据类型的静态块、初始化数据函数init、打印班次信息数组的printArray以及重写的toString方法。个体成员类(Individual):该类主要是初始化班次信息。该类中的函数个体成员初始化函数(构造器)种群个体类(Solution):该类主要是种群的初始化、计算算法中所用到的参数的值以及赋值。该类中的函数主要有:构造函数Solution、计算算法所需参数函

17、数calcAll、赋值函数assign。算法核心类(SpecialGa):该类主要是实现遗传算法的类。该类中的函数主要有:处理日期、预设班次信息、初始化个体属性的构造函数SpecialGa、数数据初始化init、种群中个体适应度、违反度计算函数violutionAndFitness、交叉变异个体的选择函数roulettewheel、交叉变异函数crossover、重新选择个体的函数reRoulettewheel、保存计算结果的函数saveBest、参数传入与调用算法函数cale。算法运行主函数类(Main):该类是班次信息的输入输出(输出到Excel表格中)以及算法执行的类。该类函数主要:读取

18、需求人数的静态块、读取Excel文件readExcel、写Excel文件writeExcel。数据结构与算法本程序的实现运用的是遗传算法,通过对用户输入的数据的处理生成种群,再通过种群中个体的适应度与违反度从种群中选出进行交叉、变异的个体放入到交配池中;之后通过概率控制是进行交叉操作还是变异操作;交叉、变异之后重新选择相同数量的个体放入到交配池中。通过设置循环循环上述过程、调整相应的参数知道取得比较好的结果。输入项public static String startDate = 20120401; / 开始日期public static String endDate = 20120430; /

19、 结束日期public static int maxPeopnum = 100; / 最大人力数public static String acrossClass = 22:00-07:00 ; / 跨天班次public static int acrossPeop = 4 ; / 跨天班次人力public static int maxbanciNum = 10; / 结果的最大班次个数public static double halfahourFit = 0.7; / 每半个小时的最大拟合度偏差public static double dayFit = 0.1; / 全天最大拟合度偏差publi

20、c static String teshuBanci = 07:00-16:00, 09:00-18:00; / 预设班次信息public static String manDatas = null; / 需求人力public static String manPath = 人力需求表201204.xls; /需求人力文件路径输出项public static String classPath = 班次信息表.xls; / 班次信息表文件路径public static String fitPath = 拟合度表.xls; / 拟合度表文件路径流程1.班次信息处理:将用户输入的班次转换为以半小时为

21、单位的48个时间点中对应的时间点;2.初始化个体:将种群中每个个体中的班次和人数进行随机初始化;3计算每个个体的适应度与违反度:适应度为加权全天拟合度与单点拟合度的和,违反度为拟合度的违反与坐席数的违反;4.选择:按照设置的概率选择根据适应度还是违反度选择个体进入交配池;4.交叉、变异操作:根据给定的概率(可调参数)选择对交配池中的个体的班次、人数是进行交叉还是变异操作。从而产生新的个体;5.计算子代的适应度与违反度,与3相同;6.重新选择个体进入交配池,选择方法与3相同。7.在对交配池中新的个体进行交叉变异操作同4.,再计算子代的适应度与违反度,判断是否满足结束条件。注:结束条件是子代的代数

22、到达设定的值,程序中给定的是200代内找到最优解结束算法,找不到就循环到10000代注释变量名、函数功能补充说明本模块是特殊班次的排班,其中若班次的设置不合理会影响最终结果,可能会没有最优解。5.2 混合模式算法模块名称人力转化为空班表(混合模式算法)功能描述通过该程序能实现根据每半小时的人力需求数及相关的约束配置,来生成一系列最优的班次,并计算这些班次相应的人力数,达到即能满足一天内每半小时的人力需求又能使班次趋向最优的空班表。接口与属性该模块主要有四个类:个体成员类(Individual):该类主要是初始化班次信息。该类中的函数主要有;初始化班系信息的函数Individual、跨天班次处理

23、函数restTime及处理时间的函数Test。种群个体类(Solution):该类主要是种群的初始化。该类中主要函数式初始化种群个体成员的函数Solution。算法核心类(CompoundGa):该类主要是实现遗传算法的类。该类的函数有:算法中所需中间变量初始化函数CompoundGa、初始化个体函数Initializepop、约束违反度函数violation、适应度函数fitness、选择进行交叉变异个体的函数roulettewheel、交叉变异函数crossover、重新计算子代信息函数reCalculation、子代约束违反度函数sonViolation、适应度函数sonFitness、

24、重新选择个体的函数reRoulettewheel、保存计算结果的函数saveBest、将最后不合法的班次合法化assignClass、调用需求人数upDate、参数传入与调用算法函数cale。算法运行主函数类(Main):该类是班次信息的输入输出(输出到Excel表格中)以及算法执行的类数据结构与算法本程序的实现运用的是遗传算法,通过对用户输入的数据的处理生成种群,再通过种群中个体的适应度与违反度从种群中选出进行交叉、变异的个体放入到交配池中;之后通过概率控制是进行交叉操作还是变异操作;交叉、变异之后重新选择相同数量的个体放入到交配池中。通过设置循环循环上述过程、调整相应的参数知道取得比较好的

25、结果。输入项public static String startData = 2012-02-01;排班的开始日期public static String endData = 2012-02-29;排班的结束日期public static int maxPeopnum = 100; 、最大人力数public static String acrossClass = 21:30-07:00 ;、跨天班次及人数public static int acrossPeop = 5;public static int maxbanciNum = 10;排班结果的最大班次个数public static dou

26、ble halfahourFit = 0.5; / 每半个小时的最大拟合度偏差public static double dayFit = 0.1; / 全天最大拟合度偏差public static String teshuBanci = 08:30-17:30;.班次信息预设班系信息public static String departName = A, B;班系名称public static double departWeight = 0.8 , 0.8 ;班系的权重public static String beginTime = 06:00-10:00 ,07:00-10:30;班系开始时

27、间public static String endTime = 15:00-19:00, 21:30-22:30;班系结束时间public static String workTime = 360-600, 360-840;班系工时范围public static String acrossTime = 00-00, 60-300;班段间隔范围public static String classTime = 360-600, 120-600;=班段时长范围public static String acrossDay = N, N;是否跨天public static int classNum =

28、1, 2, ;班段数public static String manDatas = null; 需求人力 相关输入文件路径public static String manPath = F:/201202.xls; / 需求人力输出项public static String classPath = 班次信息表.xls; / 班次信息表文件路径public static String fitPath = 拟合度表.xls; / 拟合度表文件路径流程1.班系及班次信息处理:将用户输入的班次或班系转换为以半小时为单位的48个时间点中对应的时间点。2.初始化个体:将种群中每个个体中的班次、组合数和人数初

29、始化,随机产生班次、组合数与人数。3.计算种群中个体的适应度与违反度:适应度为加权的全天拟合度与单点拟合度的和;违反度为拟合度违反与班系违反。4.算法的选择操作:计算每个个体的适应度与违反度,按照设置的概率选择根据那个属性选择一定数量的个体进入交配池。5.交叉、变异操作:根据给定的概率(可调参数)选择对交配池中的随机抽取的个体的班次、组合数、人数是进行交叉还是变异操作。从而产生新的个体。6.重新初始化子代与父代个体。7.计算子代的适应度与违反度,同3相同。8.重新选择个体进入交配池,选择方法与3相同。9.在对交配池中新的个体进行交叉变异操作同4.注:1.经过设置子代的代数循环操作4,5,6步,找到最优解2.结束条件是子代的代数到达设定的值,程序中给定的是10000代内找到最优解结束算法注释变量名、函数功能补充说明该模块为混合班次的排班及预设班次的排班,其中若班次的设置不合理会影响最终结果,可能会没有最优解

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号