X( W6, V8) 0.000000 3.000000
Row Slack or Surplus Dual Price 1 664.0000 -1.000000 2 0.000000 3.000000 3 22.00000 0.000000 4 0.000000 3.000000 5 0.000000 1.000000 6 0.000000 2.000000 7 0.000000 2.000000 8 0.000000 -4.000000 9 0.000000 -5.000000 10 0.000000 -4.000000 11 0.000000 -3.000000 12 0.000000 -7.000000 13 0.000000 -3.000000 14 0.000000 -6.000000 15 0.000000 -2.000000
由以上结果可以清楚的看到由各仓库到各客户处的货物调运数量,由此得出的符合条件的最佳运货方案,而使运费最低,最低为664。
二、运输规划
重庆有三家电子厂分别是新普,隆宇和恒华,生产的笔记本电脑将要运向北京,天津,广东,上海四个城市销售,其产量和销售量见下表:(单位:万台)
表:1-1
新普 隆宇 恒华 销量 北京 6 4 8 15 天津 2 9 8 17 广东 6 5 1 22 上海 7 3 5 12 产量 30 25 21 - 问:哪种销售方案将会取得最少的运输费用,费用为多少?
针对该运输问题,为了方便计算,可以设新普(A1),隆宇(A2)和恒华(A3)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为x11、x12、x13、x14、x21、x22、x23、x24、x31、x32、x33、x34.建立以下模型:
表:1-2
B1 B2 B3 B4 产量 A1 A2 A3 销量 6 4 8 15 2 9 8 17 6 5 1 22 7 3 5 12 30 25 21 - 目标(The objective)最少费用:
34Min z??5x??i?1j?124cijxi31j?6x?8x11?2x12?6x13?7x14?4x21?9x22
3223?3x?8x?x33?5x34约束条件:
供应限制(The supply constrains) 指标约束(The damand constrains)
?x11?x12??x21?x22?x?x32?31LINGO模型: model: sets: origin/1..3/:a; sale/1..4/:b;
? x11?x13?x14?30?? x12?x23?x24?25? x12??x33?x34?21? x?14?x21?x31?15?x22?x32?17?x23?x33?22 ?x24?x34?12routes(origin,sale):c,x; endsets data: a=30,25,21; b=15,17,22,12; c=6,2,6,7,4,9,5,3,8,8,1,5; enddata
[OBJ]min=@sum(routes:c*x); @for(origin(i):[SUP]
@sum(sale(j):x(i,j))<=a(i)); @for(sale(j):[DEM] @sum(origin(i):x(i,j))=b(j)); end lingo结果:
Global optimal solution found.
Objective value: 161.0000 Infeasibilities: 0.000000 Total solver iterations: 6 Variable Value Reduced Cost X( 1, 1) 2.000000 0.000000 X( 1, 2) 17.00000 0.000000 X( 1, 3) 1.000000 0.000000 X( 1, 4) 0.000000 2.000000 X( 2, 1) 13.00000 0.000000 X( 2, 2) 0.000000 9.000000 X( 2, 3) 0.000000 1.000000 X( 2, 4) 12.00000 0.000000 X( 3, 1) 0.000000 7.000000 X( 3, 2) 0.000000 11.00000 X( 3, 3) 21.00000 0.000000 X( 3, 4) 0.000000 5.000000 Row Slack or Surplus Dual Price OBJ 161.0000 -1.000000 SUP( 1) 10.00000 0.000000 SUP( 2) 0.000000 2.000000 SUP( 3) 0.000000 5.000000 DEM( 1) 0.000000 -6.000000 DEM( 2) 0.000000 -2.000000 DEM( 3) 0.000000 -6.000000
DEM( 4) 0.000000 -5.000000
从计算结果可以得出,新普(A1)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为分别为2万台,17万台,1万台,0万台,剩余10万台;隆宇(A2)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为别为13万台,0万台,0万台,12万台,剩余0万台;恒华(A3)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为分别为0万台,0万台,21万台,0万台,剩余0万台;总费用为161个单位.
三、整数规划
某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。试求各区应分配几个增设的销售店,才能使总利润最大。
销售点增加数 A区利润/万元 B区利润/万元 C区利润/万元 0 100 200 150 1 200 210 160 2 280 220 170 3 330 225 180 4 340 230 200 要设置集合zone/A,B,C/,表示三个地区。因为获得的利润与地区和各地的销售点增加数均相关,所以可以仿照运输模型,用number/1..4/表示每个地区可
选的销售点增加数,然后用一个派生集links(zone,number):c,profit,定义
?1,在i地区新增cij???0,其他j个销售点
profit(i,j)为在i地区新增j个销售点能获得的利润。 可写出约束条件为:
???cij?1,i?1,2,3?j?1? cij?0或1??34???cijj?6?i?1j?1?4所求函数为max=@sum(links:c*profit); Lingo程序如下: model: