井冈山大学2010年“井冈杯”数学建模竞赛论文题目:软件公司人力资源规划模型参赛队员:班级:数学08本(1)班姓名:赵愈旭班级:数学08本(1)班姓名:吴德龙班级:医工08本(1)班姓名:郭俊2010年4月25日1软件公司人力资源规划模型摘要本文要解决的是一个典软件公司人力资源规划的实际问题。在公司要求的不同目标前提下,给出了不同的公司人力资源规划方案。本文针对软件公司人力资源变动的结构性特征,分析了公司人力流动问题的特点,考虑公司内外部环境带来的不确定因素,基于不同的公司目标,通过引入合理的假设,了解公司人力资源规划的各种途径,挖掘相关约束条件,运用线性规划的优化思想和方法,建立了软件公司人力资源规划模型,并应用MATLAB优化工具箱对模型求解,最终得出了一组符合公司目的的最优解。对于问题一,为了尽量减少辞退员工,我们充分利用公司内部职员,不进行额外招聘、不招临时工,而且要尽量不从公司外招聘职员。最终得出第一年程序员、高级程序员、系统分析员的招聘人数分别为0、0、0,培训人数分别为20、25、0;第二年招聘人数分别为0、77、49,培训人数分别为20、18、0;第三年招聘人数分别为0、71、50,培训人数分别为20、21、0。对于问题二,目的是尽量减少费用,我们把额外招聘和临时工考虑在内。把减少费用认为是减少额外费用,而额外费用的构成主要有培训费、辞退费、额外招聘附加费、临时工的工资。最终得出三年来辞退员工人数为156人;相对于第一种方案,辞退员工人数增加了74人;总费用为458000元,相对于第一种方案,费用减少了320000元。【关键词】:线性规划人力资源规划模型MATLAB优化工具箱2一问题描述软件公司有以下三种工作岗位:程序员、高级程序员和系统分析员。公司目前已经拥有一批工作一年以上的职员,通过对未来三年的工作量预测得到了未来几年的各类职员的需求表格(如下表)。类别程序员高级程序员系统分析员当前拥有200150100第一年100140100第二年50200150第三年0250200表1当前拥有的各类职员数量及后三年需要的数量(人)为满足这些需求,公司可以考虑以下四种人事变动途径:(1)招聘职员;(2)培训职员;(3)辞退多余职员(4)用临时工。公司出于对不同公司目标的前提下,提出问题:问题一:如果公司的目标是尽量减少辞退职员。提出相应的招聘和培训计划。问题二:如果公司的政策是尽量减少费用,则额外费用和辞退的职员人数将会怎样变化。二问题分析软件公司为了满足公司职员的需要,将考虑一下四种途径:招聘职员、培训职员、辞退职员、招临时工。然而由于软件人才具有流动性强的特点,每年都会存在员工自然跳槽的事件发生。公司可与根据职员的发展潜力而对职员进行培训,也可以把一些能力不足的职员进行将等处理,而对于那些能力太差的职员,公司将采取辞退职员的措施。由于员工跳槽具有随机性,所以公司可以在任意时刻针对员工跳槽后采取额外招聘来填充缺少的职员。对于问题一,公司的目的是尽量减少辞退公司职员。而我们先分析三类职员在未来几年的需求情况:程序员逐年减少,高级程序员、系统分析员具有逐年增加的趋势。公司为了减少辞退职员,也就是说三类职员中辞退的职员总数应该取最小值。而为了达到公司的目的,就应该充分利用公司内部职员,不进行额外招聘、不招临时工,而且要尽量不从公司外招聘职员。对于某一个岗位来说,原有的职员中会有职员进行跳槽,在招进来的新人中也有一些人会跳槽,同时,公司会对一些比较有发展潜力的职员进行培训,同样,公司也可能对一些职员进行降等处理和辞退处理。正是有了这些人事变动才构成了这一岗位职员人数的变化。此时对于每一类职员,都有这样一个数量关系:前一年的所有职员中除去跳槽的人数+招聘的新人中除去跳槽的人数-本级培训到上一级职员的人数+下一级职员培训到本级的人数-辞退职员的人数-本级降等到下一级的职员人数+上一级降等到本级的职员人数=下一年的总工作职员数。而有一些岗位上的人事变动是有一定限制的。公司根据未来几年工作量的预测而设置的一些条件,比如:需求量限制,招聘限制,培训限制。还有一些是隐含的限制条件,比如:辞退和降等的人数不能超过原有岗位人数,所有参与人事3变动的岗位都必须至少为0.通过对问题的目标函数和约束条件的挖掘,便可以得出问题一的尽量减少辞退员工方案模型。对于问题二,公司的目的是尽量减少费用,此时不再考虑职员的多少,最终目标是尽可能减少费用。为达到这样的目的,我们可以把额外招聘和临时工考虑在内。而减少费用也可以认为是减少额外费用,而额外费用的构成主要有培训费、辞退费、额外招聘附加费、临时工的工资。相对于问题一来说,问题二增加了额外招聘和临时工两个岗位,目标函数和约束条件也需要做相应的改变。此时对于每一个岗位上的职员来说,都有这样一个数量关系:前一年所有职员中除去跳槽的人数+招聘的新人中除去跳槽的人数-本级培训到上一级职员的人数+下一级职员培训到本级的人数-辞退职员的人数-本级降等到下一级的职员人数+上一级降等到本级的职员人数+额外招聘中除去跳槽的职员人数+临时工人数=下一年的总工作人数。同样,在某些岗位上的人事变动也是有一定限制的。第一种是公司根据未来几年工作量的预测而设置的一些条件,比如:需求量限制,招聘限制,培训限制,额外招聘限制、临时工招聘限制等。第二种是隐含的限制条件,比如:辞退和降等的人数不能超过原有岗位人数,所有参与人事变动的岗位都必须至少为0.通过对问题二的目标函数和约束条件的挖掘,便可以得出问题二的尽量减少费用方案模型。三问题假设1、初始状态假定。将当前拥有员工状况认定是为第一年拥有员工的起始状态,对以后两年采取相同的方式处理。2、工资假定。假定公司对未来三年的人才需求量是根据对工作量多少的预期而参照制定的;公司新招聘的各类员工(包括正常招聘和额外招聘)与工作一年以上的员工的基本年薪相同。3、招聘、辞退计划假定。公司的年度招聘、辞退计划时间是相对固定,不能随意变动(额外招聘除外)。比如招聘计划可采取分年度的年初招聘方式,也可以采用分季(月)度的季(月)初招聘新员工。同样,辞退多余职工而采取的辞退计划将随着招聘计划的改变而改变。4、跳槽假定。公司所有的员工都有可能跳槽,但临时工除外。5、培训假定。假定公司对员工的培训时间在一年中的可以忽略不计;假定公司培训员工计划也是相对固定的;根据企业的不同追求目标,培训员工计划与降等使用员工计划这一对相矛盾的人事变动方案在一年中不能同时出现。6、降等假定。假定公司降等使用员工是为满足因员工的随机跳槽,而采用的一种人事变动措施;假定公司对降等使用的员工和辞退的员工都是工作一年以上的员工,招聘的新人不参与降等;在对系统分析员的降等使用中,公司不会安排越两级降等使用,即降系统分析员可以降为高级程序员使用,却不能降为程序员。7、额外招聘假定。额外招聘是为应对因员工的随机跳槽,而采取弥补职位空缺的一种方式,这一举措与公司相对固定的招聘计划时期不同,即额外招聘与正常招聘不产生冲突。说明:以上各种假设在本文中都适用。4四符号说明ix1:计划招聘职员数ix2:培训员工数ix3:辞退员工数ix4:额外招聘员工数ix5:招用临时员工数ix6:跳槽员工数ix7:降等使用员工数)3,2,1(级程序员、系统分析员时分别表示程序员、高i)(nM:第n年程序员的人数)(nN:第n年高级程序员的人数)(nK:第n年系统分析员的人数)2,1,0(年时分别表示初始年及第nn)(1xF:公司目标为尽量减少辞退职员时的辞退员工总数之和)(1xY:公司目标为尽量减少辞退职员时的额外费用之和)(2xF:公司目标为尽量减少费用时的辞退员工总数之和)(2xY:公司目标为尽量减少费用时的额外费用之和五模型建立1、尽量减少辞退员工方案通过对问题的分析,为达到公司关于尽量减少辞退员工的目的,充分挖掘约束条件,得出以下目标函数与约束条件。目标函数为:min333231xxx约束条件为:5)(73)(72)(33)(32)(31)(2221131211)1(73332213)()1(737232222112)()1(72312111)(0,0;0,0,0;410,200;500,800,500;%)101(%)51(;%50%)201(%)51(;%50%)251(%)101(..nnnnnnnnnnnnKxNxKxNxMxKxxxxxKxxxxKNxxxxxxNMxxxxMts招聘人员为:131211xxx;培训人员为:2221xx;辞退员工数为:3332311)(xxxxF;辞退的额外总费用为:50005000200050004000)(33323122211xxxxxxY;2、尽量减少费用方案通过对问题的分析,为达到公司关于尽量减少费用的目的,充分挖掘约束条件,得出以下目标函数与约束条件。目标函数为:50005000200050004000)(min33323122212xxxxxxY400040005000300002000015000535251434241xxxxxx约束条件为:;0,0;50,50,50;150,150,150;0,0,0410,200;500,800,500150;%)101(%)101(%)51(;%)201(%50%)201(%)51(;%)251(%50%)251(%)101(..)(73)(72535251434241)(33)(32)(31)(2221131211434241)1(534373332213)(15242737232222112)(1514172312111)(nnnnnnnnnnnnKxNxxxxxxxKxNxMxKxxxxxxxxKxxxxxxKNxxxxxxxxNMxxxxxxMts;;)()(6辞退员工数为:3332311)(xxxxF;额外费用为:50005000200050004000)(33323122212xxxxxxY400040005000300002000015000535251434241xxxxxx六模型求解1、尽量减少辞退员工方案模型求解把所得的模型化成标准形式:TxxxxxxxF),,)(1,1,1()(min33323133323110,,,;,;,,;41,20;50,80,50;95.09.0;95.05.08.0;9.05.075.0..7321)(73)(72)(33)(32)(31)(2221131211)()1(73332213)()1(737232222112)()1(72312111iiiinnnnnnnnnnnnxxxxKxNxKxNxMxKxxxxxKKxxxxNNxxxxxxMMxxxxts应用MATLAB优化工具箱对上式进行求解(软件程序见附录),可以建立线性规划问题的计算结果(表1)。人数i=1i=2i=3程序员高级程序员系统分析员n=0n=1n=2n=0n=1n=2n=0n=1n=2ix1招聘000077.115271.1152048.798249.8536ix2培训2020202518.302621.1526———ix3辞退63.7520.000025.0000000000ix4额外招聘—————————ix5临时工—————————ix7降等———7.500207.22108.5208表1(注:表中横杆表示不考虑的情况,下同)72、尽量减少费用方案模型求解