使用java在cplex中添加表达式

时间:2018-01-17 14:23:18

标签: java cplex

我正在使用cplex与java,我试图在cplex中解决这个等式,例如,

U = A + B

其中A和B是表达式,U是目标函数,所有这些表达式U,A和B都是数组

这是我的一段代码

IloLinearIntExpr[] U = new IloLinearIntExpr[n];
IloLinearIntExpr[] A = new IloLinearIntExpr[n];
IloLinearIntExpr[] B = new IloLinearIntExpr[n];
for(int i = 0; i < n; i++){
U[i] = cplex.linearIntExpr();
A[i] = cplex.linearIntExpr();
B[i] = cplex.linearIntExpr();
}

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

B[i].addTerm(1, P(X));

B[i].addTerm(1, C(Y));

A[i].addTerm(X, 1);


U[i].addTerm(cplex.sum(A[i],B[i]));  // it seems to be there is a problem here 

cplex.addMaximize(U[i]); 
 }

如果我们添加两个表达式,似乎cplex有问题,请你在这个问题上建议我。

1 个答案:

答案 0 :(得分:0)

U[i].addTerm(cplex.sum(A[i],B[i]));中,您尝试向IloNumExpr添加IloLinearNumExpr,其中方法addTerm()只需要IloNumVardouble }作为要添加到表达式的决策变量的系数。

尝试改为:

U[i].add(A[i]);
U[i].add(B[i]);