El óptimo no es el final, claves de la post-optimización

Imagina que tienes un negocio, programas un modelo matemático para maximizar tus ganancias (o minimizar tus costes), el algoritmo corre y, ¡listo! Tienes la solución óptima en tus manos. Sabes exactamente cuánto producir y qué recursos usar. Todo parece perfecto hasta que… la vida real pasa: el precio de una materia prima fluctúa, un proveedor te ofrece una tonelada extra de recursos, o decides lanzar un nuevo producto al mercado.

¿Significa esto que tienes que tirar todo a la basura y volver a calcular el problema desde cero? Afortunadamente, no. Aquí es donde entra en juego la post-optimización, una de las aplicaciones más potentes e inteligentes de la optimización lineal.

¿Qué es la post-optimización?

En la práctica, casi ningún problema permanece inalterado durante mucho tiempo. Cambian los costes, aparecen nuevos productos, aumenta la disponibilidad de recursos o surgen nuevas restricciones que no existían cuando se resolvió el modelo.

La post-optimización estudia precisamente cómo afectan esos cambios a una solución óptima ya obtenida. En lugar de resolver nuevamente el problema desde cero, aprovecha la información disponible en la tabla final del método del Símplex para determinar si la solución sigue siendo válida o cómo puede actualizarse de forma eficiente.

A grandes rasgos, cuando el contexto cambia, la post-optimización nos permite gestionar dos grandes escenarios:

  • Modificaciones al modelo inicial: ¿Qué sucede si varía la disponibilidad de los recursos que ya tenemos o si cambian los beneficios económicos de nuestros productos actuales?

  • Extender el modelo inicial: ¿Qué pasa si decidimos introducir nuevas variables (como un producto completamente nuevo) o si se deben imponer nuevas restricciones operativas?

Ejemplo: un problema de planificación de la producción

Para ilustrar las distintas situaciones de post-optimización utilizaremos el mismo problema durante todo el post. De esta forma será más sencillo apreciar qué cambia en cada escenario y qué información puede reutilizarse de la solución original.

Consideremos una empresa que fabrica tres productos utilizando dos recursos limitados.

El modelo de optimización lineal es

\[\begin{aligned} \max\quad & z=3x_1+2x_2+x_3\\ \text{s.a:}\quad & 4x_1 + 2x_2 + 3x_3 \leqslant 40\\ & 2x_1 + 2x_2 + x_3 \leqslant 30\\ & x_1,x_2,x_3 \geqslant 0 \end{aligned}\]

cuya tabla final del Símplex es:

\[\begin{array}{cc|rrrrr|r} & & {\color{gray}3} & {\color{gray}2} & {\color{gray}1} & {\color{gray}0} & {\color{gray}0} & \\ & & x_1 & x_2 & x_3 & x_4^h & x_5^h & \\ \hline & z_j-c_j & 0 & 0 & 1 & \frac{1}{2} & \frac{1}{2} & 35 \\ \hline {\color{gray}3} & x_1 & 1 & 0 & 1 & \frac{1}{2} & -\frac{1}{2} & 5 \\ {\color{gray}2} & x_2 & 0 & 1 & -\frac{1}{2} & -\frac{1}{2} & 1 & 10 \\ \hline \end{array}\]

La solución óptima es

\[(\mathbf{x}^*)^\intercal=(5,10,0,0,0)\]

con un beneficio

\[z^*=35\]

Una vez obtenida esta solución aparecen preguntas mucho más interesantes que el propio problema original:

  • ¿Qué ocurre si aumenta el beneficio de uno de los productos?
  • ¿Qué sucede si se dispone de más materia prima?
  • ¿Qué recurso resulta realmente escaso?
  • ¿Qué ocurre si cambia la línea de producción de un producto y cambian las especificaciones técnicas?
  • ¿Qué ocurre si se incorpora un nuevo producto a la línea de producción?
  • ¿Qué ocurre si se incluyen nuevas condiciones al problema?

Estas cuestiones constituyen el núcleo de la post-optimización.

Modificaciones del modelo

En los siguientes apartados estudiaremos modificaciones que no alteran la estructura del problema, sino únicamente los datos con los que fue formulado. La base óptima obtenida puede seguir siendo útil, aunque será necesario comprobar si continúa siendo factible y/o óptima. En este caso cambian los datos disponibles.

Vector de recursos

Un análisis de sensibilidad más habituales consiste en estudiar cómo afectan a la solución óptima los cambios en la disponibilidad de recursos. En términos del modelo, esto equivale a modificar el vector de recursos, $\mathbf{b}$.

Sea $\hat{\mathbf{b}}$ el nuevo vector de recursos. Si la base óptima $\mathbf{B}$ permanece inalterada, la nueva solución básica se obtiene como:

\[\hat{\mathbf{x}}_\mathbf{B} = \mathbf{B}^{-1}\hat{\mathbf{b}}\]

y el nuevo valor de la función objetivo es

\[\hat{z}= \mathbf{c}_\mathbf{B}^\intercal \hat{\mathbf{x}}_\mathbf{B}\]

Una vez calculada la nueva solución básica, pueden darse dos situaciones:

  • La solución sigue siendo factible, es decir,

    \[\hat{\mathbf{x}}_\mathbf{B} \geqslant \mathbf{0}\]

    En este caso, la base continúa siendo factible y, como los costes reducidos no han variado, también sigue siendo óptima. Por tanto, la nueva solución del problema es $\hat{\mathbf{x}}_\mathbf{B}$ y el nuevo valor óptimo de la función objetivo es $\hat{z}$.

  • La solución deja de ser factible, es decir, alguna de las componentes de $\hat{\mathbf{x}}_\mathbf{B}$ es negativa.

    En esta situación se pierde la factibilidad primal, aunque la base sigue siendo dual factible. Por ello, no es necesario resolver el problema desde cero, sino que basta con aplicar el algoritmo Dual del Símplex, que permitirá recuperar la factibilidad y obtener la nueva solución óptima de forma eficiente.


Vector de costes

Otro análisis de sensibilidad muy habitual consiste en estudiar cómo afectan a la solución óptima los cambios en los coeficientes de la función objetivo, es decir, en el vector de costes $\mathbf{c}$.

A diferencia de las modificaciones en el vector de recursos, en este caso la solución básica no cambia. Lo que cambia son los costes reducidos y, en consecuencia, el valor de la función objetivo.

Sea $\hat{\mathbf{c}}$ el nuevo vector de costes. Si se mantiene la misma base $\mathbf{B}$, los nuevos valores $\hat{z}_j-\hat{c}_j$ vienen dados por

\[\hat{z}_j-\hat{c}_j = \hat{\mathbf{c}}_\mathbf{B}^\intercal \mathbf{B}^{-1}\mathbf{a}_j - \hat{c}_j = \hat{\mathbf{c}}_\mathbf{B}^\intercal \mathbf{y}_j - \hat{c}_j\]

mientras que el nuevo valor de la función objetivo es

\[\hat{z} = \hat{\mathbf{c}}_\mathbf{B}^\intercal \mathbf{x}_\mathbf{B}\]

A partir de estos nuevos costes reducidos pueden darse dos situaciones:

  • La base continúa siendo óptima. En un problema de maximización esto ocurre si

    \[\hat{z}_j-\hat{c}_j \geqslant 0 \qquad \forall j\]

    En ese caso, la solución básica $\mathbf{x}_\mathbf{B}$ sigue siendo óptima y únicamente cambia el valor de la función objetivo.

  • La base deja de ser óptima. Si existe alguna variable no básica cuyo coste reducido verifica

    \[\hat{z}_j-\hat{c}_j<0\]

    entonces la tabla deja de ser final. Como la factibilidad no se ha perdido, basta con continuar las iteraciones mediante el algoritmo Primal del Símplex.


Coeficientes técnicos de un vector no básico

Otro análisis de sensibilidad consiste en estudiar cómo afectan a la solución óptima las modificaciones en una de las columnas no básicas de la matriz de restricciones. Este tipo de cambios puede aparecer, por ejemplo, cuando una actividad consume una cantidad diferente de recursos o cuando se modifica la formulación de una variable.

Si la columna modificada corresponde a una variable no básica, la base permanece inalterada. Sin embargo, cambian tanto la columna correspondiente de la tabla del Símplex como el coste reducido de dicha variable.

Sea $\hat{\mathbf{a}}_j$ la nueva columna asociada a la variable no básica $x_j$. La nueva columna de la tabla viene dada por

\[\hat{\mathbf{y}}_j = \mathbf{B}^{-1}\hat{\mathbf{a}}_j\]

mientras que su nuevo coste reducido es

\[\hat{z}_j-c_j = \mathbf{c}_\mathbf{B}^\intercal \mathbf{B}^{-1} \hat{\mathbf{a}}_j - c_j = \mathbf{c}_\mathbf{B}^\intercal \hat{\mathbf{y}}_j - c_j\]

A partir de este nuevo coste reducido pueden darse dos situaciones:

  • La base continúa siendo óptima. En un problema de maximización esto ocurre si

    \[\hat{z}_j - c_j \geqslant 0\]

    En este caso, la solución básica no cambia y el valor de la función objetivo permanece inalterado.

  • La base deja de ser óptima. Si

    \[\hat{z}_j-c_j<0\]

    la variable modificada pasa a ser candidata a entrar en la base. Como la solución sigue siendo factible, basta con continuar las iteraciones mediante el algoritmo primal del Símplex.


Ampliaciones del modelo

Hasta ahora únicamente hemos modificado información existente del problema. A continuación analizaremos situaciones en las que el propio modelo cambia de dimensión al incorporar nuevas variables o nuevas restricciones. En este caso, el modelo aumenta de tamaño.

Incorporación de una nueva variable

Otro escenario habitual en post-optimización consiste en analizar qué ocurre cuando se incorpora una nueva variable de decisión al modelo. Esto sucede, por ejemplo, cuando una empresa estudia producir un nuevo producto o prestar un nuevo servicio sin necesidad de reformular completamente el problema.

Desde el punto de vista del algoritmo del Símplex, añadir una nueva variable implica incorporar una nueva columna a la tabla.

Sea $x_{n+1}$ la nueva variable, caracterizada por su columna de coeficientes \(\mathbf{a}_{n+1}\) y su coeficiente en la función objetivo $c_{n+1}$. La nueva columna de la tabla se obtiene como

\[\mathbf{y}_{n+1} = \mathbf{B}^{-1}\mathbf{a}_{n+1}\]

mientras que su valor $z_j-c_j$ viene dado por

\[z_{n+1}-c_{n+1} = \mathbf{c}_\mathbf{B}^\intercal \mathbf{y}_{n+1} - c_{n+1}\]

A partir de este valor pueden darse dos situaciones:

  • La nueva variable no mejora la solución. En un problema de maximización esto ocurre cuando

    \[z_{n+1}-c_{n+1} \geqslant 0\]

    En ese caso, la nueva variable permanece fuera de la base y la solución óptima no cambia.

  • La nueva variable mejora la solución. Si

    \[z_{n+1}-c_{n+1}<0\]

    la nueva variable es candidata a entrar en la base. Como la solución sigue siendo factible, basta con continuar las iteraciones mediante el algoritmo Primal del Símplex.


Añadir una nueva restricción

Otro análisis habitual de post-optimización consiste en estudiar el efecto de incorporar una nueva restricción al modelo. Este caso aparece cuando el problema original debe adaptarse a nuevas limitaciones, como la disponibilidad de un nuevo recurso, una capacidad adicional o una nueva condición de funcionamiento.

A diferencia de los casos anteriores, añadir una restricción implica incorporar también una nueva variable de holgura, por lo que la tabla del Símplex aumenta una fila y una columna.

Inicialmente, la nueva fila no suele preservar la estructura de la matriz identidad correspondiente a las variables básicas. Sin embargo, esta puede recuperarse combinando adecuadamente las filas existentes de la tabla.

Una vez reconstruida la identidad, pueden darse dos situaciones:

  • La solución continúa siendo factible. En este caso, la tabla sigue siendo final y la solución no cambia.

  • La solución deja de ser factible. Si alguna variable básica toma un valor negativo, la factibilidad primal se pierde y es necesario continuar mediante el algoritmo Dual del Símplex.


Resumen

A lo largo de este post hemos visto que no todas las modificaciones afectan del mismo modo a una solución óptima. Dependiendo del elemento que cambie, puede perderse la factibilidad, la optimalidad o ambas, lo que determina si es posible reutilizar la tabla final o si es necesario continuar iterando mediante alguno de los algoritmos del método del Símplex.

La siguiente tabla resume los casos más habituales:

Modificación ¿Se pierde la factibilidad primal? ¿Se pierde la factibilidad dual? Algoritmo a aplicar
Cambio en el vector de recursos $\mathbf{b}$ Puede ocurrir No Símplex Dual (si se pierde la factibilidad)
Cambio en el vector de costes $\mathbf{c}$ No Puede ocurrir Símplex Primal (si se pierde la optimalidad)
Cambio en una columna no básica $\mathbf{a}_j$ No Puede ocurrir Símplex Primal (si se pierde la optimalidad)
Incorporación de una nueva variable No Puede ocurrir Símplex Primal (si la nueva variable mejora la solución)
Incorporación de una nueva restricción Puede ocurrir No Símplex Dual (si se pierde la factibilidad)

Puede observarse un patrón muy interesante:

  • Cuando una modificación afecta a la factibilidad de la solución, el algoritmo adecuado para recuperar el óptimo es el Símplex Dual.
  • Cuando la modificación afecta únicamente a la optimalidad, manteniéndose la factibilidad, basta con continuar mediante el Símplex Primal.

Una de las principales ventajas del método del Símplex es que la tabla final contiene mucha más información que una simple solución óptima. Esa información permite analizar rápidamente qué ocurre cuando cambian los datos del problema, evitando resolver nuevamente el modelo desde cero en muchas situaciones.

Como hemos visto, el tipo de modificación determina también el algoritmo que debe utilizarse para reoptimizar el problema. Si se pierde la factibilidad primal, el Símplex Dual resulta el procedimiento natural. Si se pierde la factibilidad dual, basta con continuar mediante el Símplex Primal.

La post-optimización convierte así una solución óptima en una herramienta dinámica, capaz de adaptarse de forma eficiente a los cambios que inevitablemente aparecen en problemas reales.

Referencias




      Le gustó leer este artículo?

      Aqui están algunos artículos relacionados que le pueden gustar:

    • El Símplex al revés, entendiendo el algoritmo dual del Símplex
    • Descubriendo el espejo de la optimización Lineal, el fascinante mundo de la dualidad
    • Convergencia, degeneración y el "lado oscuro" del Símplex
    • Cómo reconocer los distintos tipos de soluciones en optimización lineal con el Símplex
    • El arranque del Símplex, cómo comenzar cuando no hay solución básica evidente