我正在使用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有问题,请你在这个问题上建议我。
答案 0 :(得分:0)
在U[i].addTerm(cplex.sum(A[i],B[i]));
中,您尝试向IloNumExpr
添加IloLinearNumExpr
,其中方法addTerm()
只需要IloNumVar
和double
}作为要添加到表达式的决策变量的系数。
尝试改为:
U[i].add(A[i]);
U[i].add(B[i]);