Formulando la restricción condicional

Aug 21 2020

Quiero desarrollar un modelo de extensión del problema de ubicación capacitada.

Las variables son binarias.$x_i$y un continuo$Q_i$. Debe cumplirse la siguiente condición:

  1. si$x_i = 0$,$Q_i$debe ser cero.
  2. si$x_i = 1$,$Q_i \geq 0$.

¿Cómo lo formulamos en la formulación de programación entera?

Gracias por su respuesta.

Respuestas

5 RobPratt Aug 21 2020 at 08:23

Dejar$M_i$ser un límite superior en$Q_i$, e imponer restricciones lineales de gran M$0 \le Q_i \le M_i x_i$.

2 AlexFleischer Aug 21 2020 at 17:08

Tiendo a preferir las restricciones lógicas a la gran M, a menos que realmente se necesite una gran M.

En OPL CPLEX podemos escribir

int n=10;
range r=1..n;

dvar boolean x[r];
dvar float+ Q[r];

subject to
{
  forall(i in r) (x[i]==0) => (Q[i]==0);
}