【问题标题】:Cplex Objective Function ErrorCplex 目标函数错误
【发布时间】:2015-05-20 01:47:54
【问题描述】:

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

【问题讨论】:

  • 您可以在此处阅读:pic.dhe.ibm.com/infocenter/cosinfoc/v12r4/… ilog.cplex.MultipleObjectiveException 是由于尝试向模型添加多个目标而引发的。您能否提供完整的代码,以便我们弄清楚那里发生了什么?

标签: java cplex


【解决方案1】:

除了这个例外,你可能在循环中做这样的事情:

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多