如何解决 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);

}