用Lingo求解规划问题实例

  • 格式:doc
  • 大小:39.00 KB
  • 文档页数:2

某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。

从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。

试求各区应分配几个增设的销售店,才能使总利润最大。

销售点增加数0 1 2 3 4
A区利润/万元100 200 280 330 340
B区利润/万元200 210 220 225 230
C区利润/万元150 160 170 180 200
Lingo程序如下:
model:
sets:
zone/A,B,C/;
number/1..4/;
links(zone,number):c,profit;
endsets
data:
profit=200 280 330 340
210 220 225 230
160 170 180 200;
enddata
max=@sum(links:c*profit);
@for(zone(I):
@sum(number(J):c(I,J))=1);
@sum(zone(I):@sum(number(J):c(I,J)*J))=6;
@for(links(i,j):@bin(c(i,j)));
end
用Lingo求解,结果如下:
Global optimal solution found.
Objective value: 710.0000
Objective bound: 710.0000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 0
Model Class: PILP
Total variables: 12
Nonlinear variables: 0
Integer variables: 12
Total constraints: 5
Nonlinear constraints: 0
Total nonzeros: 36
Nonlinear nonzeros: 0
Variable Value Reduced Cost
C( A, 1) 0.000000 -200.0000
C( A, 2) 0.000000 -280.0000
C( A, 3) 1.000000 -330.0000
C( A, 4) 0.000000 -340.0000
C( B, 1) 1.000000 -210.0000
C( B, 2) 0.000000 -220.0000
C( B, 3) 0.000000 -225.0000
C( B, 4) 0.000000 -230.0000
C( C, 1) 0.000000 -160.0000
C( C, 2) 1.000000 -170.0000
C( C, 3) 0.000000 -180.0000
C( C, 4) 0.000000 -200.0000
PROFIT( A, 1) 200.0000 0.000000
PROFIT( A, 2) 280.0000 0.000000
PROFIT( A, 3) 330.0000 0.000000
PROFIT( A, 4) 340.0000 0.000000
PROFIT( B, 1) 210.0000 0.000000
PROFIT( B, 2) 220.0000 0.000000
PROFIT( B, 3) 225.0000 0.000000
PROFIT( B, 4) 230.0000 0.000000
PROFIT( C, 1) 160.0000 0.000000
PROFIT( C, 2) 170.0000 0.000000
PROFIT( C, 3) 180.0000 0.000000
PROFIT( C, 4) 200.0000 0.000000
Row Slack or Surplus Dual Price
1 710.0000 1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
则在A,B,C区域应分别新增3,1,2个销售点,可获得的最大利润为710万元。