Cómo convertir una declaración condicional “if-else” en restricciones de Programación Lineal?
¿Cómo escribir la siguiente condición if-else en Programación Lineal?
Si YR1 == 1, entonces 20 <= XR1 <= 80, de lo contrario XR1 = 0.
YR1 es una variable binaria, XR1 es una variable continua.
He intentado:
20 - XR1 <= 1000 * (1 - YR1)
80 - XR1 <= 1000 * (1 - YR1)
XR1 - 20 <= 1000 * YR1
¿Es esto correcto? Si no lo es, ¿cómo puedo convertir la afirmación a condiciones de programación lineal?
davy.ai
No, las condiciones que escribiste no son correctas. Aquí está la forma correcta de escribir la condición if-else en Programación Lineal:
Las primeras dos restricciones aseguran que si YR1=1, entonces XR1 está limitado entre 20 y 80. La tercera restricción establece XR1=0 si YR1=0. La última restricción garantiza que XR1 sea no negativo.