Distribución Estacionaria de una Cadena de Markov en Tiempo Continuo

En la Teoría de Probabilidades, una Cadena de Markov en Tiempo Continuo (CTMCContinuous Time Markov Chain) corresponde a un modelo matemático donde una variable aleatoria toma valores en un espacio finito y donde el tiempo en que la variable se encuentra en un determinado estado adopta valores reales no negativos que siguen una Distribución Exponencial. Dicha característica denominada Propiedad de No Memoria determina que el comportamiento a futuro del proceso estocástico depende sólo del estado actual y no del comportamiento histórico de dicha variable.

En este contexto a continuación presentamos un ejemplo del cálculo de una Distribución Estacionaria o de Largo Plazo para una Cadena de Markov en Tiempo Continuo. Nuestro objeto de análisis en términos intuitivos es similar al caso de la Distribución Limite de una Cadena de Markov en Tiempo Discreto, es decir, estimar en el largo plazo (e independiente de la distribución inicial) cuál es la probabilidad que el proceso estocástico se encuentre en uno de los N estados posibles.

Distribución Estacionaria Cadena de Markov en Tiempo Continuo

Aves arriban a uno de los 4 alimentadores (comederos) ubicados en el patio de una casa de acuerdo a un Proceso de Poisson con tasa promedio de un ave por minuto. Si todos los alimentadores (4 en total) están ocupados, el ave se va sin esperar que un alimentador se desocupe y en caso contrario el ave come de un alimentador por un tiempo determinado que sigue una Distribución Exponencial con media de un minuto. Se desea modelar la cantidad de alimentadores o comederos ocupados X(t) a través de una Cadena de Markov en Tiempo Continuo.

Sea X(t) la variable aleatoria que representa el número de alimentadores ocupados. En este contexto X(t) representa el número de entidades presentes en los alimentadores en el instante t, cuyo tamaño aumenta con la llegada (nacimiento) de entidades (aves) o disminuye con la salida (muerte) de entidades (aves).

Al existir 4 alimentadores, la cantidad de éstos que se pueden encontrar ocupados en un instante del tiempo son 0, 1, 2, 3 o 4, (X(t)\in\begin{Bmatrix}0,1,2,3,4\end{Bmatrix}t\geq 0) según se representa en el diagrama de transición a continuación:

proceso nacimiento y muerte ctmc

Los valores en las flechas que unen los estados 0 con el 1, 1 con el 2, 2 con el 3 y 3 con el 4, corresponden a la tasa de llegada λ (tasas de nacimiento) que en este caso corresponde a \lambda_{i}=1[\frac{ave}{minuto}] para todo i.

Por otro lado las tasas de servicio (salida o muerte) µ corresponderán a \mu_{i}=i\mu, de modo que de esta forma se obtienen las tasas indicadas en la parte inferior del diagrama en aquella transiciones que consisten en disminuir el número de alimentadores ocupados. Notar que en este caso \mu=1[\frac{ave}{minuto}] .

La cadena propuesta es claramente irreducible (es decir, todos los estados se comunican entre sí y existe por tanto una única clase de estados), de modo que podemos estimar una distribución estacionaria o de largo plazo. En este sentido la ecuación correspondiente es:

ecuaciones largo plazo ctmc

Donde por cierto \sum\pi _{i}=1. La Matriz General G, que tiene como característica que la sumatoria de los valores en sus respectivas filas corresponde a cero, a su vez queda definida por:

matriz g ctmc

De este modo se obtiene el siguiente sistema de ecuaciones:

sistema ecuaciones largo plazo ctmc

La solución del sistema corresponde a:

soluciones ecuaciones ctmc

Que representa para cada estado la proporción del tiempo (en el largo plazo) que cada uno de ellos se encontrará ocupado, por ejemplo, se espera que en el 36,92% del tiempo no se encuentren alimentadores (comederos) ocupados.

Los resultados anteriores han sido corroborados haciendo uso de una planilla de Simulación de Sistemas de Espera disponible en el Libro Investigación de Operaciones de H. Taha. Notar que se ha establecido un límite de 4 entidades (en este caso aves) para el sistema:

simulación ctmc

El número de alimentadores ocupados en el largo plazo son:

alimentadores ocupados largo plazo

Se concluye que en el largo plazo se encuentren ocupados 0,9845 comederos. Cabe destacar que según el resultado de la simulación anterior L_{s}=0,98462 y por cierto la diferencia respecto a nuestro resultado obedece exclusivamente a la cantidad de decimales utilizados para la estimación.

Ejemplo de Relajación Lagrangeana en Programación Entera

El método de Relajación Lagrangeana (o Relajación Lagrangiana) consiste básicamente en un Método de Descomposición cuya idea se basa en descomponer un problema original restringido, en principio complejo de resolver, de modo de reemplazarlo por otro problema que permita simplificar la resolución. Esto se logra incorporando aquellas restricciones que se consideran difíciles (las que hacen compleja la resolución directa del problema) a la función objetivo, donde cada una de éstas tendrá asociada un Multiplicador de Lagrange \lambda que permitirá (iterativamente) penalizar el incumplimiento de las mismas al ser establecidos distintos valores para los multiplicadores. De esta forma se espera que las restantes restricciones (las que no se incorporan mediante penalizaciones en la función objetivo) permitan verificar un problema cuya resolución sea fácil (o al menos más sencilla que el problema en su estructura original).

El problema asociado a encontrar los valores de \lambda que permitan minimizar la función LR(\lambda) (que en sí es un problema de maximización) se conoce como el Problema Dual Lagrangeano. En general puede resultar un problema tedioso de resolver, no obstante, a continuación se enumeran una serie de pasos que permiten una aproximación a la implementación del método de Relajación Lagrangeana.

Supongamos que el problema original es de Maximización y que la o las restricciones relajadas son inecuaciones del tipo \leqslant:

  1. Comenzar con cada \lambda igual a cero. Definir inicialmente (y de forma arbitraria) un Paso de magnitud k.
  2. Resolver LR(\lambda) de modo de alcanzar la solución óptima en términos de x.
  3. Para cada restricción violada por x, incrementar el correspondiente \lambda por k.
  4. Si han transcurrido m iteraciones desde que se alcanzo la última relajación para el problema dual lagrangeano, disminuir k a la mitad.
  5. Ir al Paso 2.

Para ilustrar el procedimiento anterior consideremos un Problema de la Mochila como el que se describe a continuación:

ejemplo relajación lagrangeana

Luego de resolver el problema de Programación Entera propuesto haciendo uso de Solver de Excel se alcanza la Solución Óptima: x_{1}=0, x_{2}=0, x_{3}=1, x_{4}=1 con Valor Óptimo: V(PE)=13.

Relajaremos las Restricciones 1 y 2 incorporando éstas a la función objetivo y dejando exclusivamente las condiciones de binarios para las variables de decisión. Esto da origen a nuestro problema de Relajación Lagrangeana LR(\lambda):

relajación lagrangeana programación entera

Consideraremos inicialmente \lambda_{1}=0 y \lambda_{2}=0. La resolución de dicha instancia es trivial obteniéndose como Solución Óptima: x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 y Valor Óptimo: LR(\lambda)=22. Notar que la solución alcanzada no satisface la Restricción 1 (sin embargo, se satisface la Restricción 2).

Penalizaremos la Restricción 1 al considerar \lambda_{1}=0,5 (penalización arbitrariamente definida como punto de partida) y manteniendo \lambda_{2}=0 (dado que la Restricción 2 se satisface). La Solución Óptima es x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 con Valor Óptimo de LR(\lambda)=20. En consecuencia, la penalización establecida resulto ser insuficiente para que se evitara la violación (incumplimiento) de la Restricción 1.

Sea \lambda_{1}=1 (aumentamos nuevamente en 0,5 la penalización de la Restricción 1) y \lambda_{2}=0. La Solución Óptima se mantiene: x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 con Valor ÓptimoLR(\lambda)=18.

Sea \lambda_{1}=1,5 y \lambda_{2}=0. La Solución Óptima se mantiene: x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 con Valor Óptimo: LR(\lambda)=16. Se sigue violando la Restricción 1.

Sea \lambda_{1}=2 y \lambda_{2}=0. La Solución Óptima ahora es: x_{1}=0, x_{2}=1, x_{3}=0, x_{4}=0 con Valor ÓptimoLR(\lambda )=15. Ahora se satisfacen las Restricciones 1 y 2, teniendo éstas holguras de 5 y 1, respectivamente. Luego si se decide disminuir la penalización de la Restricción 1 a \lambda_{1}=1,5 se vuelve al mismo punto de la iteración anterior. En consecuencia se disminuye la magnitud del paso (penalización) a 0,25 de modo que \lambda_{1}=1,75 y \lambda_{2}=0. La Solución Óptima es: x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=0 con Valor Óptimo: LR(\lambda)=15.

No obstante, la Restricción 2 no se satisface para esta nueva solución y de esta forma se establecen nuevas penalizaciones: \lambda_{1}=1,75 y \lambda_{2}=0,25 y  que dan origen a la Solución Óptima: x_{1}=1, x_{2}=1, x_{3}=1, x_{4}=1 con Valor Óptimo: LR(\lambda)=15.

El procedimiento continua de esta forma disminuyendo la magnitud del paso (penalización) cuando resulta necesario. Notar que de esta forma las respectivas penalizaciones pueden aumentar o disminuir al cabo de una iteración. El detalle de las iteraciones realizadas se muestra a continuación:

iteraciones relajación lagrangeana

Para cada iteración k se muestra la penalización aplicada para la Restricción 1 y 2 respectivamente, el criterio para la actualización del Paso, el valor de la función objetivo de la Relajación Lagrangeana LR(\lambda ), la Solución Óptima alcanzada para el problema (destacado con color amarillo), el valor que representa dicha solución óptima al ser evaluada en la función objetivo original V(PE), la holgura de la Restricción 1 (2) (con color rojo se destaca cuando se viola la restricción en una determinada magnitud) y si la solución óptima alcanzada en la iteración k-ésima es factible en el problema original PE).

convergencia dual lagrangeano

Según se señala en un tutorial  por Michael A. Trick (donde se ha tomado este ejemplo y se ha extendido a un número mayor de iteraciones con ciertas variaciones en la aplicación de las mismas) las penalizaciones “óptimas” (luego de seguir iterando) corresponderán aproximadamente a \lambda_{1}=1,83 y \lambda_{2}=0,33, alcanzando LR(\lambda )=14,67 que constituye una cota superior del valor óptimo del problema original. La Solución Óptima asociada a este escenario es x_{1}=0, x_{2}=1, x_{3}=1, x_{4}=0 que es factible en el problema original y reporta un valor en la función objetivo de 11. Notar que la Solución Óptima del PE) es x_{1}=0, x_{2}=0, x_{3}=1, x_{4}=1 con Valor Óptimo de 13.

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.

Modelo de Localización y Transporte con Preferencias

Los modelos de optimización que integran decisiones de localización y transporte han sido materia de análisis detallado en nuestro sitio como se aborda en los artículos Optimización de una Red Logística de Transporte y Localización de Centros de Distribución y el Problema de Transbordo en una Red Logística de Transporte Multiperíodo, entre otros. En esta ocasión incorporaremos un concepto adicional a la problemática anterior a través de la incorporación de las preferencias de los clientes por ser abastecidos por determinados centros de oferta. A este problema lo llamaremos Modelo de Localización y Transporte con Preferencias de Clientes y a continuación describiremos un caso particular que permita visualizar una alternativa de formulación sencilla con su correspondiente implementación computacional.

Asumamos que cada cliente (demandante) ha manifestado su preferencia por ser abastecido por determinados oferentes (potenciales). En este contexto cada cliente elegirá siempre su mejor (menor) prioridad de las alternativas ofertas disponibles, es decir, de aquellas que se decidan instalar (localizar).

Consideremos los siguientes parámetros para el modelo:

Sea C_{ij} el costo de abastecer al cliente j (para el total de su demanda) desde el centro de oferta i. Como se puede apreciar asumiremos que cada cliente debe ser abastecido por solo un oferente. Adicionalmente y para efectos de ilustración consideraremos 4 oferentes (potenciales) y 6 clientes.

costo transporte oferentes a demandantes

Sea K_{i} el costo de instalar el centro de oferta i. Por ejemplo, habilitar (localizar) el oferente 1 tiene un costo fijo de 3.500 unidades monetarias.

costo instalación oferente

Sea p_{ij} la preferencia que manifiesta el cliente j por ser abastecido por el oferente i. Asumiremos que un menor valor representa una mayor preferencia. Por ejemplo, el cliente 1 prefiere ser abastecido por los oferentes 4,1,3,2, respectivamente. En este sentido si se llegará, por ejemplo, solo a instalar el oferente 1 y 3, el cliente 1 debe ser abastecido del oferente 1 dado que de las 2 alternativas este oferente representa una mayor preferencia.

matriz de preferencias

Dada las definiciones anteriores, el Modelo de Localización y Transporte con Preferencias de Clientes es el siguiente:

localización y transporte con preferencias

Donde x_{i} es una variable binaria que adopta un valor 1 si se instala el centro (oferente) i (cero en caso contrario. Por otra parte y_{ij} es una variable binaria que indica si el cliente j se abastece (exclusivamente) desde el oferente i (cero en caso contrario). Luego, la función objetivo representa la minimización de los costos de instalación de los oferentes y el transporte que se origina entre éstos y los clientes.

En cuanto a las restricciones tenemos:

  • (1) Determina que cada cliente sea abastecido desde un único centro de oferta.
  • (2) Los clientes pueden optar a ser abastecidos desde aquellos oferentes que hayan sido seleccionados.
  • (3) La preferencia de cada cliente corresponderá al promedio ponderado de columna correspondiente en la matriz de preferencias (asociada a dicho cliente) por la decisión de abastecimiento desde un oferente dado.
  • (4) Se impone a través de la preferencia calculada en (3) que cada cliente sea atendido por aquel oferente que le reporta la mayor satisfacción (menor puntuación en el ejemplo según lo descrito previamente).
  • (5) Las variables de decisión son binarias.

Luego de implementar en Solver el modelo de Programación Entera anterior se alcanzan los siguientes resultados:

solución óptima localización con preferencias

Se observa que se instalan los centros de oferta 1, 2 y 4, que representa un costo de localización (total) de $9.000. En cuanto a las decisiones de distribución, el oferente 1 abastece al cliente 4; el oferente 2 abastece a los clientes 2 y 5 y finalmente el oferente 4 abastece a los clientes 1, 3 y 6. El costo total de transporte es de $12.062, de modo que el costo total es $21.062 (valor óptimo). Notar que cada cliente recibe los pedidos de su mejor alternativa posible (marcado con color verde). A continuación se encuentra disponible el archivo Excel con la implementación computacional del Modelo de Localización y Transporte con Preferencias para ser descargado.

[sociallocker]Localización y Transporte con Preferencias[/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]