当前位置: 首页 > >

数学建模*题部分解答

发布时间:

3. 问题分析: 这个问题的目标是在满足条件的情况下, 使储蓄所每天用于雇佣服务员的费用最 小, 要做的决策是雇佣服务员的方案,即储蓄所每天应分别雇佣多少名全时服务 员和多少名半时服务员。决策主要受到 3 个条件的限制:半时服务员工作时间、 半时服务员数量、全时服务员午餐时间、每个营业时间段服务员人数。 模型建立: 决策变量 营业时间分为 8 个时间段,记全时服务员有 x 人,我们把全时服务员分为两类: 一类是在 12~1 点间在工作的,记有 m1 人;另一类是在 1~2 点间在工作的,记 有 m2 人。由于半时服务员必须连续工作 4 小时,所以只能在前 5 个营业时间段 内增加半时服务员,记前 5 个营业时间段分别有 y1,y2,y3,y4,y5 个半时服 务员加入工作。 目标函数 记每天用于雇佣服务员的费用为 w 百元,全时服务员一天报酬 100 元,半时服务 员 一 天 报 酬 40 元 , 故 w=1*x+0.4*(y1+y2+y3+y4+y5), 即 w=x+0.4*y1+0.4*y2+0.4*y3+0.4*y4+0.4*y5。 约束条件 半时服务员数量不超过 3 名,即 y1+y2+y3+y4+y5<=3。 每个营业时间段服务员人数要满足要求,即 x+y1>=4 x+y1+y2>=3 x+y1+y2+y3>=4 m1+y1+y2+y3+y4>=6 m2+y2+y3+y4+y5>=5 x+y3+y4+y5>=6 x+y4+y5>=8 x+y5>=8。 全时服务员数量*衡,由于所有全时服务员必须在 12~2 之间 1 小时午餐时间, 故有 m1+m2-x=0。 当然还有非负整数约束,x,m1,m2,y1,y2,y3,y4,y5 为非负整数。 综上可得: Min w=x+0.4*y1+0.4*y2+0.4*y3+0.4*y4+0.4*y5 y1+y2+y3+y4+y5<=3 x+y1>=4 x+y1+y2>=3

x+y1+y2+y3>=4 m1+y1+y2+y3+y4>=6 m2+y2+y3+y4+y5>=5 x+y3+y4+y5>=6 x+y4+y5>=8 x+y5>=8 m1+m2-x=0 x,m1,m2,y1,y2,y3,y4,y5 为非负整数。 这就是该问题的基本模型, 由于决策变量都是整数,所以这是一个纯整数规划模 型(PILP) 。 模型求解: 在 LINGO10.0 中输入: Min =x+0.4*y1+0.4*y2+0.4*y3+0.4*y4+0.4*y5; y1+y2+y3+y4+y5<=3; x+y1>=4; x+y1+y2>=3; x+y1+y2+y3>=4; m1+y1+y2+y3+y4>=6; m2+y2+y3+y4+y5>=5; x+y3+y4+y5>=6; x+y4+y5>=8; x+y5>=8; m1+m2-x=0 @gin(x); @gin(m1); @gin(m2);@gin(y1); @gin(y2); @gin(y3); @gin(y4); @gin(y5); 求解得到输出:
Global optimal solution found. Objective value: Extended solver steps: Total solver iterations: Variable X Y1 Y2 Y3 Y4 Y5 M1 M2 Value 7.000000 0.000000 0.000000 0.000000 2.000000 1.000000 5.000000 2.000000 8.200000 0 18 Reduced Cost 1.000000 0.4000000 0.4000000 0.4000000 0.4000000 0.4000000 0.000000 0.000000

Row 1 2 3 4 5 6 7 8

Slack or Surplus 8.200000 0.000000 3.000000 4.000000 3.000000 1.000000 0.000000 4.000000

Dual Price -1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

由输出结果得,最优解为 x=7,y1=0,y2=0,y3=0,y4=2,y5=1,m1=5,m2=2; 最小费用为 820 元。即应雇佣 7 名全时服务员,3 名半时服务员;其中 5 名全时 服务员在 12~1 点间在工作, 名全时服务员在 1~2 间在工作;2 名半时服务员 2 在 12~1 间开始工作,1 名半时服务员在 1~2 间开始工作。 讨论: (i)如果不能雇佣半时服务员,则 目标函数变为 Min =x 约束条件变为: x>=8 m1>=6 m2>=5 m1+m2-x=0 x,m1,m2 都为非负整数。 在 LINGO10.0 中输入: Min =x; x>=8; m1>=6; m2>=5; m1+m2-x=0; @gin(x); @gin(m1); @gin(m2); 求解得到输出:
Global optimal solution found. Objective value: Extended solver steps: Total solver iterations: Variable X M1 Value 11.00000 6.000000 11.00000 0 0 Reduced Cost 1.000000 0.000000

M2 Row 1 2 3 4 5

5.000000 Slack or Surplus 11.00000 3.000000 0.000000 0.000000 0.000000

0.000000 Dual Price -1.000000 0.000000 0.000000 0.000000 0.000000

由输出结果得,最优解为 x=11,m1=6,m2=5;最小费用为 1100 元。 ( ii ) 如 果 雇 佣 半 时 服 务 员 的 数 量 没 有 限 制 , 则 在 ( 1 ) 中 把 约 束 条 件 y1+y2+y3+y4+y5<=3 去掉,其他约束条件不变,即可得到结果。 在 LINGO10.0 中输入: Min =x+0.4*(y1+y2+y3+y4+y5); x+y1>=4; x+y1+y2>=3; x+y1+y2+y3>=4; m1+y1+y2+y3+y4>=6; m2+y2+y3+y4+y5>=5; x+y3+y4+y5>=6; x+y4+y5>=8; x+y5>=8; m1+m2-x=0 @gin(x); @gin(m1); @gin(m2);@gin(y1); @gin(y2); @gin(y3); @gin(y4); @gin(y5); 求解得到输出:
Global optimal solution found. Objective value: Extended solver steps: Total solver iterations: Variable X Y1 Y2 Y3 Y4 Y5 M1 M2 Row Value 0.000000 6.000000 0.000000 0.000000 0.000000 8.000000 0.000000 0.000000 Slack or Surplus 5.600000 0 6 Reduced Cost 1.000000 0.4000000 0.4000000 0.4000000 0.4000000 0.4000000 0.000000 0.000000 Dual Price

1 2 3 4 5 6 7 8 9 10

5.600000 2.000000 3.000000 2.000000 0.000000 3.000000 2.000000 0.000000 0.000000 0.000000

-1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

由输出结果知,此时最优解为 x=m2=m2=0,y1=6,y5=8;最小费用为 560 元,每 天可以减少 820-560=260 元费用。

5. 问题分析: 这个问题的目标是,在满足条件的情况下,使甲方 4 个月来所需的总费用最小; 要做的决策是为甲方制定一个飞行计划, 即应该怎样安排运送供给给被乙方包围 的甲方部队,以及该怎样购买新飞机和招聘新飞行员。 决策主要受到以下 3 方面的限制:在上个月有损失的前提下,4 个月中既要保证 分别有 100、150、150、200 架飞机运送供给,又要保证分别有 300、450、450、 600 飞行员参加飞行;在上个月的损失且所有返回的飞行员均要休假一个月的条 件下,保证剩余飞机及剩余飞行员(包括已培训过一个月的飞行员、闲置的飞行 员以及休假结束的飞行员) ,能够完成供给任务,否则应购买更多飞机,培训更 多飞行员。 模型建立 首先做一些假设: (1)每次甲方运送供给时, 无任何飞机被击落, 在它们返回途中总有 20%被击落; (2)只有刚执行完飞行任务的飞行员才能休假; (3)四个月中所有其他因素对甲方的空中运送计划没有影响; (4)失踪的飞行员不返回甲方; (5)所有新飞行员经过 1 个月的训练后可以投入飞行,甲方所购新飞机经一个月 的检查后都可以投入使用。 决策变量 记:ai 为甲方第 i 个月开始购买飞机的数量; bi 为第 i 个月教练和新飞行员总人数,mi 为第 i 个月教练人数,ni 为第 i 个月 新飞行员人数; xi、yi 分别为第 i 个月闲置的飞机数量、闲置的熟练飞行员人数; 其中,i=1,2,3,4;ai、bi、mi、ni、xi、yi 都是非负整数。 目标函数 记 z 为甲方 4 个月来的消耗的总费用,总的花费包括 购买新飞机费用:200*a1+195*a2+190*a3+185*a4; 闲置的熟练飞行员报酬:7*y1+6.9*y2+6.8*y3+6.7*y4; 教练和飞行员报酬(包括培训费用) :10*b1+9.9*b2+9.8*b3+9.7*b4; 执行飞行任务的熟练飞行员报酬:9.0*300+8.9*450+9.8*450+9.7*600; 休假期间的熟练飞行员报酬:4.9*240+4.8*360+4.7*360; 故

z=200*a1+195*a2+190*a3+185*a4+7*y1+6.9*y2+6.8*y3+6.7*y4+10*b1+9.9*b2+ 9.8*b3+9.7*b4+9.0*300+8.9*450+9.8*450+9.7*600+4.9*240+4.8*360+4.7*360 。 约束条件 由于 4 个月中每一个月都要能保证完成运送供给的任务,所以 第一个月: 总的飞机数量:110=100+x1 总的可用飞行员数量:330=300+y1+0.05*b1 第二个月: 总的飞机数量:150+x2=80+a1+x1 总的可用飞行员数量:450+y2+0.05*b2=y1+b1 第三个月: 总的飞机数量:150+x3=120+a2+x2 总的可用飞行员数量:450+y3+0.05*b3=y2+b2+240 第四个月: 总的飞机数量:200+x4=120+a3+x3 总的可用飞行员数量:600+y4+0.05*b4=y3+b3+360 综上可得: Minz=200*a1+195*a2+190*a3+185*a4+7*y1+6.9*y2+6.8*y3+6.7*y4+10*b1+9.9* b2+9.8*b3+9.7*b4+9.0*300+8.9*450+9.8*450+9.7*600+4.9*240+4.8*360+4.7* 360 110=100+x1 330=300+y1+0.05*b1 150+x2=80+a1+x1 450+y2+0.05*b2=y1+b1 150+x3=120+a2+x2 450+y3+0.05*b3=y2+b2+240 200+x4=120+a3+x3 600+y4+0.05*b4=y3+b3+360 a1、a2、a3、a4、b1、b2、b3、b4、x1、x2、x3、x4、y1、y2、y3、y4 为非负 整数。 这就是该问题的基本模型,这是一个纯整数规划(PILP)模型。 模型求解: 在 LINGO10.0 中输入: Min=200*a1+195*a2+190*a3+185*a4+7*y1+6.9*y2+6.8*y3+6.7*y4+10*b1+9.9*b 2+9.8*b3+9.7*b4+9.0*300+8.9*450+9.8*450+9.7*600+4.9*240+4.8*360+4.7*3

60; 110=100+x1; 330=300+y1+0.05*b1; 150+x2=80+a1+x1; 450+y2+0.05*b2=y1+b1; 150+x3=120+a2+x2; 450+y3+0.05*b3=y2+b2+240; 200+x4=120+a3+x3; 600+y4+0.05*b4=y3+b3+360; @gin(a1);@gin(a2);@gin(a3);@gin(a4); @gin(b1);@gin(b2);@gin(b3);@gin(b4); @gin(x1);@gin(x2);@gin(x3);@gin(x4); @gin(y1);@gin(y2);@gin(y3);@gin(y4); 求解得到输出:
Global optimal solution found. Objective value: Extended solver steps: Total solver iterations: Variable A1 A2 A3 A4 Y1 Y2 Y3 Y4 B1 B2 B3 B4 X1 X2 X3 X4 Row 1 2 3 4 5 Value 60.00000 30.00000 80.00000 0.000000 7.000000 6.000000 4.000000 4.000000 460.0000 220.0000 240.0000 0.000000 10.00000 0.000000 0.000000 0.000000 Slack or Surplus 63855.40 0.000000 0.000000 0.000000 0.000000 63855.40 0 28 Reduced Cost 200.0000 195.0000 190.0000 185.0000 7.000000 6.900000 6.800000 6.700000 10.00000 9.900000 9.800000 9.700000 0.000000 0.000000 0.000000 0.000000 Dual Price -1.000000 0.000000 0.000000 0.000000 0.000000

6 7 8 9

0.000000 0.000000 0.000000 0.000000

0.000000 0.000000 0.000000 0.000000

有输出结果知: 最优解为: a1=60, a2=30, a3=80, a4=0; b1=460、 b2=220、 b3=240、 b4=0; x1=10、 x2=x3=x4=0;y1=7、y2=6、y3=4、y4=4;最优值为 z=63855.40,即最小费用为 63855.40。 讨论: 如果每名熟练飞行员可以作为教练每个月指导不超过 20 名飞行员,则模型应修 改为: Min=200*a1+195*a2+190*a3+185*a4+7*y1+6.9*y2+6.8*y3+6.7*y4+10*n1+10*m1 +9.9*n2+9.9*m2+9.8*n3+9.8*m3+9.7*n4+9.7*m4+9.0*300+8.9*450+9.8*450+9. 7*600+4.9*240+4.8*360+4.7*360; 110=100+x1; 330=300+y1+m1; 150+x2=80+a1+x1; 450+y2+m2=y1+m1+n1; 150+x3=120+a2+x2; 450+y3+m3=y2+n2+m2+240; 200+x4=120+a3+x3; 600+y4+m4=y3+n3+m3+360; n1<=20*m1; n2<=20*m2; n3<=20*m3; n4<=20*m4 @gin(a1);@gin(a2);@gin(a3);@gin(a4); @gin(x1);@gin(x2);@gin(x3);@gin(x4); @gin(y1);@gin(y2);@gin(y3);@gin(y4); @gin(n1); @gin(n2); @gin(n3) ;@gin(n4); @gin(m1); @gin(m2); @gin(m3) ;@gin(m4); 结合上面的约束条件输入 LINGO10.0 中得:
Global optimal solution found. Objective value: Extended solver steps: Total solver iterations: Variable A1 A2 A3 Value 60.00000 30.00000 80.00000 63716.80 0 7 Reduced Cost 200.0000 195.0000 190.0000

A4 Y1 Y2 Y3 Y4 N1 M1 N2 M2 N3 M3 N4 M4 X1 X2 X3 X4 Row 1 2 3 4 5 6 7 8 9 10 11 12 13

0.000000 8.000000 0.000000 0.000000 0.000000 431.0000 22.00000 211.0000 11.00000 228.0000 12.00000 0.000000 0.000000 10.00000 0.000000 0.000000 0.000000 Slack or Surplus 63716.80 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 9.000000 9.000000 12.00000 0.000000

185.0000 7.000000 6.900000 6.800000 6.700000 10.00000 10.00000 9.900000 9.900000 9.800000 9.800000 9.700000 9.700000 0.000000 0.000000 0.000000 0.000000 Dual Price -1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

由结果知: 最优解为: a1=60, a2=30, a3=80, a4=0; x1=10、 x2=x3=x4=0; y1=8、 y2=y3=y4=0; m1=22、 m2=11、 m3=12、 m4=0; n1=431、 n2=211、 n3=228、 n4=0; 最优值为: 63716.80, z= 即最小费用为 63716.80,减少了 138.60。




友情链接: