铝土矿配矿

在参考文献中的第二部分有铝土矿配矿的优化模型,相关数据,求解结果。这里主要目的是如何用AMPL来实现求解。

参考文献下载

 

AMPL代码

param N integer >0; param L{1..N}>=0; var x{1..N}>=0; param Need >=0; param K >=0; param Deal >=0; param JK{1..N}>0; param Resv{1..N}>0; param C{1..N}; param A{1..N}>0; param S{1..N}>0; minimize TRW: sum{i in 1..N} L[i]*x[i]; #产出洗后矿总量应等于计划配矿总量 C1: sum{i in 1..N} C[i]*x[i] = Need; #多点出矿的综合A /S应满足生产计划A/S的要求 C2: sum{i in 1..N} C[i]*A[i]*x[i]=K*sum{i in 1..N} C[i]*S[i]*x[i]; #采出的含泥铝土矿的总量应不大于选厂含泥铝土矿的洗矿处理能力 C3: sum{i in 1..N} x[i] <= Deal; #从每个开采单元采出的矿量应该不大于该矿体单元的原矿保有储量 C4{i in 1..N}: x[i]<=Resv[i]; data; param N := 6; param Need := 12; param K := 11; param Deal := 218; param : L Resv JK, A, S := 1 5.7 20.634 7.1594 54.08 5.94 2 5.54 43.505 11.6759 55.81 4.5 3 5.11 25.2583 9.4899 59.24 6.29 4 4.86 48.6412 16.6758 50.78 8.15 5 5.41 4.2976 0.7051 46.18 6.3 6 4.94 0.5229 0.0771 70.78 4.27 ; for{i in 1..N} let C[i]:=JK[i]/Resv[i]; solve; display x;

输出结果:

MINOS 5.51: optimal solution found.
2 iterations, objective 214.9165687
x [*] :=
1   0
2  27.361
3  12.3946
4   0
5   0
6   0
;

你可能感兴趣的:(铝土矿配矿)