Java中的目标函数cplex

时间:2014-12-08 15:03:36

标签: java cplex

我试图在java中使用Cplex建模目标函数。我的目标函数是概率和成本表达式的乘积,即:Obj = sum(Pr(i)* Cost(i))。

我这样建模:

IloLinearNumExpr objective = cplex.linearNumExpr();


for (int i=0; i<M; i++){

                objective.addTerm(Pc[i],SupplierCost[i]);

  }

但我有错误消息“IloLinearNumExpr类型中的方法addTerm(double,IloNumVar)不适用于参数(double,IloLinearNumExpr)”。

有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

IloLinearNumExpr.addTerm仅适用于double和IloNumVar。通过错误消息,您的SupplierCost[i]是IloNumExpr,而不是IloNumVar。您可以使用IloCplex.prod方法创建新的IloNumExpr并使用IloNumExpr.add方法将生成的IloNumExpr添加到目标中,从而将Pc [i] * Supplier [i]添加到目标。

IloLinearNumExpr objective = cplex.linearNumExpr();
for (int i=0; i<M; i++){
     objective.add(cplex.prod(Pc[i],SupplierCost[i]));
}