人力资源安排问题陶学明 应 俊 郑 洁摘要:在这个“PE公司”合理分配人力资源使得公司每天投资收益最大的问题中,我们利用题目中所 提供的公司人员结构及工资情况、不同项目和各种人员的收费标准、各项目对专业技术人员结构的 要求这些约束条件,建立了一个具有广泛适用性的人力资源安排的线形整数规划(见第3 页),并根 据“每天直接收益最大”的原则,在这些约束条件下解得:(单位:人)ABCD高级工程师1521工程师6362助理工程师2521技术贝1310每天直接总收益27150 元我们利用LINDO的API函数LMsolvem,在MATLAB中计算(见第6页),并利用著名概率统 计学软件SAS对上述结果进行验证(见第6页)之后我们用LINDO和SAS对灵敏度分析的强大功能,对模型的最优解作了合理的分析(见第 10 页),分别讨论了收费和工资的变化以及项目对人员数目的不同,上述最优解仍然适用的变化区 间最后我们对该模型进行了推广,通过对推广模型的目标函数的价值系数,约束条件的右端向量 进行了扩展依次分析了在不同价值系数和右端向量时最优解及最优基的变化,使得该模型解决实 际问题,更具有可信性和可用性 (见第11页)关键词:整数规划 LINDO SAS 灵敏度分析一、问题提出与分析“PE 公司”现有4类共41个专业技术人员,各级别专业技术人员有着不同级别的日工资标准。
目前,公司承接有4个工程项目,其中2项是现场施工监理,分别在A地和B地,主要工作在现场 完成;另外2项是工程设计,分别在C地和D地,主要工作在办公室完成由于4个项目来源于不 同客户,并且工作的难易程度不一,因此,各项目的合同对有关技术人员的收费标准不同,为保证工程质量,各项目中必须保证专业人员结构符合客户的要求我们从题目中的表3可以 看到,各项目对专业技术人员结构的具体需求,而各项目客户对总人数都有限制且C、D项目需 每人每天50元的额外开支4个项目最多需要人数是10+16+11 + 18=55,多于公司现有人数41 人因此要求通过建立合理的数学模型,来合理分配现有的人力资源使公司每天的直接收益最大 对此模型进行适当的推广,可以作为今后论证人力资源的分配的合理性提供重要依据二、模型假设(1) 假设全国物价水平不在短时间内发生剧烈变化以排除各种工程材料成本的剧烈波动2) 假设4个工程同时进行,项目用人是同时输出的3) 不考虑各专业技术人员因病、事假原因而不能工作4) 不考虑天气、地震等外界因素对项目工程的影响从而不影响工程进度而影响公司的收益5) 假设在一段时间内,各专业技术人员的收费和工资不发生变化,保持相对稳定。
6) 在一段时间内,公司不会再增加和减少各专业技术人员的人数7) 假设各专业技术人员在短期内,不会因为考证及评比职称而晋级8) 本级别的专业技术人员能从事比他级别低的技术人员的工作,不能从事比他级别高的技术人 员的工作9) 公司发放的工资按技术人员的级别来划分,同一级别工资相同不考虑奖金、分红等额外收 、人益10) 在某天中,某技术人员未分配到工作,但公司还是要发放该员工该天的工资三、符号说明xy 第i类技术人员被派往第j个工程项目的人数b' 公司付给第i类技术人员的工资i 第j项目付给每个第i类专业技术人员的费用Q ――――――公司每天的直接的收益n. 公司第i类技术人员的总人数im. 第j个项目所需技术人员的最大总人数L; u.. 分别表示第j个项目对第i类技术人员的总人数要求的下限和上限ij ijM ――――――公司拥有的技术人员的总人数H. 第i类项目所需技术人员的总人数iR. 公司参加第j个项目的每个专业技术人员的额外开支P 专业技术人员的结构数目(一共有多少个级别)q ――――――项目总个数H ――――――所有工程项目所需人员的总人数其中:i =1、2……p j = 1 、 2„„ q四、模型的建立由本题目所给的条件,来合理分配现有的技术力量使公司每天的直接收益最大,而人数的分配 又是基于整数规划的。
于是我们根据所给条件,建立以下的模型:max Q 二i=1 j=1wxij ij-Xnb —工(R Yx )i i j iji j=1 i=1l < x < uij ij ijXx < nij i j=1Xx < mij ji=1XX x < M ij j =1 i =1Xq x < Hij ij=1Xp Hi < Hi=1x为整数,x > 0ij ij(1)为使公司直接收益最大,我们对是否应尽可能多地派出技术人员,进行了以下论证:证明:设公司派第i类技术人员到第j个项目中收费为W..,公司应向i类技术人员每人每天应付b.,公 ij i司派往第j类项目每人所需的额外开销为R,则公司每人每天可收益为w.-R.-b.,j ij j i公司每天的直接收益为:Q = XX (w —R )x —Xn bij J ij i ii=1 j=1 i对上式进行分析,X nb为一个常数,通常w -R > 0i i ij JiXX (w — R )x — X n bij J ij i ii=1 j =1 i=X{(w — R )x + + (w — R )x + +(w — R )x } — Xn bi1 1 i1 ij j ij iq q iq i ii =1 i>另{(w — R )x + + (w — R )(x — 1) + +(w — R )x }一另n bi1 1 i1 ij j ij iq q iq i ii=1 在符合项目结构需求的情况下叫-R「q>0尽可能多地派出技术人员,则公司的直接收益最大。
2)对于第i类技术人员从事比第i类技术水平更低的工作的合理性分析:■定理1在第i类技术人员的需求三第i类技术人员的总人数时,第i类技术人员从事比第i 类技术水平更低的工作是不合理的:证明:假设第i类比第i'类技术层次高,即第i类技术人员可从事第i类技术人员从事的工作在第j 个项目工程中,第i类技术人员的日工资为b.,第i'类技术人员的日工资为b.',项目付给第i类技术 ii人员的费用时w.,而第i'类技术人员的费用为w.'若第i类技术人员从事第i类技术人员所分配的 ii任务,则公司收益为Q.=w.—b.若第i类技术人员从事第i'类技术人员的工作,则公司收益i i iQ.'=w.'—b.,则△ Q=Q—Q.'= w.—w.'i i i i i i i由实际可知,高一层的技术人员的收费一般高于低层技术人员则△ Q>0,所以高层技术人员 从事低层技术人员的工作不能满足公司每天直接收益最大的目的■定理2:在第i类技术人员的需求<第i类技术人员的个数时,第i类技术人员从事比第i类 技术水平更低的工作是合理的:证明:第i类技术人员干第i'类技术人员的工作,则项目是按第i'类技术人员的支付标准向公司付费的, 即第i类技术人员的费用为w'。
iYK (w -R )x 一另n bij J ij i ii=1 j=1 i=Y{(w - R )x + + (w ' - R )x + + (w - R )x } 一另n bi1 1 i1 ij j ij iq q iq i ii =1 i bij j ij=1现以变量d.+表示该约束条件的正偏差(和称盈变量),以变量d.—表示该约束条件的负偏差(或称方 ii变量),对所有变量仍然有非负性的要求即令d + A max{Y a x - b ,0}i ij j ij=1d-Amax{b -Ya x ,0}i i ij jj=1于是该约束条件可表示为Y ax -d + + d- = bij j i i jj=1显然,一对偏差变量d+和di-不可能同时大于零,即总有d+・d = 0,由于引进了偏差变量,使i i i i得所有约束条件均为等式方程组。
并且易知,此时可行解总是存在这就克服了当可行域为空集时 无法用线性规划进行处理的困难,从而更有利于我们求解该模型通过题目中给出的定量数值,我们依据前面的符号说明定义为:ABCD高级工程师XXXX11121314工程师XXXX21222324助理工程师XXXX31323334技术贝XXXX —41 1 —42 1 —43 1 —44 1利用前面建立的模型,及引入的偏差变量,可方便地解出该目标规划问题:Max750x +1250x +1000x +700x +600x +600x +650x +550x +430x +530x +480x +480x +11 12 13 14 21 22 23 24 31 32 33 34390x +490x +240x +340x41 42 43 441 < X115 32 5 X12 5 5 x13=21 5x1452X21 - 2X22 = 2X23 - 225x2458X31 - 2X32 2 2X33 2 x3421 x4121 x4223 x4321X44 = °x11+x21+x31+x41510 x12+x22+x32+x42516 x13+x23+x33+x43511 x14+x24+x34+x44518 x11+x12+x13+x1459 x21+x22+x23+x24517 x31+x32+x33+x34510 x41+x42+x43+x4455X11+X12+X13+X14+ X21+X22+X23+X24+ X31+X32+X33+X34 +X41+X42+X43+X44 - 41 X•为非负整数(其中匸1,2, 3, 4;戸],2, 3, 4)这是一个比较典型的整数规划,而在MATLAB中,没有现成的整数规划工具函数,因此,我们 充分利用运筹学最为著名的软件LINDO和MATLAB强大的计算功能,将MATLAB外接LINDO程 序,即利用LINDO的API函数求解。
我们利用解整数规划函数完整形式是: [x,y,s,dj,pobj,solstat] = LMsolvem(A,b,c,csense,l,u,vtype, QCrows,QCvar1,QCvar2,QCcoef,objsen,solver,verbose) 其中 x: 最优解;y: 对偶最优解(影子价格);s: 原问题的松弛变量;dj: 对偶问题的松弛变量; pobj: 最优目标值;solstat: 程序求解结束状态.于是我们利用这个函数在MATLAB中计算(具体程序见附录1)MATLAB的运行结果如下:x =[ 1 5 2 1 6 36225211310]'y =[ 0 0 0 500 00000001000 1000 1000 300 5050 100 026011040 0 -200100 -440]'s =[ 0 -2 -3 0 0-1 -4-1 -40 -60 -300000000-14 0 0 00000]'dj =[ 0 0 0 0 0 00 00 0 000000]'obj = -27150solstat = 2故解的结果如下表:(单位:人)ABCD高级工程师1521工程师6362助理工程师2521技术贝1310每天直接总收益27150 元由于MATLAB软件是利用LINDO的API函数来计算,故其误差范围和不确定度不够精细,因 此我们利用世界上的著名的概率统计学数学软件SAS来进一步求证MATLAB计算出的结果,通过 SAS的计算我们得到与MATLAB(LINDO)所解得的结果相一致。
具体程序见附录2)SAS 结果如下:L I N E A R P R O G R A M M I N G P R O C E D U R EVARIABLE SUMMARYInteger Optimal SolutionObjective value 27150.000Variable Col Name Status TypePriceActivityReduced Cost1X1BASIC INTEGER7501.0000000.0000002X2BASIC INTEGER12505.0000000.0000003X3BASIC INTEGER10002.0000000.0000004X4BASIC INTEGER7001.0000000.0000005X5BASIC INTEGER6006.0000000.0000006X6BASIC INTEGER6003.0000000.0000007X7BASIC INTEGER6506.0000000.0000008X8BASIC INTEGER5502.0000000.0000009 X9BASICINTEGER4302.0000000.00000010 X10BASICINTEGER5305.0000000.00000011 X11BASICINTEGER4802.0000000.00000012 X12BASICINTEGER4801.0000000.00000013 X13BASICINTEGER3901.0000000.00000014 X14BASICINTEGER4903.0000000.00000015 X15BASICINTEGER2401.0000000.00000016 X16INTEGER3400.000000-150.00017 con1DEGENSURPLUS0.0000000.00000018 con2BASICSURPLUS2.0000000.00000019 con3BASICSURPLUS3.0000000.00000020 con4SURPLUS0.000000-500.00021 con5SURPLUS0.000000-50.00000022 con6BASICSURPLUS1.0000000.00000023 con7BASICSURPLUS4.0000000.00000024 con8BASICSURPLUS1.0000000.00000025 con9BASICSURPLUS4.0000000.00000026 con10SURPLUS0.000000-50.00000027 con11BASICSURPLUS6.0000000.00000028 con12SURPLUS0.000000-100.00000029 con13BASICSURPLUS3.0000000.00000030 con14SURPLUS0.000000-100.00000031 con15SURPLUS0.000000-50.00000032 con16SURPLUS0.000000-100.00000033 con17DEGENSURPLUS0.0000000.00000034 con18SURPLUS0.000000-300.00035 con19DEGENSURPLUS0.0000000.00000036 con20ALTERSURPLUS0.0000000.00000037 con21SURPLUS0.000000-50.00000038 con22BASICSURPLUS14.0000000.00000039 con23SURPLUS0.000000-260.00040 con24SURPLUS0.000000-110.00041 con25SURPLUS0.000000-40.00000042 con26DEGENSURPLUS0.0000000.000000其结果与在 MATLAB 运行的结果一致,故最优解与最优值准确。
六、结果的分析与检验我们可以看到目标函数max Z=CTXs.t. Ax、Bx > 0当讨论线性整数规划时,从C., A.., B.等均看成常数,但实际上这些数据可能是评估得到的数i ij i 据,不是绝对不变的因此有必要分析以下这些数据发生波动时,对目前的最优解和最优值会产生 什么影响,即为灵敏度分析于是我们充分利用LINDO及SAS中对灵敏度分析的强大功能依次对我们产生的最优解x.和最.优值 Q 进行了分析一)在LINDO下运行的程序后结果为:(LINDO程序见附录3):LP OPTIMUM FOUND AT STEP 27 OBJECTIVE FUNCTION VALUE1)VARIABLEX11X21X31X41X12X22X32X42X13X23X33X43X14X24X34X4427150.00VALUE1.0000006.0000002.0000001.0000005.0000003.0000005.0000003.0000002.0000006.0000002.0000001.0000001.0000002.0000001.0000000.000000REDUCED COST0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000150.000000ROW SLACK OR SURPLUSDUAL PRICES2)0.0000003)2.0000004)3.0000005)0.0000006)0.0000007)0.0000008)1.0000009)4.00000010)1.00000011)4.00000012)0.00000013)6.00000014)0.00000015)3.00000016)0.00000017)0.00000018)0.00000019)0.00000020)0.00000021)0.00000022)0.000000-500.0000000.0000000.0000000.000000 -300.000000 -550.0000000.0000000.0000000.0000000.000000-50.0000000.000000 -100.0000000.000000-100.000000-50.000000-100.0000000.000000-300.0000000.0000000.00000023)0.0000000.00000024)0.00000050.00000025)14.0000000.00000026)0.000000490.00000027)0.000000760.00000028)0.000000110.00000029)0.00000040.00000030)0.0000000.000000NO. ITERATIONS= 27RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX11750.000000500.000000INFINITYX21600.000000INFINITY0.000000X31430.000000100.000000INFINITYX41390.000000100.000000INFINITYX121250.000000INFINITY500.000000X22600.0000000.00000050.000000X32530.000000INFINITY40.000000X42490.00000040.000000100.000000X131000.000000INFINITYINFINITYX23650.000000INFINITY50.000000X33480.000000100.000000INFINITYX43240.000000300.000000INFINITYX14700.000000550.000000INFINITYX24550.00000050.000000INFINITYX34480.00000050.000000INFINITYX44340.000000150.000000INFINITYRIGHTHAND SIDE RANGESROWCURRENTRHSALLOWABLEINCREASEALLOWABLEDECREASE21.0000002.0000000.00000033.000000INFINITY2.00000042.0000003.000000INFINITY55.000000INFINITY0.00000062.0000003.0000000.00000071.0000001.0000000.00000082.000000INFINITY1.00000092.0000004.000000INFINITY102.0000001.000000INFINITY112.0000004.000000INFINITY122.0000001.0000000.000000138.000000INFINITY6.000000142.0000003.0000001.000000152.0000003.000000INFINITY162.0000003.0000001.000000171.0000003.0000000.000000181.0000000.0000001.000000193.0000000.000000INFINITY201.0000000.0000001.000000210.0000000.0000000.0000002210.0000001.0000000.0000002316.000000INFINITY0.0000002411.0000001.0000000.0000002518.000000INFINITY14.0000002641.0000000.0000000.000000279.0000000.0000000.0000002817.0000000.0000000.0000002910.0000000.0000000.000000305.000000INFINITY0.000000我们可以通过以上的数据可以得到以下的分析结果:(1) 对于“SLACK or SURPLUS”给出松弛变量或剩余变量的值和“reduces cost”列出的检验数, 表示当变量有微小变动时,目标函数的变化率。
我们可以看到基变量的“educed cost”的值 显然为0;对于非基变量x.,相应的reduced cost的值表示当x.每增加一个单位(此时假定ii其他非基变量保持不变)时目标函数值减小的量,而在本次计算中,最为唯一非基变量的 X44,若X44增加(当前为0),则目标函数会减小,则将不会为最大值2) 而在实际中由于各项技术人员的收费和日工资不断会变化,即导致了我们目标函数中C的变 化,因此当 C. 发生一定范围波动,若最优值和最优解不变,则该解很稳定,从而最优解真.实可信,有一定的应用价值我们通过处理上述数值计算得到x..价值系数C..的变化范围,.j .j在这个变化范围内,最优基保持不变(此时最优解的值也不变,但最优值可能要变) (计算 方法是:current RHS — allowable decreasevCijvcurrent RHS+ allowable increase)C11C21C31C41C12C22C32C42[0,1250][600,+ g ][0,530][0,490][750,+ g ][550,600][490,+ g ][390,530]JC23C33C43C14C24C345[0,+ g ][600,+ g ][0,580][0,540][0,1250][0,600][0,530][0,490]而对于约束条件由于实际问题中也可能对公司各技术人员人数的变化,各项目每天要求对专业 人员结构略有变动,从而导致人员分配的重新安排。
那么对于该情况下,该模型已计算出的最优解 是否依然能应用,也作了分析计算,由表“ighthand side ranges”可能得出各约束条件在该范围变化 下,其目标函数的最优解仍不变, (计算方法是: current code-allowable decrease
2)而当只是外界环境原因导致成本的增减,那么只要在我们计算的结果C..范围内我们的最优解.jx..仍为最优的二)在 SAS 中也进行了灵敏度(见附录 4)的分析:结果中包含:变量编号(col),变量名(name)0 = 0 min时价值系数(price),进基变量(Entering)和最优目标函数值(objective)0 = 0 max时价值系数(price),进基变量(Entering)和最优目标函数值(objective)在X.对应的价值系数变化范围为(MinPhi price,MaxPhi price),而松弛变量coni它们的变化范围为 (coni. Minprice, coni,Max.price)的情况下,最优基不变七、模型推广和评价对于未知的各种经费的情况下,而公司拥有的总人数可能大于或小于需求人数的时候,我们同 样可以利用这个思路和方法来求解,即:max Q - 另区(w +枷)x -2Lnb -工(R +0r'.)Yx ) ij ij ij i i j j iji=1 j=1 i j=1 i=1s.t.l < x < uij ij ij为 x < n +0 rij i ni j=1X x < m + 0 rij j mi i=1< M+ 0 rMXqijj=1< H + 0 ri HiXp H < H+ 0 riHi=1x为整数,x > 0ij iji=l、2……pj=i、2 q当不同右端向量变化时,只要在SAS程序中添加相应的右端向量变化值,不变化的向量为零 当价值变量变化时,可以在SAS程序的尾部添加语句“price r^princesen”即可灵敏度分析和变化范围分析使检查问题中C和B整个向量或各个分量的摄动对最优解的影响。
我们通过约束条件的右端向量的变化(b+Q r),可以看到根据实际情况,我们给定摄动向量r,则 右端向量可以在2 i ,(P ]之间变化,(其他变量不变的情况下),该问题的最优解基不发生变化, min max使得解具有一定的广泛的适用性运用LINDO或SAS来求解,并通过其灵敏度的分析来检验求得的可行解的适用性由此我们 可以看到,这个模型能很广泛的应用于各种情况下(包括各项人才人数,项目需求人数,一级各种 费用的变化)都十分合适,并能经受过一定的灵敏度分析后,能得到在一个较大变化范围内最优解 保持稳定,这正是实际日常工作所需要的,故该模型较好,并有很大的适用性八、参考文献[1] 倪勤, SAS 最优化软件速成,北京:科学出版社, 2000[2] 《数学模型》编写组,数学模型,广州:华南理工大学出版社, 2001[3] 何坚勇,运筹学基础,北京:清华大学出版社, 2000[4] 赵静 但琦,数学建模与数学实验,北京:高等教育出版社, 2000。