cplexjavaapi中目标函数的建模
我正在尝试使用java在Cplex中对目标函数和(I在站点中,j在站点中,k在路由中)(c[I][j]*x[I][j][k]*TruckKmCost)进行建模cplexjavaapi中目标函数的建模,java,cplex,operations-research,Java,Cplex,Operations Research,我正在尝试使用java在Cplex中对目标函数和(I在站点中,j在站点中,k在路由中)(c[I][j]*x[I][j][k]*TruckKmCost)进行建模 IloLinearNumExpr expr = cplex.linearNumExpr(); for (int i = 1; i <= nbFarmer; i++) { for (int j = 1; j <= nbFarmer; j++) {
IloLinearNumExpr expr = cplex.linearNumExpr();
for (int i = 1; i <= nbFarmer; i++) {
for (int j = 1; j <= nbFarmer; j++) {
for (int k = 1; k <= nbRouting; k++) {
expr.addTerm(truckKmCost, c[i][j],x[i][j][k]);
}
}
}
IloLinearNumExpr=cplex.linearNumExpr();
对于(int i=1;i您没有指定c[i][j]
是变量还是数字。根据这一点,您的问题有两种不同的解决方案:
如果c[i][j]
是一个数字,那么只需编写expr.addTerm(truckKmCost*c[i][j],x[i][j][k])
,也就是说,将两个数字合并为一个参数,以addTerm
如果c[i][j]
是一个变量,那么您的目标不是线性的而是二次的。在这种情况下,您不能使用IloLinearNumExpr
,而必须使用IloQuadNumExpr
。此类的addTerm()
将两个变量作为参数