我是一个编程初学者,我的代码显示错误cplex (默认)不能提取表达式。我的模型应该通过比较不同的运输方式来最小化受排放影响的成本(帕累托-优化)。当我只运行最小成本或最小排放的模型时,它工作得很好,但是一旦我分别添加了排放或成本的主观因素,就会出现错误。我用较小的输入数据测试了模型,并且运行良好。
这些错误是:
Karolina_MA.mod /Karolina_MA 116:6-117:33
有人能帮我找出问题所在吗?谢谢!
以下是我代码的一部分:
// Parameters
int a=...; // Set of arcs available from departure to destination
int m=...; // Set of transport modes for direct shipment (trucks)
int n=...; // Set of transport modes for multi-mode shipments (train, vessel, airplane)
range arc =1..a;
range transport_dir =1..m;
range transport_mm=1..n;
// decision variables
dvar boolean Y[arc];
dvar boolean X_dir[arc][transport_dir];
dvar boolean X_mm[arc][transport_mm];
// expression costs
dexpr float TotalCost_dir = sum(a in arc, m in transport_dir) cost_dir[a][m]*shipments_dir[a]*X_dir[a][m];
dexpr float TotalCost_mm = sum(a in arc, n in transport_mm) cost_mm[a][n]*shipments_dir[a]*X_mm[a][n];
dexpr float TotalCost = TotalCost_dir + TotalCost_mm;
//expression emissions
dexpr float TotalEmission_dir = sum(a in arc, m in transport_dir) emissions_dir[a][m]*shipments_dir[a]*X_dir[a][m];
dexpr float TotalEmission_mm = sum(a in arc, n in transport_mm) emissions_mm[a][n]*shipments_dir[a]*X_mm[a][n];
dexpr float TotalEmission = TotalEmission_dir + TotalEmission_mm;
// objective
//minimize TotalEmission;
minimize TotalCost;
subject to {
//General Emission constraint - subject to min. cost
forall (a in arc)
emissions_constraint:
TotalEmission <= 976222726;}
发布于 2021-04-17 01:43:51
// Parameters
int a=5; // Set of arcs available from departure to destination
int m=6; // Set of transport modes for direct shipment (trucks)
int n=7; // Set of transport modes for multi-mode shipments (train, vessel, airplane)
range arc =1..a;
range transport_dir =1..m;
range transport_mm=1..n;
int cost_dir[arc][transport_dir];
int cost_mm[arc][transport_mm];
int emissions_dir[arc][transport_dir];
int emissions_mm[arc][transport_mm];
int shipments_dir[arc];
// decision variables
dvar boolean Y[arc];
dvar boolean X_dir[arc][transport_dir];
dvar boolean X_mm[arc][transport_mm];
// expression costs
dexpr float TotalCost_dir = sum(a in arc, m in transport_dir) cost_dir[a][m]*shipments_dir[a]*X_dir[a][m];
dexpr float TotalCost_mm = sum(a in arc, n in transport_mm) cost_mm[a][n]*shipments_dir[a]*X_mm[a][n];
dexpr float TotalCost = TotalCost_dir + TotalCost_mm;
//expression emissions
dexpr float TotalEmission_dir = sum(a in arc, m in transport_dir) emissions_dir[a][m]*shipments_dir[a]*X_dir[a][m];
dexpr float TotalEmission_mm = sum(a in arc, n in transport_mm) emissions_mm[a][n]*shipments_dir[a]*X_mm[a][n];
dexpr float TotalEmission = TotalEmission_dir + TotalEmission_mm;
// objective
//minimize TotalEmission;
minimize TotalCost;
subject to {
//General Emission constraint - subject to min. cost
forall (a in arc)
emissions_constraint:
TotalEmission <= 976222726;}
工作很好
https://stackoverflow.com/questions/67135947
复制相似问题