¿Cómo puedo cambiar el tipo de variable de decisión en Concert Technologies (con Java)?
Tengo un modelo MILP con variables continuas ($y_{ij}$) y binarios ($x_{ij}$). Estoy usando Java y cplex 12.8 para la implementación.
¿Hay alguna manera de que, utilizando la API de Java-cplex, pueda escribir solo un modelo que pueda resolverse primero con el binario? $x_{ij}$y luego para las variables continuas ($0 \leq x_{ij} \leq 1$)? Quiero ver la brecha entre LP-R y MIP sobre la marcha, y no quiero construir dos modelos LP y MILP diferentes.
Respuestas
El tipo de variable no se puede cambiar. Sin embargo, se puede sobrescribir para un modelo en particular agregando un objeto IloConversion, que le permite especificar nuevos tipos de variables dentro de ese modelo. Cuando ILOG CPLEX encuentra un objeto de conversión en el modelo activo, utiliza los tipos de variable especificados en el objeto de conversión en lugar del tipo original especificado para la optimización. Por ejemplo, en un modelo que contiene:
IloNumVar x = cplex.numVar(0.0, 1.0);
cplex.add(cplex.conversion(x, IloNumVarType.Int));