1、某市的菜篮子工程 某市是一个人口不到15万的小城市,根据该市的蔬菜种植情况,分别在A、B、C三地设三个收购点,再由收购点分别送到全市8个蔬菜市场。按照常年情况,A、B、C三个收购点每天收购量分别为200、170和160(单位:100kg),各个菜市场每天需求量及发生供应短缺时的损失见表1。从收购点到个菜市场的距离见表2,设从收购点到各菜市场蔬菜调运费用为1元/(100kg100m)。表1 各菜市场每天需求量及短缺损失菜市场每天需求量(100kg)短缺损失(元/100kg)175102608380547010510010655879058808表2 收购点到各菜市场的距离距离(单位:100m)菜
2、市场12345678收购点A488191162216B14771612162317C20191114615510(1) 为该市设计一个从收购点到菜市场的定点供应方案,使蔬菜调运费用与预期的短缺损失之和最小。(2) 若规定各菜市场短缺量一律不超过需求量的20%,重新设计定点供应方案。(3) 为了满足城市居民的蔬菜供应,该市的领导规划增加蔬菜种植面积,试问增产的蔬菜每天应分别向A、B、C三个收购点各供应多少最为经济合理。参考答案:(1) 调运总费用3890,短缺总损失720,总费用为4610(方案略).(2) 调运总费用4208,短缺总费用598,总费用为4806(方案略)。(3) 增产蔬菜80,
3、每天都向C这个收购点供应最经济。(1) 基本假设设xij为第i个集散点向第j个菜市场供应蔬菜的数量,lij为第i个集散点到第j个菜市场供应蔬菜的距离,bj为第j个市场每天的需求量,dj为第j个市场每天的短缺损失,ai为第i个集散点每天的收购量,cij为第i个集散点向第j个菜市场的单位运费(i=123,j=1.8)(2) 约束条件、=(i=1,2,3)=0(i=1,2,3;j=1.8)(3)对各问求解分析第一问目标函数minz=*+(-)(i=1,2,3;j=1.8)程序:Model:Sets:Jsd/1.3/:a;Csc/1.8/:b;dqss/1.8/:d;J_c(jsd,csc):x,c,
4、l;EndsetsData:a=200,170,160;b=75,60,80,70,100,55,90,80;d=10,8,5,10,10,8,5,8;l=4,8,8,19,11,6,22,16, 14,7,7,16,12,16,23,17, 20,19,11,14,6,15,5,10;c=1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1;Enddatafor(jsd(i):st1sum(csc(j):x(i,j)=a(i);for(csc(j):st2sum(jsd(i):x(i,j)=b(j);objmin=sum(jsd(i):sum(c
5、sc(j):c(i,j)*x(i,j)*l(i,j)+sum(csc(j):d(j)*(b(j)-sum(jsd(i):x(i,j);End运行结果: Global optimal solution found. Objective value: 4610.000 Infeasibilities: 0.000000 Total solver iterations: 9 Model Class: LP Total variables: 24 Nonlinear variables: 0 Integer variables: 0 Total constraints: 12 Nonlinear co
6、nstraints: 0 Total nonzeros: 70 Nonlinear nonzeros: 0 Variable Value Reduced Cost A( 1) 200.0000 0.000000 A( 2) 170.0000 0.000000 A( 3) 160.0000 0.000000 B( 1) 75.00000 0.000000 B( 2) 60.00000 0.000000 B( 3) 80.00000 0.000000 B( 4) 70.00000 0.000000 B( 5) 100.0000 0.000000 B( 6) 55.00000 0.000000 B(
7、 7) 90.00000 0.000000 B( 8) 80.00000 0.000000 D( 1) 10.00000 0.000000 D( 2) 8.000000 0.000000 D( 3) 5.000000 0.000000 D( 4) 10.00000 0.000000 D( 5) 10.00000 0.000000 D( 6) 8.000000 0.000000 D( 7) 5.000000 0.000000 D( 8) 8.000000 0.000000 X( 1, 1) 75.00000 0.000000 X( 1, 2) 0.000000 0.000000 X( 1, 3)
8、 40.00000 0.000000 X( 1, 4) 0.000000 2.000000 X( 1, 5) 30.00000 0.000000 X( 1, 6) 55.00000 0.000000 X( 1, 7) 0.000000 12.00000 X( 1, 8) 0.000000 1.000000 X( 2, 1) 0.000000 11.00000 X( 2, 2) 60.00000 0.000000 X( 2, 3) 40.00000 0.000000 X( 2, 4) 70.00000 0.000000 X( 2, 5) 0.000000 2.000000 X( 2, 6) 0.
9、000000 11.00000 X( 2, 7) 0.000000 14.00000 X( 2, 8) 0.000000 3.000000 X( 3, 1) 0.000000 21.00000 X( 3, 2) 0.000000 16.00000 X( 3, 3) 0.000000 8.000000 X( 3, 4) 0.000000 2.000000 X( 3, 5) 70.00000 0.000000 X( 3, 6) 0.000000 14.00000 X( 3, 7) 90.00000 0.000000 X( 3, 8) 0.000000 0.000000 C( 1, 1) 1.000
10、000 0.000000 C( 1, 2) 1.000000 0.000000 C( 1, 3) 1.000000 0.000000 C( 1, 4) 1.000000 0.000000 C( 1, 5) 1.000000 0.000000 C( 1, 6) 1.000000 0.000000 C( 1, 7) 1.000000 0.000000 C( 1, 8) 1.000000 0.000000 C( 2, 1) 1.000000 0.000000 C( 2, 2) 1.000000 0.000000 C( 2, 3) 1.000000 0.000000 C( 2, 4) 1.000000
11、 0.000000 C( 2, 5) 1.000000 0.000000 C( 2, 6) 1.000000 0.000000 C( 2, 7) 1.000000 0.000000 C( 2, 8) 1.000000 0.000000 C( 3, 1) 1.000000 0.000000 C( 3, 2) 1.000000 0.000000 C( 3, 3) 1.000000 0.000000 C( 3, 4) 1.000000 0.000000 C( 3, 5) 1.000000 0.000000 C( 3, 6) 1.000000 0.000000 C( 3, 7) 1.000000 0.
12、000000 C( 3, 8) 1.000000 0.000000 L( 1, 1) 4.000000 0.000000 L( 1, 2) 8.000000 0.000000 L( 1, 3) 8.000000 0.000000 L( 1, 4) 19.00000 0.000000 L( 1, 5) 11.00000 0.000000 L( 1, 6) 6.000000 0.000000 L( 1, 7) 22.00000 0.000000 L( 1, 8) 16.00000 0.000000 L( 2, 1) 14.00000 0.000000 L( 2, 2) 7.000000 0.000
13、000 L( 2, 3) 7.000000 0.000000 L( 2, 4) 16.00000 0.000000 L( 2, 5) 12.00000 0.000000 L( 2, 6) 16.00000 0.000000 L( 2, 7) 23.00000 0.000000 L( 2, 8) 17.00000 0.000000 L( 3, 1) 20.00000 0.000000 L( 3, 2) 19.00000 0.000000 L( 3, 3) 11.00000 0.000000 L( 3, 4) 14.00000 0.000000 L( 3, 5) 6.000000 0.000000
14、 L( 3, 6) 15.00000 0.000000 L( 3, 7) 5.000000 0.000000 L( 3, 8) 10.00000 0.000000 Row Slack or Surplus Dual Price ST1( 1) 0.000000 -7.000000 ST1( 2) 0.000000 -6.000000 ST1( 3) 0.000000 -2.000000 ST2( 1) 0.000000 13.00000 ST2( 2) 0.000000 7.000000 ST2( 3) 0.000000 4.000000 ST2( 4) 0.000000 0.000000 S
15、T2( 5) 0.000000 6.000000 ST2( 6) 0.000000 9.000000 ST2( 7) 0.000000 2.000000 ST2( 8) 80.00000 0.000000 OBJ 4610.000 -1.000000结果分析最优运输方案为A运往菜市场1蔬菜数量为75公斤,运往菜市场3蔬菜数量为40公斤,运往菜市场5蔬菜数量为30公斤,运往菜市场6蔬菜数量为55公斤;B运往菜市场2蔬菜数量为60公斤,运往菜市场3蔬菜数量为40公斤,运往菜市场4蔬菜数量为70公斤;C运往菜市场5蔬菜数量为70公斤,运往菜市场7蔬菜数量为90公斤,最小损失为4610元第二问目标函数
16、minz=*+(-)(i=1,2,3;j=1.8)新增一个约束条件:=(j=1.8)程序Model:Sets:Jsd/1.3/:a;Csc/1.8/:b;dqss/1.8/:d;J_c(jsd,csc):x,c,l;EndsetsData:a=200,170,160;b=75,60,80,70,100,55,90,80;d=10,8,5,10,10,8,5,8;l=4,8,8,19,11,6,22,16, 14,7,7,16,12,16,23,17, 20,19,11,14,6,15,5,10;c=1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,
17、1;Enddatafor(jsd(i):st1sum(csc(j):x(i,j)=a(i);for(csc(j):st2sum(jsd(i):x(i,j)=0.8*b(j);objmin=sum(jsd(i):sum(csc(j):c(i,j)*x(i,j)*l(i,j)+sum(csc(j):d(j)*(b(j)-sum(jsd(i):x(i,j);End运行结果: Global optimal solution found. Objective value: 4806.000 Infeasibilities: 0.000000 Total solver iterations: 11 Mod
18、el Class: LP Total variables: 24 Nonlinear variables: 0 Integer variables: 0 Total constraints: 20 Nonlinear constraints: 0 Total nonzeros: 94 Nonlinear nonzeros: 0 Variable Value Reduced Cost A( 1) 200.0000 0.000000 A( 2) 170.0000 0.000000 A( 3) 160.0000 0.000000 B( 1) 75.00000 0.000000 B( 2) 60.00
19、000 0.000000 B( 3) 80.00000 0.000000 B( 4) 70.00000 0.000000 B( 5) 100.0000 0.000000 B( 6) 55.00000 0.000000 B( 7) 90.00000 0.000000 B( 8) 80.00000 0.000000 D( 1) 10.00000 0.000000 D( 2) 8.000000 0.000000 D( 3) 5.000000 0.000000 D( 4) 10.00000 0.000000 D( 5) 10.00000 0.000000 D( 6) 8.000000 0.000000
20、 D( 7) 5.000000 0.000000 D( 8) 8.000000 0.000000 X( 1, 1) 75.00000 0.000000 X( 1, 2) 0.000000 0.000000 X( 1, 3) 10.00000 0.000000 X( 1, 4) 0.000000 2.000000 X( 1, 5) 60.00000 0.000000 X( 1, 6) 55.00000 0.000000 X( 1, 7) 0.000000 12.00000 X( 1, 8) 0.000000 1.000000 X( 2, 1) 0.000000 11.00000 X( 2, 2)
21、 60.00000 0.000000 X( 2, 3) 54.00000 0.000000 X( 2, 4) 56.00000 0.000000 X( 2, 5) 0.000000 2.000000 X( 2, 6) 0.000000 11.00000 X( 2, 7) 0.000000 14.00000 X( 2, 8) 0.000000 3.000000 X( 3, 1) 0.000000 21.00000 X( 3, 2) 0.000000 16.00000 X( 3, 3) 0.000000 8.000000 X( 3, 4) 0.000000 2.000000 X( 3, 5) 24.00000 0.000000 X( 3, 6) 0.000000 14.00000