Características de un Proceso Productivo Flow Shop (Producción en Masa)

Un Proceso Productivo Flow Shop (conocido también como Producción en Masa) es similar a un proceso continuo, no obstante, está orientado al producto en líneas de fabricación exclusivas. El Flow Shop es un proceso de transformación en el cual continuas unidades de salida que fluyen en forma discreta siguen una misma secuencia de operaciones, con baja variación en el producto y a muy alta velocidad, involucrando líneas de producción. Una representación esquemática de un proceso de estas características se muestra a continuación:

diagrama-flow-shop

Algunos ejemplos típicos de procesos tipo Flow Shop es el ensamble de electrodomésticos (donde se implementa el Plan de Requerimiento de Materiales o MRP), el envasado de vino y bebidas gaseosas, la fabricación de tarros de conserva, etc.

embotellado-de-vino-flow-sh

Las características de un proceso Flow Shop o de producción en masa son las siguientes:

Alto volumen de producto: Debido a que es un proceso con baja variedad de producto esto contribuye a un mayor volumen de producción. Esto es vital para que la empresa pueda alcanzar economías de escala.

Baja variedad de producto: Los productos suelen ser estándares y con baja variabilidad en sus características de modo que la producción sea masiva.

Equipamiento de propósito específico: En concordancia con la baja variedad de producto. Adicionalmente esta característica establece mayores barreras a la salida en caso de ser necesario vender los activos fijos.

Operadores menos capacitados: Al ser un proceso repetitivo el conocimiento de la función a desempeñar se alcanza con mayor rapidez. Luego las instrucciones de trabajo son escasas.

Bajo valor de la materia prima comparado con el valor del producto: Como también un inventario de producto en proceso (WIP) relativamente bajo en relación a la salida (output).

Make to Stock: Se fabrica para almacenar inventario de producto final y con estas unidades enfrentar la demanda del mercado lo que permite una mayor rapidez de respuesta en comparación a un proceso Job Shop. Para ello es vital realizar Pronósticos de Demanda que sean acertados.

Programación simple: Debido a la estandarización del proceso y el énfasis en el volumen de producción, se debe fijar una tasa de salida ad-hoc a los pronósticos de ventas.

Características de un Proceso Productivo Job Shop (Producción Tipo Taller)

Un sistema productivo es un conjunto de componentes cuyo fin es convertir insumos en productos. En este contexto la clasificación de procesos productivos permite ordenar el análisis y sugiere las prioridades competitivas que se deberán privilegiar. Una de dichas clasificaciones corresponde a los procesos productivos Job Shop el cual está orientado a trabajos tipo taller. El Job Shop es un proceso de transformación en el cual los productos siguen diferentes trayectorias y secuencias a través de los procesos y máquinas, las cuales se encuentran agrupadas por funciones. Una representación esquemática de un proceso tipo taller con rutas alternativas se muestra a continuación:

diagrama-job-shop

La producción artesanal de ropa realizado por una modista como también la fabricación de parte y repuestos para maquinaria que se realizan en maestranzas industriales son ejemplos clásicos de los procesos Job Shop.

maestranza job shop

Las características típicas de un proceso Job Shop son las siguientes:

Alta variedad de producto: La flexibilidad del proceso permite adaptarse a distintos tipos de necesidades de los clientes.

Bajo volumen de producción: A diferencia de un proceso productivo Flow Shop, en un Job Shop la producción es en volúmenes relativamente bajos dado que se enfrentan requerimientos heterogéneos por parte de los clientes.

Equipos y máquinas de propósito general: Esto permite ofrecer una alta variedad de producto. Por ejemplo, en una maestranza industrial se dispone de soldadoras, tornos, fresadoras, herramientas, etc, que permiten atender distintos tipos de pedidos de los clientes. Dado su propósito general en caso de cierre del negocio, las barreras a la salida son más bajas (en comparación a un proceso tipo Flow Shop).

Operadores ampliamente capacitados: De modo de mantener un proceso productivo flexible que se adapte a las necesidades de los clientes, se requiere de trabajadores altamente capacitados, de modo que puedan abordar las distintas necesidades de producción.

Muchas instrucciones de trabajo: Un proceso Job Shop suele no ser repetitivo en contraste a un proceso Flow Shop que es estandarizado y donde las instrucciones de trabajo son escasas.

Alto valor de la materia prima relativa al valor del producto: Como también un inventario de producto en proceso (WIP) relativamente alto en relación al output o salida.

Flujo lento de productos: Básicamente por la necesidad de disponer de un proceso flexible.

Make to Order: Equivalente a producción a pedido donde los productos se procesas una vez que el cliente ha planteado su requerimiento. De esta forma se busca generar una oferta personalizada. No obstante para mitigar las implicancias que tiene en la rapidez de respuesta esta situación, es frecuente observar actualmente la proliferación de procesos híbridos donde se produce contra stock aquello que suele ser estándar en el producto y se termina a pedido los elementos que son más heterogéneos en cuanto a los requerimientos. De esta forma se busca rescatar la flexibilidad de un proceso Job Shop con la rapidez de respuesta que tiene un proceso Flow Shop.

Expansión de capacidad flexible: Es relativamente sencillo agregar nuevas máquinas o substituir las que se utilizan actualmente en el proceso productivo.

Programación compleja: La programación de la producción de un proceso Job Shop se caracteriza por ser compleja (en parte por las características detalladas anteriormente). En términos computacionales dicha programación de trabajos se suele considerar NP-Hard.

Ejemplo del Balance de una Línea de Ensamble utilizando la Regla del Candidato Más Extenso

Una línea de ensamble consiste en un ensamble progresivo que esta asociado por algún tipo de aparato o dispositivo que maneja los materiales, donde el equipo o los procesos de trabajo están ordenados siguiendo los pasos progresivos de la fabricación del producto. Los productos que se producen parcial o totalmente en las líneas de ensamble incluye juguetes, electrodomésticos, automóviles, aviones, armas de fuego, etc. En consecuencia casi todo producto que tiene varias partes y que se producen en volúmenes importantes utiliza las líneas de ensamble en alguna medida.

Equilibrar o balancear una línea de ensamble depende básicamente de la programación, no obstante dicha programación por lo general tiene un impacto directo en la distribución o layout de la planta.

En este contexto el problema del balanceo de la línea de ensamble consiste en asignar todas las tareas a una serie de estaciones de trabajo de modo que cada una de ellas no tenga más de lo que puede hacer en el tiempo de ciclo de dicha estación y que el tiempo inactivo de todas las estaciones de trabajo sea el menor posible.

A continuación se presenta un ejemplo de un proceso que consta de 8 actividades o tareas, el cual corresponde a una línea de ensamble que opera 8 horas al día con una producción deseada de 240 unidades diarias. La siguiente tabla contiene información acerca de los tiempos de la tarea de este producto y las relaciones de precedencia:

tabla-balance-de-linea

Se requiere un dibujo que represente el diagrama de precedencia. ¿Cuál es el tiempo del ciclo de la estación de trabajo?. A continuación balancee esta línea de ensamble utilizando la tarea de tiempo más largo.

El diagrama de precedencia que representa el proceso descrito anteriormente se presenta a continuación. Se puede observar, por ejemplo, que la tarea B tiene una duración de 80 segundos y es posterior a la tarea A que dura 60 segundos.

diagrama-balance-de-linea

Luego es necesario determinar el Tiempo de Ciclo (C) que requieren las estaciones de trabajo a través de la siguiente fórmula:

formula-tiempo-de-ciclo

En el ejemplo propuesto el proceso opera 8 horas al día (equivalente a 8[horas/día]*3.600[segundos/hora]=28.800[segundos/día]) con un nivel de producción deseado de 240 unidades. Dado lo anterior el Tiempo de Ciclo (C) es:

calculo-tiempo-de-ciclo-bal

A continuación se requiere estimar el número mínimo de estaciones de trabajo (Nt) que, en teoría, se requiere para cumplir el límite del tiempo de ciclo de la estación de trabajo a través de la siguiente fórmula (en caso de obtener un resultado fraccionario se debe redondear al entero superior más cercano).

formula-numero-minimo-estac
calculo-nt

Notar que el numerador del cálculo anterior corresponde a la sumatoria de los tiempos de las 8 tareas (60+80+20+50+90+30+30+60=420[segundos]). Con ello se espera (en teoría) que sean necesarias 4 estaciones de trabajo y se procede con la configuración de las mismas utilizando como criterio el tiempo más largo o candidato más extenso: Los resultados se resumen en la siguiente tabla:

resultado-balance-de-linea

Por ejemplo la estación 1 considera la tarea A que tiene un tiempo de 60 segundos y dado que el tiempo de ciclo es de 120 segundos el tiempo remanente no asignado también será de 60 segundos. Luego de A siguen las tareas B, C y D (según el diagrama de precedencia) no obstante se descarta B dado que su tiempo es de 80 segundos que es superior al tiempo remanente no asignado, por tanto los candidatos factibles para acompañar a la tarea A en la estación 1 son las tareas C o D. El criterio en este caso es seleccionar la tarea D dado que su tiempo es 50 segundos (mayor que los 20 segundos de C) lo que procura minimizar el tiempo inactivo de la estación de trabajo (que en este caso luego de asignar A y D a la estación de trabajo 1 es de 10 segundos).

Continuando con el procedimiento se determinan las tareas pertenecientes a la estación 2. En primer lugar se podría asignar B o C, no obstante se privilegia B por tener una mayor duración. Sin embargo, luego de asignar B la única tarea remanente viable es C así que se asigna a la estación 2 determinando que el tiempo remanente no asignado de dicha estación es de 20 segundos.

La estación 3 considera en primer lugar la asignación de la tarea E por el criterio del candidato más extenso o de mayor duración. Luego se asigna F con una duración de 30 segundos lo que permite que el tiempo inactivo de esta estación sea nulo. Finalmente la conformación de la estación 4 es trivial con G y H asignadas en ese orden. El siguiente diagrama representa el resultado final donde cada estación de trabajo se ha identificado con un color diferente para mayor claridad:

balance-candidato-mas-exten

Reglas de Prioridad en la Programación de Trabajos con el Software LEKIN®

LEKIN® es un software gratuito e intuitivo que permite entre otras cosas la programación de n trabajos en una máquina. Este programa fue desarrollado en Stern School of Business, NYU, siendo la mayor parte de su diseño y programación a cargo de estudiantes de la Universidad de Columbia en Estados Unidos. El software LEKIN® fue creado como herramienta educacional con el propósito principal de difundir en los estudiantes conceptos de programación de trabajos y sus aplicaciones en la industria.

En el siguiente artículo detallaremos como implementar la regla de prioridad FIFO (First In First Out) o análogamente en su acrónimo en español PEPS (Primero en Entrar Primero en Salir). Para ello consideraremos un problema que consiste en la programación de 5 trabajos a una máquina, donde los tiempos de proceso son determinísticos (es decir, se asume que no hay incertidumbre respecto a la duración de cada trabajo) y el patrón de llegada es estático (Todos los trabajos llegan simultáneamente y de manera previa al inicio de las operaciones).

tabla-trabajos-con-fecha-de

Paso 1: Descargar el software LEKIN® (seleccionando Lekin.exe (1.67MB) según se muestra en la imagen) y seguir las instrucciones las instrucciones para su instalación.

descargar-lekin

Paso 2: Una vez instalado el programa y dadas las características de nuestro ejemplo, en el Menú Principal debemos seleccionar “Single Machine” (Una Máquina).

main-menu-lekin

Paso 3: A continuación ingresamos la cantidad de trabajos que necesitamos programar. En nuestro ejemplo son 5 trabajos. Luego seleccionamos “OK”.

single-machine-lekin

Paso 4: Ingresamos los datos de los trabajos en la interfaz que se muestra a continuación. Notar que hemos editado el nombre o etiqueta que identifica el trabajo (Job ID) el Tiempo de Procesamiento (Processing Time) y la Fecha de Entrega (Due Date). Al presionar “OK” se puede repetir el procedimiento para el resto de los trabajos.

add-jobs-lekin

Paso 5: En el menú del programa seleccionamos “Schedule” ==> “Rule” ==> “4 FCFS” (FCFS es equivalente a FIFO o PEPS).

fcfs-lekin

LEKIN® genera una Carta Gantt donde se muestra la programación de los trabajos y el tiempo total o makespan para concluir la totalidad de éstos (80 días). Adicionalmente según se aprecia en “Job Pool” se detalla el día en que se da inicio y término a cada uno de los trabajos.

carta-gantt-lekin

Paso 6: Finalmente en el Menú “Tools” (Herramienta) ejecutamos la opción “Performance”.

tools-lekin

Esto permite obtener un cuadro resumen con los principales indicadores de gestión de la programación según se observa en la imagen:

shop-perfomance-lekin

De donde se corrobora los siguientes resultados según lo obtenido previamente en el artículo: Reglas de Prioridad para la Programación de n Trabajos en una Máquina.

  • Tiempo de Flujo Promedio = 245[días]/5[trabajos]=49[días/trabajo]
  • Tiempo de Atraso Promedio = 108[días]/5[trabajos]=21,6[días/trabajo]
  • Atraso Máximo = 40[días]
  • Número de Trabajos Atrasados = 3[trabajos]
  • Makespan = 80[días]

Conclusiones: El software LEKIN® puede ser utilizado tanto para la aplicación de otras reglas de prioridad en el contexto del ejemplo anterior (según se puede apreciar en el Paso 5 de este tutorial) como también en otras problemáticas relativas a la Programación de Tareas. Una de las ventajas del programa es que su distribución es gratuita y además resulta ser compatible aún con las versiones más recientes de Windows (teniendo en cuenta que su última actualización data de Abril de 2002). Lo anterior ha sido corroborado en la utilización de este software sin inconvenientes en un computador con sistema operativo Windows 7 Home Premium de 64 bits. Lo anterior constituye una ventaja en comparación a otras herramientas como WINQSB que requiere el uso de máquinas virtuales si se desea utilizar en versiones recientes del sistema operativo Windows.

Actualización (Febrero 2017): Se dispone de una versión más reciente del software LEKIN® que la utilizada en este tutorial y cuya fecha de actualización corresponde al mes de Octubre de 2010 y puede ser descargada en el siguiente enlace: Descargar LEKIN® (2010).

Cómo secuenciar n Trabajos en una Máquina para minimizar Setup

El orden o secuencia en el cual se programan n trabajos en una máquina es significativo a la hora de estimar los tiempos de setup para pasar de un determinado trabajo a otro o incluso comenzar con cualquiera de ellos al inicio de la planificación.

En este contexto se reconoce formalmente como tiempo de setup la cantidad de tiempo necesario para preparar una máquina para realizar una operación diferente y cumplir con las especificaciones del cliente (estos tiempos de setup pueden representar por ejemplo calibración de la máquina, cambio de formatos, limpieza, mantención preventiva, etc).

En el siguiente artículo formularemos y resolveremos un modelo de Programación Entera que permita encontrar una secuenciación óptima de n trabajos en una máquina, lo cual será contrastado con la solución que se puede obtener por simple enumeración de secuencias, naturalmente para un número de trabajos «pequeño» (para fines académicos).

En general si se deben programar n trabajos en una máquina, la cantidad de secuencias posibles son n!.

Por ejemplo si tenemos 3 trabajos (n=3) que debemos asignar a una máquina la cantidad de secuencias posibles son 6 (3!=3*2*1). Lo anterior implica que aún para centros de trabajos pequeños es útil contar con un procedimiento que permita identificar aquella secuencia que minimice el makespan sin tener la necesidad de hacer una evaluación exhaustiva de cada una de ellas.

Consideremos un conjunto de trabajos que necesitan ser asignados a una cierta máquina, todos los cuales están disponibles al inicio de la programación y se conoce los tiempos de proceso y fechas de entrega como muestra la siguiente tabla:

tabla-tiempos-procesos-y-en

Sin embargo, el tiempo de setup, correspondiente al tiempo requerido para preparar la máquina antes de cada trabajo, depende del trabajo que le precede. A continuación se indica los tiempos de setup aij cuando al trabajo j le precede el trabajo i:

tabla-tiempos-de-setup

Adicionalmente hay un tiempo de setup a0j asociado al primer trabajo a programar de acuerdo a los siguientes valores:

tiempos-de-setup-inicial

El objetivo entonces es programar las actividades de modo de minimizar el tiempo de utilización de la máquina (makespan) como resultado de la asignación propuesta. Notar que según lo descrito anteriormente el problema admite 6 secuencias posibles las cuales se enumeran a continuación para poder obtener el makespan de la programación.

  • Secuencia 1-2-3: 1+9+1+13+3+10=37[t]
  • Secuencia 1-3-2: 1+9+0+10+1+13=34[t]
  • Secuencia 2-1-3: 3+13+2+9+0+10=37[t]
  • Secuencia 2-3-1: 3+13+3+10+3+9=41[t]
  • Secuencia 3-1-2: 4+10+3+9+1+13=40[t]
  • Secuencia 3-2-1: 4+10+1+13+2+9=39[t]

Naturalmente la secuencia óptima es 1-3-2 con un makespan de 34[t]. Como el trabajo 1 es el que inicia la secuencia tiene un setup inicial de a01=1 y requiere de 9[t] para ser completado. A continuación sigue el trabajo 3 que dura 10[t] y como es el trabajo 1 el que le precede no se requiere tiempo de setup (a13=0). Finalmente se realiza el trabajo 2 con duración de 13[t], necesitándose 1[t] para pasar del trabajo 3 al trabajo 2 (a32=1).

Para abordar el problema anterior a través de un modelo de optimización definiremos el siguiente problema de Programación Entera que claramente permite extender su aplicación a problemas de mayor tamaño (número de trabajos):

Variables de Decisión:

variables-de-decision-probl

Para i=1,2,3j=0,1,2,3 con i≠j. Por ejemplo si X10=1 esto indica que el trabajo 1 es el que se realiza inmediatamente después del trabajo 0, es decir, el trabajo 1 es el que inicia la secuencia.

Función Objetivo:

En la implementación computacional con Solver de Excel la función objetivo se representa a través de la siguiente fórmula:

formula-funcion-objetivo-pr

Para mayor claridad a continuación un extracto de la pantalla del modelo computacional:

formula-funcion-objetivo-se

Se busca minimizar el makespan de la secuencia. Notar que se suman las constantes asociadas al tiempo de proceso de cada trabajo (las cuales son independientes de la secuencia y justifican que inicialmente el valor de la celda que representa la función objetivo sea igual a 32[t]) y que eventualmente se pueden omitir de la función objetivo (en dicho caso el valor óptimo representaría la sumatoria de los tiempos de setup de la secuencia y no el makespan de la programación).

Restricciones:

Se deben realizar los 3 trabajos:

se-deben-realizar-los-traba

A lo más una tarea sigue a la j-ésima al menos que sea la última de la secuencia:

a-lo-mas-una-tarea-sigue-a-

Alternativas infactibles: (celdas color rojo en la planilla de cálculo)

alternativas-infactibles-se

Debe existir un trabajo inicial en la secuencia:

trabajo-inicial-setup

Luego de resolver con Solver el problema anterior se alcanza la siguiente solución óptima y valor óptimo:

solucion-optima-problema-se

Donde se corrobora que la secuencia óptima es 1-3-2 con un makespan de 34[t]. A continuación puedes descargar el archivo Excel con la resolución del problema anterior en el siguiente enlace: Minimizar Tiempos de Setup.