Por qué no aparece el Informe de Confidencialidad (o Informe de Sensibilidad) en Solver de Excel

Cuando resolvemos un modelo de Programación Lineal en Solver de Excel tenemos la posibilidad de generar una serie de informes de respuesta entre los cuales destaca el denominado «Confidencialidad» (o «Sensibilidad» en versiones de Excel anteriores) que resume los principales resultados relativos al análisis de sensibilidad. Lo anterior es fácilmente accesible en el módulo de Resultados de Solver en una interfaz similar como la que se presenta a continuación:

resultados-de-solver-confid

Sin embargo la opción de obtener el Informe de Confidencialidad no siempre está disponible. Para ello consideremos que nos interesa resolver el siguiente modelo de Programación Entera:

modelo-de-programacion-ente

A continuación desarrollamos la implementación computacional según se muestra en la imagen a continuación:

carga-modelo-entero-en-solv

Se puede apreciar que la celda E3 es la fórmula de la función objetivo que representa la ponderación de los parámetros de la misma (10 y 16) por los valores que adquirirán las celdas que definiremos como variables de decisión (B3 y C3). Adicionalmente las celdas D6 y D7 también son fórmulas que considera la ponderación de los parámetros del lado izquierdo de las restricciones por las variables de decisión. Luego, se carga el modelo en Solver de Excel en la interfaz «Parámetros de Solver»:

parametros-de-solver-modelo

Para obtener los resultados sólo es necesario presionar «Resolver» donde se actualizará en la planilla los resultados con la solución óptima X=2 e Y=2 y valor óptimo V(PE)=52. Notar sin embargo que el informe de Confidencialidad ya no se encuentra disponible.

resultados-de-solver-sin-co

¿Por qué sucede ésto?. Básicamente por qué los informes de sensibilidad en Solver se pueden obtener si el problema que se implementa es de naturaleza continua (como lo que sucedería en este mismo problema si se omiten las condiciones de integralidad para las variables de decisión lo que daría lugar a un modelo de Programación Lineal). Por el contrario un modelo de Programación Entera como el que hemos utilizado en este artículo tiene un dominio de factibilidad discreto. Lo anterior queda en evidencia en la siguiente representación gráfica del problema realizada con Geogebra:

contraste-dominio-discreto-

El dominio de factibilidad continuo del modelo de Programación Lineal (omitiendo las condiciones de enteros para las variables de decisión) corresponde al área achurada denotada por el polígono que tiene por los vértices A, B, C y D. En cuanto al modelo de Programación Entera el dominio de factibilidad es discreto y se puede enumerar, lo cual corresponde a las coordenadas que representan los puntos A, E, F, B, I, H, G, J, K, C, M, L y D. En este contexto se debe recordar que uno de los supuestos básicos de la Programación Lineal es la proporcionalidad el cual ya no es admisible cuando nos enfrentamos a un problema de Programación Entera.

En consecuencia, si en la utilización de Solver de Excel queremos analizar el impacto que tiene la modificación de los parámetros del modelo en la resolución de un modelo de Programación Entera (principalmente en lo que se refiere a la solución óptima y valor óptimo) se propone reoptimizar modificando la(s) celda(s) que sean necesarias y ejecutar el programa nuevamente.

Qué significa un Precio Sombra igual a Cero en Programación Lineal

Según hemos abordado en artículos anteriores el Precio Sombra de una restricción representa la tasa de cambio del valor óptimo ante una modificación marginal del lado derecho de una restricción. Se entiende por «marginal» aquella modificación que no cambia la geometría del problema, es decir, que la nueva solución óptima se puede encontrar a través de la resolución del sistema de ecuaciones al que da origen las restricciones activas originales (previa actualización del parámetro que estamos modificando). En este contexto el precio sombra puede ser un valor positivo, negativo o cero y en particular nos referiremos a este último caso en este artículo.

Consideremos el siguiente modelo de Programación Lineal en 2 variables:

modelo-lineal-infinitas-sol

El problema anterior lo podemos resolver gráficamente utilizando Geogebra, que da origen a un problema con infinitas soluciones óptimas en el tramo de recta que une los vértices B y C y que se puede denotar de forma general por: (X,Y)=λ(0,60)+(1-λ)(10,45) con λ en el intervalo entre [0,1]. El valor óptimo en consecuencia es V(P)=1.200.

grafico-infinitas-solucione

¿Cuáles son las restricciones activas en el óptimo?. Por ejemplo si consideramos el vértice B (solución óptima) las restricciones activas son 3X+2Y<=120 y X>=0, sin embargo si seleccionamos el vértice C (también solución óptima) las restricciones activas son 5X+2Y<=140 y 3X+2Y<=120. Dado lo anterior ¿aumentará el valor óptimo si se dispone de unidades adicionales del recurso que representa el lado derecho de la restricción 5X+2Y<=140?.

Para ello buscaremos mantener activas las restricciones del vértice C identificando la máxima variación (aumentando el valor del lado derecho) que conserve las restricciones activas originales (esto genera un desplazamiento paralelo de la restricciones que hemos representado con la línea color punteada color rojo) lo cual se alcanza en la coordenada (X,Y)=(40,0). De forma análoga para determinar la mínima variación para el lado derecho desplazamos en un sentido de decrecimiento la restricción buscando conservar las restricciones activas originales hasta la coordenada (X,Y)=(0,60) (línea punteada color naranjo).

grafico-precio-sombra-igual

Evaluamos en la fórmula para el cálculo del precio sombra obteniendo lo siguiente:

precio-sombra-cero

Por tanto el precio sombra de la restricción 1 (5X+2Y<=140) es cero lo cual indica que si aumenta o disminuye el valor del parámetro que representa su lado derecho (actualmente b1=140) en el intervalo entre [120,200] no se verá afectado el valor óptimo del problema. Lo anterior es consistente con lo obtenido a través del informe de confidencialidad de restricciones de Solver de Excel:

precio-sombra-cero-solver

En general un precio sombra igual a cero significa que la modificación del parámetro que representa el lado derecho de la respectiva restricción (en un intervalo que conserva la geometría del problema) no tiene un impacto en el valor óptimo del problema. Sin embargo, existen casos especiales como los problemas de Programación Lineal que admiten infinitas soluciones (como el descrito en este artículo) donde una restricción con precio sombra igual a cero puede ser activa en uno de los vértices óptimo (el caso más usual es que una restricción con precio sombra igual a cero no sea activa en el óptimo).

Teorema de Dualidad Fuerte y Dualidad Débil (Dualidad en Programación Lineal)

En el contexto de las relaciones de dualidad en Programación Lineal, los teoremas de dualidad fuerte y dualidad débil constituyen importantes resultados teóricos que contribuye a la comprensión y resolución de modelos de optimización lineales. En el siguiente artículo ilustraremos su utilización haciendo uso de un ejemplo sencillo para fines académicos que por supuesto puede ser extendido a problemas de mayor tamaño.

Consideremos los siguientes problemas Primal (P) y Dual (D) en su formato matricial:

primal-dual-matricial

Lo anterior no constituye una pérdida de generalidad dado que el problema primal puede ser de maximización o de minimización con la consecuente incidencia en la interpretación de los resultados.

Teorema de Dualidad Débil

El Teorema de Dualidad Débil establece que si x є IRn, es una solución factible del problema Primal P) y ∏ є IRm, una solución factible del problema Dual D), entonces:

cotas-primal-dual

Es decir, en el formato descrito anteriormente, el valor que reporta una solución factible del problema dual de minimización al ser evaluada en su respectiva función objetivo, representa una cota superior del valor óptimo del problema primal de maximización.

Análogamente, una solución factible del problema primal de maximización al ser evaluada en dicha función objetivo representa una cota inferior del valor óptimo del problema dual de minimización. En conclusión: V(P)<=V(D).

En general si el problema primal tiene un dominio de soluciones factibles no acotado sin solución óptima (es decir, es un problema no acotado) el respectivo problema dual resultará ser infactible (y viceversa).

Para corroborar el Teorema de Dualidad Débil consideraremos un problema primal y su respectivo dual: (si tienes dudas respecto a las relaciones de dualidad te recomendamos leer previamente el artículo Cómo pasar de Primal a Dual y viceversa).

ejemplo-modelos-primal-y-du

Una representación gráfica realizada con Geogebra  del problema primal permite apreciar que el dominio de factibilidad es no acotado y su solución óptima se encuentra en el vértice C donde X1=2/5 y X2=6/5 con valor óptimo V(P)=16/5.

Notar adicionalmente que cualquier par ordenado que pertenece al área achurada es factible, por ejemplo X1=2 y X2=2 es una Solución Básica Factible para el problema primal con V(P)=8 (cota superior del valor óptimo del problema dual de maximización).

dominio-factibilidad-primal

En cuanto al problema dual su dominio de factibilidad es acotado y su solución óptima se encuentra en el vértice C con Y1=2/5 e Y2=2/5 y valor óptimo V(D)=16/5. Adicionalmente existen otros puntos factibles como el origen (Y1=0 e Y2=0) con V(D)=0 lo cual permite corroborar que cualquier solución factible del problema dual al ser evaluada en la función objetivo (de minimización) genera una cota inferior del valor óptimo del problema primal de minimización.

dominio-factibilidad-dual

Teorema de Dualidad Fuerte

Si un problema (Primal) de Programación Lineal tiene una solución óptima, entonces el correspondiente problema Dual también tiene una solución óptima, y los respectivos valores en la función objetivo son idénticos.

En consecuencia, del Teorema de Dualidad Fuerte se deduce que ambos problemas (primal y dual) al ser evaluados en sus respectivas soluciones óptimas (en caso de existir) proveen idéntico valor óptimo, es decir, V(P)=V(D). Es más, resulta suficiente resolver uno de ellos y luego utilizar las propiedades del Teorema de Holguras Complementarias para encontrar la solución óptima (y valor óptimo) de su problema equivalente. En nuestro ejemplo V(P)=16/5=V(D).

Incorporar Nueva Restricción (Análisis Postoptimal Programación Lineal)

Una vez resuelto un modelo de Programación Lineal puede resultar de interés si la actual solución óptima y valor óptimo se conservaran si se decide incorporar una nueva restricción al problema. Esta restricción generalmente representa una condición que en primera instancia se omite de forma voluntaria para dar una mayor flexibilidad a la resolución del modelo original o alternativamente su no inclusión en el modelo original puede también deberse a una simple omisión (involuntaria).

Consideremos el siguiente modelo de Programación Lineal que hemos resuelto en un artículo previo a través del Método Simplex:

Modelo de Programación Lineal

La tabla final óptima que considera las variables s1, s2 y s3 como las respectivas holguras de las restricciones del problema es:

Tabla Optima Metodo Simplex

Por ejemplo, consideremos que se desea incorporar una nueva restricción definida por la siguiente expresión: 3X+Y<=600. ¿Cambia la actual solución óptima y valor óptimo?.

Para responder a lo anterior se recomienda evaluar la actual solución óptima en la nueva restricción; si ésta se cumple entonces el modelo conserva su solución óptima y valor óptimo; en caso contrario la solución óptima actual será infactible y se debe incorporar esta situación en el modelo original para encontrar la nueva solución del mismo. Notar que también puede suceder que al agregar una nueva restricción que no satisface la solución actual el problema podría resultar ser infactible al tener un dominio de soluciones factibles vacío.

En nuestro ejemplo al evaluar obtenemos: 3(100)+(350)<=600, es decir, la solución óptima actual es infactible al incorporar esta nueva restricción.

Para incorporar esta modificación en la tabla final del Método Simplex agregamos una nueva fila y una nueva columna asociada a una variable s4>=0 que será la holgura de la nueva restricción. La tabla queda de la siguiente forma:

tabla-simplex-nueva-restric

Las variables básicas del problema original son x, s2 e y, respectivamente. Al incorporar la nueva restricción (fila) tanto x como y pierden la estructura de la identidad característica de las variables básicas. Por ello para formar la base podemos realizar operaciones fila multiplicando por -3 la fila 1 y sumando ésta a la fila 4. Posteriormente multiplicar por -1 la fila 3 y sumar a la fila 4:

simplex-nueva-restriccion

Ahora las variables básicas son x, s2, y, s4 (enumeradas en el orden en el cual aparecen en la identidad), sin embargo, la variable s4 toma un valor de -50 lo cual no corresponde a una solución básica factible.

¿Cómo continuar con las iteraciones?. Utilizando el Método Simplex Dual se recomienda corroborar que la nueva solución óptima corresponde a x=250/3 e y=350.

Adicionalmente podemos utilizar un enfoque de Resolución Gráfica para el problema anterior. El siguiente gráfico representa la resolución del escenario inicial donde la solución básica factible óptima se alcanza en el vértice C con x=100 e y=350.

solucion-grafica-nueva-rest

Al incorporar la nueva restricción (recta color rojo) el dominio de soluciones factibles se ve reducido, donde ahora ya no son factibles los puntos en el polígono con área achurada color verde (donde se puede verificar que el vértice C es infactible).

Si se resuelve gráficamente sobre el nuevo dominio (área achurada color naranjo) las curvas de nivel de la función objetivo (recta punteada color azul) pasa por última vez en el vértice F donde x=250/3 e y=350 como solución óptima del nuevo problema.

dominio-nueva-restriccion

Problema de Construcción de Viviendas resuelto Gráficamente

El siguiente problema fue enviado por uno de nuestros usuarios de la ciudad de Bogotá, Colombia:

En la ciudad de Armenia se va a demoler un barrio de 10 acres y la alcaldía debe decidir sobre el nuevo plan de desarrollo. Se van a considerar dos proyectos habitacionales: viviendas a bajo costo y viviendas a medio costo. Se pueden construir 20 y 15 unidades de cada vivienda por acre, respectivamente. Los costos por unidad de las viviendas a bajo y medio costo son $13.000 y $18.000, respectivamente. Los límites inferior y superior establecidos por la alcaldía sobre el número de viviendas de bajo costo son 60 y 100 respectivamente. De igual manera, el número de viviendas de costo medio debe estar entre 30 y 70. Se estima que el mercado potencial combinado máximo para las viviendas es de 150 (que es menor que la suma de los límites de los mercados individuales debido al traslapo entre los dos mercados). Se desea que la hipoteca total comprometida al nuevo plan de desarrollo no exceda los $2 millones. Finalmente, el asesor de la obra sugirió que el número de viviendas de bajo costo sea por lo menos de 50 unidades mayor que la mitad del número de viviendas de costo medio.

Formule como un Programa Lineal el problema del nuevo plan de desarrollo a costo mínimo y resuelvalo gráficamente.

A continuación detallamos la resolución de este problema de Programación Lineal utilizando el Método Gráfico:

1. Variables de Decisión:

  • X1: Viviendas de bajo costo a construir
  • X2: Viviendas de costo medio a construir

2. Función Objetivo: Minimizar 13.000X1 + 18.000X2

3. Restricciones:

  • Disponibilidad de acres: (X1/20) + (X2/15) <= 10
  • Límites de viviendas de bajo costo: 60 <= X1 <= 100
  • Límites de viviendas de costo medio: 30 <= X2 <= 70
  • Límite mercado combinado: X1 + X2 <= 150
  • Límite hipoteca total: 13.000X1 + 18.000X2 <= 2.000.0000
  • Sugerencia asesor de obra: X1 >= 50 + (X2/2)
  • No Negatividad: X1>=0   X2>=0

La resolución gráfica del modelo de programación lineal anterior se muestra a continuación utilizando el software Geogebra:

resolución gráfica problema de viviendas