Ejemplo del Algoritmo de Wagner y Whitin (Sistemas de Loteo)

El Algoritmo de Wagner y Whitin (1958) consiste en una extensión natural y dinámica al problema de Tamaño Económico de Pedido (conocido también como Cantidad Económica de Pedido o EOQ) donde la demanda durante el período de planificación presenta variabilidad, no obstante, se sigue manteniendo el supuesto de asumir que dicha demanda es conocida.

De esta forma, dada una demanda que presenta variabilidad en el tiempo, costos de emisión de pedidos asociados a la gestión de los mismos y no al volumen involucrado en ellos, y costos de almacenamiento correspondientes al inventario de los productos almacenados en inventario, se busca determinar una política de pedidos que satisfaga los requerimientos de demanda al menor costo posible.

En este contexto asumiremos que el lead time (tiempo de reposición) es nulo, es decir, el pedido se recibe en el mismo período en el que se realiza y que adicionalmente estamos frente a un Problema de Tamaño de Lote No Capacitado, vale decir, que no existe limitantes de capacidad y que, eventualmente, se podría satisfacer la demanda íntegra del horizonte de planificación a través de un único pedido que se realice en el primer período (mediante la acumulación de inventarios para períodos futuros).

Un problema similar al que se aborda con el Algoritmo de Wagner y Whitin es el Problema de Producción e Inventario, en el cual frecuentemente se incorporan limitantes de capacidad para la cantidad de unidades que se pueden pedir en cada período, constituyendo de esta forma un problema capacitado.

Algoritmo de Wagner-Whitin

Los pasos detallados para la implementación del Algoritmo de Wagner y Whitin pueden encontrarse en la publicación académica original: Dynamic Version of the Economic Lot Size Model, (Versión Dinámica del Tamaño Económico de Pedido) disponible para descarga por un valor de 30 dólares. No obstante, a continuación resumiremos los pasos del algoritmo y presentaremos un ejemplo de su aplicación para favorecer su comprensión.

  • Paso 1: Considere la política de ordenar en el período t^{**}, t^{**}=1,2,…,t^{*} y satisfacer las demandas d_{t}, t=t^{**},t^{**}+1,…,t^{*} en ese orden.
  • Paso 2: Determine el costo total de las t^{*} políticas de pedido, sumando los costos de emisión y almacenamiento asociados a la emisión de un pedido en t^{**}, y el costo de actuar de forma óptima entre el período 1 y el período t^{**}-1 consideradas por si mismas.
  • Paso 3: De las t^{*} alternativas, seleccione la política de mínimo costo del período 1 hasta t^{*} consideradas de forma independiente.
  • Paso 4: Continué al período t^{*}+1 o detengase si t^{*}=N donde N representa el horizonte de planificación.

Ejemplo del Algoritmo de Wagner y Whitin

Consideremos las necesidades asociadas a un producto cualquiera para un período de planificación de 12 meses (N=12). La demanda Dt que se enfrenta cada mes es variable, como así también los costos de emitir un pedido (St), no obstante, el costo unitario de almacenar una unidad en inventario de un mes a otro (Ht) por simplicidad se asumirá que es fijo.

tabla demanda emisión almacenamiento

Aplicamos a continuación el Algoritmo de Wagner y Whitin:

El plan óptimo para el período 1 es ordenar (asumiendo un costo de emisión de $85).

Para el período 2 se deben evaluar 2 posibilidades:

  • ordenar en el período 2 y usar la mejor política para el período 1 considerado por si solo (con un costo de emisión de $102+$85=$187).
  • o emitir un pedido en el período 1 para ambos períodos (1 y 2), almacenando inventario para el período 2 (con un costo total de $85+$29=$114).

En este caso comparativamente es mejor la segunda alterativa.

En el período 3 existen tres alternativas:

  • emitir un pedido en el período 3 y utilizar la mejor política para los períodos 1 y 2 (a un costo de $102+$114=$216).
  • o emitir un pedido en el período 2 para los 2 últimos períodos (2 y 3) y utilizar la mejor política para el período 1 considerado de forma independiente (a un costo de $102+$36+$85=$223).
  • o emitir un pedido en el período 1 para los 3 períodos (con un costo de $85+$29+$36+$36=$186).

En nuestro ejemplo, resulta evidente que no existen incentivos para almacenar productos en inventario en el período 1 o 2 para satisfacer la demanda del período 4, dado que los costos de almacenamiento excederían los costos de emisión de pedido en el período 4. Si lo anterior es cierto, claramente no tiene sentido guardar inventario en el período 1 o 2 para satisfacer demanda de un período superior al 4 (5, 6, 7, etc).

Para los datos propuestos en nuestro ejemplo, la política óptima de pedidos según el Algoritmo de Wagner Whitin es la siguiente:

  1. Pedir 135 unidades (79+56) en el período 11 para satisfacer los requerimientos del período 11 y 12, y utilizar la política óptima para los períodos del 1 al 10.
  2. Emitir un pedido de 67 unidades para el período 10 y utilizar la política óptima de pedidos para los períodos 1 al 9.
  3. Pedir 112 unidades (67+45) en el período 8 para satisfacer la demanda de los períodos 8 y 9, y luego utilizar la mejor alternativa para los períodos del 1 al 7.
  4. Ordenar 121 unidades (61+26+34) en el período 5 para enfrentar la demanda de los períodos 5, 6 y 7.
  5. Pedir 97 unidades (36+61) en el período 3 para satisfacer la demanda de los períodos 3 y 4.
  6. Finalmente pedir 98 unidades (69+29) en el período 1 y con ello cumplir la demanda de los períodos 1 y 2.

La siguiente tabla resume los resultados anteriormente expuestos.

wagner y whitin

Al pie del cuadro resumen se detalla, por ejemplo, «567 indica la política óptima de pedido para los períodos del 1 al 7 es pedir en el período 5 y satisfacer la demanda de los períodos 5, 6 y 7 y adoptar una política óptima para los períodos 1 al 4 considerados de forma separada».

El costo asociado a implementar el Algoritmo de Wagner y Whitin al problema propuesto como ejemplo es de $864. Se propone al lector corroborar que dicha política minimiza los costos de inventario en comparación a otros sistemas de loteo como Costo Total Mínimo, Costo Unitario Mínimo, EOQ, entre otras.

Una forma de corroborar los resultados obtenidos es mediante una aplicación en Excel que permite automatizar los procesos de cálculo. Básicamente ingresando un inventario inicial (en nuestro ejemplo cero), la demanda pronosticada, los costos de emisión de pedidos y los costos de almacenamiento, se puede fácilmente aplicar una política de lotificación como aquellas que tratamos en extenso en el Plan de Requerimientos de Materiales (MRP).

wagner y whitin excel

Observación: La imagen anterior ha sido editada para efectos de una mejor resolución de modo que solo se visualiza los resultados parciales hasta el período 8. El archivo Excel con la aplicación donde se encuentran los resultados del ejemplo desarrollado en este artículo, como también la posibilidad de poder utilizarlo con otras políticas de lotificación se puede descargar a continuación.

[sociallocker]Descarga Aquí el Archivo Excel del Algoritmo de Wagner y Whitin: lotsizing[/sociallocker]

Caso Kristen’s Cookies Company (Análisis y Resolución)

Un caso de estudio frecuentemente utilizado a nivel académico para presentar los principales resultados asociados a los Procesos Productivos se denomina por Kristen’s Cookies Company. El caso representa la situación a la que se enfrentan 2 socios en el negocio de elaborar galletas artesanales en un esquema bajo pedido, es decir, donde los productos se caracterizan por adaptarse a las necesidades particulares de cada cliente.

En este contexto al final de este artículo se incluye el archivo con la lectura del caso para su descarga el cual consta de 3 hojas (en español). Se recomienda fuertemente su lectura previa, de modo de favorecer la comprensión de los conceptos que presentaremos a continuación.

En primer lugar el lector podrá observar que si bien en el caso Kristen’s Cookies Company se hace una descripción detallada del proceso productivo de producción de galletas, no sé incluye explícitamente lo que conocemos como un Diagrama de Flujo de Proceso. Su elaboración es un paso vital previo para el análisis cuantitativo del desempeño del proceso. Con este objetivo a continuación se presenta una tabla resumen de las principales actividades vinculadas al proceso de producción de galletas artesanales.

actividades kristen cookies

En la tabla anterior se identifican las distintas etapas del proceso de transformación (tareas o actividades), las entradas o lo que da origen al inicio de cada una de las actividades, la salida o resultado esperado una vez concluida la actividad y los recursos productivos necesarios para llevar a cabo la actividad.

Por ejemplo para la etapa que hemos llamado «Lavar y mezclar la masa, «spoon» en las bandejas» se requiere disponer de los ingredientes y la emisión de un pedido para iniciar su atención. Los recursos que participan de dicha actividad son Kristen (mano de obra), una batidora, una cuchara y una bandeja donde pasar la masa cruda en forma de galletas (en condiciones reales por supuesto esto puede considerar más aspectos pero para fines de simplificación consideramos que esos son los recursos relevantes).

De este modo una vez recopilada la información del proceso, estamos en condiciones de elaborar un Diagrama de Flujo de Proceso como el que se presenta a continuación:

diagrama de procesos kristen cookies

En lo que sigue y para efectos del análisis asumiremos que el proceso productivo comienza en la etapa «Lavar y mezclar la masa, «spoon» en las bandejas» que si bien requiere que la emisión de pedido haya sido realizada previamente como esta actividad tiene un tiempo de cero minutos se asume despreciable.

Dicho esto a continuación analizaremos distintas preguntas de interés para este caso. Notar que no necesariamente se aborda aquellas interrogantes propuestas en la lectura, pero que de todos modos consideramos es útil su comprensión.

Pregunta N°1: Use una Carta Gantt para determinar el monto de tiempo que toma terminar tres ordenes de 1 docena (asuma clientes e ingredientes distintos). ¿Cuál es la capacidad del sistema?.

Es importante considerar el registro de los recursos productivos que son compartidos por más de una actividad. En este caso, el socio o amigo de Kristen y las bandejas son compartidas. En este sentido asumiremos que se dispone de un número suficientemente grande de bandejas, de modo que este recurso no sea un limitante para la atención de pedidos.

De este modo la Carta Gantt que representa la producción de 3 docenas de galletas para clientes distintos es: (por ejemplo, con color azul se representa al cliente A que pide una docena de galletas de avena; con color verde al cliente B que pide una docena de galletas de chocolate y con color rojo al cliente C que pide una docena de galletas de zanahoria).

carta gantt kristen cookies

En el caso del primer pedido de una docena de galletas, se requieren 8 minutos para concluir la etapa de la mezcla & spoon (6 minutos en mezclar los ingredientes y 2 minutos para pasar la masa cruda a una bandeja). Luego se pasa a la etapa de cocina (horno) donde se necesitan 10 minutos (el primer minuto para hacer un breve setup, por ejemplo, calibrar la temperatura y un reloj de control). Una vez horneadas las galletas se retiran éstas del horno (que puede hornear de una docena a la vez) y se dejan enfriar en su bandeja por 5 minutos en un lugar habilitado para ello (asumiremos que disponemos de espacio ilimitado para enfriar galletas). A continuación una vez enfriadas las galletas, éstas se empacan, lo cual requiere dos minutos, para finalmente hacer la entrega al cliente y recibir el pago que se asume requiere sólo un minuto.

Notar adicionalmente que llevamos registro del tiempo que tanto Kristen como su socio o amigo destinan para la elaboración de galletas. Por ejemplo, para atender los 3 primeros pedidos de una docena cada uno (asumiendo clientes distintos e ingredientes distintos) Kristen dedica los primeros 24 minutos de trabajo (8[min]*3). En cambio el amigo trabaja (en el orden que aparece en la Carta Gantt de izquierda a derecha): 1 minuto en el setup del horno de la primera docena, 1 minuto en el setup del horno de la segunda docena, 2 minutos para el empaque de la primera docena, 1 minuto para el pago de la primera docena, 1 minuto para el setup del horno de la tercera docena, 2 minutos para el empaque de la segunda docena, 1 minuto para el pago de la segunda docena, 2 minutos para el empaque de la tercera docena y 1 minuto para el pago de la tercera docena.

Considerando lo anterior se verifica (entre otros aspectos) que un recurso compartido (por ejemplo el amigo de Kristen) no se asigna a más de una función al mismo tiempo.

A través del análisis de la Carta Gantt también se corrobora que el Tiempo de Flujo de la primera docena de galletas es 26 minutos (tiempo que transcurre desde que se comienza a trabajar en el pedido hasta que concluye el pago). También se observa que la segunda docena termina 10 minutos más tarde que la primera y la tercera docena termina 10 minutos más tarde que la segunda (el lector puede corroborar que este patrón se repite en el tiempo). Luego en promedio se produce una docena cada 10 minutos (equivalente al Tiempo de Ciclo del proceso) y en consecuencia la Capacidad del Proceso es de 6 docenas por hora (donde la etapa de Cocinar u Horno es el Cuello de Botella).

Pregunta N°2: Considere que el tiempo para enfriar galletas es insuficiente y se ha decido aumentar su tiempo a 15 minutos. Construya una Carta Gantt que represente 2 pedidos de una docena de clientes e ingredientes distintos. ¿Cuál es la capacidad del proceso ahora?.

La representación del escenario anterior es la siguiente:

carta gantt dos docenas

Notar que si bien aumenta el Tiempo de Flujo del primer pedido en 10 minutos (ahora son 36 minutos), la Capacidad del Proceso NO cambia. Esto debido a que como se asume un número suficientemente grande de bandejas y espacio para dejar a enfriar, esta actividad no limita la capacidad del proceso productivo (es como si se pudiese enfriar infinitas docenas en paralelo).

No necesariamente la actividad que en términos individuales requiera mayor tiempo en un proceso será el cuello de botella.

En un futuro próximo continuaremos complementando este artículo incorporando otras preguntas relevantes para el análisis. Por el momento te invitamos a descargar el archivo con el caso Kristen’s Cookies Company a continuación.

[sociallocker]Kristens_cookie_company_Spanish[/sociallocker]

Simulación de una Línea de Espera M/M/1 (Teoría de Colas) en Excel

Un sistema de espera M/M/1 es aquel que considera un servidor, con tiempos exponenciales de servicio y entre llegadas de clientes. La implicancia que los tiempos de servicio se distribuyan exponencial es que existe una preponderancia de tiempos de servicio menores al promedio combinados con algunos pocos tiempos extensos. Un ejemplo de ello es lo que sucede en las cajas de los bancos donde la mayoría de las transacciones requieren poco tiempo de proceso por parte del cajero, no obstante algunas transacciones más complejas consumen bastante tiempo. Por otra parte afirmar que los tiempos entre llegadas se distribuyen exponencial implica una preponderancia de tiempos entre llegadas menores que el promedio en combinación con algunos tiempos más extensos. Lo anterior tiene relación con la aleatoriedad del proceso de llegada de clientes que permite establecer la Propiedad de Falta de Memoria o Amnesia de la Distribución Exponencial y con los conceptos presentados en el artículo Qué son las Líneas de Espera (Teoría de Colas), donde queda en evidencia que la formación de las colas o filas esta asociada a la variabilidad del sistema.

En este contexto consideremos la siguiente notación, donde valores usuales para A y B son M (distribución exponencial) y G (distribución general).

notacion-de-kendall

El siguiente ejemplo disponible en el artículo Qué es la Ley de Little y su aplicación en el análisis de Líneas de Espera, nos permitirá ilustrar la simulación en Excel del comportamiento de un sistema de espera M/M/1.

Simulación de una Línea de Espera M/M/1

Ejemplo: Un pequeño banco está considerando abrir un servicio para que los clientes paguen desde su automóvil. Se estima que los clientes llegarán a una tasa promedio de 15 por hora (λ=15). El cajero que trabajará en la ventanilla puede atender a los clientes a un ritmo promedio de uno cada tres minutos (es decir, la capacidad promedio del servidor es de µ=20). Suponga que el patrón de llegadas es Poisson y el patrón de servicios es Exponencial.

Al hacer uso de la Planilla de Fórmulas de Sistema de Espera, se alcanzan los resultados que se resumen en la imagen a continuación.

salida-planilla-linea-de-es

Con esto la utilización promedio del servidor es de un 75%, el número esperado de clientes en el sistema Ls es 3, el número esperado de clientes en la fila Lq son 2,5, el tiempo promedio que un cliente permanece en el sistema Ws (espera más atención) son 0,2 horas (0 12 minutos) y el tiempo promedio que un cliente permanece en la fila Wq (esperando su atención) es de 0,15 horas (o 9 minutos).

Otra alternativa es simular el comportamiento de la línea de espera con configuración M/M/1 haciendo uso de Excel. Para ello ingresamos en la planilla Queueing_Simulator el número de servidores (1), la distribución para el tiempo entre llegadas (exponencial con media de 4 minutos, esto es, si llegan en promedio 15 clientes por hora, entonces en promedio llega un cliente cada 1/15 de hora o equivalentemente cada 4 minutos) y una distribución para el tiempo de servicio también exponencial con media de 3 minutos. Finalmente ingresamos el número de llegadas que se desea simular (arbitrariamente se ha seleccionado 100.000 llegadas para evaluar un comportamiento del sistema en el largo plazo) y luego Run Simulation.

simulacion-mm1-excel

Se puede apreciar que los resultados obtenidos en la columna F son (aproximadamente) similares a los obtenidos utilizando los resultados que establece la Ley de Little. Por ejemplo, el número esperado de clientes en el sistema L es 3,0157; el número esperado de clientes en la fila Lq es 2,2665; el tiempo esperado que un cliente permanece en el sistema W son 12,0612 minutos y así sucesivamente.

Importante: Los resultados mostrados anteriormente corresponden a aquellos obtenidos con una simulación tipo. Si una vez alcanzados los resultados presionamos nuevamente Run Simulation obtendremos cambios en los resultados los cuales de todos modos deberían aproximar los resultados de la Ley de Little bajo el supuesto de considerar un número significativo de llegadas a simular.

¿Quieres tener el archivo Excel con la Simulación de una Línea de Espera M/M/1 utilizada en este ejemplo?

[sociallocker]

MUCHAS GRACIAS!. DESCARGA AQUÍ EL ARCHIVO

[/sociallocker]

Cómo Calcular Cp y Cpk con el Complemento SPC for Excel

El Cálculo de los índices Cp y Cpk en el Control Estadístico de Procesos permite evaluar que tan bien el proceso se apega a las especificaciones técnicas deseadas o equivalentemente determinar si el proceso cumple el objetivo funcional para el cual fue diseñado. En el siguiente artículo mostraremos cómo obtener de forma rápida y sencilla dichos indicadores haciendo uso del complemento SPC for Excel, el cual puede ser descargado en el enlace anterior por un período de prueba de 20 días. Una vez que el complemento SPC for Excel haya sido correctamente descargado y activado será visible en en una de las pestañas del menú de Excel como se muestra (en un extracto) a continuación:

menu-spc-for-excel

Para ilustrar su utilización consideremos la información relativa a un proceso del cual se tienen 15 muestras, cada una de ellas con 4 observaciones, donde se ha registrado la información de las lecturas en OHMS de cierto dispositivo electrónico. La especificación nominal o deseada del dispositivo es de 1.000 OHMS y se permite una variabilidad de +- 25 OHMS con lo cual se definen los límites de especificación.

datos-para-calculo-de-cp-y-

A continuación seleccionamos la opción Cpk del menú de SPC for Excel (visible en la imagen anterior) y seleccionamos el rango de los datos. Notar que en el ejemplo la información cuantitativa de las muestras esta contenido en el rango que conforma la matriz de la celda C3 a la F17 (es decir, 60 celdas: 15 filas y 4 columnas). Adicionalmente ingresamos el Límite de Especificación Inferior (LEI) o Lower Specification Limit (LSL) de 975 OHMS (1.000 – 25) y Límite de Especificación Superior (LES) o Upper Specification Limit (USL) de 1.025 OHMS (1.000 + 25). Recordar que la especificación nominal es de 1.000 OHMS.

capacidad-del-proceso-spc

Una vez ingresados los datos atingentes al ejemplo y habilitando los resultados de capacidad (en su opción Yes) seleccionamos OK. Esto dará origen a una nueva hoja en nuestro archivo Excel con los resultados del análisis de capacidad tal como se muestra a continuación:

cp-y-cpk-spc-para-excel

Observar que los resultados son consistentes con los alcanzados preliminarmente en el artículo al cual hacemos referencia al inicio de este tutorial. Adicionalmente se obtienen una serie de estadísticas complementarias que permite tener una visión más general del comportamiento del proceso.

calculo-cp-y-cpk-control-es

Qué son las Líneas de Espera (Teoría de Colas)

En el artículo Qué es la Ley de Little y su aplicación en el análisis de Líneas de Espera describimos algunos elementos básicos asociados al estudio de líneas de espera como la población de referencia (finita o infinita), distribución de los tiempos entre llegadas (usualmente se distribuyen de forma exponencial, satisfaciendo la Propiedad de Falta de Memoria o Amnesia de la Distribución Exponencial), disciplina del servicio (FIFO, Prioridad, etc), entre otros elementos. A continuación buscaremos ahondar en dichos fundamentos buscando responder ¿Qué son las Líneas de Espera?.

En dicho contexto considere la siguiente pregunta: Un pequeño almacén tiene un solo vendedor que atiende en promedio a 12 clientes por hora (es decir su capacidad es µ=12[/c/h]), atendiendo de un cliente a la vez. La llegada de los clientes al almacén es a una tasa promedio de 10 clientes por hora (λ=10[/c/h]). ¿Hay filas en el almacen? (clientes esperando por su atención). Probablemente muchas personas respondan que no, pero la respuesta correcta es: depende.

linea-de-espera-llegada

Un ejemplo que permite evidenciar lo anterior es el siguiente. Un proceso como el que se describió en la pregunta anterior (almacén) que recibe 12 clientes por hora (λ). La columna Arrival Time detalla el minuto en el cual el cliente llega al almacén (asumamos que estamos evaluando desde las 07:00 a las 08:00, es decir, el primer cliente llega a las 07:00, el segundo a las 07:07 y así sucesivamente). Finalmente la columna Service Time detalla el tiempo que el vendedor se demora en atender al cliente (al calcular el promedio de los valores de dicha columna se observa que es 4,083 minutos, es decir, µ=14,69[/c/h] aproximadamente). Luego la utilización promedio del servidor (vendedor) es ρ=λ/µ=0,8167< 1. Los detalles de este procedimiento se puede consultar en el artículo Cómo calcular la Utilización de un servidor, Tiempo de Espera y Tiempo de Flujo de una Línea de Espera.

llegada-de-clientes

No obstante si analizamos en detalle del proceso de espera anterior podemos observar lo siguiente:

grafico-clientes-en-el-sist

Los clientes 3, 4, 5, 6, 7, 8 y 9 debieron esperar antes de ser atendidos por el vendedor aun cuando la utilización (promedio) del mismo es menor a 1. En el gráfico de barras adicionalmente se observa la cantidad de clientes en el sistema para un instante del tiempo dado (esto considerando tanto el cliente que eventualmente pueda estar siendo atendido más los que eventualmente están esperando por su atención). Por ejemplo a las 07:31 se esta atendiendo al cliente 5 y están esperando en fila los clientes 6, 7 y 8 (es decir, hay 4 clientes en el sistema). Luego la conclusión que podemos generalizar en este caso es:

Si existe variabilidad en las llegadas de los clientes al sistema y/o en las atenciones (tiempos de servicio), entonces hay colas o filas (aunque de largo finito). Esto a pesar de que λ<µ, o sea, de que ρ< 1. Si λ>µ el sistema es inestable (se generan colas infinitas).Dicho de otra modo la existencia de colas o filas en un sistema se deben a la variabilidad y no al hecho de que λ>µ (ρ> 1).