Cplex目标函数错误

时间:2014-09-30 07:24:26

标签: java cplex

我将变量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的错误。

1 个答案:

答案 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);

希望这有帮助