1 votos

Combinando múltiples combinaciones de variables binarias en una declaración de suma

Tengo una pregunta sobre cómo formular una restricción de un MILP.

Tengo 2 plataformas p y v(p) que son vecinas. Dependiendo del estado de ambas plataformas se elige un valor específico. P y v(p) solo pueden ser 1 o 0. Puedo escribirlo de la siguiente manera:

p*v(p)*a + (p-1)*v(p)b + p(v(p)-1)c + (p-1)(v(p)-1)*d

Para solo estas dos, podría escribir mi restricción de esa manera. Pero si agrego una tercera variable, esto se vuelve difícil.

¿Cómo puedo escribir esta expresión como una declaración de suma?

1voto

prubin Puntos 51

Puedes hacer esto agregando variables y restricciones. Supongamos que tus tres variables binarias originales son $x_1,x_2,x_3$. Agrega una variable para cada una de las siete posibles combinaciones distintas a $x_1=x_2=x_3=0.$ Llamémoslas $y_1, y_2, y_3, y_{1,2}, y_{1,3}, y_{2,3}, y_{1,2,3}.$ El valor de tu expresión será $a_1 y_1 + \dots + a_{1,2,3} y_{1,2,3}$, donde cada parámetro $a$ es el valor de la expresión para la combinación de valores de $x$ reflejados en la variable correspondiente $y$.

Ahora necesitamos restricciones para definir $y$ en términos de $x$. Todas las variables $y$ pueden ser continuas con dominio $[0,1]$ o binarias. La variable con un subíndice único $y_1$ debe ser 1 si y solo si $x_1 = 1$ y $x_2 = x_3 = 0,$ lo cual conseguimos a través de las siguientes restricciones: $$y_1 \le x_1\\ y_1 \le 1 - x_2\\y_1 \le 1-x_3 \\ y_1 \ge x_1 - x_2 - x_3.$$ La variable con un doble subíndice $y_{1,2}$ debe ser 1 si y solo si $x_1 = 1 = x_2$ y $x_3=0$, para lo cual tenemos las siguientes restricciones: $$y_{1,2} \le x_1 \\ y_{1,2} \le x_2 \\ y_{1,2} \le 1-x_3 \\ y_{1,2} \ge x_1 + x_2 - x_3 - 1.$$ Para las otras combinaciones, simplemente permuta los subíndices. La variable $y_{1,2,3}$ debe ser 1 si y solo si las tres variables $x$ son 1, lo cual lleva a estas restricciones: $$y_{1,2,3} \le x_1\\y_{1,2,3} \le x_2 \\y_{1,2,3} \le x_3 \\y_{1,2,3} \ge x_1 + x_2 + x_3 - 2.$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X