Concert Technologies에서 의사 결정 변수 유형을 변경하는 방법 (Java 사용)

Aug 20 2020

연속 변수가있는 MILP 모델이 있습니다 ($y_{ij}$) 및 바이너리 ($x_{ij}$). 구현을 위해 Java 및 cplex 12.8을 사용하고 있습니다.

Java-cplex API를 사용하여 바이너리로 먼저 해결할 수있는 모델을 하나만 작성할 수있는 방법이 있습니까? $x_{ij}$의 연속 변수 ($0 \leq x_{ij} \leq 1$)? LP-R과 MIP의 격차를 즉석에서보고 싶고, 두 가지 다른 LP 및 MILP 모델을 만들고 싶지 않습니다.

답변

2 AlexFleischer Aug 20 2020 at 21:53

변수 유형은 변경할 수 없습니다. 그러나 IloConversion 객체를 추가하여 특정 모델에 대해 덮어 쓸 수 있으며,이를 통해 해당 모델 내의 변수에 대해 새 유형을 지정할 수 있습니다. ILOG CPLEX는 활성 모델에서 변환 오브젝트를 찾으면 최적화를 위해 지정된 원래 유형 대신 변환 오브젝트에 지정된 변수 유형을 사용합니다. 예를 들어 다음을 포함하는 모델에서 :

IloNumVar x = cplex.numVar(0.0, 1.0);   
cplex.add(cplex.conversion(x, IloNumVarType.Int));