Tengo las dos restricciones siguientes:
$$ x_1 \leq x_2 \leq x_3 \qquad \mbox{if } x_1 \leq x_3 \\ x_1 > x_2 > x_3 \qquad \mbox{otherwise} $$
¿Hay alguna forma de eliminar las dos condiciones y acabar sólo con la(s) restricción(es) lineal(es)?
Tengo las dos restricciones siguientes:
$$ x_1 \leq x_2 \leq x_3 \qquad \mbox{if } x_1 \leq x_3 \\ x_1 > x_2 > x_3 \qquad \mbox{otherwise} $$
¿Hay alguna forma de eliminar las dos condiciones y acabar sólo con la(s) restricción(es) lineal(es)?
Una solución, quizá no la más eficiente, puede ser la siguiente: su restricción puede reescribirse como
$$ \min(x_1, x_3) \leq x_2 \leq \max(x_1,x_3) $$
por lo tanto, se pueden introducir dos variables positivas $t$ y $k$ tal que:
$$ t \leq x_1 \\ t \leq x_3 \\ k \geq x_1\\ k \geq x_3 $$
Poner $t$ y $k$ en la función objetivo con los coeficientes adecuados, se puede acabar con $t = \min(x_1,x_3)$ y $k = \max(x_1,x_3)$ . Así que su restricción se convierte en: $$ t \leq x_2 \leq k$$
Lo que dices con las restricciones es básicamente que tienes dos casos, y en ambos casos necesitas $x_2$ para estar en el medio $x_3$ y $x_1$ .
Una forma de linealizar esto es decir que queremos minimizar $$\epsilon\left|\frac{x_3+x_1}{2} - x_2\right|$$ es decir, empujar $x_2$ para acercarse al valor medio (aritmético) de $x_1$ y $x_3$ . Tal vez se pueda derivar el tamaño $\epsilon$ son adecuados. Demasiado grandes y $x_2$ sería forzado a ser exactamente el valor medio.
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.
0 votos
Sólo por curiosidad, ¿en qué tipo de problema estás utilizando esa restricción? ¿qué estás representando, si se puede saber?
0 votos
Oh, las x son esencialmente variables de diseño de escala aplicadas en la dirección de la cuerda de un ala (para lograr una conicidad no lineal). Las restricciones anteriores pretenden forzar a una variable de diseño de escala a permanecer siempre entre los límites de las otras dos que la intercalan. Lo necesitaba para intentar eliminar los "zigzags" en el gráfico de escala vs. envergadura. Por cierto, me gusta mucho cómo conviertes mi problema en uno de mínimo/máximo, pero si lo entiendo bien tendría que introducir variables de "holgura", lo que desgraciadamente no es lo ideal para mí.