我将变量linObj
声明为IloNumExpr
,并且我有4个循环(循环元素i,j,k和l),其中每次我向这个变量添加另外两个变量的总和,如:
linObj = cplex.sum(linObj, cplex.sum(s[i][j][j][k],s[i][j][l][k])
当循环关闭时,我将linObj
声明为目标函数。
现在,我遇到一个名为ilog.cplex.MultiObjectiveException
的错误。
答案 0 :(得分:0)
除了这个例外,你可能在你的循环中做了类似的事情:
linObj = cplex.sum(linObj, cplex.sum(s[i][j][j][k],s[i][j][l][k]);
cplex.addMinimize(linObj);
从而实现多个目标。
只在循环之后调用cplex.addMinimize(linObj);
,你应该只有一个目标。
此外,您应该考虑将代码更改为:
IloLinearNumExpr linObj = cplex.linearNumExpr();
/*loops*/
linObj.addTerm(1, cplex.sum(s[i][j][j][k],s[i][j][l][k]);
/*after loops*/
cplex.addMinimize(linObj);
希望这有帮助