Consideremos un problema con tres variables: u , σl y σw donde σw>σl . Quiero representar la siguiente relación mediante programación entera. u={σw−xx<σl0x>σl
Utilizando restricciones simples de tipo "o" (con una variable binaria y una M grande) puedo obtener el valor correcto para los casos en que x>σw y el caso en que x<σl Sin embargo, cuando x∈(σl,σw) estas restricciones de uno u otro tipo fallan. Para mostrar lo que he intentado hasta ahora, escribo las restricciones either-or que he probado:
0≤u≤Mzσl−x+z(σw−σl)≤u≤σl−x+z(σw−σl)+M(1−z)
donde z∈{0,1} y M es un número arbitrariamente grande.