MIP 传输问题中的 GAMS 错误 - 作为常量输入的不受控集
GAMS Error in MIP Transportation Problem - Uncontrolled set entered as constant
我正在尝试制定一个 MIP 模型,在该模型中,可以通过可用火车或新轮船投资来执行运输。我目前的代码包括三张表:火车每月费用,船舶每月费用和船舶初始投资费用。
它在“cost.. z =e=”行引发了以下错误 n149:不受控制的集作为常量输入。此外,代码为 257 和 141 的错误分别出现在第 56 行和第 57 行。
Sets
i supply nodes /Plant1, Plant2, Plant3, Plant4/
j demand nodes /City1, City2, City3, City4, City5, Dummy/;
Parameters
a(i) supply capacities
/Plant1 290
Plant2 220
Plant3 180
Plant4 280/
b(j) demands
/City1 180
City2 200
City3 160
City4 140
City5 250
Dummy 40/;
Table c1(i,j) transport costs for trains
City1 City2 City3 City4 City5 Dummy
Plant1 8.5 7 8 6.5 9 0
Plant2 7.5 8 7 10 8.5 0
Plant3 11 6 6.5 8 7 0
Plant4 9 7 12 6 7.5 0 ;
Table c2(i,j) transport costs for ships
City1 City2 City3 City4 City5 Dummy
Plant1 5.5 6 99999 3.5 4 0
Plant2 3 4.5 4 6.5 6 0
Plant3 99999 99999 3 4 4.5 0
Plant4 5 4.5 7 3 99999 0 ;
Table in(i,j) investment costs for ships
City1 City2 City3 City4 City5 Dummy
Plant1 40 90 99999 40 80 0
Plant2 60 40 80 20 40 0
Plant3 99999 99999 80 60 100 0
Plant4 100 60 60 80 99999 0 ;
Positive Variables
x(i,j) flow between supply node i and demand node j;
Variables
y(i,j) whether a ship is bought for the trasfer from i to j
z total cost;
Binary Variables y;
Equations
cost objective function
supply(i) supply constraint
demand(j) demand constraint;
cost.. z =e= sum((i,j), c1(i,j)*x(i,j)*12*10*(1-y(i,j)) + c2(i,j)*x(i,j)*12*10*y(i,j)) + in(i,j)*y(i,j);
supply(i).. sum(j, x(i,j)) =l= a(i);
demand(j).. sum(i, x(i,j)) =g= b(j);
Model homework1c /all/;
homework1c.OPTFILE=1;
Solve homework1c using MIP minimizing z;
Display x.l, x.M, y.l;
如果有任何修复它们的建议,我将不胜感激,在此先感谢。
我看到两个问题:
i
和 + in(i,j)*y(i,j)
中的 j
在 cost
等式的末尾不受控制。这个词应该是 sum
的一部分而不是 i
和 j
吗?
- 您尝试求解
MIP
(应该是线性的),但将变量 x
与变量 y
相乘。因此,您需要求解 MINLP
或重新制定 cost
方程式。
我正在尝试制定一个 MIP 模型,在该模型中,可以通过可用火车或新轮船投资来执行运输。我目前的代码包括三张表:火车每月费用,船舶每月费用和船舶初始投资费用。
它在“cost.. z =e=”行引发了以下错误 n149:不受控制的集作为常量输入。此外,代码为 257 和 141 的错误分别出现在第 56 行和第 57 行。
Sets
i supply nodes /Plant1, Plant2, Plant3, Plant4/
j demand nodes /City1, City2, City3, City4, City5, Dummy/;
Parameters
a(i) supply capacities
/Plant1 290
Plant2 220
Plant3 180
Plant4 280/
b(j) demands
/City1 180
City2 200
City3 160
City4 140
City5 250
Dummy 40/;
Table c1(i,j) transport costs for trains
City1 City2 City3 City4 City5 Dummy
Plant1 8.5 7 8 6.5 9 0
Plant2 7.5 8 7 10 8.5 0
Plant3 11 6 6.5 8 7 0
Plant4 9 7 12 6 7.5 0 ;
Table c2(i,j) transport costs for ships
City1 City2 City3 City4 City5 Dummy
Plant1 5.5 6 99999 3.5 4 0
Plant2 3 4.5 4 6.5 6 0
Plant3 99999 99999 3 4 4.5 0
Plant4 5 4.5 7 3 99999 0 ;
Table in(i,j) investment costs for ships
City1 City2 City3 City4 City5 Dummy
Plant1 40 90 99999 40 80 0
Plant2 60 40 80 20 40 0
Plant3 99999 99999 80 60 100 0
Plant4 100 60 60 80 99999 0 ;
Positive Variables
x(i,j) flow between supply node i and demand node j;
Variables
y(i,j) whether a ship is bought for the trasfer from i to j
z total cost;
Binary Variables y;
Equations
cost objective function
supply(i) supply constraint
demand(j) demand constraint;
cost.. z =e= sum((i,j), c1(i,j)*x(i,j)*12*10*(1-y(i,j)) + c2(i,j)*x(i,j)*12*10*y(i,j)) + in(i,j)*y(i,j);
supply(i).. sum(j, x(i,j)) =l= a(i);
demand(j).. sum(i, x(i,j)) =g= b(j);
Model homework1c /all/;
homework1c.OPTFILE=1;
Solve homework1c using MIP minimizing z;
Display x.l, x.M, y.l;
如果有任何修复它们的建议,我将不胜感激,在此先感谢。
我看到两个问题:
i
和+ in(i,j)*y(i,j)
中的j
在cost
等式的末尾不受控制。这个词应该是sum
的一部分而不是i
和j
吗?- 您尝试求解
MIP
(应该是线性的),但将变量x
与变量y
相乘。因此,您需要求解MINLP
或重新制定cost
方程式。