公司用人最优化方案
A 题:公司用人最优化方案
(第八组 辜贤杰 马启平 李宁)
(指导老师 张胜祥)
摘要:本文首先对题目中一些较模糊的概念进行了符合实际的假设,然后利用线形规划的原理对公司的用人方案进行最优化处理,包括确定(1)招工(2)人员再培训(3)解雇和超员雇用(4)设半日工的方案,分别以解雇人数最少和付出的费用最少为目标建立各自的目标函数和其约束条件,进而利用数学软件lingo 对所建立的模型进行计算,得出最优解,从而确定公司的用人方案,并算出节省费用,包括每年每类岗位所节省的费用。最后本文利用此软件对模型求解,得出了目标1最少解雇人数为870人,最少费用为704000元,比目标1下的方案的费用减少了755400元 。并且对模型的稳定性和灵敏度进行了检验。
一、 问题的重述:
工人可分为不熟练工人、半熟练工人、熟练工人,其中各熟练级别之间可以通过降级使用和再培训进行转化,某公司由于装备了新机器,对此三种工人的需求有所变化,具体内容如题目表1:
表1
为此,公司希望在以下四个方面的用人方案上得到确定:招工、人员再培训、解雇和超员雇用、设半日工的方案。
其中,由于各种原因不满一年和一年后自动离职的人员情况如表2: 表2
同时公司可以招收一定数量的半日工。 从而建立模型以达到以下两个目标: (1) 解雇人数最少的情况下,应该怎样运转? (2) 费用的最少消耗量以及节省费用,并导出每年每类岗位所节省的费用。
二、 问题的分析:
本题属于一定约束条件下的的最优化问题,初步分析题意,我们按照题目要求拟建立解雇人数和总费用两个目标函数的线形规划模型:解雇人数包括三年三种熟练级别的解雇人数与半日工的解雇人数。总费用包括三种级别工人的工资、解雇费、半日工的支付费用、超员雇用的支付费用四项总和。根据题目的要求列出各约束条件,利用数学软件进行整数的最优化运算。
三、 模型的假设
根据题目所给的各种条件和生产中的实际情况,我们可以作出以下假设: (1) 假定培训的时间是长期的,为一年。即在第一年初培训,而在第一年末(或第二年初)使用。 (2) 假定在将工人降级使用时,由熟练工降为半熟练工、由半熟练工降为不熟练工与越级的熟练工降为不熟练工处于同等地位。 (3) 对待半日工的使用假定如下:在使用时按劳力记入,即算作半个普通全日工;对半日工存在着解雇,解雇人数算作一个人。另外,半日工是另外聘用,与原有工人无关。 (4) 根据实际情况,我们对题目中“培训半熟练工成为熟练工,培训一名开支500元;培训人数不能超过所训岗位当时熟练工人数的1/4”理解是培训人数不超过当时岗位所需求人数与该岗位超员雇用人数总和的1/4。 (5) 假定工人脱产培训。 (6) 考虑到工厂的长远发展,第三年我们依然假设还要对工人进行培训。 (7) 所有的用人方案的实施都发生在年初。 (8) 假设半日工的收入包括普通全日工人的年薪的1/2和公司的每年的支出费用。 (9) 该公司各岗位工人的年薪固定不变。
四、 符号的定义及说明:
xij:第i 年雇佣工人数,j
=1表示不熟练工,j =2表示半熟练工,j =3表示熟练工;
aij: 第i 年招收的半日工人数,
示熟练工;
sij: 第i 年超员雇用工人数,
熟练工;
fij: 第i 年解雇的工人数,
练工;
Bij: 第i 年需求的工人数,
练工;
pij: 第i 年培训的工人数,j
j =1表示不熟练工,j =2表示半熟练工,j =3表
j =1表示不熟练工,j =2表示半熟练工,j =3表示
j =1表示不熟练工,j =2表示半熟练工,j =3表示熟j =1表示不熟练工,j =2表示半熟练工,j =3表示熟j =1表示不熟练工,j =2表示半熟练工,j =3表示熟
练工;
faij: 第i 年解雇的半日工人数,
示熟练工;
duij :第i 年降级的工人数,
熟练工;
gi ;表示各熟练级别工人的年薪,j 示熟练工; cij: 自然减员率,i
j =1表示不熟练工,j =2表示半熟练工,j =3表
j =1表示不熟练工,j =2表示半熟练工,j =3表示
=1表示不熟练工,j =2表示半熟练工,j =3表
=1表示工作不满一年人员的自然减员率,i =2表示工作一年以上
人员,的自然减员率;练工;
j =1表示不熟练工,j =2表示半熟练工,j =3表示熟
=0, 1, 2)j =1
nij :表示第i 年共有j 等级工人数,如n 01表示现有不熟练的工人数(i
表示不熟练工,
j =2表示半熟练工,j =3表示熟练工;
j =1表示不熟练工
H ij :在解雇人数最少的情况下,第i 年花费在某岗位上的费用,
岗位,
j =2表示半熟练工岗位,j =3表示熟练工岗位;
j =1表示不熟练工岗位,
T ij :在费用最少的情况下,第i 年花费在某岗位上的费用,
j =2表示半熟练工岗位,j =3表示熟练工岗位;
Q ij :在费用最少的情况下第i 年花费在某岗位上的费用比起在解雇人数最少的情况下
第i 年花费在某岗位上的费用的差值,j 半熟练工岗位,
j =1表示不熟练工岗位,j =2表示
j =3表示熟练工岗位;
Z :表示总费用 Y :表示解雇的总人数
五、 模型的建立与求解:
我们对问题进行了分析后,作出了相应的假设和符号说明,并且根据模型的要求建立了多个约束条件方程与目标函数。
(一)、对于目标1,建立以下的目标函数:
min Y =∑∑f ij +∑∑fa ij
i =1j =1
i =1j =1
3333
按照题目所给的条件,根据实际情况,分析公司第一年对不熟练工的用人计划如下:公司现有不熟练工人为n 01, 其减员率为c 21, 该年招工x 11,其减员率为c 11,培训人员为p 11,将工人降级到不熟练级使用的人员为du 11和du 12,解雇全日工人员为f 11,雇佣半日工为a 11,解雇半日工为fa 11,超雇人员为s 11,而在公司对不熟练工的需求为B 11,由此,得到下面的约束:
(1-c 21) x 11+(1-c 11) n 01+0. 5a 11-s 11-f 11+0. 5du 11+0. 5du 12-p 11=B 11
依次推理我们得到以下的约束表达式:
⎧(1-c 12) x 12+(1-c 22) n 02+0. 5a 12-s 12-f 12+0. 5du 13-du 11-p 12=B 12⎪(1-c ) x +(1-c ) n +0. 5a -s -f -du -du -p =B
[***********]1313⎪
⎪(1-c 11) x 21+(1-c 21) n 11+0. 5a 21-s 21-f 21+0. 5du 21+0. 5du 21+fa 21-p 21=B 21⎪
⎪(1-c 12) x 22+(1-c 22) n 12+0. 5a 22-s 22-f 22-du 21+0. 5du 23+fa 22+p 12-p 22=B 22⎨
⎪(1-c 13) x 23+(1-c 23) n 13+0. 5a 23-s 23-f 23-du 22-du 23+fa 23+p 12=B 23
⎪(1-c 11) x 31+(1-c 21) n 21+0. 5a 31-s 31-f 31+0. 5du 31+0. 5du 32+fa 31-p 31=B 31⎪
⎪1-c 12) x 32+(1-c 21) n 22+0. 5a 32-s 32-f 32-du 31+0. 5du 33+fa 32-p 32+p 21=B 32⎪1-c ) x +(1-c ) n +0. 5a -s -f -du -du +fa +p =B (⎩[***********]332233
⎧2000(i =0, j =1)
⎪1500(i =0, j =2) ⎪
其中 n ij =⎨
⎪1000(i =0, j =3) ⎪⎩B IJ +s ij (i =1, 2; j =1, 2, 3)
考虑到对半日工的解雇不能超过已有的半日工的人数,如对第1年的不熟练半日工的解
雇不能超过第一年工作的不熟练半日工人数和今年招聘的不熟练半日工人数。为此得到以下的约束条件:
⎧fa 11=0⎪fa =0⎪12
⎪fa 13=0⎪
⎪a 11>=fa 21⎪
⎨a 12>=fa 22
⎪a >=fa
23
⎪13
⎪a 21+a 11-fa 21>=fa 31⎪
⎪a 22+a 12-fa 22>=fa 32⎪⎩a 21+a 11-fa 23>=fa 33
同时,根据题目所给的要求,得到以下的约束条件:
⎧3
⎪∑s 1j
⎪∑s 2j
⎪∑s 3j
⎪a ij
⎪x ij
⎪x ij
为此,得到模型的目标函数如下
min Y =∑∑f ij +∑∑fa ij
i =1j =1
i =1j =1
3333
⎧(1-c 21) x 11+(1-c 11) n 01+0. 5a 11-s 11-f 11+0. 5du 11+0. 5du 12-p 11=B 11⎪(1-c ) x +(1-c ) n +0. 5a -s -f +0. 5du -du -p =B
[***********]1212⎪
⎪(1-c 13) x 13+(1-c 23) n 03+0. 5a 13-s 13-f 13-du 13-du 12-p 13=B 13⎪
⎪(1-c 11) x 21+(1-c 21) n 11+0. 5a 21-s 21-f 21+0. 5du 21+0. 5du 21+fa 21-p 21=B 21⎪(1-c ) x +(1-c ) n +0. 5a -s -f -du +0. 5du +fa +p -p =B
[***********]22122222
⎪
⎪(1-c 13) x 23+(1-c 23) n 13+0. 5a 23-s 23-f 23-du 22-du 23+fa 23+p 12=B 23
⎪(1-c ) x +(1-c ) n +0. 5a -s -f +0. 5du +0. 5du +fa -p =B
[***********]313131⎪
⎪1-c 12) x 32+(1-c 21) n 22+0. 5a 32-s 32-f 32-du 31+0. 5du 33+fa 32-p 32+p 21=B 32⎪
⎪1-c 11) x 21+(1-c 21) n 23+0. 5a 33-s 33-f 33-du 32-du 33+fa 33+p 22=B 33⎪fa 11=0⎪
⎪fa 12=0⎪fa =0⎪13
⎪a 11>=fa 21⎪
⎪a 12>=fa 22⎪
ST ⎨a 13>=fa 23
⎪a 21+a 11-fa 21>=fa 31⎪
⎪a 22+a 12-fa 22>=fa 32⎪a +a -fa >=fa
112333
⎪21⎪3
⎪∑s 1j
⎪∑s 2j
⎪∑s 3j
⎪a
⎪x ij
⎪x ij
⎪p ij
根据上面的关系式,在计算机上利用软件LINGO 对上面的模型进行求解,得到问题中
目标1的最优解为
min Y =870
其中
f 11=450, f 21=185, f 31=235,f 12=f 13=f 22=f 23=f 32=f 33=0
fa 11=fa 12=fa 13=fa 21=fa 22=fa 23=fa 31=fa 32=fa 33=0
x 12=405, x 13=30, x 22=590, x 23=200, x 32=800, x 33=500, x 11=x 21=x 31=0
a 13=50, a 23=50, a 22=1,a 33=50,a 11=a 12=a 21=a 31=a 32=0
s 11=150, s 21=150, s 31=150, s 12=s 13=s 22=s 23=s 32=s 33=0
du 13=2, du 23=5
du 11=du 12=du 21=du 22=du 32=du 31=du 33=0
p 11=200, p 12=350, p 21=200, p 22=100, p 31=200, p 32=170
由上述的答案,可以看到被解雇的工人都是不熟练工人(第一年解雇不熟练工人450
人,第二年解雇不熟练工人185人),这符合题目所给的情况—对不熟练的工人的需求相对
减少,证明模型的合理性;同时存在解雇工人,这是由于该公司在第一年,第二年的贸易量相下降,减少了对各类工人的需求量。所雇佣的工人都是熟练工人和半熟练工人,这是因为该公司对熟练和半熟练工人的需求相对增加。由于半日工是另外招聘的,因此将占用各种工种的岗位,这将使得被解雇的员工增多,因此,在最优解中只有在需求增长比较大的熟练工才有雇佣半日工。由于所雇佣的半日工一直在使用,所以解雇半日工为零。在降级方法使用上,只有在第三年的时候,才有把比较多的熟练工降为半熟练工使用,这是因为在第三年的员工需求中,半熟练工的需求是最大。在超员雇佣上,熟练工和半熟练工不存在超员雇佣的情况,这是因为熟练工和半熟练工的需求一直在增长,而不熟练工则是三年都把超员雇佣的名额用满,这是因为不熟练工的需求在不断的下降,到了第三年更是变为零。在人员培训上,公司应该在三年的时间一直进行把不熟练工培训成半熟练工的工作,以求达到减少解雇不熟练工,同时也要进行把半熟练工培训成熟练工的工作,以求满足对熟练工的需求。 综上所述,该公司在未来三年的员工雇佣计划为:
在第一年,解雇不熟练工450人;脱岗培训不熟练工200人,半熟练工人350人;超员雇佣150名不熟练工,多雇佣半熟练工405人,熟练工30人,半日熟练工50人,熟练工降为半熟练工2人;
在第二年,解雇不熟练工185人;脱岗培训不熟练工200人,半熟练工人100人;超员雇佣150名不熟练工,多雇佣半熟练工590人,熟练工200人,半熟练半日工1人,熟练半日工50人,熟练工降为半熟练工5人;
在第三年,解雇不熟练工235人;脱岗培训不熟练工200人,半熟练工人170人;超员雇佣150名不熟练工,多雇佣半熟练工800人,熟练工500人,熟练半日工50人。
根据所得数据,我们描绘出了其中变化比较大的一些数据的年变化曲线图。具体如下。
图
1
图2
图
3
图4
其中,图1表示招聘半熟练工和熟练工的年变化情况,具体如图所示。图2表示解雇不熟练工人的年变化曲线图。图3表示熟练工降为不熟练工的年变化曲线图。图4表示半熟练
工培训人数年变化曲线图。根据对题意所得数据的分析,我们可以发现年变化曲线图是和实际比较吻合的。由此所得的模型和实际还是比较相符的。
在此方案中,根据题目的条件,得到该方案的总费用为
Z =400∑p i 1+500∑p i 2+200∑f i 1+500∑∑f ij
i =1
i =1
i =13
i =1i =23
33333
+1500∑s i 1+2000∑s i 2+3000∑s i 3+500∑a i 1+400∑∑a ij
i =1
i =1
i =1
i =1
i =1j =2
3333
解得
Z=1459400
(二)、对于目标2,因为半日工的收入包括普通全日工人的年薪的1/2和公司的每年的支出费用,所以该公司可用以下函数表示:
3333333‘min Z =∑∑g B +400∑p +500∑p +200∑f +500∑∑f
j ij i 1i 2i 1ij
i =1j =1i =1i =1i =1i =1i =2333333
+1500∑s +2000∑s +3000∑s +500∑a +400∑∑a
i 1i 2i 3i 1ij i =1i =1i =1i =1i =1j =2
显然,
3
3
∑∑g
i =1j =1
j
B ij 为一不变值的常数,因此目标函数可化简为
3
3
3
3
3
min Z =400∑p i 1+500∑p i 2+200∑f i 1+500∑∑f ij
’
i =1
i =1
i =1
i =1i =2
+1500∑s i 1+2000∑s i 2+3000∑s i 3+500∑a i 1+400∑∑a ij
i =1
i =1
i =1
i =1
i =1j =2
333333
⎧(1-c 21) x 11+(1-c 11) n 01+0. 5a 11-s 11-f 11+0. 5du 11+0. 5du 12-p 11=B 11⎪(1-c ) x +(1-c ) n +0. 5a -s -f +0. 5du -du -p =B [***********]1212⎪⎪(1-c 13) x 13+(1-c 23) n 03+0. 5a 13-s 13-f 13-du 13-du 12-p 13=B 13⎪⎪(1-c 11) x 21+(1-c 21) n 11+0. 5a 21-s 21-f 21+0. 5du 21+0. 5du 21+fa 21-p 21=B 21
⎪(1-c ) x +(1-c ) n +0. 5a -s -f -du +0. 5du +fa +p -p =B [***********]22122222⎪⎪(1-c 13) x 23+(1-c 23) n 13+0. 5a 23-s 23-f 23-du 22-du 23+fa 23+p 12=B 23⎪(1-c ) x +(1-c ) n +0. 5a -s -f +0. 5du +0. 5du +fa -p =B [***********]313131⎪⎪1-c 12) x 32+(1-c 21) n 22+0. 5a 32-s 32-f 32-du 31+0. 5du 33+fa 32-p 32+p 21=B 32⎪⎪1-c 11) x 21+(1-c 21) n 23+0. 5a 33-s 33-f 33-du 32-du 33+fa 33+p 22=B 33
⎪fa 11=0⎪⎪fa 12=0
⎪fa =0⎪13
⎪a 11>=fa 21⎪⎪a 12>=fa 22
⎪ST ⎨a 13>=fa 23
⎪a 21+a 11-fa 21>=fa 31⎪⎪a 22+a 12-fa 22>=fa 32
⎪a +a -fa >=fa 112333⎪21
⎪3
⎪∑s 1j
⎪j =1
⎪3
⎪∑s 2j
⎪j =1
⎪3
⎪∑s 3j
⎪a
⎪x ij
⎪⎪p ij
⎪p ij -0. 25*(B ij +s ij )
同样,用LINGO 解得以下最优解
min Z =704000
其中
f 11=600, f 21=200, f 31=450,f 12=f 13=f 22=f 23=f 32=f 33=0
fa 11=fa 12=fa 13=fa 21=fa 22=fa 23=fa 31=fa 32=fa 33=0
x 12=205, x 13=80, x 22=500, x 23=500, x 32=500,
x 33=500, x 11=x 21=x 31=0
a 32=50, a 22=50,a 33=50,a 11=a 12=a 13=a 21=a 23=a 31=0
s 11=s 21=s 31=s 12=s 13=s 22=s 23=s 33=0,s 32=42
du 13=22, du 23=100,
du 11=du 12=du 21=du 22=du 32=du 33=du 31=0
p 11=200, p 12=200, p 21=200, p 22=100, p 31=0, p 32=0
比较目标1下方案的费用和目标2下方案的费用
在目标1中,各个岗位的花费具体如下
第一年,解雇不熟练工的花费为90000,超雇不熟练工的花费为225000,培训不熟练工
的花费为80000,培训半熟练工的花费为175000,聘请熟练半日工的花费为20000,其他的
花费为0。
第二年,解雇不熟练工的花费为37000,培训不熟练工的花费为80000,培训半熟练工的
花费为50000,超雇不熟练工的花费为225000,聘请半熟练半日工的花费为400,聘请熟练
半日工的花费为20000,其他的花费为0。
第三年,解雇不熟练工的花费为47000,培训不熟练工的花费为80000,培训半熟练工的
花费为85000,聘请半日熟练工的花费为20000,超雇不熟练工花费225000,其他花费为0。
目标1的三年花费一共为1459400。
在目标2中,各个岗位的花费具体如下,
第一年,培训不熟练工的花费为80000,培训半熟练工的花费为100000,解雇不熟练工
的花费为120000,其他的花费为0。
第二年,培训不熟练工的花费为80000,培训半熟练工的花费为50000,解雇不熟练工的
花费为40000,招聘半熟练半日工的花费为20000,其他的花费为0。
第三年,解雇不熟练工的花费为90000,超雇半熟练工的花费为84000,招聘半熟练半日
工的花费为20000,招聘熟练半日工的花费为20000,其他的花费为0。
目标2的三年花费一共为704000。
第一年,两方案在不熟练岗位费用的比较
由式子
400p 11+200f 11+1500s 11+500a 11
得到 T 11=20000, H 11=20000
Q 11=H 11-T 11=195000
同理得到:
Q 12=H 12-T 12=75000
Q 13=H 13-T 13=2000 0
Q 21=H 21-T 21=222000
Q 22=H 22-T 22=-19600
Q 23=H 23-T 23=20000
Q 31=H 31-T 31=262000
Q 32=H 32-T 33=-19000
Q 33=H 33-T 33=0
目标1的费用和目标2的费用相比较,目标2比目标1节省了755400。(以上数字的单
位均为元)。
六、 模型的检验:
(一)目标1模型的检验
对目标1建立的模型的求解,我们得到了与实际符合的结果,设计出了合理的用人方案。
下面,对其中的有关参数进行灵敏度分析。
1.对各个变量系数的分析
变量 变量系数 系数可以增加量 系数可以减少量
F11 1.000000 INFINITY 0.1000000
F12 1.000000 INFINITY 1.000000
F13 1.000000 INFINITY 1.000000
F21 1.000000 0.1111111 0.1000000
F22 1.000000 INFINITY 1.000000
F23 1.000000 INFINITY 1.000000
F31 1.000000 0.1111111 1.000000
F32 1.000000 INFINITY 1.000000
F33 1.000000 INFINITY 1.000000
FA21 1.000000 INFINITY 0.5000000
FA22 1.000000 INFINITY 1.000000
FA23 1.000000 INFINITY 1.000000
FA31 1.000000 INFINITY 0.5000000
FA32 1.000000 INFINITY 1.000000
FA33 1.000000 INFINITY 1.000000
X11 0.0 INFINITY 0.7500000
A11 0.0 INFINITY 0.5000000
S11 0.0 0.1000000 INFINITY
DU11 0.0 INFINITY 0.5000000
DU12 0.0 INFINITY 0.5000000
P11 0.0 1.000000 INFINITY
X12 0.0 0.0 0.0
A12 0.0 INFINITY 0.0
S12 0.0 INFINITY 0.1000000
DU13 0.0 INFINITY 0.0
P12 0.0 0.1052632 0.0
X13 0.0 0.0 0.0
A13 0.0 INFINITY 0.0 S13 0.0 INFINITY 0.1000000
X21 0.0 INFINITY 0.7500000 P21 0.0 1.000000 INFINITY A21 0.0 INFINITY 0.5000000 S21 0.0 0.1000000 INFINITY DU21 0.0 INFINITY 0.5000000
DU22 0.0 INFINITY 0.5000000
X22 0.0 0.0 INFINITY P22 0.0 0.0 0.0
A22 0.0 INFINITY 0.0 S22 0.0 INFINITY 0.1000000
DU23 0.0 INFINITY 0.0
X23 0.0 0.0 INFINITY A23 0.0 0.0 INFINITY S23 0.0 INFINITY 0.1000000
X31 0.0 INFINITY 0.7500000 P31 0.0 1.000000 INFINITY A31 0.0 INFINITY 0.5000000 S31 0.0 1.000000 INFINITY DU31 0.0 INFINITY 0.5000000
DU32 0.0 INFINITY 0.5000000
X32 0.0 0.0 INFINITY P32 0.0 0.0 0.0
A32 0.0 INFINITY 0.0 S32 0.0 INFINITY 1.000000
DU33 0.0 0.0 0.0
X33 0.0 0.0 INFINITY A33 0.0 0.0 INFINITY S33 0.0 INFINITY 1.000000
(注:INFINITY 为无穷大)
在上表中,变量列表明了是何变量,变量系数为该变量在目标函数中的系数,系数可
以增加量(系数可以减少量)为该变量系数最多增加(减少)该增加量(减少量),否则模型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变化。如当f 11在目标函数中的系数是1,其系数可以增加无穷大,可以减少0.1。即f 11的系数在区间[0. 9, +∞]变化的时候,模型的最优基将保持不变。
f21,f31的系数的可变区间很小,这表明了解雇不熟练工变化对于最优基的变化影响
比较大,具有较高的灵敏度。P12,p22,p32的系数可变化区间很小,有的甚至为0,这表明了培训半熟练工成为熟练工的工作对于最优基的变化的影响很大。由此,该公司在实施计划的时候,应该做好这两方面的工作。
2.对约束条件右端顶的分析
约束条件 右端顶原值
1 -800.0000
2 -25.00000
3 50.00000
4 -400.0000
5 575.0000
6 550.0000
7 -450.0000
8 670.0000
9 575.0000
10 0.0
11 0.0
12 0.0
13 0.0
14 0.0
15 0.0
16 150.0000
17 150.0000
18 150.0000
19 50.00000
20 50.00000
21 50.00000
22 500.0000
23 800.0000
24 500.0000
25 50.00000
26 50.00000
27 50.00000
28 50.00000
29 50.00000
30 50.00000
31 500.0000
32 800.0000
33 500.0000
34 500.0000 右端顶可增加值 450.0000 590.0000 400.0000 185.0000 165.0000 275.0000 235.0000 252.5000 165.0000 0.0 0.0 0.0 0.0 0.0 50.00000 450.0000 185.0000 235.0000 INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY 100.0000 INFINITY INFINITY 1490.000 INFINITY 293.7500 55.55556 INFINITY 右端顶可减少值 INFINITY 50.00000 50.00000 INFINITY 235.0000 50.00000 INFINITY 372.5000 745.0000 INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY 150.0000 150.0000 150.0000 50.00000 50.00000 50.00000 500.0000 737.5000 444.4444 50.00000 50.00000 50.00000 50.00000 50.00000 50.00000 500.0000 206.2500 305.5556 500.0000
35 800.0000 465.6250 315.6250
36 500.0000 827.7778 183.3333
37 200.0000 235.0000 165.0000
38 200.0000 185.0000 200.0000
39 200.0000 235.0000 200.0000
40 625.0000 INFINITY 372.5000
41 350.0000 INFINITY 275.0000
42 500.0000 INFINITY 235.0000
(注:INFINITY 为无穷大)
在上表中,约束条件列表明了是何条约束式子(化为标准形式),右端顶原值为该约束
条件的等式右端常数项,右端顶原值可以加量(系数可以减少量)为右端顶原值最多增加(减少)量,否则模型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变化。如在约束条件1中,其右端顶原值为-800,其最大增加值为450,最大减少值为无穷,即约束条件的右端顶原值在区间[- ,-350]中变化,其最优基不发生变化。
(二)目标2模型的检验
我们利用目标2的模型求得的费用比起目标1下方案的费用节省了755400元。下面,
对起相关的参数进行分析。
1.对各个变量系数的分析
变量 原系数 可增加最大值 可减少最大值 P11 400.0000 800.0000 INFINITY
P12 500.0000 300.0000 100.0000
P21 400.0000 1800.000 INFINITY P22 500.0000 2184.211 500.0000
P31 400.0000 INFINITY 200.0000
P32 500.0000 INFINITY 2500.000
F11 200.0000 1480.000 200.0000
F12 500.0000 INFINITY 500.0000
F13 500.0000 INFINITY 500.0000
F21 200.0000 0.0 200.0000
F22 500.0000 INFINITY 1500.000
F23 500.0000 INFINITY 1000.000
F31 200.0000 200.0000 0.0
F32 500.0000 INFINITY 2500.000
F33 500.0000 INFINITY 2000.000
S11 1500.000 INFINITY 1480.000
S21 1500.000 INFINITY 1480.000
S31 1500.000 INFINITY 1300.000
S12 2000.000 INFINITY 1050.000
S22 2000.000 INFINITY 1100.000
S32 2000.000 1000.000 1200.000
S13 3000.000 INFINITY 2525.000
S23 3000.000 INFINITY 2075.000
S33 3000.000 INFINITY 4500.000
A11 500.0000 INFINITY 500.0000 A21 500.0000 INFINITY 500.0000 A31 500.0000 INFINITY 600.0000 A12 400.0000 INFINITY 400.0000 A22 400.0000 100.0000 INFINITY A32 400.0000 600.0000 INFINITY A13 400.0000 INFINITY 250.0000 A23 400.0000 250.0000 150.0000
A33 400.0000 350.0000 INFINITY X11 0.0 INFINITY 150.0000 DU11 0.0 INFINITY 100.0000 DU12 0.0 INFINITY 100.0000 X12 0.0 0.0 80.00000
DU13 0.0 INFINITY 0.0
X13 0.0 450.0000 0.0
X21 0.0 INFINITY 150.0000 FA21 0.0 INFINITY 0.0 DU21 0.0 INFINITY 1100.000 DU22 0.0 INFINITY 600.0000 X22 0.0 800.0000 INFINITY FA22 0.0 INFINITY 500.0000 DU23 0.0 552.6316 100.0000
X23 0.0 450.0000 INFINITY FA23 0.0 INFINITY 250.0000 X31 0.0 INFINITY 150.0000 FA31 0.0 0.0 500.0000
DU31 0.0 INFINITY 2100.000 DU32 0.0 INFINITY 1600.000 X32 0.0 1600.000 INFINITY FA32 0.0 INFINITY 1000.000 DU33 0.0 INFINITY 500.0000 X33 0.0 1350.000 INFINITY FA33 0.0 INFINITY 900.0000 (注:INFINITY 为无穷大,表的意义类似于上面的其他两个表。)
在上面的表中,我们得到了在保持最优基不变的情况下,各个变量在系数的可变区间。
比较得到以x 12为最小,其区间为[0,80]。这证明了该模型具有很好的稳定性。
2.对约束条件右端顶的分析
约束条件 右端顶原值 右端顶可增加值 右端顶可减少值
1 -800.0000 600.0000 INFINITY
2 -25.00000 225.0000 175.0000
3 50.00000 400.0000 50.00000
4 -400.0000 200.0000 INFINITY
5 575.0000 75.00000 50.00000
6 550.0000 150.0000 175.0000
7 -450.0000 450.0000 INFINITY 8 667.0000 108.0000 42.00000
9 575.0000 75.00000 50.00000
10 0.0 0.0 INFINITY 11 0.0 0.0 INFINITY 12 0.0 0.0 INFINITY 13 0.0 0.0 0.0
14 0.0 50.00000 INFINITY
15 0.0
16 150.0000
17 150.0000
18 150.0000
19 50.00000
20 50.00000
21 50.00000
22 800.0000
23 500.0000
24 800.0000
25 50.00000
26 50.00000
27 50.00000
28 50.00000
29 50.00000
30 50.00000
31 800.0000
32 500.0000
33 800.0000
34 800.0000
35 500.0000
36 800.0000
37 200.0000
38 200.0000
39 350.0000
40 250.0000
41 0.0
42 0.0
43 0.0
44 0.0
45 0.0
46 0.0
47 150.0000
48 150.0000
49 150.0000 50.00000 INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY 0.0 0.0 INFINITY 62.50000 INFINITY INFINITY 52.50000 INFINITY 0.0 0.0 INFINITY INFINITY 0.0 0.0 0.0 0.0 50.00000 0.0 INFINITY INFINITY INFINITY 0.0 150.0000 150.0000 108.0000 50.00000 50.00000 50.00000 800.0000 281.2500 744.4444 50.00000 0.0 50.00000 50.00000 50.00000 50.00000 800.0000 93.75000 300.0000 800.0000 135.0000 300.0000 75.00000 108.0000 150.0000 150.0000 INFINITY INFINITY INFINITY INFINITY INFINITY INFINITY 150.0000 150.0000 108.0000
50 50.00000 INFINITY 50.00000 51 50.00000 INFINITY 50.00000 52 50.00000 INFINITY 50.00000 53 500.0000 INFINITY 500.0000 54 800.0000 INFINITY 581.2500 55 500.0000 INFINITY 444.4444 56 50.00000 INFINITY 50.00000 57 50.00000 0.0 50.00000
58 50.00000 INFINITY 50.00000 59 50.00000 INFINITY 50.00000 60 50.00000 INFINITY 0.0 61 50.00000 INFINITY 0.0 62 500.0000 INFINITY 500.0000 63 800.0000 INFINITY 300.0000 64 500.0000 194.4444 166.6667
65 500.0000 INFINITY 500.0000 66 800.0000 INFINITY 300.0000 67 500.0000 55.55556 83.33333
68 200.0000 INFINITY 0.0 69 200.0000 INFINITY 0.0 70 200.0000 INFINITY 200.0000 71 625.0000 INFINITY 635.5000 72 350.0000 INFINITY 150.0000 73 500.0000 INFINITY 400.0000
在上表中,约束条件列表明了是何条约束式子(化为标准形式),右端顶原值为该约束
条件的等式右端常数项,右端顶原值可以加量(系数可以减少量)为右端顶原值最多增加(减少)量,否则模型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变化。如在约束条件1中,其右端顶原值为-800,其最大增加值为600,最大减少值为无穷,即约束条件的右端顶原值在区间[- ,-200]中变化,其最优基不发生变化。通过计算,得到了14,42,43,44,45约束式的右端顶原值不能小于零,尤其14约束式的右端顶原值只能为零。而14约束式为a21+a11-fa21 -fa31>=0,这是符合实际的。42,43,44,45,约束式请查看附录程序
七、 模型的推广:
本模型根据实际情况和题意,建立了公司雇佣员工的模型,充分考虑雇佣中出现的各种情况(招工,再培训,工人降级使用,解雇,超员解雇,半日工的问题),并且讨论了解雇人员最少和费用最少的两种情况以及在这两情况中的最佳雇佣方案。本模型适用一般的线性规划问题。如果能够得到公司长期的员工需求数据,该模型可以扩展成一个适用于长期规划的模型。如果能够得到该公司中一年中各个月的员工需求情况数据,那该模型可以把雇佣计划细致到每月,并且考虑同一岗位雇佣和解雇的时间差对于用人计划的影响,使模型具有更加具体的操作性。
八、 模型的评价及改进:
优点:
1、 本模型的假设考虑到了公司的长远发展,使得此模型有利于推广。
2、 本模型正确地处理了半日工的使用和地位问题,使其更符合实际。
3、 在计算模型的解时,我们利用了专业的最优化数学软件lingo ,并分析其灵敏度。
缺点:
由于题目限制,本模型有其运用范围的局限性,不适宜设计多年的用人方案, 因为长期的各种数据无法得到,不能形成一个指导多年用人的计划。
改进:
搜集长期的人力资源数据,形成一个周期性的适用于长期规划的模型。
搜集每月的人力资源数据,形成一个具有较强操作性的规划的模型。
参考文献:
[1] 汪国强编。数学建模优秀案例选编。广州:华南理工大学出版社,2001
[2] 施光燕、董加礼编。最优化方法。北京:高等教育出版社,2003
[3] 姜启源、谢金星、叶俊编。数学模型(第三版)。北京:高等教育出版社,2004
[4] 胡运权编。运筹学教程(第二版)。北京:清华大学出版社,2003
附录
目标1的lingo 程序:
min=f11+f12+f13+f21+f22+f23+f31+f32+f33+fa21+fa22+fa23+fa31+fa32+fa33; 0.75*x11+0.5*a11-s11-f11+0.5*du11+0.5*du12-p11=-800;
0.8*x12+0.5*a12-s12-f12-du11+0.5*du13-p12=-25;
0.9*x13+0.5*a13-s13-f13-du12-du13=50;
0.75*x21-p21+0.5*a21-s21-f21-0.5*fa21+0.5*du21+0.5*du22+0.9*s11=-400;
0.8*x22-p22+p11+0.5*a22-s22-f22-0.5*fa22-du21+0.5*du23+0.95*s12=575;
0.9*x23+p12+0.5*a23-s23-f23-0.5*fa23-du22-du23+0.95*s13=550;
0.75*x31-p31+0.5*a31-s31-f31-0.5*fa31+0.5*du31+0.5*du32+0.9*s21=-450;
0.8*x32+p21-p32+0.5*a32+s32-f32-0.5*fa32-du31+0.5*du33+0.95*s22=670;
0.9*x33+p22+0.5*a33-s33-f33-0.5*fa33-du32-du33+0.95*s23=575;
a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31;
a22+a12-fa22>=fa32;
a23+a13-fa23>=fa33;
s11+s12+s13
s21+s22+s23
s31+s32+s33
a11
a12
x11
x12
x13
a21
a22
a23
a31
a32
a33
x21
x22
x23
x31
x32
x33
p11
p21
p31
p32-0.25*(2500+s32)
p12-0.25*(1400+s12)
p22-0.25*(2000+s22)
@gin(f11);
@gin(f12);
@gin(f13);
@gin(f21);
@gin(f22);
@gin(f23);
@gin(f31);
@gin(f32);
@gin(f33);
@gin(fa11);
@gin(fa12);
@gin(fa13);
@gin(fa21);
@gin(fa22);
@gin(fa23);
@gin(fa31);
@gin(fa32);
@gin(fa33);
@gin(a11);
@gin(a12);
@gin(a13);
@gin(a21);
@gin(a23);
@gin(a31);
@gin(a32);
@gin(a33);
@gin(x11);
@gin(x12);
@gin(x13);
@gin(x21);
@gin(x22);
@gin(x23);
@gin(x31);
@gin(x32);
@gin(x33);
@gin(s11);
@gin(s12);
@gin(s13);
@gin(s21);
@gin(s22);
@gin(s23);
@gin(s31);
@gin(s32);
@gin(s33);
@gin(p11);
@gin(p12);
@gin(p21);
@gin(p22);
@gin(p31);
@gin(p32);
@gin(du11);
@gin(du12);
@gin(du13);
@gin(du21);
@gin(du22);
@gin(du23);
@gin(du31);
@gin(du32);
@gin(du33);
end
gin 58;
目标2的lingo 程序:
min=400*p11+500*p12+400*p21+500*p22+400*p31++500*p32+200*f11+500*(f12+f13)+200*f21+500*(f22+f23)+200*f31+500*(f32+f33)+1500*(s11+s21+s31)+2000*(s12+s22+s32)+3000*(
s13+s23+s33)+500*(a11+a21+a31)+400*(a12+a22+a32+a13+a23+a33); 0.75*x11+0.5*a11-s11-f11+0.5*du11+0.5*du12-p11=-800;
0.8*x12+0.5*a12-s12-f12-du11+0.5*du13-p12=-25;
0.9*x13+0.5*a13-s13-f13-du12-du13=50;
0.75*x21-p21+0.5*a21-s21-f21-0.5*fa21+0.5*du21+0.5*du22+0.9*s11=-400; 0.8*x22-p22+p11+0.5*a22-s22-f22-0.5*fa22-du21+0.5*du23+0.95*s12=575; 0.9*x23+p12+0.5*a23-s23-f23-0.5*fa23-du22-du23+0.95*s13=550;
0.75*x31-p31+0.5*a31-s31-f31-0.5*fa31+0.5*du31+0.5*du32+0.9*s21=-450; 0.8*x32+p21-p32+0.5*a32+s32-f32-0.5*fa32-du31+0.5*du33+0.95*s22=667; 0.9*x33+p22+0.5*a33-s33-f33-0.5*fa33-du32-du33+0.95*s23=575; a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31;
a22+a12-fa12>=fa32;
a23+a13-fa13>=fa33;
s11+s12+s13
s21+s22+s23
s31+s32+s33
a11
a12
a13
x11
x12
x13
a21
a22
a23
a31
a32
a33
x21
x22
x23
x31
x32
x33
p11
p21
p12-0.25*(1400+s12)
p22-0.25*(1000+s22)
a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31; a22+a12-fa22>=fa32; a23+a13-fa23>=fa33; s11+s12+s13
a12
a13
x11
x12
x13
a21
a22
a23
a31
a32
a33
x21
x22
x23
x31
x32
x33
p21
p31
p32-0.25*(2500+s32)
fa12=0;
fa13=0;
@gin(f11);
@gin(f12);
@gin(f13);
@gin(f21);
@gin(f22);
@gin(f23);
@gin(f31);
@gin(f32);
@gin(f33);
@gin(fa11);
@gin(fa12);
@gin(fa21); @gin(fa22); @gin(fa23); @gin(fa31); @gin(fa32); @gin(fa33); @gin(a11); @gin(a12); @gin(a13); @gin(a21); @gin(a22); @gin(a23); @gin(a31); @gin(a32); @gin(a33); @gin(x11); @gin(x12); @gin(x13); @gin(x21); @gin(x22); @gin(x23); @gin(x31); @gin(x32); @gin(x33); @gin(s11); @gin(s12); @gin(s13); @gin(s21); @gin(s22); @gin(s23); @gin(s31); @gin(s32); @gin(s33); @gin(p11); @gin(p12); @gin(p21); @gin(p22); @gin(p31); @gin(p32); @gin(du11); @gin(du12); @gin(du13); @gin(du21);
@gin(du23); @gin(du31); @gin(du32); @gin(du33); end gin 58;