Como resolver un modelo de Programación Lineal con OpenSolver

OpenSolver es una excelente complemento de Excel que permite resolver modelos de optimización. En el siguiente artículo se describe cómo resolver un modelo de Programación Lineal con esta herramienta (previa descarga e instalación de OpenSolver en Excel 2010). Para fines académicos consideraremos un modelo lineal con 2 variables de decisión, no obstante se puede extender su aplicación a problemas de mayor tamaño sin inconvenientes.

modelo-lineal-infinitas-sol

A continuación necesitamos preparar una planilla Excel que considere los parámetros y variables del modelo (este paso es similar a la carga de un modelo en Solver de Frontline). Se puede apreciar que las celdas B2 y C2 (color amarillo) han sido asignadas a las variables de decisión y la función objetivo (celda azul) corresponde a la celda E2 que es una fórmula que vincula las variables de decisión y los respectivos parámetros que ponderan a éstas. Finalmente las celdas D5 y D6 son fórmulas que representan el “lado izquierdo” de las restricciones del problema (por ejemplo la celda D5 corresponde a B2*B5+C2*C5 o equivalentemente SUMAPRODUCTO(B2:C2;B5:C5)).

carga-modelo-lineal-opensol

Una vez completado el paso anterior se debe ejecutar OpenSolver cuyo menú esta disponible en la pestaña de “Datos” de Excel. Luego se selecciona “Model…” según se muestra a continuación:

model-opensolver

La interfaz para implementar el modelo es bastante similar a la versión tradicional de Solver (Frontline). Se define la celda objetivo (E2) en maximización; a continuación se selecciona el rango de variables de decisión (según se muestra en la siguiente imagen) y las restricciones. Si intentas replicar la estructura del ejemplo que desarrollamos en este artículo se debería ver así:

interfaz-opensolver

Luego seleccionamos “Save Model” (cambiará la estructura de la planilla la cual adoptará colores lo cual es una de las características de OpenSolver que hacen de este complemento una herramienta intuitiva para el usuario).

carga-opensolver-color

Finalmente seleccionamos “Solve”:

solve-opensolver

El programa se ejecutará y proporcionará (de existir) la solución óptima (X=0 e Y=60) y valor óptimo (V(P)=1.200) del problema de optimización:

solucion-optima-opensolver

Los resultados alcanzados son coincidentes con los alcanzados en la resolución gráfica del problema que hemos abordado en el artículo Qué significa un Precio Sombra igual a Cero en Programación Lineal según muestra la imagen a continuación:

grafico-infinitas-solucione

A continuación puedes descargar el archivo con la resolución en OpenSolver de este problema de modo de que puedas familiarizarte con este complemento de Excel: Modelo de Programación Lineal resuelto con OpenSolver

Análisis de Sensibilidad en Programación Lineal utilizando la Tabla Final del Método Simplex

Un supuesto básico asociado a la Programación Lineal es que los parámetros o constantes son valores conocidos con exactitud al momento de resolver el modelo de optimización. Este supuesto de asumir que no existe incertidumbre claramente implica una simplificación en el modelamiento de problemas de naturaleza real y es conocido como el supuesto de modelo determinista.

La optimización también permite incorporar explícitamente la incertidumbre en los parámetros en el modelamiento, asumiendo que la totalidad o un conjunto de éstos se distribuyen aleatoriamente, lo cual se puede representar a través de una función de probabilidad conocida o una distribución empírica que modela distintos escenarios para los parámetros, asociando una probabilidad de ocurrencia en cada caso. Esta categoría de modelos de optimización (por cierto más complejos en comparación al caso determinista) se llaman modelos estocásticos, los cuales en rara oportunidad se analizan en cursos introductorios de Investigación de Operaciones, de modo que forman parte del programa de estudios en cursos de Magíster y Doctorado asociado al área de optimización matemática.

En relación a lo anterior, si bien un modelo determinista considera valores fijos para los parámetros, aún podemos analizar los cambios en los resultados del modelo (solución óptima y valor óptimo principalmente) en comparación a lo obtenido en una instancia de resolución original o escenario base. Esto se conoce como análisis de sensibilidad o análisis postoptimal.

Recordemos que la estructura de la tabla final del Método Simplex se puede representar de la siguiente forma:

estructura-tabla-metodo-sim

Donde:

  • I: Matriz Identidad (Diagonal de “1”)
  • 0: Vector de costos reducidos asociados a las variables básicas
  • B: Matriz de variables básicas
  • D: Matriz de variables no básicas
  • b: Vector de “lado derecho”
  • Cb: Coeficientes en la función objetivo asociados a las variables básicas
  • Cd: Coeficientes en la función objetivo asociados a las variables no básicas

A continuación presentamos los Análisis de Sensibilidad más recurrentes asociados a los modelos de Programación Lineal y utilizando como fuente de información la tabla final del Método Simplex. El siguiente es un listado de los artículos que hemos desarrollado para cada uno de estos temas los cuales te recomendamos visitar:

Intervalo de Confianza para un Pronóstico de Demanda

En el siguiente artículo abordaremos cómo calcular un Intervalo de Confianza para un Pronóstico de Demanda, lo cual permite incorporar de forma explícita el impacto que tiene la incertidumbre en la planificación de las actividades comerciales y operacionales de una empresa.

Para ello utilizaremos el Método de Alisado Exponencial o Suavizamiento Exponencial el cual hemos descrito previamente en nuestro sitio. (Ver también: Suavizamiento Exponencial Doble Ejercicios Resueltos).

Consideremos una serie histórica con la demanda de un producto para un periodo de 12 semanas. Se requiere desarrollar un intervalo de confianza del 95% para el Pronóstico de Demanda de la semana 13 utilizando el Método de Suavizamiento Exponencial Simple con α=0,3.

Para ello adoptaremos el supuesto que los errores del pronóstico se distribuyen normalmente lo cual es algo que por supuesto se puede verificar con una dedicación mayor de trabajo y para lo cual se puede utilizar un software de análisis estadístico como Easyfit.

En este contexto la tabla a continuación se muestra el pronóstico comenzando a contar de la semana 4 (esta es una decisión arbitraria dado que podría haber comenzado antes).

Notar que el primer pronóstico corresponde simplemente a la Media Móvil Simple de las primeras 3 semanas.

Luego el pronóstico de la semana 5 se obtiene de la aplicación de la siguiente fórmula: F5=F4+α(A4-F4) que al reemplazar se obtiene F5=1.775+0,3*(1.860-1.775)=1.800,5~1.801 (hemos aproximado éste y los otros pronósticos al entero más cercano según se puede apreciar en la fórmula de Excel utilizada):

intervalo-de-confianza-pron

Ahora necesitamos calcular la desviación estándar del error del pronóstico la cual se obtiene simplemente evaluando en los datos de la tabla anterior según se muestra a continuación:

desviacion-estandar-error-c

Finalmente el intervalo de confianza de un 95% para el pronóstico de la semana 13 se obtiene: (notar que F13=1.766+0,3*(1.780-1.766)=1.770,2~1.770)

intervalo-confianza-95-porc

El resultado anterior es consistente con el proporcionado por la herramienta de Cálculos de Probabilidad de Geogebra donde para una distribución de probabilidad normal (recordar el supuesto de normalidad del error adoptado anteriormente) con media μ=1.770 (F13) y desviación estándar SF=71, el área achurada en color azul representa los valores contenidos en el intervalo de confianza de un 95% (% del área bajo la curva achurada).

intervalo-de-confianza-geog

Cómo utilizar una Regresión Lineal para realizar un Pronóstico de Demanda

El Método de Mínimos Cuadrados o Regresión Lineal se utiliza tanto para pronósticos de series de tiempo como para pronósticos de relaciones causales. En particular cuando la variable dependiente cambia como resultado del tiempo se trata de un análisis de serie temporal.

En el siguiente artículo desarrollaremos un Pronóstico de Demanda haciendo uso de la información histórica de venta de un producto determinado durante los últimos 12 trimestres (3 años) cuyos datos se observan en la siguiente tabla resumen:

tabla-datos-regresion-linea

La ecuación de mínimos cuadrados para la regresión lineal es la que se muestra a continuación donde β0β1 son los parámetros de intercepto y pendiente, respectivamente:

ecuacion-regresion-lineal

Estimar los valores de dichos parámetros es sencillo haciendo uso de una planilla Excel tal como muestra la tabla a continuación:

calculo-regresion-lineal-co

Luego evaluamos en las ecuaciones presentadas anteriormente para obtener los valores de β0 y β1:

resultados-parametros-regre

Una vez obtenido los parámetros de la regresión lineal se puede desarrollar un pronóstico de demanda (columna color naranja) evaluando en la ecuación de la regresión para los distintos valores de la variable independiente (x).

Por ejemplo, para el primer trimestre el pronóstico es: Y(1)=441,71+359,61*1=801,3.

Observación: los valores de los pronósticos han sido redondeados arbitrariamente a un decimal para mayor comodidad.

regresion-lineal-tabulada-e

Notar que con la información que hemos obtenido podemos calcular el MAD y la Señal de Rastreo y utilizar estos indicadores para validar la conveniencia de utilizar este procedimiento como dispositivo de pronóstico.

Adicionalmente puede resultar de interés consultar el artículo Ejemplo de una Regresión Lineal Múltiple para un Pronóstico con Excel y Minitab que muestra cómo abordar el caso de realizar una regresión lineal con más de una variable independiente (explicativa).

Siguiendo con nuestro análisis a continuación podemos desarrollar un pronóstico de demanda para los próximos 4 trimestres (un año) que corresponden a los trimestres 13, 14, 15 y 16:

  • Y(13)=441,71+359,61*13=5.116,64
  • Y(14)=441,71+359,61*14=5.476,25
  • Y(15)=441,71+359,61*15=5.835,86
  • Y(16)=441,71+359,61*16=6.195,47

Si bien el procedimiento anterior es válido puede ser resumido haciendo uso de las herramientas de análisis de datos de Excel o simplemente realizando un ajuste de una regresión lineal en un gráfico de dispersión de la misma forma que abordamos en el articulo sobre el Método de Descomposición. Para ello luego de realizar el gráfico nos posicionamos en una de las observaciones y luego botón derecho del mouse para seleccionar “Agregar línea de tendencia…”.

regresion-lineal-grafico-di

Luego en la interfaz de Excel activamos las opciones “Presentar ecuación en el gráfico” y “Presentar el valor R cuadrado en el gráfico” (este último indicador según se aborda en los cursos de estadística consiste en una medida de la bondad de ajuste de la regresión).

Notar que los valores obtenidos para los parámetros de la regresión son similares salvo menores diferencias por efecto de aproximación.

regresion-lineal-ajustada-e

Otra opción disponible para ajustar una Regresión Lineal haciendo uso de Excel es a través del Complemento llamado Herramientas para análisis.

Su activación es simple: en el menú Archivo (esquina superior izquierda en Excel) ir a Opciones, luego Complementos, a continuación a la derecha de donde dice Complementos de Excel presionar Ir… y luego activar la Herramientas para análisis.

herramienta para análisis excel

Una vez activada las Herramientas para análisis, se puede encontrar ésta abajo del complemento Solver en el menú de Datos.

análisis de datos excel

Luego de las opciones disponibles que nos ofrece este complemento seleccionamos Regresión.

regresión análisis de datos

A continuación seleccionamos el Rango Y de entrada las celdas correspondientes a la variable dependiente (Ventas) y en Rango X de entrada las celdas correspondientes a la variable independiente (Trimestre).

Debemos activar adicionalmente la casilla Residuos si deseamos obtener un pronóstico para las ventas del Trimestre 1 al Trimestre 12 (junto al cálculo del error o residuo de la estimación).

interfaz regresión análisis de datos

Finalmente presionamos Aceptar lo que generará una nueva hoja en nuestra planilla de cálculo.

Un extracto de los resultados es el que se presenta a continuación, donde en color celeste se destaca los coeficientes asociados a los parámetros de la regresión lineal β0 y β1, respectivamente, y en color naranjo el pronóstico obtenido para cada uno de los doce trimestres al utilizar la ecuación de la regresión.

Por ejemplo: Y(1)=441,67+359,61*1=801,28. El residuo o error correspondiente para dicho período (Trimestre 1) es: e_{1}=A_{t}-F_{t}=600-801,28=-201,28.

resultados análisis regresión

¿Quieres tener el archivo Excel con el ajuste de la Regresión Lineal de este problema?.

[sociallocker]MUCHAS GRACIAS!. DESCARGA AQUÍ EL ARCHIVO[/sociallocker]

Cómo calcular el Instock y Fill Rate asociado a un Inventario

En la Gestión de Inventarios resulta como regla general tomar decisiones en un contexto de incertidumbre en el cual no se conoce por anticipado el valor o realización de la variable aleatoria que representa la demanda de un producto.

En este aspecto es importante detenerse un momento dado que según nuestra experiencia docente suele ser una fuente de confusión de los alumnos. Se puede asumir que en base a información histórica se puede construir una demanda empírica que represente razonablemente el comportamiento de la demanda de un producto o incluso buscar su representación a través de una función de probabilidad conocida o demanda teórica (por ejemplo distribución normal, distribución uniforme, distribución gamma y otras utilizadas frecuentemente para fines académicos) para la cual se deberá estimar los mejores valores de los parámetros respectivos (por ejemplo en el caso de seleccionar una distribución normal se deberá estimar los valores de la media µ y la desviación estándar σ).

Para este propósito se puede hacer uso de software estadístico como Easyfit. No obstante, independiente si trabajamos con una distribución empírica o distribución teórica que modele el comportamiento de la demanda, conocer con anticipación el valor que tomará ésta no es posible dado que esto corresponde a la realización de una variable aleatoria.

En el contexto anterior resulta necesario disponer de indicadores de gestión que permitan evaluar el desempeño de una política de mantenimiento de inventario que ayude a los tomadores de decisiones a tomar acciones correctivas de ser necesario.

Para ello presentaremos 2 indicadores frecuentemente utilizados en la actualidad, en particular en la industria de la venta al detalle o comercio minorista, conocida comúnmente como Retail.

Instock: Considerando una demanda aleatoria, y dado una cantidad de inventario Q decimos que su probabilidad de Instock es P[D<=Q].

Fill Rate: Es un indicador de servicio que representa el porcentaje de la demanda que se logra satisfacer. En fórmula:

formula-fill-rate-esperado

Ejemplo Instock y Fill Rate

La panadería Bredi es conocida por producir el mejor pan fresco de la ciudad, por eso tiene ventas sustancialmente altas. Los siguientes datos fueron recolectados durante el último año y para cada valor de k en la segunda columna se indican que porcentaje de días del año pasado la demanda fue exactamente k (baguettes):

tabla-distribucion-empirica

En base a la demanda esperada, el gerente de la panadería Bredi decide hornear 475 baguettes cada mañana (Q=475). ¿Cuál es el Instock y Fill Rate asociado a este tamaño de lote de producción?. (Es importante verificar que la suma de las probabilidades (días en que la demanda fue exactamente k unidades de producto) es un 100%).

Instock: P[D<=475]=25%+15%+10%+10%=60%, es decir, la probabilidad de que en un día cualquiera se puede satisfacer la demanda de forma íntegra es un 60%. Por ejemplo, si la demanda de un día es de 500 baguettes dado un tamaño de producción de 475 unidades se incurre en un quiebre de stock.

Fill Rate: Las ventas esperadas depende del tamaño de lote de producción (Q). Por ejemplo, si la realización de la variable aleatoria (demanda) resulta ser igual o superior a 475 baguettes, se venderán sólo lo que se produce (Q=475) y el remanente se considera como venta perdida.

fill-rate-demanda-empirica

En cuanto a la demanda esperada, ésta es independiente de Q por tanto corresponde simplemente a ponderar los distintos valores de k por la probabilidad de ocurrencia del escenario respectivo. En consecuencia en el ejemplo:

resultado-fill-rate

Lo anterior permite corroborar un resultado que se puede generalizar: Instock <= Fill Rate

Conclusiones: Naturalmente al aumentar el tamaño de Q se incrementa tanto el Instock como el Fill Rate, no obstante, esta decisión no necesariamente es la recomendable dado que aumenta la probabilidad de quedar con stock al final del día (el cual en el ejemplo podría no tener uso alternativo en caso que se decida botar el pan que sobre o podría venderse como pan frío al día siguiente obteniendo usualmente una fracción del costo de fabricación).

Este tipo de escenarios es al que usualmente los tomadores de decisiones se ven enfrentado en problemas de ciclo de vida corto (Modelo Newsvendor) ante lo cual se necesita disponer de estimaciones adicionales.