如何解决 Cplex OPL 中的加权平均约束?
how to solve weighetd average constraints in Cplex OPL?
我正在使用Cplex来解决供应链优化模型,Objective函数是线性的,一些约束包括加权平均水分含量是非线性约束,并且会出现错误。
forall(j in S)
minMC<=(sum (i in H) X[i][j] *MC[i][j])/sum (i in H) X[i][j];
forall(j in S)
(sum (i in H) X[i][j]*MC[i][j])/sum (i in H) X[i][j]>= maxMC;
错误:
Description Resource Path Location Type CPLEX(default) cannot extract expression:
forall(j in 1..12) 0.45 <= (sum(i in 1..24) X[i][j]*MC[i][j]) / (sum(i in 1..24) X[i][j]).
如果您使用线性规划,则不应除以决策变量,但您可以通过将不等式的两边相乘来解决。
让我举一个小例子 zoo tiny example:
int nbKids=300;
float costBus40=500;
float costBus30=400;
dvar int+ nbBus40;
dvar int+ nbBus30;
minimize
costBus40*nbBus40 +nbBus30*costBus30;
subject to
{
40*nbBus40+nbBus30*30>=nbKids;
// (nbBus40*0.5+nbBus30*0.7)/(nbBus30+nbBus40)<=10; //KO
(nbBus40*0.5+nbBus30*0.7)<=10*(nbBus30+nbBus40);
}
我正在使用Cplex来解决供应链优化模型,Objective函数是线性的,一些约束包括加权平均水分含量是非线性约束,并且会出现错误。
forall(j in S)
minMC<=(sum (i in H) X[i][j] *MC[i][j])/sum (i in H) X[i][j];
forall(j in S)
(sum (i in H) X[i][j]*MC[i][j])/sum (i in H) X[i][j]>= maxMC;
错误:
Description Resource Path Location Type CPLEX(default) cannot extract expression:
forall(j in 1..12) 0.45 <= (sum(i in 1..24) X[i][j]*MC[i][j]) / (sum(i in 1..24) X[i][j]).
如果您使用线性规划,则不应除以决策变量,但您可以通过将不等式的两边相乘来解决。
让我举一个小例子 zoo tiny example:
int nbKids=300;
float costBus40=500;
float costBus30=400;
dvar int+ nbBus40;
dvar int+ nbBus30;
minimize
costBus40*nbBus40 +nbBus30*costBus30;
subject to
{
40*nbBus40+nbBus30*30>=nbKids;
// (nbBus40*0.5+nbBus30*0.7)/(nbBus30+nbBus40)<=10; //KO
(nbBus40*0.5+nbBus30*0.7)<=10*(nbBus30+nbBus40);
}