油库人员优化配置.docx
摘要本文主要讨论了油库管理人员的分配问题,通过分析每项工作岗位的工作时间、次数以及上岗人数等数据,并运用了MATLAB软件对数据进行处理,得出了人员分配的最优方案。模型一:我们将模型理想化,假设每月为30天建立时间序列,构造出工作和时间相关的人员分配矩阵,以各组人数最少为目标建立目标函数: min建立人员配置的整数规划模型并使用MAYLAB软件求解,得到各类工作人员配置最优方案: A类需要4人平均工作量为64.5,B类需要24人平均工作量为20.5,C类需要29人平均工作量为67.5,D类需要39人平均工作量为170.3,E类需要47人平均工作量为170.3。总共需要人数最少为143人,平均工作量为111。模型二:在模型一的基础上,讨论了工作专职专人的因素对人员分配的约束,重新进行人员的分配,将CD进行归类统一处理,结合问题一建立整数规划模型,得出人员配置最优方案:求解得到C、D类工作至少需要65人,平均工作量为105.8,总共需要人数最少为141人,平均工作量为113。模型三:通过模型二的讨论,在ABCD 类可以相互兼职的情况下,再次进行人员的配置,建立了问题三的数学模型,求解得A、B、C、D四类工作最少需要员工人数为72人,平均工作量为105.96,总共需要人数最少为112人,平均工作量为131的最优人员分配方案。模型四:通过层次分析法对前三个问所得的结果进行分析,综合人员数量、平均培训时间、均衡度等因素,在油库的人员配置、管理水平和运行效率方面提出合理化建议。关键字:人员优化配置 整数规划 层次分析法 MATLAB软件 一、问题重述油库是储存、供应油料及油料装备的重要机构。由于油料是一种易燃、易爆、易挥发、易渗漏,并有一定腐蚀作用的物质。因此,一个油库管理工作要保证正常的运行,必须要设置计量与质量检测管理、收发油料管理、装备维护与维修管理、安全保障管理、服务保障管理等相关的岗位和人员配制。某油库现有不同功能、不同规格的大小储油罐80 个,储油量达16 万立方米以上,年收发油量达7000 多立方米,工作任务十分繁重。根据实际需要按工种分类,油库的工作岗位可以分为大类:(A)计量与质量检测管理;(B)收发油料管理;(C)设备维护与维修管理;(D)安全保障管理;(E)服务保障管理。由于油库工作的性质要求,每一大类都包括若干个具体的工作岗位,每个岗位都需要数量不等的人员和工作量,附表给出了各类工作岗位、所需要的人员数量和全年的工作量。通常油库的所有人员在保障油库正常运行的条件下,还要参加必要的军事训练和业务学习等活动,所以实际要求每个人全年累积从事油库管理相关工作的总工作量不超过175 天(每天按小时计算),除节假日外,其他时间用于军事训练和业务学习等活动。现在我们研究解决下列问题:()根据油库正常的工作任务需要,如果要求(A)、(B)、(C)和(D)类人员都配专职,同类中的各工作岗位人员可以兼职。那么各类工作岗位最少需要配制多少人员?平均年工作量是多少?()考虑到人员和编制的问题,有关部门提出除了(A)、(B)两大类专业性较强的工作专职专人外,(C)、(D)两大类在时间允许的情况下可以相互兼职。那么这个油库最少需要多少人员才能保证油库的正常运行?并说明各类人员的年总工作量为多少?()如果油库的所有人员都经过了专业的培训,每个人都能从事(A)、(B)、(C)和(D)类中的任何一项工作,每一个岗位都不设专职人员,那么在时间允许的情况下,最少需要多少人员能够保证油库的正常运行?并说明各类人员的年总工作量为多少?()你对该油库的岗位和人员的配置、提高油库的管理水平和运行效率等方面有什么合理化建议。二问题分析根据题目得知, 零发油的相关的任务依赖于设备操作,故这些岗位所需人员数固定不变,也必须同时在岗,又由于零发油的时间是不确定的,所以我们在员工配置中将零发油操作相关人员闲置,即在配置过程中不予考虑。针对问题一二三:以各组人数最少为目标函数,把握人员工作时间、次数,建立人员最优配置的整数规划模型,使用MATLAB 软件求解。针对问题四:通过问题一二三得到的结果,利用层次分析法进行综合分析比较,结合多个因素,对油库的人员配置、管理水平和运行效率方面提出合理化建议。三、基本假设1. 假设一个月有30天,一月一日为周一,一年52个周。2. 假定员工上岗期间无意外情况发生,被安排的工作均能够正常完成。3. 假设工作持续执行期间,员工数不任意变动。四、 变量符号说明:该类工作所需人数;:第x 类工作的工作总量; :所有工作的工作总量;:一年中第j天;:第i 项工作在一年中第j天的在岗人数;:第x 类工作的年平均工作量;:表示第i个因素对第j个因素的比较结果;:人员配置满意度的评价。五、 模型建立与求解5.1问题一的模型建立与求解:员工的分配与工作的效率,工作的时间相关。根据油库正常的工作任务需要,如果将A、B、C 和D 四类人员都配专职,同类中的各工作岗位人员可以兼职。即说明员工在某一类工作中,只要工作时间不冲突,以及个人工作量限定在一定范围内可相互兼职,以使得每一类的工作人员达到最少最优。而在工作进行过程中,该大类工作中会遇到多项具体工作同时进行,此时所需的工作人员将会累加。本文将一年365天全部列出用表示其中某一天,得到一时间序列:假设某大类有m项具体工作,现以 表示各大类工作中的第i 项具体工作在时刻的在岗人数,建立该大类人员数量分配矩阵Y。问题要求解出各类工作岗位最优配制员工数,为此,本文确立目标函数如下:Min 根据题设条件,通常油库的所有人员在保障油库正常运行的条件下,还要参加必要的军事训练和业务学习等活动,所以实际要求每个人全年累积从事油库管理关工作的总工作量不超过175 天,故有约束条件如下:综上所述,结合题目所给信息,我们针对问题一中A类工作建立以下目标函数及约束条件: Min 根据对上述所得的矩阵及所列的目标函数与约束条件,使用MATLAB编程求解(编程见附录2),得到如下结果:A类工作的员工数为4人平均工作量为64.5。对于B类工作,从题目表格中我们了解到,工作B4,B5,B6均为零发油操作,因为工作时间不确定,为了使油库正常运行,对于工作B4,B5,B6我们将其所需要的员工人数预置出来。考虑到B1,B2的工作时间均为0.5天且为同种工作,我们在此假设B1工作人员在半天内完成工作后利用另外半天完成工作B2,则。根据题中给出的B类工作的信息及建立的模型,确定B类工作的目标函数及约束条件如下:Min +7根据对上述所得的矩阵及所列的目标函数与约束条件,使用MATLAB编程求解(编程见附录3),得到如下结果:B类工作的员工数为24人平均工作量为20.5。对于C类工作,根据题中所给信息,工作C2 零发油工作时间不确定,为了使油库正常运行,将工作C2 所需员工人数预置出来。根据题给信息及建立的模型,针对C类工作确定如下目标函数及约束条件:Min +2根据对上述所得的矩阵及所列的目标函数与约束条件,使用MATLAB编程求解(程序见附录4),得到如下结果:C类工作的员工数为29人平均工作量为67.5。分析题目信息,根据D类数据得,工作D2 零发油工作时间不确定,为了使油库正常运行,我们将工作D2 所需员工人数预置出来。根据题给信息及建立的模型,确定目标函数及约束条件如下:Min +1根据对上述所得的矩阵及所列的目标函数与约束条件分析,并使用MATLAB进行求解(程序见附录5),得到结果如下:D类工作的员工数为39人平均工作量为126.1795。关于E类工作,由于是全专职工作,即只要每个员工的工作量不大于175即可,本文列出了解决函数:根据上述函数,将题给数据代入求得为5人,为9人,为17人。通过上述的求解,得出油库的除伙食服务保障外所需的员工数为127人,根据题给要求可以计算出所需人数为16人。A,B,C,D,E五类工作所需人数与平均工作时间见下表1。表1:同类中的各工作岗位人员可以兼职时人员分配工作岗位类别ABCDE人数424293947平均工作时间64.520.567.5126.2170.3总人数147总平均工作时间1115.3问题二的模型建立与求解问题二中考虑到人员和编制的问题,有关部门提出除了(A)、(B)两大类专业性较强的工作专职专人外,(C)、(D)两大类在时间允许的情况下可以相互兼职。因此,问题二中A、B两类工作求解答案同问题一,对于C、D类工作,由于工作C2,D2零发油工作时间不确定,为了使油库正常运行,与问题一做同样处理,将工作C2,D2所需员工人数预置出来。然后根据题中所给信息及建立的模型,确定如下目标函数及约束条件:Min +2根据对上述所得的矩阵及所列的目标函数与约束条件,使用MATLAB编程求解(程序见附录6),如下得到结果:C、D类工作的员工数为65人平均工作量为105.8。E类工作所需员工求解方法同问题一,结果为:47人。表2C、D在可以相互兼职时的人员分配工作岗位类别ABC DE人数4246547平均工作时间64.520.5105.8170.3总人数144总平均工作时间113.35.4、问题三的模型建立与求解如果油库的所有人员都经过了专业的培训,每个人都能从事(A)、(B)、(C)和(D)类中的任何一项工作,每一个岗位都不设专职人员。由于工作B4,B5,B6,C2,D2零发油工作时间不确定,为了使油库正常运行,我们仍将工作B4,B5,B6,C2,D2所需员工人数予以预置出处理。分析题目信息,根据题目中所给A、B、C、D四类工作数据,针对问题三确定如下目标函数及约束条件:Min +15 根据对上述所得的矩阵及所列的目标函数与约束条件,使用MATLAB编程进行求解(程序见附录7),得到结果如下:A、B、C、D类工作的员工数总共为72人平均工作量为105.96。问题二中AB求解答案同问题一,E类问题求解方法同问题一结果为:40人。表3 C、D在可以相互兼职时的人员分配工作岗位类别A B C DE人数7240平均工作时间105.9156.6总人数119总平均工作时间1315.5问题四的模型建立与求解及建议 首先我们将前三个问题的研究结果以及平均工作时间进行了列表(见下表4),表4各方案人员分配总汇岗位类别人数平均工作时间总人数平均总工作时间平均培训时间均衡度方案一A464.5143111.013058.6B2420.5C2967.5D39126.2E47170.3方案二A464.514111312863.7B2420.5C D65105.8E47170.3方案三A B C D72105.911213111045.5E47170.3其次以油库的人员配置、管理水平和运行效率三个方面为主要因素应用层次分析法比较各个因素的影响程度。(1) 建立层次结构模型:第一层为目标层,即满意度;第二层为准则层,即人员数量、平均培训时间、均衡度;第三层为方案层,即方案一 、方案二、方案三。目标层准则层决策层方案1方案2方案3方案4人员配置满意度均衡度人员数量平均培训时间图2 (2)构造对比矩阵:用表示第i个因素对第j个因素的比较结果,则=1/ 。即A为成对比较矩阵,比较尺度如表5。尺度为2,4表示第i个因素与第j个因素的影响介于上述两个相邻等级之间。第二层A的各因素对目标层Z的影响两两比较结果如表6:即A的对比矩阵为:表5尺度含义1第i个因素与第j个因素的影响相同3第i个因素与第j个因素的影响稍强5第i个因素与第j个因素的影响明强表6 ZA1A2A3A115/35A25/313A31/51/31(3)计算单排序权向量及检验一致性原则:利用matlab编程求得其特征值3.0,利用matlab编程求得其特征向量 W=(0.8372,0.5207,0.1674 )。计算一致性指标: 又,=3 所以则A为一致阵。特征向量经归一化处理,得到权向量W=(0.5489,0.3414,0.1097 )。(4)人员配置满意度经过分析可知:人员配置满意度与人员的多少人员数量,均衡度成反相关,与平均培训时间成正相关,故对人员配置满意度的评价为:= w1*1/xi1+w2*xi2+w3*1/xi3;i=1,2,3= = (0.9418,0.9333,0.9720 );总筹上述的三个因素与表4,通过对各个方案人员配置满意度进行分析,我们给出了一下建议:(1)对于岗位与人员配置方面,在工作员工数需求的高峰阶段,建议调整些工作的起始时间,使每一天的工作量趋于平衡。(2)对于提高管理水平与运行效率方面,通过多途径增加员工的业务学习时间。(3)对于依赖于设备操作导致的岗位所需人员数固定不变这一问题,考虑改良设备,使人员配置更具灵活性。(4)各员工应相互协调分配工作量,使工作量趋于平衡。(5)对于各大类中某些工作的相似程度较高,冗余程度较大,故可考虑精简冗余机构,使人数配置得到适当的减少。(6)加强对员工的培训使他们掌握更多的技能,能够胜任多种工作。六模型评价6.1.1模型的优缺点(1)模型对所有情况都进行了认真的考虑与计算,得到的结果精确度较高,不存在漏掉最优解的可能。(2)所建立的模型适用性强,能够顺利解决全部问题的。(3)由于建立矩阵时将一年分开成每天进行考虑,导致模型繁琐,数据众多,模型的计算量大。(4)由于假设每月30天且一月一日为星期一,导致模型结果准确度不够,要解决实际问题还要带入真实日历。七参考文献1 王秋萍.数学建模讲义J.西安理工大学.2009.2 张兴永.MATLAB 软件与数学实验M.徐州:中国矿业大学出版社.2007.3 黄延祝、成孝予.线性代数与空间解析几何.北京:高等教育出版社,2008八 附录附录一、油库大类岗位、需要人员及年工作量工作岗位类别工作岗位代号工作岗位名称工作岗位的年工作量备注 (A)计量与质量检测管理A1月计量检测12次×2人×2天/次每月25日开始A2半年计量检测2次×2人×2天/次每年6、12月1日开始A3储油质量检验6次×2人×15天/次每单月15日开始A4全面检测2次×2人×2.5天/次每年1、7月10日开始A5收油计量检测6次×2人×0.5天/次每双月10日A6收油质量检验6次×2人×0.5天/次每双月10日(B)收发油料管理B1收油操作6次×16人×0.5天/次每双月10日B2收油操作6次×6人×0.5天/次每双月10日B3收油操作6次×1人×1天/次每双月10日B4零发油操作120次×5人×0.5天/次平均每年120次B5零发油操作120次×1人×0.5天/次平均每年120次B6零发油操作120次×1人×0.5天/次平均每年120次(C)设备维护与维修管理C1收油设备维护值班6次×2人×1天/次每双月10日C2零发油设备维护值班120次×2人×0.5天/次平均每年120次C3常规维护保养1次×12人×30天/次每年12月1日开始C4设备日常维护保养104次×12人×1天/次每周一、周五进行C5常用设备维护保养12次×3人×4天/次每月15日开始C6安全设备维护保养6次×2人×4天/次每单月20日开始C7配电设备维护保养26次×2人×0.5天/次每年双周的周三进行(D)安全保障管理D1收油消防值班6次×6人×1天/次每双月10日D2零发油消防值班120次×6人×0.5天/次平均每年120次D3消防设施维护52次×6人×1.5天/次每周一开始D4消防车辆维护52次×6人×0.5天/次每周一进行D5日常安全检查与维护183次×20人×1天/次每两天次D6油库环境保养与卫生241次×1人×1天/次除节假日外每天次(E)服务保障管理E1伙食服务保障员额每15人编制人全专职E2医疗服务保障2人/天全专职E3车辆服务保障4人/天全专职E4警卫服务保障8人/天全专职说明:(1)年工作量格式:次×人×天/次,表示该项任务每年要执行×次,“至少需要×人”同时执行,每次×人需要连续工作z天。()有些任务人数越多执行时间越短,即若每次由×人执行,则每次需要执行时间为×天。但与收油和零发油的相关任务依赖于设备操作,这些岗位所需人员数固定不变,也必须同时在岗,而且零发油的时间是不确定的。附录二、周一周二周三周四周五周六周日一月123456789101112131415161718192021222324252627282930二月123456789101112131415161718192021222324252627282930三月123456789101112131415161718192021222324252627282930四月123456789101112131415161718192021222324252627282930五月123456789101112131415161718192021222324252627282930六月123456789101112131415161718192021222324252627282930七月123456789101112131415161718192021222324252627282930八月123456789101112131415161718192021222324252627282930九月123456789101112131415161718192021222324252627282930十月123456789101112131415161718192021222324252627282930十一月123456789101112131415161718192021222324252627282930十二月123456789101112131415161718192021222324252627282930附录三、问题一A类工作matlab程序:clear;clc;A=zeros(6,365);for i=1:12 A(1,25+30*i-30)=2; A(1,25+30*i-30+1)=2;endA(2,5*30:5*30+1)=2;A(2,11*30:11*30+1)=2;for i=1:6 A(3,(2*i-2)*30+15:(2*i-2)*30+15+15)=2;endA(4,10:13)=2;A(4,6*30+10:6*30+13)=2;for i=1:6 A(5,(i*2-1)*30+10)=2;endfor i=1:6 A(6,(i*2-1)*30+10)=2;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B);m=ceil(12*2*2+2*2*2+6*2*15+2*2*2.5+6*2*0.5*2)/175);if M>m Z=M;else Z=m;endZaw=(12*2*2+2*2*2+6*2*15+2*2*2.5+2*6*2*0.5)/Z %平均工作量运行结果:Z = 4aw =64.5000附录四:问题一B类工作matlab编程及求解:clear;clc;A=zeros(6,365);for i=1:6 A(1,(i*2-1)*30+10)=16;endfor i=1:6 A(3,(i*2-1)*30+10)=1;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B)+7aw=(16*6*0.5+6*6*0.5+6*1*1+120*5*0.5+120*1*0.5+120*1*0.5)/M %平均工作量运行结果:M = 24aw = 20.5000附录五:问题一C类工作matlab程序:clear;clc;A=zeros(7,365);for i=1:6 A(1,(i*2-1)*30+10)=2;endA(3,11*30+1:11*30+30)=12;for i=1:52 A(4,7*i-7+1)=12; A(4,7*i-7+5)=12;endfor i=1:12 A(5,15+30*i-30:15+30*i-30+4)=3;endfor i=1:6 %D A(6,(2*i-2)*30+20:(2*i-2)*30+20+4)=2;endfor i=1:26 A(7,14*i-7+3)=2;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B)+2aw=(6*2*1+120*2*0.5+1*12*30+104*12*1+12*3*4+6*2*4+26*2*0.5)/M %平均工作量运行结果:M = 29aw = 67.5172附录六:问题一D类工作matlab程序:clear;clc;A=zeros(7,365);for i=1:6 A(1,(i*2-1)*30+10)=6;endfor i=1:52 A(3,7*i-7+1:7*i-7+2)=6;endfor i=1:52 A(4,7*i-7+1)=6;endfor i=1:183 A(5,2*i-1)=20;endfor i=1:52 A(6,7*i-7+1:7*i-7+5)=1;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B)+6aw=(6*6*1+120*6*0.5+52*6*1.5+52*6*0.5+183*20*1+241*1*1)/M %平均工作量运行结果:M = 39aw =126.1795附录七:问题二C、D类工作matlab程序:clear;clc;A=zeros(12,365);for i=1:6 A(1,(i*2-1)*30+10)=2;endA(3,11*30+1:11*30+30)=12;for i=1:52 A(4,7*i-7+1)=12; A(4,7*i-7+5)=12;endfor i=1:12 A(5,15+30*i-30:15+30*i-30+4)=3;endfor i=1:6 %D A(6,(2*i-2)*30+20:(2*i-2)*30+20+4)=2;endfor i=1:26 A(7,14*i-7+3)=2;endfor i=1:6 A(8,(i*2-1)*30+10)=6;endfor i=1:52 A(9,7*i-7+1:7*i-7+2)=6;endfor i=1:52 A(10,7*i-7+1)=6;endfor i=1:183 A(11,2*i-1)=20;endfor i=1:52 A(12,7*i-7+1:7*i-7+5)=1;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B)+8aw=(6*2*1+120*2*0.5+1*12*30+104*12*1+12*3*4+6*2*4+26*2*0.5+6*6*1+120*6*0.5+52*6*1.5+52*6*0.5+183*20*1+241*1*1)/M %平均工作量运行结果:M = 65aw = 105.8308附录八:问题一三A、B、C、D类工作matlab程序:clear;clc;A=zeros(12,365);for i=1:6 A(1,(i*2-1)*30+10)=2;endA(3,11*30+1:11*30+30)=12;for i=1:52 A(4,7*i-7+1)=12; A(4,7*i-7+5)=12;endfor i=1:12 A(5,15+30*i-30:15+30*i-30+4)=3;endfor i=1:6 %D A(6,(2*i-2)*30+20:(2*i-2)*30+20+4)=2;endfor i=1:26 A(7,14*i-7+3)=2;endfor i=1:6 A(8,(i*2-1)*30+10)=6;endfor i=1:52 A(9,7*i-7+1:7*i-7+2)=6;endfor i=1:52 A(10,7*i-7+1)=6;endfor i=1:183 A(11,2*i-1)=20;endfor i=1:52 A(12,7*i-7+1:7*i-7+5)=1;endfor i=1:365 B(i)=sum(A(:,i);endM=max(B)+8aw=(6*2*1+120*2*0.5+1*12*30+104*12*1+12*3*4+6*2*4+26*2*0.5+6*6*1+120*6*0.5+52*6*1.5+52*6*0.5+183*20*1+241*1*1)/M %平均工作量运行结果:M = 65aw = 105.830820