CPLEX Java를 사용하여 ILP를 구현하려고했지만 오랫동안 문제가 지속되었습니다. 여기에 ILP의 몇 가지 변수는 다음과 같습니다cplex boolVarArray 이중 값 제공
IloIntVar above = new IloIntVar[numRect][];
IloIntVar below = new IloIntVar[numRect][];
IloIntVar left = new IloIntVar[numRect][];
IloIntVar right = new IloIntVar[numRect][];
for (int i = 0; i < numRect; i++) {
above[i] = cplex.boolVarArray(numRect);
below[i] = cplex.boolVarArray(numRect);
left[i] = cplex.boolVarArray(numRect);
right[i] = cplex.boolVarArray(numRect);
}
numRect의 값은 프로그램 I 출력의 끝에이 값에서 1입니다 : 내가 얻을 출력 여기
for (int i = 0; i < numRect; i++) {
for (int j = i + 1; j < numRect; j++) {
System.out.println(cplex.getValue(left[i][j]));
System.out.println(cplex.getValue(right[i][j]));
System.out.println(cplex.getValue(above[i][j]));
System.out.println(cplex.getValue(below[i][j]));
System.out.println(cplex.getValue(left[i][j]) +
cplex.getValue(right[i][j]) +
cplex.getValue(above[i][j]) +
cplex.getValue(below[i][j]));
}
}
된다
0.0
0.0
9.313225750491594E-10
0.9999999990686774
1.0
왜 내가 부울 대신 이중 값을 얻는 지 이해할 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사.
감사합니다. 그것은 큰 도움이되었습니다. – user1009285