某公司新购置设备6台,想分配给下属4个企业,已知各企业获得的利润如下,合理的分配这些设备,使得总年利润最大。
引入变量 Cij示第i(i=1,2,3,4,5,6)种设备被送到第j(j=1,2,3,4)个企业的年创利润,Xij示第i=1,2,3,4,5,6)种设备被F分配到第j(j=1,2,3,4)个企业.目标函数,年创总利润最大。
结果: 甲公司分配到第2台设备, 乙公司分配到第5,6台设备, 丙公司分配到第3,4台设备,丁公司分配到第1台设备,使年创总利润最大,最大为44千万元。
Global optimal solution found.
Objective value: 44.00000
Objective bound: 44.00000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 0
Variable Value Reduced Cost
C( 1, 1) 4.000000 0.000000
C( 1, 2) 2.000000 0.000000
C( 1, 3) 3.000000 0.000000
C( 1, 4) 4.000000 0.000000
C( 2, 1) 6.000000 0.000000
C( 2, 2) 4.000000 0.000000
C( 2, 3) 5.000000 0.000000
C( 2, 4) 5.000000 0.000000
C( 3, 1) 7.000000 0.000000
C( 3, 2) 6.000000 0.000000
C( 3, 3) 7.000000 0.000000
C( 3, 4) 6.000000 0.000000
C( 4, 1) 7.000000 0.000000
C( 4, 2) 8.000000 0.000000
C( 4, 3) 8.000000 0.000000
C( 4, 4) 6.000000 0.000000
C( 5, 1) 7.000000 0.000000
C( 5, 2) 9.000000 0.000000
C( 5, 3) 8.000000 0.000000
C( 5, 4) 6.000000 0.000000
C( 6, 1) 7.000000 0.000000
C( 6, 2) 10.00000 0.000000
C( 6, 3) 8.000000 0.000000
C( 6, 4) 6.000000 0.000000
X( 1, 1) 0.000000 -4.000000
X( 1, 2) 0.000000 -2.000000
X( 1, 3) 0.000000 -3.000000
X( 1, 4) 1.000000 -4.000000
X( 2, 1) 1.000000 -6.000000
X( 2, 2) 0.000000 -4.000000
X( 2, 3) 0.000000 -5.000000
X( 2, 4) 0.000000 -5.000000
X( 3, 1) 0.000000 -7.000000
X( 3, 2) 0.000000 -6.000000
X( 3, 3) 1.000000 -7.000000
X( 3, 4) 0.000000 -6.000000
X( 4, 1) 0.000000 -7.000000
X( 4, 2) 0.000000 -8.000000
X( 4, 3) 1.000000 -8.000000
X( 4, 4) 0.000000 -6.000000
X( 5, 1) 0.000000 -7.000000
X( 5, 2) 1.000000 -9.000000
X( 5, 3) 0.000000 -8.000000
X( 5, 4) 0.000000 -6.000000
X( 6, 1) 0.000000 -7.000000
X( 6, 2) 1.000000 -10.00000
X( 6, 3) 0.000000 -8.000000
X( 6, 4) 0.000000 -6.000000
Row Slack or Surplus Dual Price
1 44.00000 1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 1.000000 0.000000
9 0.000000 0.000000
10 0.000000 0.000000
11 1.000000 0.000000
源代码:
model:
sets:
goods/1..6/;
company/1..4/;
link(goods,company):c,x;
endsets
data:
c= 4 2 3 4
6 4 5 5
7 6 7 6
7 8 8 6
7 9 8 6
7 10 8 6;
enddata
Max=@sum(link:c*x);
@for(goods(i):@sum(company(j):x(i,j))=1);
@for(company(j):@sum(goods(i):x(i,j))<2);
@for(link:@bin(x));
end