Error:(198, 32) java: no suitable method found for addTerm(double,ilog.concert.IloIntVar[]) method ilog.concert.IloLinearIntExpr.addTerm(int,ilog.concert.IloIntVar) is not applicable (argument mismatch; possible lossy conversion from double to int) method ilog.concert.IloLinearIntExpr.addTerm(ilog.concert.IloIntVar,int) is not applicable (argument mismatch; double cannot be converted to ilog.concert.IloIntVar)Есть предложения по этой ошибке?
//for Virtual link Variable Y i,j m,n,k and flow variable F i,j m,n,k
IloIntVar[][][][][] ylink=new IloIntVar[VNVert_k][VNVert_k][VNVert_k][VNVert_k][];
IloIntVar[][][][][] flink=new IloIntVar[VNVert_k][VNVert_k][VNVert_k][VNVert_k][];
for (int i = 0; i < VNVert_k; i++) {
for (int j = 0; j < VNVert_k; j++) {
for (int k = 0; k < VNVert_k; k++) {
for (int l = 0; l < VNVert_k; l++) {
ylink[i][j][k][l]=cplex.intVarArray(VNVert_k,0,1);
flink[i][j][k][l]=cplex.intVarArray(VNVert_k,0,1);
}
}
}
}
//---------------------------- Constraints
IloLinearNumExpr exp1 = cplex.linearNumExpr();
IloLinearNumExpr exp2 = cplex.linearNumExpr();
IloLinearNumExpr exp3 = cplex.linearNumExpr();
IloLinearIntExpr exp4 = cplex.linearIntExpr();
for (int i = 0; i <SubVert ; i++) {
for (int j = 0; j < SubVert; j++) {
//constraint
exp1.addTerm(M,xlink[i][j]);
//constraint 5 ∑ Xij=1
exp2.addTerm(1,xlink[i][j]);
cplex.addLe(exp2,1);
// constriant 6 ∑ Xij=1
exp3.addTerm(1,xlink[i][j]);
cplex.addEq(exp3,1);
for (int k = 0; k <SubVert ; k++) {
for (int l = 0; l < VNVert_k; l++) {
//contraint 1
exp4.addTerm(1.0,flink[i][j][k][l]);
cplex.addGe(exp1,exp4);
}
}
}
}
«Не найдено подходящего метода для addTerm (double, ilog.concert.IloIntVar [])». Как вы думаете, что означает это сообщение об ошибке? Как вы это понимаете? – Tunaki
для преобразования, что i было определено как IloIntVar, но здесь внутри ограничение igives error // contraint 1 exp4.addTerm (1.0, flink [i] [j] [k] [l]); –
Это не объяснение вашей интерпретации этой ошибки. – Tunaki