Informes de Sensibilidad en Premium Solver Pro (Interpretación)

Las ventajas que ofrece la utilización de una herramienta de optimización profesional como Premium Solver Pro son múltiples y son rápidamente identificadas por quienes comienzan a formarse en el apasionante mundo de la Investigación de Operaciones. Respecto a este tema en particular he tenido el honor de publicar un artículo (en inglés) en el Blog del prestigioso sitio de FrontlineSolvers (desarrolladores del complemento Solver para Excel) llamado How to Correctly Interpret Sensitivity Reports in Premium Solver. En este contexto a continuación presentamos la traducción del mismo a español teniendo en cuenta que parte mayoritaria de nuestros lectores son de países de habla hispana.

En mi experiencia como profesor de Investigación de Operaciones he constatado de forma directa los beneficios de implementar computacionalmente modelos de optimización de distinta complejidad en un ambiente de aprendizaje intuitivo y al mismo tiempo confiable. En este sentido los alumnos adquieren rápidamente las destrezas suficientes para resolver problemas de optimización de distinto tamaño en una plataforma conocida como resulta ser Excel.

Cabe destacar adicionalmente que Premium Solver Pro no solo nos permite resolver modelos de optimización, también ofrece la oportunidad de generar Informes de Sensibilidad una vez alcanzada la solución óptima y valor óptimo de un modelo base. En este contexto el análisis de sensibilidad o postoptimal buscar analizar el impacto que tiene en los resultados de un modelo la modificación de uno o varios parámetros del mismo.

Un Informe de Sensibilidad de Premium Solver Pro se divide en 3 partes:

  1. Función objetivo
  2. Celdas variables
  3. Restricciones

A continuación presentamos un sencillo modelo de Programación Lineal el cual será implementado computacionalmente, obteniendo el Informe de Sensibilidad que analizaremos en detalle con el objetivo de interpretarlo de forma correcta.

modelo pl premium solver

Luego de utilizar Premium Solver Pro para resolver el modelo anterior se alcanza la solución óptima x_{1}=3 y x_{2}=6, con valor óptimo V(PL)=342.

solución premium solver

A continuación podemos obtener el Informe de Sensibilidad accediendo al módulo Reports > Optimization > Sensitivity, tal cual se muestra a continuación:

sensitivity report premium solver

Una vez que solicitemos el Informe de Sensibilidad se generará una nueva hoja en el archivo Excel que estemos trabajando con el reporte de los resultados. Para el ejemplo propuesto en este artículo los resultados son los siguientes:

análisis de sensibilidad premium solver

A continuación detallaremos cómo interpretar cada una de las 3 partes que nos ofrece el Informe de Sensibilidad de Solver.

  1. Objective Cell (Max): Se observa que el valor óptimo, es decir, el valor de la función objetivo del problema de maximización al ser evaluada en la solución óptima alcanzada es de 342. Dicho valor se obtiene de: V(PL)=(34)*3+(40)*6=342.

  1. Decision Variable Cells: En esta sección se puede identificar la solución óptima (valores bajo la columna etiquetada como Final Value), los coeficientes o parámetros en la función objetivo (valores en la columna Objective Coefficient), el aumento permisible y la disminución permisible para cada uno de los coeficientes de forma individual en la función objetivo que permite garantizar que se conserva la actual solución óptima.

Por ejemplo, consideremos el coeficiente c_{1}=34 asociado a la variable de decisión x_{1} en la función objetivo de maximización. La disminución permisible para dicho parámetro es de 7,333 aprox (equivalente a 22/3) unidades y el aumento permisible de 6, de modo que si c_{1}\epsilon [34-\frac{22}{3},34+6] ==>c_{1}\epsilon [26,\bar{6},40] se conserva la solución óptima original (notar que se asume para este análisis que el resto de los parámetros del modelo mantienen sus valores iniciales). De forma análoga recomendamos al lector verificar que el intervalo de variación para c_{2} que conserva la actual solución óptima es c_{2}\epsilon [34,51].

  1. Constraints: Un primer aspecto a observar es si una restricción se encuentra activa al ser evaluada en la solución óptima. Una restricción activa es aquella que se satisface en igualdad. Por ejemplo, se puede ver que para las Restricciones 1 y 2 el valor bajo la columna Final Value es idéntico al lado derecho de la restricción o Constraint R.H. Side. Dicho de otra forma, dado que las Restricciones 1 y 2 son activas en el óptimo, la solución óptima del problema propuesto se puede obtener mediante la resolución de un sistema de ecuaciones con 1 y 2 activas. Notar que adicionalmente la Restricción 3 si bien se satisface no se cumple en igualdad.

También resulta de interés interpretar lo que se conoce como Precio Sombra de una restricción.

El Precio Sombra corresponde a la tasa de cambio del valor óptimo de un modelo de Programación Lineal ante la modificación marginal del lado derecho de una restricción. Se entiende por una modificación marginal aquella que permite conservar la base óptima del problema (idénticas variables básicas originales en el caso del Método Simplex) o la geometría del problema (mantener las restricciones activas originales).

Dada la definición anterior es natural comprender que el Precio Sombra de la Restricción 3 sea cero. Si el lado derecho representa la disponibilidad de un recursos (por ejemplo, horas hombre, unidades de materia prima, etc), en la solución óptima original se utiliza 12 de las 16 unidades disponibles (que es consistente con una disminución permisible de 4 unidades y un aumento permisible de 1E+30 o infinito) para el recurso. Adicionalmente como la Restricción 3 no es activa, cualquier variación del lado derecho de dicha restricción en el intervalo b_{3}\epsilon [12,+\infty[  no solo conserva el valor óptimo, sino también la solución óptima original.

El caso de las Restricciones 1 y 2 es diferente. Por ejemplo, si aumenta en una unidad el lado derecho de la Restricción 1, pasando de 48 a 49 unidades (notar que el aumento permisible para dicho parámetro  es de 6 unidades) el valor óptimo aumentará de forma proporcional al Precio Sombra de dicha restricción: V(\bar{P})=V(P)+\Delta b_{1}*\pi _{1}=342+(49-48)*3=345. De forma análoga si, por ejemplo, en vez de aumentar el lado derecho de la Restricción 1, disminuye de 48 a 45 (disminución de 3 unidades que está dentro del rango permitido), el nuevo valor óptimo será: V(\bar{P})=V(P)+\Delta b_{1}*\pi _{1}=342+(45-48)*3=333. Recomendamos al lector verificar directamente estos resultados luego de reoptimizar ante los cambios propuestos.

En síntesis queda en evidencia que la utilidad de Premium Solver Pro va más allá de implementar y resolver computacionalmente un modelo de optimización. En este sentido interpretar de forma correcta el análisis de sensibilidad que nos ofrece genera un ahorro de tiempo frente al escenario de reoptimizar que muchas veces es evitable, además de que nos permitir comprender de mejor forma la estructura de una solución óptima, que no sólo se limita a identificar cuál es el valor que alcanzan las variables de decisión en la resolución computacional.

Planificación de la Producción y Empaque en el Programa Maestro de Producción

El Plan Maestro de la Producción (PMP) especifica las fechas y las cantidades de producción que corresponden a cada uno de los elementos de la familia de productos (manufactura). En muchas aplicaciones el producto no esta terminado en la medida que no haya sido empacado, es decir, que este en una condición de uso suficiente para su comercialización. El siguiente artículo aborda el problema que enfrenta una empresa que debe programar los niveles de producción y empaque para 4 productos en un horizonte de planificación de 8 meses (4 bimestres), buscando satisfacer una demanda estimada al mínimo costo y haciendo uso de recursos limitados.

Planificación de la Producción

Una firma desea planificar la producción de los próximos 4 bimestres para sus productos finales, representados por los productos A, B, C y D. Esto se hará usando una política óptima de elaboración contra stock para satisfacer las demandas estimadas en cada periodo y cuyos valores se resumen en la siguiente tabla:

tabla-produccion-y-empaque

En la tabla se entrega igualmente una capacidad máxima de producción por producto, excepto para las labores de empacado. Asuma que estas capacidades son constantes sobre todo el periodo de planificación. En el caso de la sección de empaque esta transforma el producto en un producto empacado, de modo que hay una capacidad global sobre el número total de unidades que pueden ser empacadas en cada periodo y alcanza las 50.000 unidades por bimestre.

Es posible almacenar tanto productos finales como productos finales empacados en una cantidad ilimitada pues la bodega es bastante grande. Sin embargo, hay un costo unitario de mantención de unidades en inventario que se lista en la última columna de la tabla para un producto final empacado y que se asume no cambia en este horizonte de planificación. Asuma que el costo unitario de inventario de un producto final no empacado consiste en restar 4 euros por unidad al valor dado en la tabla para el costo de inventario de uno empacado. El actual inventario es nulo y no hay requerimientos de inventario al final del periodo de planificación.

Cada vez que se emplea la línea de empaque esta debe ser limpiada cuando se planifica empacar cada tipo de producto en un periodo y este proceso de limpieza o esterilización tiene un costo elevado. Dado lo anterior, se espera encontrar una solución donde no necesariamente se empaque de todos los tipos de productos finales en cada periodo. Para representar correctamente esta situación se tomará en cuenta un costo de setup que es independiente del periodo y la cantidad empacada pero si del tipo de producto y está dado por 500.000, 900.000, 800.000 y 900.000 euros para A, B, C y D, respectivamente.

Formule y resuelva computacionalmente un modelo de optimización que permita hallar una política óptima de producción que minimice los costos de inventario y setup, satisfaciendo los requerimientos (estimados) de demanda y las limitaciones en la capacidad de las instalaciones.

Variables de Decisión:

variables-produccion-y-empa

Parámetros: Dada la cantidad de datos del problema propuesto es conveniente trabajar con parámetros, de modo de utilizar una notación más compacta que es equivalente, a saber:

parametros-empaque

Función Objetivo: Se busca minimizar los costos asociados al proceso de empaque y almacenamiento de productos en inventario (empacados y no empacados) durante el período de planificación. Lo anterior se representa por la siguiente expresión:

funcion-objetivo-empaque

Restricciones:

Demanda producto empacado para cada producto i y bimestre t: La demanda de producto empacado de cada uno de los 4 productos en los 4 bimestres se debe satisfacer a través de lo empacado en dicho período y los saldos del mismo (si los hubiere) almacenados en períodos previos.

demanda-producto-empacado

Balance entre no-empacado y empacados para producto i y bimestre t: De forma similar a las restricciones anteriores, la cantidad de producto a empacar en un período (para cualquiera de las 4 variedades: A, B, B o D) se obtiene como un diferencial entre la producción de producto no empacado más el inventario inicial de producto no empacado menos la cantidad de producto no empacado que se deje en inventario al final del período.

balance-empacado-y-no-empac

Restricciones Lógicas: La cantidad de producto en un bimestre para un producto en particular no podrá superar las 50.000 unidades en caso que se decida empacar dicho producto en aquel período, en caso contrario no se empaca.

restricciones-logicas-empaq

Capacidad de empacado para cada bimestre t: La cantidad de productos A, B, C o D que en total se empaquen en cada período no puede superar la capacidad de empaque de 50.000 unidades por período.

capacidad-empacado-por-peri

Capacidad de producción en cada familia y bimestre t: Se debe respetar la capacidad de producción de producto no empacado para cada variedad y en cada período del horizonte de planificación.

capacidad-produccion-empaqu

No negatividad: Las variables de decisión deben adoptar valores no negativos.

no-negatividad-empaque

La siguiente imagen muestra la solución óptima (celdas amarillas) y valor óptimo (celda celeste) alcanzado a implementar este modelo de Programación Entera Mixta haciendo uso de Premium Solver Pro.

solucion-produccion-y-empaq

Consideremos el producto A de modo de ejemplificar respecto a la interpretación de los resultados. Se producen 6.000 unidades del producto A  y se empacan sólo 5.000 de ellas en el bimestre 1 (con las que se satisface la demanda del bimestre 1), en consecuencia, al final del período se dispone de 1.000 unidades de producto A no empacado.  Notar adicionalmente que a excepción del producto D para el resto de los productos no se empaca en todos los períodos.

¿Quieres tener el archivo Excel con la resolución en Premium Solver Pro de este problema?.

[sociallocker]solver-produccion-y-empaque[/sociallocker]

Solver, Premium Solver Pro y What’sBest! en la resolución del Problema de Localización y Transporte

¿Qué complemento de Excel es mejor para resolver un modelo de optimización: SolverPremium Solver Pro o What’sBest!?. Esta consulta fue enviada por uno de nuestros seguidores de México y en este artículo trataremos de presentar algunos argumentos que permitan al lector formar una opinión al respecto. Para ello utilizaremos como caso aplicado la resolución del Problema de Localización y Transporte (Programación Entera Mixta). A continuación te presentamos los resultados que alcanzamos con Solver, Premium Solver Pro y What’sBest!.

Resolución con Solver: Se alcanza una solución factible con un costo total asociado de US$12.617.919.

solver-pem

Resolución con Premium Solver Pro: Se alcanza una solución factible con un costo total de US$12.414.340.

solver-premium-pro-pem

Resolución con What’sBest!: Se alcanza una solución factible con un costo total de US$12.414.340. Notar sin embargo que la solución óptima difiere de la alcanzada al implementar el modelo con Premium Solver Pro aun cuando tiene asociado idéntico valor de la función objetivo.

whatsbest-pem

Comentarios: Se puede apreciar que la versión básica de Solver genera una solución factible con un costo mayor a la obtenida tanto con Premium Solver Pro y What’sBest!. Lo anterior sugiere la conveniencia de implementar este tipo de problemas con una herramienta de resolución mejorada. Adicionalmente, en la medida que un modelo de optimización crece en tamaño y complejidad es recomendable poder contrastar los resultados obtenidos con distintas herramientas de resolución de modo de tener una mayor claridad si las soluciones obtenidas son sólo factibles o eventualmente óptimas. A continuación encontrarás un tutorial que hemos subido a Youtube con la resolución del problema de localización y transporte.

Problema de Corte de Rollos en Programación Entera (Premium Solver)

En el artículo anterior abordamos una aplicación clásica de la Programación Entera conocida como el Problema de Corte de Rollos («Cutting Stock Problem») el cual en esta oportunidad resolveremos utilizando la versión Premium de Solver. Si bien el tamaño y complejidad del modelo permitiría enfrentar su resolución sin mayores inconvenientes con la versión tradicional de Solver, utilizaremos Premium Solver Pro para efectos ilustrativos del uso de esta herramienta mejorada.

En este contexto recordemos las características del modelo de optimización de corte de rollos que consiste en minimizar una función de pérdida de material sujeta a restricciones que permiten satisfacer la demanda de rollos de menor tamaño y que incluye adicionalmente condiciones de no negatividad e integralidad para las variables de decisión:

funcion-objetivo-corte-de-r

  • 2X1+X2+X3+X8+X9+X13>=150
  • X2+3X4+2X5+X6+X8+2X10+X11+X14>=200
  • X2+3X3+2X5+3X6+5X7+X9+X10+2X11+4X12+X14+3X15>=175
  • Xi>=0 Enteros (i=1,…,15)

Con el objetivo de implementar en Premium Solver Pro el problema anterior creamos en Excel una estructura que resuma la información del problema y que facilite su resolución. La imagen a continuación considera en las celdas con color amarillo las variables de decisión (15 variables) y en la celda J20 (color celeste) la función objetivo.

A continuación para definir las variables de decisión seleccionamos «Decision» y luego «Normal». Notar que previamente se ha seleccionado el rango de celdas que queremos definir como variables de decisión (en este ejemplo las 15 celdas en color amarillos).

variables-premium-solver

Para restringir el valor que adopten las variables de decisión a números enteros se debe ir a «Constraints», «Variable Type/Bound», «Integer» como muestra la siguiente imagen:

variables-enteras-premium-s

Ahora nos posicionamos en la celda J20 que contiene la función objetivo (esta celda contiene una fórmula que es la sumaproducto de la pérdida de material en [cm] asociada a cada patrón de corte ponderada por la cantidad de veces que se utiliza un esquema de corte definido). Luego en «Objective» seleccionamos «Min».

funcion-objetivo-premium-so

En el siguiente paso corresponde incorporar las restricciones de demanda para el problema. Notar que dado que las restricciones de demanda de rollos de 45[cm], 30[cm] y 18[cm] son todas del tipo «>=» las podemos incorporar todas de forma simultanea tal se muestra a continuación:

restriccion-mayor-o-igual-p
mayor-o-igual-solver

Finalmente estamos en condiciones de poder resolver el modelo de optimización con Premium Solver Pro. A la derecha de la planilla de cálculo encontraremos la interfaz del programa que resume las características del problema que hemos implementado.

premium-solver-interfaz

Seleccionamos el icono con flecha verde que esta en la esquina superior derecha de la imagen anterior para resolver el modelo, obteniendo la solución óptima y valor óptimo que se muestra a continuación:

solucion-optima-premium-sol

La solución óptima consiste en utilizar 150 veces el patrón de corte 3 (X3=150) y 100 veces el patrón de corte 10 (X10=100), omitiéndose el uso de los otros esquemas de corte. Con esto la pérdida de material (total) asciende a 350[cm] de papel, logrando satisfacer la demanda para cada tipo de rollo (notar que para el caso de los rollos de 18[cm] se producen 550[u] siendo la demanda de 175[u]). En nuestro canal de Youtube puedes revisar la implementación y resolución computacional del modelo anterior.

Cómo resolver un modelo de Programación Lineal utilizando Solver de Excel

El complemento Solver de Excel nos permite resolver modelos de Programación Lineal de forma muy sencilla e intuitiva. Para ello necesitamos tener previamente Instalado el complemento de Solver en Excel. Sin embargo, en caso que el modelo a implementar sea de un mayor tamaño (usualmente más de 150 variables de decisión y 300 restricciones) a los que usualmente se abordan en cursos introductorios de Investigación Operativa se recomienda utilizar Premium Solver Pro tal como se describe en Cómo descargar e instalar la versión de Prueba de Premium Solver en Excel 2010.

En este contexto hemos desarrollado un tutorial que compara distintas herramientas computacionales para resolver modelos de optimización en una interfaz de Excel. Al respecto recomendamos al lector revisar el artículo: Solver, Premium Solver Pro y What’sBest! en la resolución del Problema de Localización y Transporte.

Cómo Resolver un modelo de Programación Lineal con Solver de Excel

El proceso se puede describir en 3 simples pasos y a continuación se aplica un problema típico de Producción y Transporte:

1. Definir las Variables de Decisión: Estas celdas serán las que estarán vinculadas a la función objetivo y restricciones a través de funciones lineales.

variables-solver

2. Definir la Función Objetivo: Esta celda debe ser única y ser adicionalmente una fórmula. Su valor dependerá del valor que se obtenga para las variables de decisión y su ponderación por los parámetros (constantes) que multiplican a dichas variables en la función objetivo.

definir-funcion-objetivo-so

3. Definir las Restricciones: Se recomienda dejar al Lado Derecho las constantes y al Lado Izquierdo fórmulas. El valor del Lado Izquierdo usualmente representa la ponderación de los parámetros relacionados con las restricciones con las variables de decisión.

definir-restricciones-solve

El siguiente tutorial muestra la resolución de un modelo de Programación Lineal de dos variables utilizando Solver de Excel. Este ejemplo es similar al descrito en el Tutorial de Geogebra. Adicionalmente se pueden encontrar otros ejemplos resueltos en el Canal de Youtube de nuestro sitio cuya dirección es https://www.youtube.com/user/GEOTutoriales/videos.