A 题:公司用人最优化方案
(第八组 辜贤杰 马启平 李宁)
(指导老师 张胜祥)
摘要:本文首先对题目中一些较模糊的概念进行了符合实际的假设,然后利用线形规划
的原理对公司的用人方案进行最优化处理,包括确定(1)招工(2)人员再培训(3)解雇
和超员雇用(4)设半日工的方案,分别以解雇人数最少和付出的费用最少为目标建立各自
的目标函数和其约束条件,进而利用数学软件 lingo 对所建立的模型进行计算,得出最优解,
从而确定公司的用人方案,并算出节省费用,包括每年每类岗位所节省的费用。最后本文利
用此软件对模型求解,得出了目标 1 最少解雇人数为 870 人,最少费用为 704000 元,比目
标 1 下的方案的费用减少了 755400 元 。并且对模型的稳定性和灵敏度进行了检验。
一、 问题的重述:
工人可分为不熟练工人、半熟练工人、熟练工人,其中各熟练级别之间可以通过降级使
用和再培训进行转化,某公司由于装备了新机器,对此三种工人的需求有所变化,具体内容
如题目表 1:
分类 不熟练 半熟练 熟练
现有人数 2000 1500 1000
第一年需求 1000 1400 1000
第二年需求 500 2000 1500
第三年需求 0 2500 2000
表 1
为此,公司希望在以下四个方面的用人方案上得到确定:招工、人员再培训、解雇和超
员雇用、设半日工的方案。
其中,由于各种原因不满一年和一年后自动离职的人员情况如表 2:
分类 不熟练 半熟练 熟练
工作不满一年 25% 20% 10%
工作一年以上 10% 5% 5%
表 2
同时公司可以招收一定数量的半日工。
从而建立模型以达到以下两个目标:
(1)解雇人数最少的情况下,应该怎样运转?
(2)费用的最少消耗量以及节省费用,并导出每年每类岗位所节省的费用。
二、 问题的分析:
本题属于一定约束条件下的的最优化问题,初步分析题意,我们按照题目要求拟建立解
雇人数和总费用两个目标函数的线形规划模型:解雇人数包括三年三种熟练级别的解雇人数
与半日工的解雇人数。总费用包括三种级别工人的工资、解雇费、半日工的支付费用、超员
雇用的支付费用四项总和。根据题目的要求列出各约束条件,利用数学软件进行整数的最优
化运算。
三、 模型的假设
根据题目所给的各种条件和生产中的实际情况,我们可以作出以下假设:
(1)假定培训的时间是长期的,为一年。即在第一年初培训,而在第一年末(或第二年初)
使用。
(2)假定在将工人降级使用时,由熟练工降为半熟练工、由半熟练工降为不熟练工与越级
的熟练工降为不熟练工处于同等地位。
(3)对待半日工的使用假定如下:在使用时按劳力记入,即算作半个普通全日工;对半日
工存在着解雇,解雇人数算作一个人。另外,半日工是另外聘用,与原有工人无关。
(4)根据实际情况,我们对题目中“培训半熟练工成为熟练工,培训一名开支 500 元;培训
人数不能超过所训岗位当时熟练工人数的 1/4”理解是培训人数不超过当时岗位所需求人数
与该岗位超员雇用人数总和的 1/4。
(5)假定工人脱产培训。
(6)考虑到工厂的长远发展,第三年我们依然假设还要对工人进行培训。
(7)所有的用人方案的实施都发生在年初。
(8)假设半日工的收入包括普通全日工人的年薪的 1/2 和公司的每年的支出费用。
(9)该公司各岗位工人的年薪固定不变。
四、符号的定义及说明:
xij:第 i 年雇佣工人数, 表示不熟练工, 表示半熟练工, 表示熟练工;
aij: 第 i 年招收的半日工人数, 表示不熟练工, 表示半熟练工, 表
示熟练工;
sij: 第 i 年超员雇用工人数, 表示不熟练工, 表示半熟练工, 表示
熟练工;
fij: 第 i 年解雇的工人数, 表示不熟练工, 表示半熟练工, 表示熟
练工;
Bij: 第 i 年需求的工人数, 表示不熟练工, 表示半熟练工, 表示熟
练工;
pij: 第 i 年培训的工人数,j 表示不熟练工, 表示半熟练工, 表示熟
1j 2j 3j
1j 2j 3j
1j 2j 3j
1j 2j 3j
1j 2j 3j
1j 2j 3j
练工;
faij: 第 i 年解雇的半日工人数, 表示不熟练工, 表示半熟练工, 表
示熟练工;
duij:第 i 年降级的工人数, 表示不熟练工, 表示半熟练工, 表示
熟练工;
gi;表示各熟练级别工人的年薪, 表示不熟练工, 表示半熟练工,
表示熟练工;
cij: 自然减员率, 表示工作不满一年人员的自然减员率, 表示工作一年以
上人员,的自然减员率; 表示不熟练工, 表示半熟练工, 表示
熟练工;
nij:表示第 i 年共有 j 等级工人数,如 表示现有不熟练的工人数( )
表示不熟练工, 表示半熟练工, 表示熟练工;
:在解雇人数最少的情况下,第 i 年花费在某岗位上的费用, 表示不熟练工
岗位, 表示半熟练工岗位, 表示熟练工岗位;
:在费用最少的情况下,第 i 年花费在某岗位上的费用, 表示不熟练工岗位,
表示半熟练工岗位, 表示熟练工岗位;
:在费用最少的情况下第 i 年花费在某岗位上的费用比起在解雇人数最少的情况下
第 i 年花费在某岗位上的费用的差值,j 表示不熟练工岗位, 表示
半熟练工岗位, 表示熟练工岗位;
Z:表示总费用
Y:表示解雇的总人数
五、 模型的建立与求解:
我们对问题进行了分析后,作出了相应的假设和符号说明,并且根据模型的要求建立
了多个约束条件方程与目标函数。
(一)、对于目标 1,建立以下的目标函数:
1j 2j 3j
1j 2j 3j
1j 2j 3j
1i 2i
1j 2j 3j
01n 2,1,0i 1j
2j 3j
ijH 1j
2j 3j
ijT 1j
2j 3j
ijQ
1j 2j
3j
按照题目所给的条件,根据实际情况,分析公司第一年对不熟练工的用人计划如下:公
司现有不熟练工人为 n01, 其减员率为 c21,该年招工 x11,其减员率为 c11,培训人员为 p11,将
工人降级到不熟练级使用的人员为 du11 和 du12,解雇全日工人员为 f11,雇佣半日工为 a11,
解雇半日工为 fa11,超雇人员为 s11,而在公司对不熟练工的需求为 B11,由此,得到下面的
约束:
依次推理我们得到以下的约束表达式:
其中
考虑到对半日工的解雇不能超过已有的半日工的人数,如对第 1 年的不熟练半日工的解
雇不能超过第一年工作的不熟练半日工人数和今年招聘的不熟练半日工人数。为此得到以下
的约束条件:
3
1
3
1
3
1
3
1
min
i j
ij
i j
ij fafY
1111121111111101111121 )1()1( Bpdudufsancxc
332233333233333323212111
32213232333132323222213212
313131323131313121213111
231223232223232313232313
22221222232122222212222212
212121212121212111212111
1313121313131303231313
1212111312121202221212
)1()1
)1()1
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpdudufsancxc
Bpdudufsancxc
(
)3,2,1;2,1(
)3,0(1000
)2,0(1500
)1,0(2000
jisB
ji
ji
ji
n
ijIJ
ij
同时,根据题目所给的要求,得到以下的约束条件:
为此,得到模型的目标函数如下
)2;3,2,1(0)(*
)1;3,2,1(200
)2;3,2,1(500
)3,1;3,2,1(800
)3,2,1;3,2,1(50
150
150
150
3
1
3
3
1
2
3
1
1
jisBp
jip
jix
jix
jia
s
s
s
ijijij
ij
ij
ij
ij
j
j
j
j
j
j
33231121
32221222
31211121
2313
2212
2111
13
12
11
0
0
0
fafaaa
fafaaa
fafaaa
faa
faa
faa
fa
fa
fa
3
1
3
1
3
1
3
1
min
i j
ij
i j
ij fafY
根据上面的关系式,在计算机上利用软件 LINGO 对上面的模型进行求解,得到问题中
目标 1 的最优解为
其中
, , ,
0)(*
)1;3,2,1(200
)2;3,2,1(500
)3,1;3,2,1(800
)3,2,1;3,2,1(50
150
150
150
0
0
0
)1()1
)1()1
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
3
1
3
3
1
2
3
1
1
33231121
32221222
31211121
2313
2212
2111
13
12
11
332233333233333323212111
32213232333132323222213212
313131323131313121213111
231223232223232313232313
22221222232122222212222212
212121212121212111212111
1313121313131303231313
1212111312121202221212
1111121111111101111121
ijijij
ij
ij
ij
ij
j
j
j
j
j
j
sBp
jip
jix
jix
jia
s
s
s
fafaaa
fafaaa
fafaaa
faa
faa
faa
fa
fa
fa
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpdudufsancxc
Bpdudufsancxc
Bpdudufsancxc
ST
870min Y
45011 f 18521 f 23531 f 0333223221312 ffffff
由上述的答案,可以看到被解雇的工人都是不熟练工人(第一年解雇不熟练工人 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 人。
根据所得数据,我们描绘出了其中变化比较大的一些数据的年变化曲线图。具体如下。
0333231232221131211 fafafafafafafafafa
0,500
,800,200,590,30,405
31211133
3223221312
xxxx
xxxxx
0501,50,50 323121121133222313 aaaaaaaaa ,,
0,150,150,150 333223221312312111 sssssssss
0
5,2
33313222211211
2313
dududududududu
dudu
170,200,100,200,350,200 323122211211 pppppp
图 1
图 2
图 3
图 4
其中,图 1 表示招聘半熟练工和熟练工的年变化情况,具体如图所示。图 2 表示解雇不
熟练工人的年变化曲线图。图 3 表示熟练工降为不熟练工的年变化曲线图。图 4 表示半熟练
工培训人数年变化曲线图。根据对题意所得数据的分析,我们可以发现年变化曲线图是和实
际比较吻合的。由此所得的模型和实际还是比较相符的。
在此方案中,根据题目的条件,得到该方案的总费用为
解得
Z=1459400
(二)、对于目标 2,因为半日工的收入包括普通全日工人的年薪的 1/2 和公司的每年的支
出费用,所以该公司可用以下函数表示:
显然, 为一不变值的常数,因此目标函数可化简为
3
1
3
2
3
1
1
3
1
3
3
1
2
3
1
1
3
1
3
2
3
1
1
3
1
2
3
1
1
400500300020001500
500200500400
i j
ij
i
i
i
i
i
i
i
i
i i
ij
i
i
i
i
i
i
aasss
ffppZ
3
1
3
2
400
3
1 1
500
3
1 3
3000
3
1 2
2000
3
1 1
1500
3
1
3
2
500
3
1 1
200
3
1 2
500
3
1 1
400
3
1
3
1
min
i ij
a
ji i
a
i i
s
i i
s
i i
s
i i ij
f
i i
f
i i
p
i i
p
i j ij
B
j
gZ‘
3
1
3
1i j
ijj Bg
3
1
3
2
3
1
1
3
1
3
3
1
2
3
1
1
3
1
3
2
3
1
1
3
1
2
3
1
1
400500300020001500
500200500400min
i
ij
ji
i
i
i
i
i
i
i
i i
ij
i
i
i
i
i
i
aasss
ffppZ ’
同样,用 LINGO 解得以下最优解
其中
, , ,
0)(*
)1;3,2,1(200
)2;3,2,1(500
)3,1;3,2,1(800
)3,2,1;3,2,1(50
150
150
150
0
0
0
)1()1
)1()1
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
)1()1(
3
1
3
3
1
2
3
1
1
33231121
32221222
31211121
2313
2212
2111
13
12
11
332233333233333323212111
32213232333132323222213212
313131323131313121213111
231223232223232313232313
22221222232122222212222212
212121212121212111212111
1313121313131303231313
1212111312121202221212
1111121111111101111121
ijijij
ij
ij
ij
ij
j
j
j
j
j
j
sBp
jip
jix
jix
jia
s
s
s
fafaaa
fafaaa
fafaaa
faa
faa
faa
fa
fa
fa
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpfadudufsancxc
Bppfadudufsancxc
Bpfadudufsancxc
Bpdudufsancxc
Bpdudufsancxc
Bpdudufsancxc
ST
704000min Z
60011 f 20021 f 45031 f 0333223221312 ffffff
0333231232221131211 fafafafafafafafafa
0,500
,500,500,500,80,205
31211133
3223221312
xxxx
xxxxx
05050,50 312321131211332232 aaaaaaaaa ,,
比较目标 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。
第一年,两方案在不熟练岗位费用的比较
由式子
得到
同理得到:
420 323323221312312111 sssssssss ,
0
,100,22
31333222211211
2313
dududududududu
dudu
0,0,100,200,200,200 323122211211 pppppp
11111111 5001500200400 asfp
20000,20000 1111 HT
195000111111 THQ
75000121212 THQ
20000131313 THQ
222000212121 THQ
19600222222 THQ
目标 1 的费用和目标 2 的费用相比较,目标 2 比目标 1 节省了 755400。(以上数字的单
位均为元)。
六、 模型的检验:
(一)目标 1 模型的检验
对目标 1 建立的模型的求解,我们得到了与实际符合的结果,设计出了合理的用人方案。
下面,对其中的有关参数进行灵敏度分析。
1.对各个变量系数的分析
变量 变量系数 系数可以增加量 系数可以减少量
F11 INFINITY
F12 INFINITY
F13 INFINITY
F21
F22 INFINITY
F23 INFINITY
F31
F32 INFINITY
F33 INFINITY
FA21 INFINITY
FA22 INFINITY
FA23 INFINITY
FA31 INFINITY
FA32 INFINITY
FA33 INFINITY
X11 INFINITY
A11 INFINITY
S11 INFINITY
DU11 INFINITY
DU12 INFINITY
20000232323 THQ
262000313131 THQ
19000333232 THQ
0333333 THQ
P11 INFINITY
X12
A12 INFINITY
S12 INFINITY
DU13 INFINITY
P12
X13
A13 INFINITY
S13 INFINITY
X21 INFINITY
P21 INFINITY
A21 INFINITY
S21 INFINITY
DU21 INFINITY
DU22 INFINITY
X22 INFINITY
P22
A22 INFINITY
S22 INFINITY
DU23 INFINITY
X23 INFINITY
A23 INFINITY
S23 INFINITY
X31 INFINITY
P31 INFINITY
A31 INFINITY
S31 INFINITY
DU31 INFINITY
DU32 INFINITY
X32 INFINITY
P32
A32 INFINITY
S32 INFINITY
DU33
X33 INFINITY
A33 INFINITY
S33 INFINITY
(注:INFINITY 为无穷大)
在上表中,变量列表明了是何变量,变量系数为该变量在目标函数中的系数,系数可
以增加量(系数可以减少量)为该变量系数最多增加(减少)该增加量(减少量),否则模
型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变化。如当 在目标函
数中的系数是 1,其系数可以增加无穷大,可以减少 。即 的系数在区间 变
11f
11f ,
化的时候,模型的最优基将保持不变。
由上表,得到可变区间很小的变量如下:
变量 可变区间
f21 [,]
f31 [0,]
x12 [0,0]
p22 [0,0]
p12 [0,]
du33 [0,0]
p32 [0,0]
f21,f31 的系数的可变区间很小,这表明了解雇不熟练工变化对于最优基的变化影响
比较大,具有较高的灵敏度。P12,p22,p32 的系数可变化区间很小,有的甚至为 0,这表明
了培训半熟练工成为熟练工的工作对于最优基的变化的影响很大。由此,该公司在实施计
划的时候,应该做好这两方面的工作。
2.对约束条件右端顶的分析
约束条件 右端顶原值 右端顶可增加值 右端顶可减少值
1 INFINITY
2
3
4 INFINITY
5
6
7 INFINITY
8
9
10 INFINITY
11 INFINITY
12 INFINITY
13 INFINITY
14 INFINITY
15 INFINITY
16
17
18
19 INFINITY
20 INFINITY
21 INFINITY
22 INFINITY
23 INFINITY
24 INFINITY
25 INFINITY
26 INFINITY
27
28 INFINITY
29 INFINITY
30
31 INFINITY
32
33
34 INFINITY
35
36
37
38
39
40 INFINITY
41 INFINITY
42 INFINITY
(注:INFINITY 为无穷大)
在上表中,约束条件列表明了是何条约束式子(化为标准形式),右端顶原值为该约束
条件的等式右端常数项,右端顶原值可以加量(系数可以减少量)为右端顶原值最多增加
(减少)量,否则模型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变
化。如在约束条件 1 中,其右端顶原值为-800,其最大增加值为 450,最大减少值为无穷,
即约束条件的右端顶原值在区间[- ,-350]中变化,其最优基不发生变化。
(二)目标 2 模型的检验
我们利用目标 2 的模型求得的费用比起目标 1 下方案的费用节省了 755400 元。下面,
对起相关的参数进行分析。
1.对各个变量系数的分析
变量 原系数 可增加最大值 可减少最大值
P11 INFINITY
P12
P21 INFINITY
P22
P31 INFINITY
P32 INFINITY
F11
F12 INFINITY
F13 INFINITY
F21
F22 INFINITY
F23 INFINITY
F31
F32 INFINITY
F33 INFINITY
S11 INFINITY
S21 INFINITY
S31 INFINITY
S12 INFINITY
S22 INFINITY
S32
S13 INFINITY
S23 INFINITY
S33 INFINITY
A11 INFINITY
A21 INFINITY
A31 INFINITY
A12 INFINITY
A22 INFINITY
A32 INFINITY
A13 INFINITY
A23
A33 INFINITY
X11 INFINITY
DU11 INFINITY
DU12 INFINITY
X12
DU13 INFINITY
X13
X21 INFINITY
FA21 INFINITY
DU21 INFINITY
DU22 INFINITY
X22 INFINITY
FA22 INFINITY
DU23
X23 INFINITY
FA23 INFINITY
X31 INFINITY
FA31
DU31 INFINITY
DU32 INFINITY
X32 INFINITY
FA32 INFINITY
DU33 INFINITY
X33 INFINITY
FA33 INFINITY
(注:INFINITY 为无穷大,表的意义类似于上面的其他两个表。)
在上面的表中,我们得到了在保持最优基不变的情况下,各个变量在系数的可变区间。
比较得到以 为最小,其区间为[0,80]。这证明了该模型具有很好的稳定性。
2.对约束条件右端顶的分析
12x
约束条件 右端顶原值 右端顶可增加值 右端顶可减少值
1 INFINITY
2
3
4 INFINITY
5
6
7 INFINITY
8
9
10 INFINITY
11 INFINITY
12 INFINITY
13
14 INFINITY
15
16 INFINITY
17 INFINITY
18 INFINITY
19 INFINITY
20 INFINITY
21 INFINITY
22 INFINITY
23 INFINITY
24 INFINITY
25 INFINITY
26 INFINITY
27 INFINITY
28 INFINITY
29
30
31 INFINITY
32
33 INFINITY
34 INFINITY
35
36 INFINITY
37
38
39 INFINITY
40 INFINITY
41 INFINITY
42 INFINITY
43 INFINITY
44 INFINITY
45 INFINITY
46 INFINITY
47 INFINITY
48 INFINITY
49 INFINITY
50 INFINITY
51 INFINITY
52 INFINITY
53 INFINITY
54 INFINITY
55 INFINITY
56 INFINITY
57
58 INFINITY
59 INFINITY
60 INFINITY
61 INFINITY
62 INFINITY
63 INFINITY
64
65 INFINITY
66 INFINITY
67
68 INFINITY
69 INFINITY
70 INFINITY
71 INFINITY
72 INFINITY
73 INFINITY
在上表中,约束条件列表明了是何条约束式子(化为标准形式),右端顶原值为该约束
条件的等式右端常数项,右端顶原值可以加量(系数可以减少量)为右端顶原值最多增加
(减少)量,否则模型的最优基(模型得到最优解的情况下,各变量的取值)将会发生变
化。如在约束条件 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;
*x11+*a11-s11-f11+*du11+*du12-p11=-800;
*x12+*a12-s12-f12-du11+*du13-p12=-25;
*x13+*a13-s13-f13-du12-du13=50;
*x21-p21+**fa21+*du21+*du22+*s11=-400;
*x22-p22+p11+**fa22-du21+*du23+*s12=575;
*x23+p12+**fa23-du22-du23+*s13=550;
*x31-p31+**fa31+*du31+*du32+*s21=-450;
*x32+p21-p32+*a32+*fa32-du31+*du33+*s22=670;
*x33+p22+**fa33-du32-du33+*s23=575;
a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31;
a22+a12-fa22>=fa32;
a23+a13-fa23>=fa33;
s11+s12+s13<=150;
s21+s22+s23<=150;
s31+s32+s33<=150;
a11<=50;
a12<=50;
a13<=50;
x11<=500;
x12<=800;
x13<=500;
a21<=50;
a22<=50;
a23<=50;
a31<=50;
a32<=50;
a33<=50;
x21<=500;
x22<=800;
x23<=500;
x31<=500;
x32<=800;
x33<=500;
p11<=200;
p21<=200;
p31<=200;
*(2500+s32)<=0;
*(1400+s12)<=0;
*(2000+s22)<=0;
@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(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(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);
*x11+*a11-s11-f11+*du11+*du12-p11=-800;
*x12+*a12-s12-f12-du11+*du13-p12=-25;
*x13+*a13-s13-f13-du12-du13=50;
*x21-p21+**fa21+*du21+*du22+*s11=-400;
*x22-p22+p11+**fa22-du21+*du23+*s12=575;
*x23+p12+**fa23-du22-du23+*s13=550;
*x31-p31+**fa31+*du31+*du32+*s21=-450;
*x32+p21-p32+*a32+*fa32-du31+*du33+*s22=667;
*x33+p22+**fa33-du32-du33+*s23=575;
a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31;
a22+a12-fa12>=fa32;
a23+a13-fa13>=fa33;
s11+s12+s13<=150;
s21+s22+s23<=150;
s31+s32+s33<=150;
a11<=50;
a12<=50;
a13<=50;
x11<=800;
x12<=500;
x13<=800;
a21<=50;
a22<=50;
a23<=50;
a31<=50;
a32<=50;
a33<=50;
x21<=800;
x22<=500;
x23<=800;
x31<=800;
x32<=500;
x33<=800;
p11<=200;
p21<=200;
*(1400+s12)<=0;
*(1000+s22)<=0;
a11>=fa21;
a12>=fa22;
a13>=fa23;
a21+a11-fa21>=fa31;
a22+a12-fa22>=fa32;
a23+a13-fa23>=fa33;
s11+s12+s13<=150;
s21+s22+s23<=150;
s31+s32+s33<=150;
a11<=50;
a12<=50;
a13<=50;
x11<=500;
x12<=800;
x13<=500;
a21<=50;
a22<=50;
a23<=50;
a31<=50;
a32<=50;
a33<=50;
x21<=500;
x22<=800;
x23<=500;
x31<=500;
x32<=800;
x33<=500;
p11<=200;
p21<=200;
p31<=200;
*(2500+s32)<=0;
*(1400+s12)<=0;
*(2000+s22)<=0;
fa11=0;
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(fa13);
@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(du22);
@gin(du23);
@gin(du31);
@gin(du32);
@gin(du33);
end
gin 58;