接着上一个博文,继续将我们的思路呈现出来
4.2 问题二
4.2.1 模型的准备
假设第i项(i=1,2…,M)服务项目春夏秋冬四个季度的需求分别为di1人,di2人,di3人,di4人保持不变;假设第i项项目春季招聘xi1名员工,夏季招聘xi2名员工,秋季招聘xi3名员工,冬季招聘xi4名员工;假设招聘过后第i项项目春季员工总数为vi1,夏季员工总数为vi2,秋季员工总数为vi3,冬季员工总数为vi4;设第一年春第i项项目有员工Si名;第i项服务项目员工工资为Ci元/月/人,则每季度员工工资为3Ci元/季度/人。
4.2.2 模型的建立
根据4.2.1的模型假设及题目中给定的表1、表2、表3中的数据,在公司不允许主动解雇员工且每季度进行一次员工招聘的前提下,我们建立以公司M项项目总工资支出(Z)最少为目标函数,以员工工作日总量大于市场需求作为约束条件的数学优化模型,模型如下:
Lingo求解过程:
model:
sets:
project/1..18/: c,s,r;
season/1,2,3,4/;
link(project,season):d,x,v ;
endsets
data:
d = 6300 7900 5600 9400
6100 7900 6100 9200
6600 7800 5900 9000
6400 7700 6300 9500
6600 7500 5400 9500
6200 7500 5700 9300
6100 8100 6100 9400
6000 7900 5900 9200
6500 7600 5500 9100
6000 7400 5600 9200
6500 7600 5500 9100
6500 8200 6200 9100
6000 8400 6000 9300
6400 7600 6200 9700
6600 7600 5400 9500
6400 7900 5900 9300
6200 7500 5500 9500
6100 8100 6100 9400 ;
c = 2500 2800 2400 3000 3000 2900 2400 2500 2200 2800 2900 2900 2600 2600 2100 2900 2500 2200 ;
s = 120 100 110 110 130 130 140 100 130 130 110 100 130 120 90 130 120 140 ;
r = 0.15 0.11 0.15 0.13 0.10 0.13 0.09 0.10 0.10 0.13 0.10 0.11 0.09 0.13 0.10 0.12 0.08 0.15 ;
enddata
!目标函数 ;
min = @sum(project(i):3*c(i)*(v(i,1)+v(i,2)+v(i,3)+v(i,4)));
!约束条件;
@FOR(project(i):v(i,1)=s(i)+x(i,1));
@for(project(i):v(i,2)=v(i,1)*(1-r(i))+x(i,2));
@for(project(i):v(i,3)=v(i,2)*(1-r(i))+x(i,3));
@for(project(i):v(i,4)=v(i,3)*(1-r(i))+x(i,4));
@for(project(i):65*v(i,1)>=d(i,1));
@for(project(i):65*v(i,2)>=d(i,2));
@for(project(i):65*v(i,3)>=d(i,3));
@for(project(i):65*v(i,4)>=d(i,4));
@for(project(i):x(i,1)>=0);
@for(project(i):x(i,2)>=0);
@for(project(i):x(i,3)>=0);
@for(project(i):x(i,4)>=0);
@for(project(i):v(i,1)>0);
@for(project(i):v(i,2)>0);
@for(project(i):v(i,3)>0);
@for(project(i):v(i,4)>0);
end
数据集中数据都是题目已知的,所以大家不需要纠结这里的数据是哪里来的
求解的结果为:
Global optimal solution found.
Objective value: 0.6923018E+08
Infeasibilities: 0.000000
Total solver iterations: 0
Variable Value Reduced Cost
C( 1) 2500.000 0.000000
C( 2) 2800.000 0.000000
C( 3) 2400.000 0.000000
C( 4) 3000.000 0.000000
C( 5) 3000.000 0.000000
C( 6) 2900.000 0.000000
C( 7) 2400.000 0.000000
C( 8) 2500.000 0.000000
C( 9) 2200.000 0.000000
C( 10) 2800.000 0.000000
C( 11) 2900.000 0.000000
C( 12) 2900.000 0.000000
C( 13) 2600.000 0.000000
C( 14) 2600.000 0.000000
C( 15) 2100.000 0.000000
C( 16) 2900.000 0.000000
C( 17) 2500.000 0.000000
C( 18) 2200.000 0.000000
S( 1) 120.0000 0.000000
S( 2) 100.0000 0.000000
S( 3) 110.0000 0.000000
S( 4) 110.0000 0.000000
S( 5) 130.0000 0.000000
S( 6) 130.0000 0.000000
S( 7) 140.0000 0.000000
S( 8) 100.0000 0.000000
S( 9) 130.0000 0.000000
S( 10) 130.0000 0.000000
S( 11) 110.0000 0.000000
S( 12) 100.0000 0.000000
S( 13) 130.0000 0.000000
S( 14) 120.0000 0.000000
S( 15) 90.00000 0.000000
S( 16) 130.0000 0.000000
S( 17) 120.0000 0.000000
S( 18) 140.0000 0.000000
R( 1) 0.1500000 0.000000
R( 2) 0.1100000 0.000000
R( 3) 0.1500000 0.000000
R( 4) 0.1300000 0.000000
R( 5) 0.1000000 0.000000
R( 6) 0.1300000 0.000000
R( 7) 0.9000000E-01 0.000000
R( 8) 0.1000000 0.000000
R( 9) 0.1000000 0.000000
R( 10) 0.1300000 0.000000
R( 11) 0.1000000 0.000000
R( 12) 0.1100000 0.000000
R( 13) 0.9000000E-01 0.000000
R( 14) 0.1300000 0.000000
R( 15) 0.1000000 0.000000
R( 16) 0.1200000 0.000000
R( 17) 0.8000000E-01 0.000000
R( 18) 0.1500000 0.000000
D( 1, 1) 6300.000 0.000000
D( 1, 2) 7900.000 0.000000
D( 1, 3) 5600.000 0.000000
D( 1, 4) 9400.000 0.000000
D( 2, 1) 6100.000 0.000000
D( 2, 2) 7900.000 0.000000
D( 2, 3) 6100.000 0.000000
D( 2, 4) 9200.000 0.000000
D( 3, 1) 6600.000 0.000000
D( 3, 2) 7800.000 0.000000
D( 3, 3) 5900.000 0.000000
D( 3, 4) 9000.000 0.000000
D( 4, 1) 6400.000 0.000000
D( 4, 2) 7700.000 0.000000
D( 4, 3) 6300.000 0.000000
D( 4, 4) 9500.000 0.000000
D( 5, 1) 6600.000 0.000000
D( 5, 2) 7500.000 0.000000
D( 5, 3) 5400.000 0.000000
D( 5, 4) 9500.000 0.000000
D( 6, 1) 6200.000 0.000000
D( 6, 2) 7500.000 0.000000
D( 6, 3) 5700.000 0.000000
D( 6, 4) 9300.000 0.000000
D( 7, 1) 6100.000 0.000000
D( 7, 2) 8100.000 0.000000
D( 7, 3) 6100.000 0.000000
D( 7, 4) 9400.000 0.000000
D( 8, 1) 6000.000 0.000000
D( 8, 2) 7900.000 0.000000
D( 8, 3) 5900.000 0.000000
D( 8, 4) 9200.000 0.000000
D( 9, 1) 6500.000 0.000000
D( 9, 2) 7600.000 0.000000
D( 9, 3) 5500.000 0.000000
D( 9, 4) 9100.000 0.000000
D( 10, 1) 6000.000 0.000000
D( 10, 2) 7400.000 0.000000
D( 10, 3) 5600.000 0.000000
D( 10, 4) 9200.000 0.000000
D( 11, 1) 6500.000 0.000000
D( 11, 2) 7600.000 0.000000
D( 11, 3) 5500.000 0.000000
D( 11, 4) 9100.000 0.000000
D( 12, 1) 6500.000 0.000000
D( 12, 2) 8200.000 0.000000
D( 12, 3) 6200.000 0.000000
D( 12, 4) 9100.000 0.000000
D( 13, 1) 6000.000 0.000000
D( 13, 2) 8400.000 0.000000
D( 13, 3) 6000.000 0.000000
D( 13, 4) 9300.000 0.000000
D( 14, 1) 6400.000 0.000000
D( 14, 2) 7600.000 0.000000
D( 14, 3) 6200.000 0.000000
D( 14, 4) 9700.000 0.000000
D( 15, 1) 6600.000 0.000000
D( 15, 2) 7600.000 0.000000
D( 15, 3) 5400.000 0.000000
D( 15, 4) 9500.000 0.000000
D( 16, 1) 6400.000 0.000000
D( 16, 2) 7900.000 0.000000
D( 16, 3) 5900.000 0.000000
D( 16, 4) 9300.000 0.000000
D( 17, 1) 6200.000 0.000000
D( 17, 2) 7500.000 0.000000
D( 17, 3) 5500.000 0.000000
D( 17, 4) 9500.000 0.000000
D( 18, 1) 6100.000 0.000000
D( 18, 2) 8100.000 0.000000
D( 18, 3) 6100.000 0.000000
D( 18, 4) 9400.000 0.000000
X( 1, 1) 0.000000 7500.000
X( 1, 2) 19.53846 0.000000
X( 1, 3) 0.000000 7500.000
X( 1, 4) 56.80385 0.000000
X( 2, 1) 0.000000 8400.000
X( 2, 2) 32.53846 0.000000
X( 2, 3) 0.000000 8400.000
X( 2, 4) 45.26785 0.000000
X( 3, 1) 0.000000 7200.000
X( 3, 2) 26.50000 0.000000
X( 3, 3) 0.000000 7200.000
X( 3, 4) 51.76154 0.000000
X( 4, 1) 0.000000 9000.000
X( 4, 2) 22.76154 0.000000
X( 4, 3) 0.000000 9000.000
X( 4, 4) 56.49031 0.000000
X( 5, 1) 0.000000 24390.00
X( 5, 2) 0.000000 17100.00
X( 5, 3) 0.000000 9000.000
X( 5, 4) 51.38385 0.000000
X( 6, 1) 0.000000 8700.000
X( 6, 2) 2.284615 0.000000
X( 6, 3) 0.000000 8700.000
X( 6, 4) 55.74231 0.000000
X( 7, 1) 0.000000 19714.32
X( 7, 2) 0.000000 13752.00
X( 7, 3) 0.000000 7200.000
X( 7, 4) 39.11544 0.000000
X( 8, 1) 0.000000 7500.000
X( 8, 2) 31.53846 0.000000
X( 8, 3) 0.000000 7500.000
X( 8, 4) 43.09231 0.000000
X( 9, 1) 0.000000 17886.00
X( 9, 2) 0.000000 12540.00
X( 9, 3) 0.000000 6600.000
X( 9, 4) 45.23000 0.000000
X( 10, 1) 0.000000 8400.000
X( 10, 2) 0.7461538 0.000000
X( 10, 3) 0.000000 8400.000
X( 10, 4) 55.36831 0.000000
X( 11, 1) 0.000000 8700.000
X( 11, 2) 17.92308 0.000000
X( 11, 3) 0.000000 8700.000
X( 11, 4) 45.29231 0.000000
X( 12, 1) 0.000000 0.000000
X( 12, 2) 37.15385 0.000000
X( 12, 3) 0.000000 8700.000
X( 12, 4) 40.07354 0.000000
X( 13, 1) 0.000000 7800.000
X( 13, 2) 10.93077 0.000000
X( 13, 3) 0.000000 7800.000
X( 13, 4) 36.06092 0.000000
X( 14, 1) 0.000000 7800.000
X( 14, 2) 12.52308 0.000000
X( 14, 3) 0.000000 7800.000
X( 14, 4) 60.73169 0.000000
X( 15, 1) 11.53846 0.000000
X( 15, 2) 25.53846 0.000000
X( 15, 3) 0.000000 6300.000
X( 15, 4) 51.44615 0.000000
X( 16, 1) 0.000000 8700.000
X( 16, 2) 7.138462 0.000000
X( 16, 3) 0.000000 8700.000
X( 16, 4) 48.95754 0.000000
X( 17, 1) 0.000000 7500.000
X( 17, 2) 4.984615 0.000000
X( 17, 3) 0.000000 7500.000
X( 17, 4) 48.49231 0.000000
X( 18, 1) 0.000000 6600.000
X( 18, 2) 5.615385 0.000000
X( 18, 3) 0.000000 6600.000
X( 18, 4) 54.58077 0.000000
V( 1, 1) 120.0000 0.000000
V( 1, 2) 121.5385 0.000000
V( 1, 3) 103.3077 0.000000
V( 1, 4) 144.6154 0.000000
V( 2, 1) 100.0000 0.000000
V( 2, 2) 121.5385 0.000000
V( 2, 3) 108.1692 0.000000
V( 2, 4) 141.5385 0.000000
V( 3, 1) 110.0000 0.000000
V( 3, 2) 120.0000 0.000000
V( 3, 3) 102.0000 0.000000
V( 3, 4) 138.4615 0.000000
V( 4, 1) 110.0000 0.000000
V( 4, 2) 118.4615 0.000000
V( 4, 3) 103.0615 0.000000
V( 4, 4) 146.1538 0.000000
V( 5, 1) 130.0000 0.000000
V( 5, 2) 117.0000 0.000000
V( 5, 3) 105.3000 0.000000
V( 5, 4) 146.1538 0.000000
V( 6, 1) 130.0000 0.000000
V( 6, 2) 115.3846 0.000000
V( 6, 3) 100.3846 0.000000
V( 6, 4) 143.0769 0.000000
V( 7, 1) 140.0000 0.000000
V( 7, 2) 127.4000 0.000000
V( 7, 3) 115.9340 0.000000
V( 7, 4) 144.6154 0.000000
V( 8, 1) 100.0000 0.000000
V( 8, 2) 121.5385 0.000000
V( 8, 3) 109.3846 0.000000
V( 8, 4) 141.5385 0.000000
V( 9, 1) 130.0000 0.000000
V( 9, 2) 117.0000 0.000000
V( 9, 3) 105.3000 0.000000
V( 9, 4) 140.0000 0.000000
V( 10, 1) 130.0000 0.000000
V( 10, 2) 113.8462 0.000000
V( 10, 3) 99.04615 0.000000
V( 10, 4) 141.5385 0.000000
V( 11, 1) 110.0000 0.000000
V( 11, 2) 116.9231 0.000000
V( 11, 3) 105.2308 0.000000
V( 11, 4) 140.0000 0.000000
V( 12, 1) 100.0000 0.000000
V( 12, 2) 126.1538 0.000000
V( 12, 3) 112.2769 0.000000
V( 12, 4) 140.0000 0.000000
V( 13, 1) 130.0000 0.000000
V( 13, 2) 129.2308 0.000000
V( 13, 3) 117.6000 0.000000
V( 13, 4) 143.0769 0.000000
V( 14, 1) 120.0000 0.000000
V( 14, 2) 116.9231 0.000000
V( 14, 3) 101.7231 0.000000
V( 14, 4) 149.2308 0.000000
V( 15, 1) 101.5385 0.000000
V( 15, 2) 116.9231 0.000000
V( 15, 3) 105.2308 0.000000
V( 15, 4) 146.1538 0.000000
V( 16, 1) 130.0000 0.000000
V( 16, 2) 121.5385 0.000000
V( 16, 3) 106.9538 0.000000
V( 16, 4) 143.0769 0.000000
V( 17, 1) 120.0000 0.000000
V( 17, 2) 115.3846 0.000000
V( 17, 3) 106.1538 0.000000
V( 17, 4) 146.1538 0.000000
V( 18, 1) 140.0000 0.000000
V( 18, 2) 124.6154 0.000000
V( 18, 3) 105.9231 0.000000
V( 18, 4) 144.6154 0.000000
Row Slack or Surplus Dual Price
1 0.6923018E+08 -1.000000
2 0.000000 -7500.000
3 0.000000 -8400.000
4 0.000000 -7200.000
5 0.000000 -9000.000
6 0.000000 -24390.00
7 0.000000 -8700.000
8 0.000000 -19714.32
9 0.000000 -7500.000
10 0.000000 -17886.00
11 0.000000 -8400.000
12 0.000000 -8700.000
13 0.000000 0.000000
14 0.000000 -7800.000
15 0.000000 -7800.000
16 0.000000 0.000000
17 0.000000 -8700.000
18 0.000000 -7500.000
19 0.000000 -6600.000
20 0.000000 0.000000
21 0.000000 0.000000
22 0.000000 0.000000
23 0.000000 0.000000
24 0.000000 -17100.00
25 0.000000 0.000000
26 0.000000 -13752.00
27 0.000000 0.000000
28 0.000000 -12540.00
29 0.000000 0.000000
30 0.000000 0.000000
31 0.000000 0.000000
32 0.000000 0.000000
33 0.000000 0.000000
34 0.000000 0.000000
35 0.000000 0.000000
36 0.000000 0.000000
37 0.000000 0.000000
38 0.000000 -7500.000
39 0.000000 -8400.000
40 0.000000 -7200.000
41 0.000000 -9000.000
42 0.000000 -9000.000
43 0.000000 -8700.000
44 0.000000 -7200.000
45 0.000000 -7500.000
46 0.000000 -6600.000
47 0.000000 -8400.000
48 0.000000 -8700.000
49 0.000000 -8700.000
50 0.000000 -7800.000
51 0.000000 -7800.000
52 0.000000 -6300.000
53 0.000000 -8700.000
54 0.000000 -7500.000
55 0.000000 -6600.000
56 0.000000 0.000000
57 0.000000 0.000000
58 0.000000 0.000000
59 0.000000 0.000000
60 0.000000 0.000000
61 0.000000 0.000000
62 0.000000 0.000000
63 0.000000 0.000000
64 0.000000 0.000000
65 0.000000 0.000000
66 0.000000 0.000000
67 0.000000 0.000000
68 0.000000 0.000000
69 0.000000 0.000000
70 0.000000 0.000000
71 0.000000 0.000000
72 0.000000 0.000000
73 0.000000 0.000000
74 1500.000 0.000000
75 400.0000 0.000000
76 550.0000 0.000000
77 750.0000 0.000000
78 1850.000 0.000000
79 2250.000 0.000000
80 3000.000 0.000000
81 500.0000 0.000000
82 1950.000 0.000000
83 2450.000 0.000000
84 650.0000 0.000000
85 0.000000 -133.8462
86 2450.000 0.000000
87 1400.000 0.000000
88 0.000000 -96.92308
89 2050.000 0.000000
90 1600.000 0.000000
91 3000.000 0.000000
92 0.000000 -213.4615
93 0.000000 -244.2462
94 0.000000 -204.9231
95 0.000000 -258.9231
96 105.0000 0.000000
97 0.000000 -250.2923
98 181.0000 0.000000
99 0.000000 -219.2308
100 5.000000 0.000000
101 0.000000 -241.6615
102 0.000000 -254.3077
103 0.000000 -252.9692
104 0.000000 -229.2000
105 0.000000 -224.4000
106 0.000000 -184.1538
107 0.000000 -251.6308
108 0.000000 -221.5385
109 0.000000 -187.8462
110 1115.000 0.000000
111 931.0000 0.000000
112 730.0000 0.000000
113 399.0000 0.000000
114 1444.500 0.000000
115 825.0000 0.000000
116 1435.710 0.000000
117 1210.000 0.000000
118 1344.500 0.000000
119 838.0000 0.000000
120 1340.000 0.000000
121 1098.000 0.000000
122 1644.000 0.000000
123 412.0000 0.000000
124 1440.000 0.000000
125 1052.000 0.000000
126 1400.000 0.000000
127 785.0000 0.000000
128 0.000000 -115.3846
129 0.000000 -129.2308
130 0.000000 -110.7692
131 0.000000 -138.4615
132 0.000000 -138.4615
133 0.000000 -133.8462
134 0.000000 -110.7692
135 0.000000 -115.3846
136 0.000000 -101.5385
137 0.000000 -129.2308
138 0.000000 -133.8462
139 0.000000 -133.8462
140 0.000000 -120.0000
141 0.000000 -120.0000
142 0.000000 -96.92308
143 0.000000 -133.8462
144 0.000000 -115.3846
145 0.000000 -101.5385
146 0.000000 0.000000
147 0.000000 0.000000
148 0.000000 0.000000
149 0.000000 0.000000
150 0.000000 0.000000
151 0.000000 0.000000
152 0.000000 0.000000
153 0.000000 0.000000
154 0.000000 0.000000
155 0.000000 0.000000
156 0.000000 0.000000
157 0.000000 0.000000
158 0.000000 0.000000
159 0.000000 0.000000
160 11.53846 0.000000
161 0.000000 0.000000
162 0.000000 0.000000
163 0.000000 0.000000
164 19.53846 0.000000
165 32.53846 0.000000
166 26.50000 0.000000
167 22.76154 0.000000
168 0.000000 0.000000
169 2.284615 0.000000
170 0.000000 0.000000
171 31.53846 0.000000
172 0.000000 0.000000
173 0.7461538 0.000000
174 17.92308 0.000000
175 37.15385 0.000000
176 10.93077 0.000000
177 12.52308 0.000000
178 25.53846 0.000000
179 7.138462 0.000000
180 4.984615 0.000000
181 5.615385 0.000000
182 0.000000 0.000000
183 0.000000 0.000000
184 0.000000 0.000000
185 0.000000 0.000000
186 0.000000 0.000000
187 0.000000 0.000000
188 0.000000 0.000000
189 0.000000 0.000000
190 0.000000 0.000000
191 0.000000 0.000000
192 0.000000 0.000000
193 0.000000 0.000000
194 0.000000 0.000000
195 0.000000 0.000000
196 0.000000 0.000000
197 0.000000 0.000000
198 0.000000 0.000000
199 0.000000 0.000000
200 56.80385 0.000000
201 45.26785 0.000000
202 51.76154 0.000000
203 56.49031 0.000000
204 51.38385 0.000000
205 55.74231 0.000000
206 39.11544 0.000000
207 43.09231 0.000000
208 45.23000 0.000000
209 55.36831 0.000000
210 45.29231 0.000000
211 40.07354 0.000000
212 36.06092 0.000000
213 60.73169 0.000000
214 51.44615 0.000000
215 48.95754 0.000000
216 48.49231 0.000000
217 54.58077 0.000000
218 120.0000 0.000000
219 100.0000 0.000000
220 110.0000 0.000000
221 110.0000 0.000000
222 130.0000 0.000000
223 130.0000 0.000000
224 140.0000 0.000000
225 100.0000 0.000000
226 130.0000 0.000000
227 130.0000 0.000000
228 110.0000 0.000000
229 100.0000 0.000000
230 130.0000 0.000000
231 120.0000 0.000000
232 101.5385 0.000000
233 130.0000 0.000000
234 120.0000 0.000000
235 140.0000 0.000000
236 121.5385 0.000000
237 121.5385 0.000000
238 120.0000 0.000000
239 118.4615 0.000000
240 117.0000 0.000000
241 115.3846 0.000000
242 127.4000 0.000000
243 121.5385 0.000000
244 117.0000 0.000000
245 113.8462 0.000000
246 116.9231 0.000000
247 126.1538 0.000000
248 129.2308 0.000000
249 116.9231 0.000000
250 116.9231 0.000000
251 121.5385 0.000000
252 115.3846 0.000000
253 124.6154 0.000000
254 103.3077 0.000000
255 108.1692 0.000000
256 102.0000 0.000000
257 103.0615 0.000000
258 105.3000 0.000000
259 100.3846 0.000000
260 115.9340 0.000000
261 109.3846 0.000000
262 105.3000 0.000000
263 99.04615 0.000000
264 105.2308 0.000000
265 112.2769 0.000000
266 117.6000 0.000000
267 101.7231 0.000000
268 105.2308 0.000000
269 106.9538 0.000000
270 106.1538 0.000000
271 105.9231 0.000000
272 144.6154 0.000000
273 141.5385 0.000000
274 138.4615 0.000000
275 146.1538 0.000000
276 146.1538 0.000000
277 143.0769 0.000000
278 144.6154 0.000000
279 141.5385 0.000000
280 140.0000 0.000000
281 141.5385 0.000000
282 140.0000 0.000000
283 140.0000 0.000000
284 143.0769 0.000000
285 149.2308 0.000000
286 146.1538 0.000000
287 143.0769 0.000000
288 146.1538 0.000000
289 144.6154 0.000000
可以看到结果显的是全局最优解,并且最优解为:6.92302e+07元
其他变量我就不再一一在这里解释了,我会将题目和解题论文打包上传资源