Source: http://docplayer.es/1260285-Algoritmo-de-dispatching-para-la-programacion-de-la-produccion-en-una-planta-de-fabricacion-pag-1-resumen.html
Timestamp: 2017-04-23 16:29:24+00:00

Document:
Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 1. Resumen - PDF
Download "Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 1. Resumen"
Juan Luis Barbero Castillo
1 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 1 Resumen Este proyecto tiene por objetivo resolver un problema real de secuenciación de operaciones de una empresa del sector automoción, en un ambiente de taller mecánico con máquinas en paralelo, de forma que se cumpla con las fechas de entrega o, en su defecto, se minimice el retraso medio de los pedidos. Como punto de partida se describe el problema, mostrando la situación inicial de la planta, explicando cómo se realiza la programación de la producción en la actualidad y destacando los inconvenientes que existen. En el análisis teórico posterior el problema se identifica como un caso de taller mecánico denominado Flexible Job-Shop Scheduling Problem (FJSSP), y se detalla un estado del arte de los métodos de resolución. Se comparan las diferentes alternativas disponibles hasta la fecha y se propone como procedimiento de resolución un método heurístico basado en la implementación informática de un algoritmo de dispatching. A continuación se desarrolla el procedimiento de resolución y se muestra el funcionamiento de la aplicación creada. A partir de los datos del plan de entregas, el algoritmo propuesto genera como resultado la secuencia de operaciones necesaria para cumplir el plan y su temporización correspondiente, teniendo en cuenta las particularidades del caso real que se estudia y el objetivo que se pretende optimizar. Por último se lleva a cabo un análisis de los resultados y los beneficios obtenidos, presentándose las conclusiones finales y posibles futuros desarrollos como continuación de este trabajo.2 3 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 3 Indice 1. PREFACIO 7 2. INTRODUCCIÓN Objetivo Metodología Alcance DESCRIPCIÓN DEL PROBLEMA La empresa La programación de la producción La situación actual El problema a resolver Datos de los pedidos Datos de las máquinas Operaciones de las piezas Tiempos de proceso unitarios Tiempos de preparación Lotes de transferencia de piezas Particularidades del problema SECUENCIACIÓN DE OPERACIONES PARA PLANTAS TIPO FLEXIBLE JOB-SHOP: ESTADO DEL ARTE Entorno de la secuenciación de operaciones El problema del taller mecánico (Job-Shop Problem) Problemas estáticos, semidinámicos y dinámicos Tipos de flujo Medidas de eficiencia Clasificación Hipótesis generalmente aceptadas en los problemas estáticos El taller mecánico flexible (Flexible Job-Shop) Estado del arte Métodos exactos Métodos heurísticos Métodos metaheurísticos Robustez Análisis comparativo de los métodos de resolución Elección del método de resolución...494 Pág. 4 Memoria 5. PROCEDIMIENTO DE RESOLUCIÓN Clasificación del problema Formalización del problema El Algoritmo de Dispatching Nomenclatura Elección de máquina Elección de operación Esquema del Algoritmo de Dispatching Reglas de robustez Procedimiento directo Procedimiento aleatorio Ejemplo práctico Datos iniciales Reglas de prioridad de máquinas Reglas de prioridad de operaciones Simulación Resultados Manual de usuario de la aplicación informática Introducción de datos Cálculo de la secuencia: Procedimiento directo Cálculo de la secuencia: Procedimiento aleatorio Ficheros solución EVALUACIÓN DE LOS RESULTADOS Comparación Algoritmo propuesto vs. Método empresa Análisis de los tiempos de ejecución Comparación de los métodos directo y aleatorio Ponderación de probabilidades del 60, 20, 10, 5 y 5% Ponderación de probabilidades del 5, 5, 10, 20 y 60% Ponderación de probabilidades del 20, 20, 20, 20 y 20% Consideraciones finales BENEFICIOS OBTENIDOS EVALUACIÓN ECONÓMICA IMPACTO AMBIENTAL 105 CONCLUSIONES 107 BIBLIOGRAFIA 1095 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 5 Referencias bibliográficas Bibliografía complementaria...1116 7 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Prefacio Un problema constante en las plantas industriales de producción es la búsqueda de la secuencia óptima de fabricación de los pedidos a través de las diferentes máquinas, con el fin de optimizar uno o varios objetivos. En casos como el del sector automoción, donde las penalizaciones por retrasos en la entrega de los pedidos son significativas, cobra especial importancia el cumplimiento de las fechas de entrega o, en su defecto, la minimización de los retrasos. En las últimas décadas la secuenciación de operaciones ha sido uno de los campos más investigados, y lo continúa siendo en la actualidad, debido a la gran dificultad que supone obtener dicha secuencia y la importancia de conseguirla. La mayoría de los problemas de secuenciación que se presentan suelen ser muy complejos. En un ambiente de Flexible Job -Shop como el que se describe en este proyecto, nos encontramos con un problema de optimización combinatoria del tipo NP-hard, para el que no se conoce un algoritmo exacto que proporcione una solución óptima en un tiempo computacional razonable, salvo para ejemplares del problema de dimensiones muy reducidas. Así, la imposibilidad práctica de encontrar una solución óptima mediante búsquedas exhaustivas ha favorecido, durante los últimos años, el desarrollo de abundantes aproximaciones y métodos heurísticos que propicien la obtención de soluciones no necesariamente óptimas, pero al menos sí factibles, con un índice de aceptabilidad elevado. Por otro lado, las configuraciones reales de las plantas de fabricación son tan variadas y complejas que no permiten disponer de un modelo general de secuenciación que se pueda aplicar satisfactoriamente a cada caso concreto; de esta forma, la mayoría de las veces se deben realizar cuidadosas adaptaciones o bien diseñar un método específico para el problema en cuestión. Actualmente se están realizando numerosos desarrollos e investigaciones en múltiples direcciones, con el fin de obtener técnicas de secuenciación cada vez más efectivas.8 9 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Introducción En la planta de estampación y soldadura de componentes metálicos de una industria del sector automoción se plantea la necesidad de obtener un método para programar las operaciones productivas en las máquinas, de forma que la secuencia resultante minimice el retraso medio en la entrega de los pedidos. Los datos de partida reflejados en este trabajo son los de un caso real de ambiente de taller mecánico con máquinas en paralelo (Flexible Job-Shop), cuya configuración inicial es la siguiente: Llega el pedido del cliente que es un plan de entregas formado por z tipos de pieza. Cada una de estas piezas consta de una cantidad a producir y una fecha de entrega. La demanda es variable, siendo la demanda media de 28 tipos de piezas diferentes a fabricar. Cada pieza se compone de varias operaciones que han de realizarse siguiendo un orden de precedencia establecido. Hay 16 máquinas disponibles, de las cuales 10 son prensas y 6 son máquinas de soldadura. Cada máquina tiene asignado un tiempo de proceso y de preparación para cada operación de cada pieza. Los tiempos de preparación son constantes e independientes de la secuencia, es decir, su duración depende solamente de la operación actual a ser procesada. Se distinguen dos tipos de preparación diferentes: la correspondiente a las prensas y la de las máquinas de soldar. Las operaciones de prensas requieren un tiempo de preparación de 60 minutos y las de soldadura un tiempo de 20 minutos. Se ha de tener en cuenta que las máquinas son diferentes (de forma que algunas no están preparadas para realizar todos los tipos de piezas), y que puede existir una o varias unidades de cada tipo de máquina. Existen lotes de transferencia de piezas entre las máquinas de dos operaciones consecutivas. Esto implica que dado un pedido cualquiera de tamaño q, no es necesario esperar a que se procesen las q piezas de una operación para iniciar la operación siguiente, sino que una vez se ha fabricado una cierta cantidad de piezas, éstas se transfieren a la máquina siguiente para que trabaje en paralelo. El lote de transferencia para cualquier tipo de pieza siempre es de 15 unidades.10 Pág. 10 Memoria 2.1. Objetivo El objetivo de este proyecto es el siguiente: Resolver el problema de secuenciación que presenta una empresa real del sector automoción. Para ello, se llevarán a cabo los siguientes puntos: Analizar los problemas de ambiente Job-Shop. Analizar los posibles métodos de resolución heurísticos y razonar la elección del método escogido. Describir los fundamentos del algoritmo de dispatching. Implementar el algoritmo de dispatching en una aplicación informática que proporcione una solución factible al problema de la secuenciación de los pedidos en las máquinas con el fin de minimizar el retraso medio en la entrega de los mismos, en un ambiente de Flexible Job-Shop. Comprobar la aptitud del algoritmo mediante la aplicación de una serie de pruebas y analizar los resultados obtenidos. Validar el algoritmo propuesto resolviendo casos reales y compararlo con las soluciones de la empresa. Plantear posibles futuros desarrollos Metodología En primer lugar se ha definido detalladamente el problema a resolver. A continuación, se ha clasificado según su nivel de complejidad, puesto que en el ámbito de los problemas de secuenciación (y, en general, en los problemas de optimización combinatoria) dicha clasificación determina la metodología de resolución a utilizar. En este caso el problema planteado corresponde al tipo NP-hard, el más complejo, lo que aconseja descartar a priori los métodos exactos y seleccionar procedimientos aproximados, heurísticos, como posibles métodos de resolución. A continuación se inicia una etapa de análisis preliminar en la que se estudian los problemas de ambiente Job-Shop y se describe un estado del arte en este campo,11 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 11 indicando los distintos métodos de resolución posibles y exponiendo los trabajos más significativos recogidos en la literatura. Se realiza una valoración final y se explican los motivos de la elección del método de dispatching propuesto. Una vez finalizado dicho análisis, en los apartados siguientes se explican los pasos necesarios para la implementación informática del procedimiento de dispatching. Como punto de partida se estudia el caso real de Flexible Job-Shop y se incluye una introducción al procedimiento de dispatching. A continuación se describe el funcionamiento del algoritmo de resolución. También se muestra un ejemplo práctico de aplicación del algoritmo para explicar su funcionamiento y se analiza el resultado obtenido. Finalmente, se valida el procedimiento heurístico diseñado en diversos escenarios reales y se concluye mediante una valoración de los resultados obtenidos Alcance El presente proyecto pretende llevar a cabo la implementación en lenguaje c# del algoritmo de dispatching desarrollado como procedimiento de resolución del problema de secuenciación de un caso real de Flexible Job-Shop. El alcance de este trabajo se extiende a cualquier proceso igual o muy semejante al descrito. Se incluye el análisis de los diferentes métodos de resolución posibles y el razonamiento del método propuesto. A partir de los resultados obtenidos se realiza una valoración y se plantean posibles futuras líneas de investigación. El programa muestra la solución propuesta en forma de tabla numérica; queda fuera del alcance de este proyecto el desarrollo de la representación gráfica mediante diagramas de Gantt. Además, el programa está diseñado para su utilización en PC como herramienta de ayuda a la toma de decisiones; no se contempla su implementación en las máquinas del taller.12 13 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Descripción del problema 3.1. La empresa El problema planteado en este proyecto corresponde al caso de una industria real dedicada a la fabricación de componentes metálicos para el automóvil. La empresa cuenta con un único centro productivo de estampación y soldadura, integrado por 23 personas. La cifra de negocios de 2008 ha sido de 5 Millones de euros. Se trata de un tier-ii o proveedor de segundo nivel, es decir, la planta suministra componentes a otra empresa que a su vez fabrica piezas para el cliente final. La estructura organizacional consta de un departamento de Gerencia, situado en el mayor nivel jerárquico, del cual dependen los departamentos de Calidad, Producción y Administración, según el organigrama mostrado en al Figura 3.1: Gerencia Calidad Producción Administración Fig Organigrama de la empresa Las funciones relacionadas con RRHH, comercial y compras están integradas en Gerencia. Las funciones de logística son llevadas a cabo por el departamento de Producción. La distribución en planta se muestra en la Figura 3.2. Se disponen de 16 máquinas, de las cuales 10 son prensas y el resto son equipos de soldadura. La planta está formada por dos secciones: una sección rectangular en la que se hallan las prensas más pequeñas y las máquinas de soldar, y una sección cuadrada donde se encuentran las prensas de mayor potencia. Existen 4 prensas en situación de parada permanente a causa de avería, las cuales no se han contabilizado como maquinaria disponible. No obstante, se ha previsto que la aplicación informática permita añadir estas máquinas una vez hayan sido reparadas.14 Pág. 14 Memoria ZONA DE PRENSAS PRODUCTO SEMIELABORADO PRENSAS PRODUCTO ACABADO MATERIA PRIMA COMPONENTES PARA SOLDADURA PRODUCTO ACABADO PRODUCTO SEMIELABORADO SOLDADURA PRODUCTO SEMIELABORADO PRENSAS MATRICES ZONA DE SOLDADURA Fig Distribución en planta Se dispone de espacios delimitados (mediante líneas pintadas en el suelo) para almacenar materia prima, matrices, productos semielaborados, componentes de soldadura y piezas acabadas. El resto corresponde a zonas de pasillo lo suficientemente amplias para permitir el paso de los toreros de una zona a otra. Además, existe una primera planta de idéntica sección que se utiliza como almacén de matrices, y un patio exterior parcialmente cubierto donde se almacena la materia prima y los residuos. Semanalmente se fabrica una media de 28 tipos de piezas diferentes. El lunes de la semana actual la planta recibe el pedido del cliente. Las piezas se deben fabricar durante dicha semana y se entregan la semana siguiente en las fechas de entrega solicitadas. Se trabajan 16 horas diarias en dos turnos de producción, de lunes a sábado La programación de la producción La programación de la produccion en la empresa se realiza de forma manual e intuitiva, no se dispone de un procedimiento implementado informáticamente como apoyo a la toma de decisiones.15 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 15 El procedimiento utilizado en la planta para realizar la secuenciación de las operaciones y su asignación a las máquinas es el siguiente: Como paso previo, si existen retrasos de pedidos anteriores, las cantidades pendientes de entregar se suman al pedido actual. A continuación se selecciona el tipo de pieza a fabricar. Las piezas se clasifican de mayor a menor prioridad y se van fabricando según dicho orden. Una vez se selecciona una pieza se programan todas sus operaciones en las máquinas correspondientes, después se selecciona la siguiente pieza más prioritaria y se procede de igual modo. La selección de las piezas se realiza según el siguiente orden de prioridad: 1) Mayor cantidad de unidades en retraso de pedidos anteriores. 2) Fecha de entrega más urgente. 3) Mayor duración de proceso. 4) Mayor número de operaciones. 5) Piezas con operación de soldadura. 6) Mayor demanda mensual media. Una vez seleccionada una pieza, se programan todas sus operaciones. La asignación de las operaciones a las máquinas se realiza según el siguiente criterio: 1) Máquina con disponibilidad más inmediata. 2) Máquina con menor posibilidad de ser cuello de botella. 3) Máquina más rápida capaz de realizar dicha operación. La empresa no dispone de un schedule (programa) detallado con la programación prevista de las actividades productivas; la selección de operaciones y su asignación a las máquinas se improvisa en tiempo real, según las necesidades y la urgencia de la situación. Las dificultades que presenta la planta a la hora de realizar una programación adecuada provocan continuos retrasos en las entregas y la lógica insatisfacción del cliente.16 Pág. 16 Memoria 3.3. La situación actual La Gerencia de la empresa desea obtener un procedimiento de resolución práctico para resolver adecuadamente la programación de sus actividades productivas. Según Gerencia, el departamento de Producción necesita una profunda revisión. En los dos últimos años la cartera de pedidos ha aumentado de forma importante, pero, sin embargo, no se ha realizado correctamente el análisis necesario para abordar esta nueva realidad y adaptar la compañía a las variaciones del entorno. Como resultado se ha llegado a una situación crítica, agravada especialmente por los continuos retrasos en las entregas, hasta el punto de comprometer la supervivencia de la empresa. Entre los numerosos retos que se necesita resolver, y sobre los que se debe actuar, destacan los siguientes: Programación de la producción intuitiva, improvisada y manual. No se dispone de un procedimiento, implementado en un sistema informático, para realizar la programación de la producción. La asignación de las piezas a las máquinas se realiza de forma intuitiva, improvisada y manual, sin seguir ningún procedimiento formalizado. No existe una planificación semanal en la que se detalle las cantidades a producir de cada tipo de pieza y las máquinas donde deben realizarse; la programación se improvisa diariamente, según las urgencias y necesidades del momento, lo que comporta numerosos errores de previsión (al atender la urgencia se descuida lo importante). Como única fuente de información se dispone de una base de datos en Access en la que se registran los datos de producción (hojas de proceso, promedios de fabricación, listado de piezas, inventario de materias primas etc.), pero no es fiable, puesto que la herramienta no se actualiza con la frecuencia necesaria, y por tanto, la información resulta parcial y obsoleta. Falta de control de inventario. El inventario de materia prima, productos y contenedores (los recipientes de carga para el almacenamiento y transporte de dichos materiales) no se actualiza con la frecuencia establecida (semanal). La falta de control y la dudosa fiabilidad de los datos de inventario hace que se produzcan situaciones como que se mantenga guardado en el almacén un stock de componentes obsoletos, o que se fabriquen más componentes (o menos) de los necesarios, con el consiguiente desperdicio de tiempo y recursos. Esta situación obliga a que cada vez que se consulta un dato se deba comprobar su veracidad.17 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 17 Falta de identificación de los productos. En ocasiones los contenedores no están etiquetados, por lo que se debe verificar su contenido, provocando pérdida de tiempo y de control. Distribución en planta no definida. La única zona de la planta bien definida es la correspondiente a la zona de maquinaria. El espacio destinado al almacenamiento está delimitado pero no está organizado ni señalizado con carteles identificativos, por lo que se tiende al desorden y a la falta de control en la ubicación de los productos. Las deficiencias en este aspecto se manifiestan también en una frecuente falta de espacio y malgasto de tiempo y recursos: por ejemplo, se llega a invadir la zona de paso de carretilleros o a almacenar, al aire libre, chapa que debe ser protegida de las inclemencias del tiempo. Insatisfacción del cliente. En la evaluación de proveedores realizada trimestralmente por su cliente, la empresa recibe repetidamente la calificación más baja, debido principalmente a los retrasos en las entregas. El problema es grave hasta el punto que el cliente se plantea la posibilidad de dejar de trabajar con la empresa El problema a resolver De entre todos los retos descritos en el apartado anterior, el problema concreto a resolver consiste en programar adecuadamente los pedidos en las máquinas, de forma que la secuencia obtenida cumpla con las fechas de entrega o, en su defecto, se minimicen los retrasos. A continuación se señalan los aspectos más importantes del problema. En el Anexo A se describen detalladamente los datos relativos a piezas, operaciones y máquinas Datos de los pedidos El lunes de cada semana, la planta recibe de su cliente un pedido con las cantidades y las fechas de entrega de cada tipo de pieza. Se trata de un plan de entregas donde se especifica la demanda requerida de cada uno de los productos (piezas) y su fecha de entrega correspondiente. El horizonte de entrega es semanal. El lunes de la semana actual el cliente envía su pedido de la semana siguiente, de manera que la empresa fabrica durante la semana actual y entrega el pedido en la semana siguiente, tal como se muestra en la Figura 3.3.18 Pág. 18 Memoria Llegada pedido Semana actual Semana siguiente Jornada L M M J V S L M M J V S Inicio (h) Final (h) Fabricación Entrega Fig Pedido del cliente Si existen retrasos del pedido anterior, pueden darse dos situaciones, dependiendo de si la pieza en retraso se vuelve a pedir o no en el pedido siguiente: a) Pieza con retraso en el pedido anterior con demanda en el pedido actual. En este caso las unidades en retraso se añaden a la nueva demanda y se entregan en el día solicitado del pedido actual. b) Pieza con retraso en el pedido anterior sin demanda en el pedido actual. Si una pieza no se ha entregado a tiempo y en el pedido actual no hay nueva demanda, entonces se asigna como fecha de entrega el lunes de la semana actual. En la Tabla 3.4 se muestra un ejemplo de la demanda semanal.19 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 19 Pieza Demanda (Uds) Fecha de entrega (día) 1 q 1 d 1 2 q 2 d 2 z q z d z Tabla 3.4. Demanda semanal En esta empresa se fabrica bajo pedido con una demanda variable. Algunas piezas suelen pedirse siempre. Otras, las correspondientes a recambios, tienen una demanda más espaciada. En cualquier caso, las piezas y las cantidades solicitadas pueden variar de forma significativa de una semana a otra. Se han considerado 28 tipos de piezas, que es la cantidad habitual solicitada por el cliente, pero el programa informático desarrollado permite añadir o eliminar piezas, según sea necesario. En la Tabla 3.5 se muestra la demanda media semanal de las piezas, ordenada de más a menor demanda media. Numero pieza Demanda media Numero pieza Demanda media Tabla 3.5. Demanda media semanal de las piezas20 Pág. 20 Memoria Datos de las máquinas La planta de producción consta de 16 máquinas, entre las que se diferencian dos conjuntos básicos: prensa y soldadura. En el programa informático desarrollado se permite añadir más máquinas o eliminarlas. Se dispone de flexibilidad parcial de máquinas, es decir, para algunas operaciones existe un subconjunto de máquinas idénticas capaz de procesarlas, pero ciertas operaciones sólo pueden realizarse en una sección de máquinas de la que existe una única unidad. Por ejemplo, tal como se observa en la Tabla 3.6, existen 4 prensas idénticas del tipo S 5 (m 5, m 6, m 7 y m 8 ). Sin embargo, sólo hay una máquina del tipo S 3, la prensa m 3. Tipo Subconjunto Uds Máquina Nombre/Código S 1 1 m 1 Arisa / A S 2 1 m 2 Benelli / B S 3 1 m 3 Radaelli / R S 4 1 m 4 Erfurt / E Prensa S 5 4 m 5 m 6 m 7 Verson / V1 Verson / V2 Verson / V3 m 8 Verson / V4 S 6 2 m 9 m 10 Inmar / I1 Inmar / I2 S 7 2 m 11 m 12 Puntos / X1 Puntos / X2 Soldadura S 8 2 m 13 m 14 Arco / Y1 Arco / Y2 S 9 2 m 15 m 16 Hilo / Z1 Hilo / Z2 Tabla 3.6. Maquinaria disponible21 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Operaciones de las piezas Cada pieza debe fabricarse siguiendo una serie de etapas llamadas operaciones o fases. Las piezas deben fabricarse respetando el orden de operaciones establecido. En la Tabla 3.7 se muestra las operaciones de la pieza número 1. El listado completo se recoge en el Anexo A.1. Pieza Operación Descripción Máquina Golpes/hora 1 1 Cortar + Punzonar A Embutir V1, V2,V3, V4 450 Tabla 3.7. Lista de operaciones Según la tabla anterior, la secuencia para la pieza tipo 1 consta de dos operaciones. La primera operación solamente puede realizarse en la máquina cortadora, denominada Arisa (A), mientras que la segunda operación puede asignarse a cualquiera de las cuatro prensas Verson (V) en este caso, con el mismo tiempo de proceso, puesto que se trata de máquinas idénticas. También se indica los golpes por hora de las máquinas correspondientes a cada operación Tiempos de proceso unitarios Se conoce el tiempo de proceso unitario p kij de cada operación k de la pieza i en cada máquina j que puede procesarla. A modo de ejemplo se muestran los datos para la primera operación de las tres primeras piezas: Operación k Pieza i Máquinas posibles j Tiempo de proceso p kij 1 1 m 1 p m 1 p 121 m 5 p m 6 p 133 m 7 p 134 m 8 p 135 Tabla 3.8. Tiempos de proceso unitarios22 Pág. 22 Memoria Así, la primera operación de las piezas 1 y 2 sólo pueden hacerse en la máquina m 1. Sin embargo, la primera operación de la pieza 3 se puede realizar indistintamente en cualquiera de las máquinas m 5, m 6, m 7 y m 8. Nótese que el tiempo de proceso de una operación puede ser siempre el mismo, independientemente de la máquina que lo procesa, o bien puede ser distinto en cada máquina, dependiendo de cada caso concreto. El listado completo de los tiempos de proceso se muestra en el Anexo A Tiempos de preparación Todas las operaciones conllevan tiempos de preparación puesto que todas ellas son diferentes entre sí y requieren matrices distintas. Los tiempos de preparación se consideran todos constantes. Se distinguen dos tipos de preparación diferentes, la correspondiente a las prensas y la de los equipos de soldadura. Prensas: En las operaciones realizadas por prensas los tiempos de preparación, correspondientes al cambio de matriz, son todos constantes e iguales a 60 minutos: para cada operación, se debe invertir 30 minutos en quitar la matriz correspondiente a la operación anterior y otros 30 minutos en insertar la matriz de la operación actual. Por tanto, la disponibilidad de una máquina del tipo prensa no se tiene cuando se acaba de procesar una operación, sino 60 minutos después. Soldadura: En las operaciones de soldadura, los tiempos de preparación son todos constantes e iguales a 20 minutos. Análogamente, la disponibilidad de las máquinas de soldadura será efectiva 20 minutos después de procesar una operación. Los tiempos de preparación se muestran en el Anexo A Lotes de transferencia de piezas Para el avance en la fabricación de las piezas, se transfieren lotes entre máquinas que fabrican dos operaciones consecutivas. Esto se hace para permitir que la siguiente operación de un tipo de pieza pueda comenzarse a realizar en paralelo con la operación precedente. En efecto, para que empiece una operación en un tipo de pieza no es necesario que haya terminado la anterior en todas las piezas de dicho tipo. Si, por ejemplo, se deben fabricar23 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág unidades de un tipo de pieza, la operación 2 no tiene por qué esperar a que la operación 1 haya terminado en las 500 unidades, sino que basta con transferir un lote de una cierta cantidad de unidades a la segunda máquina para que empiece la operación 2. Esto sólo es posible si la duración de la primera operación es inferior o igual a la de la segunda. En caso contrario, para evitar que la segunda máquina se quede sin suministro, se debe retrasar el inicio de la segunda operación hasta el instante en que se pueda realizar la transferencia continua de la primera máquina a la siguiente. El lote de transferencia entre máquinas utilizado en la empresa es de 15 unidades. Esto significa que una máquina podrá empezar a procesar una operación en cuanto se hayan completado 15 unidades de la operación anterior. A efectos de la programación, el tamaño de lote sólo es determinante en la primera transferencia, que es la que determina el inicio de la fabricación de la siguiente operación en la segunda máquina. Por este motivo es adecuado un tamaño de lote pequeño, para adelantar lo antes posible el procesamiento de la operación siguiente. Una vez se ha iniciado el tráfico de piezas entre máquinas, el tamaño del lote de transferencia pierde importancia, puesto que en general las máquinas siguientes son más lentas que sus predecesoras, por lo que es improbable que se queden paradas por falta de suministro, independientemente del tamaño de lote de transferencia. De todos modos, tal como se ha explicado anteriormente, también se ha previsto el caso contrario, retrasando el inicio de la segunda operación hasta que pueda realizarse el suministro continuo de la primera máquina a la siguiente. Análogamente, se considera un tiempo medio de transferencia entre máquinas de 2 minutos. Se dispone de un torero que se dedica a transferir las cajas, las coloca al lado de la máquina y el operario va sacando las piezas de las cajas y las introduce (manualmente) en la máquina correspondiente. De esta manera, el tiempo mínimo para que la operación siguiente pueda empezar a fabricarse se refiere al tiempo que se tarda en procesar un lote de 15 piezas y desplazarlo de la primera a la siguiente máquina. Existen tres casos posibles de transferencia entre máquinas, los cuales determinan el instante de disponibilidad de la siguiente operación, tal como se explica a continuación.24 Pág. 24 Memoria a) Transferencia en una misma máquina. Si en una máquina se está procesando una operación, y la siguiente operación programada debe asignarse a esa misma máquina, entonces, lógicamente, la segunda operación sólo podrá iniciarse cuando termine la primera. m 1 Operación 1 Operación 2 t disponibilidad Op2 = t final Op1 Fig Caso operaciones en la misma máquina b) Transferencia en máquinas distintas (tiempo de proceso de la segunda operación mayor que el tiempo de proceso de la primera) En este caso la segunda máquina empieza a trabajar cuando se ha fabricado y transferido un lote de 15 piezas desde la primera máquina hacia la segunda. m 1 Operación 1 m 2 Operación 2 t disponibilidad Op2 = t inicio Op1 + t transferencia 1er lote Fig Caso máquinas distintas, t proceso Op2 t procesoop1 c) Transferencia en máquinas distintas (tiempo de proceso de la segunda operación menor que el tiempo de proceso de la primera) En este caso la segunda máquina, al ser más rápida, ha de esperar a que la primera vaya procesando (le da una cierta ventaja), para luego empezar a trabajar en paralelo con ésta. Para calcular el momento en el que debe ponerse en marcha la segunda25 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 25 máquina, se toma como referencia el tiempo final de proceso de la primera operación, y a ese tiempo se le resta el tiempo de proceso de la segunda operación. A continuación, se suma el tiempo necesario para fabricar y trasladar un lote de 15 piezas entre las máquinas. El resultado es el tiempo de inicio de la segunda operación. De esta manera se evita que la segunda máquina, al ser más rápida que la primera, se quede parada por falta de suministro. m 1 Operación 1 m 2 Operación 2 Operación 2 t disponibilidad Op2 = t final Op1 t proceso Op2 + t transferencia 1er lote Fig Caso máquinas distintas, t proceso Op2 < t proceso Op Particularidades del problema Las consideraciones particulares a tener en cuenta sobre el proceso de fabricación son: Notación: Se entiende por operación o fase la tarea realizada por una máquina (ya sea una prensa o una máquina de soldar). Aunque una matriz permita agrupar varias operaciones (doblar, conformar, punzonar ), sigue considerándose como una sola operación, puesto que se realiza en el mismo golpe. Tipos de piezas: El número de tipos de piezas que se debe fabricar cada semana es aproximadamente de 28. Etapas del proceso: El proceso de fabricación generalmente consiste en una etapa de corte inicial seguida de una o varias etapas de estampación y una sola etapa final de soldadura. Algunas piezas no tienen etapa de soldadura. Máquinas polivalentes: Las operaciones que se pueden fabricar en las prensas pequeñas (Verson, Inmar), también se pueden realizar en las grandes (Benelli, Radaelli26 Pág. 26 Memoria y Erfurt). Sin embargo, en la práctica no es factible puesto que las prensas grandes son cuellos de botella y según la Gerencia de la empresa resulta más conveniente asignar las tareas a las prensas más pequeñas, de las que se suele tener mayor disponibilidad, por lo que no se contempla la posibilidad de utilizar las prensas grandes para realizar este tipo de operaciones. Existen operaciones (las de mayor espesor de chapa, sobretodo en embutición) que únicamente pueden realizarse en la prensa Erfurt. Flexibilidad parcial de máquinas: Se tienen varias unidades del mismo tipo de prensa (4 prensas Verson, 2 prensas Inmar). Del resto de prensas sólo se dispone 1 unidad de cada tipo. En soldadura se tienen 2 máquinas de soldadura por puntos, 2 de arco y 2 de hilo. Tiempos de proceso: Se conocen los tiempos de proceso de cada operación de cada pieza en cada máquina, en piezas/hora y en segundos. Se pueden consultar en el Anexo A.2. Interrupción de secuencia / reprogramación: En caso puntual de exigencia del cliente, por pedido urgente e inesperado, se puede interrumpir la secuencia de fabricación de las piezas y reprogramar las operaciones para dar paso a esta nueva prioridad. Este caso se resuelve utilizando la herramienta para reprogramar, añadiendo el nuevo pedido a la lista de operaciones y ejecutándolo de nuevo, de forma que se obtiene la nueva programación. Combinación de operaciones: Debido a su mayor potencia y a las mayores dimensiones de su plato, la prensa Erfurt es la única prensa disponible que permite combinar dos matrices en el mismo plato, por lo que es posible combinar dos operaciones consecutivas de una misma pieza. No se pueden combinar operaciones de piezas diferentes. Las operaciones combinables se combinan de la siguiente manera: una matriz se carga al lado de otra, con un tiempo de preparación de 60 minutos. En una combinación de dos operaciones, se necesitan dos golpes para obtener la primera pieza (en el primer golpe, la pieza está en el lado de la matriz 1, la matriz 2 trabaja en vacío. En el segundo golpe, se coloca una nueva pieza en la matriz 1, y la matriz 2 completa la segunda27 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 27 operación de la pieza inicial). A partir de la segunda pieza producida, a cada golpe de prensa sale una pieza con las dos operaciones completadas. En el caso real esta situación se da en ocasiones muy puntuales y, de acuerdo con la empresa, no se considerará en el procedimiento de resolución. Disponibilidad total de operarios: No hay problemas de asignación de operarios a máquinas ni a realizar las transferencias de lotes entre ellas. Horario de trabajo: Se trabaja de lunes a sábado en dos turnos diarios, un primer turno de 6:00h a 14:00h y un segundo turno de 14:00h a 22:00h. Además, no se permite realizar horas extra. Averías: En el proceso de fabricación se pueden producir diferentes tipos de averías, tanto en las máquinas de prensas como de soldadura. En el caso de las prensas, los cilindros se pueden quedar clavados por falta de lubricación o por excesiva fuerza del golpe en la bajada del plato. Si se produce una rotura, la reparación lleva más tiempo en función de la seriedad de la avería: leve (rotura de un pasador), moderada (se rompe una guía), grave (se parte parcialmente la matriz) o muy grave (se parte totalmente). De acuerdo con la empresa, los paros por avería no se contemplan en la programación desarrollada, aunque sí se han introducido reglas de robustez para disminuir el impacto de incidencias inesperadas en la reprogramación de las operaciones. Tiempos de mantenimiento: Los tiempos de mantenimiento de las máquinas no influyen en la secuenciación, puesto que el mantenimiento se realiza fuera de los turnos de producción. Ventana horaria de entregas: Se establece que la entrega es de lunes a sábado al final de la jornada, es decir, hay una única entrega diaria a las 22h, con una cobertura de ±1h. Se permiten hacer varios viajes en caso de que no haya suficiente capacidad de camiones.28 29 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Secuenciación de operaciones para plantas tipo Flexible Job-Shop: estado del arte En este capítulo se presenta un estado del arte de uno de los problemas más populares de la optimización combinatoria y la secuenciación de operaciones: el Flexible Job-Shop Scheduling Problem (FJSSP o problema del taller mecánico híbrido o flexible). El capítulo se estructura de la siguiente forma: la sección 1 muestra, a modo de introducción, una visión general de la relevancia de la planificación de la producción en las plantas industriales y presenta el modelo del taller mecánico y en particular el FJSSP. A continuación, en la sección 2 se define de forma general el problema del taller mecánico, sus variables, restricciones y objetivos; además se indican las variantes más conocidas que existen. La sección 3 describe el estado del arte en el campo de la secuenciación, destacando los principales métodos de resolución utilizados desde sus orígenes, hace más de cuarenta años, entre los cuales figuran múltiples algoritmos y heurísticas del campo de la inteligencia artificial; de forma más concreta, se exponen los enfoques de solución más importantes que se han publicado para el caso del FJSSP. El análisis continúa en la sección 4 con la valoración de los métodos expuestos anteriormente y una tabla donde se evalúa la idoneidad de los mismos para la resolución del caso real que nos ocupa. Por último, en el apartado final se concluye con una exposición de las razones sobre la elección del procedimiento escogido Entorno de la secuenciación de operaciones La planificación de la producción es un proceso de toma de decisiones habitual en el día a día de la industria. Se trata de uno de los procesos de decisión más importantes en gestión de la producción y aporta enormes ventajas. En efecto, si se realiza un análisis de las necesidades a largo plazo, y se conoce, a intervalos de tiempo regulares, la cantidad de producción que es demandada (y por lo tanto, a producir), entonces es posible desarrollar programas para la fabricación que permitan a la compañía obtener un pleno rendimiento, que no sea necesario mantener niveles de stock excesivos, que aumente la eficacia, disminuyan los costes de producción y en general, aumente el beneficio. Para abordar el proceso de planificación se debe tener en cuenta muchos factores y considerar diversos objetivos, por lo que es necesario establecer distintos niveles de planificación según su nivel de detalle y plazo temporal para realizarlos. La secuenciación de operaciones pertenece al nivel de planificación a corto plazo, y es un problema de optimización combinatoria para el que se han desarrollado numerosos métodos a partir de30 Pág. 30 Memoria técnicas matemáticas y procedimientos heurísticos, con el objetivo de definir el orden o secuencia óptima en que se ejecutan las operaciones asignadas a los recursos productivos. Las técnicas de resolución desarrolladas se pueden dividir en dos categorías: los métodos exactos, que proporcionan una solución óptima, pero pueden requerir un tiempo de computación muy alto, y los métodos heurísticos, que proporcionan una solución razonablemente buena en un tiempo aceptable. Además, se han desarrollado múltiples modelos teóricos para representar los diferentes tipos de configuraciones de planta. Entre los modelos más habituales en la teoría de secuenciación destaca el problema de Job-Shop Problem (JSSP), considerado como una buena aproximación a la configuración real de las plantas industriales actuales. Como extensión de este modelo posteriormente se estableció el Flexible Job-Shop Scheduling Problem (FJSSP), que incorpora la posibilidad de considerar un conjunto de máquinas para realizar una operación determinada. Se trata de un modelo más complejo que el Job-Shop, puesto que añade el problema de escoger la asignación de cada una de las operaciones a una de las máquinas del centro de trabajo. La complejidad de este tipo de problemas plantea dificultades en su resolución. En primer lugar, el gran número de soluciones (programas) que ofrece la combinatoria hace inviable una exploración exhaustiva de las mismas. Por otro lado, al ser NP-hard hay serias sospechas de que no existen métodos para resolverlos de forma óptima en tiempo polinómico. Finalmente, otra dificultad añadida es la gran variedad de tipos de problemas que se presentan, siendo necesaria, en muchas ocasiones, la creación de nuevos procedimientos adaptados a la particularidad de cada caso. Estos hechos han motivado la investigación y desarrollo de métodos útiles para la secuenciación en el FJSSP. En el apartado 4.3 se muestran las contribuciones más importantes que se han realizado en este campo desde sus orígenes hasta la actualidad.31 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág El problema del taller mecánico (Job-Shop Problem) Los problemas de secuenciación se basan en el denominado problema del taller mecánico (Job-Shop Problem). El enunciado básico general del problema es el siguiente (Companys, 2003, pág.171) [6]. n piezas (lotes de piezas, pedidos u órdenes de trabajo) deben realizarse en m máquinas (recursos, secciones, puestos de trabajo). La realización de cada pieza implica la ejecución, en cierto orden establecido, de una serie de operaciones prefijadas donde cada operación está asignada a una de las m máquinas y tiene una duración (tiempo de proceso) determinada y conocida; debe establecerse un programa, es decir, la secuencia de operaciones en cada máquina y el intervalo temporal de ejecución de las operaciones, con el objetivo de optimizar un índice determinado que mide la eficiencia del programa Problemas estáticos, semidinámicos y dinámicos Los problemas de taller mecánico pueden ser de tres tipos: Problemas estáticos, en los que las piezas y las máquinas son un número finito y están todas disponibles en el mismo instante cero relativo inicial. En el instante de realizar la programación se conoce la ruta de la pieza, sus operaciones, en qué máquinas se debe realizar cada operación y la duración correspondiente. La finalidad de estos programas es optimizar un índice de eficiencia establecido. Los problemas semidinámicos tan sólo se diferencian respecto a los problemas estáticos en que los instantes de disponibilidad de las piezas y/o máquinas no son los mismos, aunque sí conocidos. Por último, en los problemas dinámicos el horizonte del funcionamiento del taller, así como el número de piezas, aunque no el de las máquinas, es ilimitado hacia el futuro. Aunque en cualquier instante el conocimiento de la situación es muy parecido al caso semidinámico, no basta con un solo programa, puesto que con el transcurrir el tiempo se producen nuevas llegadas de piezas y es necesario realizar un procedimiento de ciclos de programación, al cual deben asociarse los índices de eficiencia requeridos. El problema a resolver, descrito en este proyecto, corresponde a un problema semidinámico, pues existen distintos instantes de disponibilidad iniciales de máquinas.32 Pág. 32 Memoria Tipos de flujo Existen múltiples tipos de flujo de las piezas a través del taller, aunque generalmente suelen presentarse los siguientes casos: Flow-Shop o Flujo Regular: Todas las piezas siguen la misma ruta a través de las máquinas. Algunas piezas pueden no tener operaciones en alguna de las máquinas. Las piezas no tienen más de una operación por máquina. Permutation Flow-Shop: Es un caso particular del anterior en el que se establece la condición de que la secuencia de piezas en las máquinas ha de ser siempre la misma, por lo que el programa se obtiene mediante una permutación de las n piezas que optimice la medida de eficiencia. Una vez definido el orden de paso de las piezas en la primera máquina, este orden se conserva para las máquinas restantes. Job-Shop o Flujo General: En este caso se permite cualquier orden de piezas a través de las máquinas, pero cada pieza debe fabricarse según un orden establecido. Una misma pieza puede tener varias operaciones en la misma máquina. Open Shop: Cada operación debe realizarse en su máquina asignada, pero el orden de las operaciones de las piezas es indiferente. En la empresa de estudio el tipo de flujo corresponde a un caso de Job-Shop con máquinas en paralelo, conocido como Flexible Job-Shop, debido a una mayor disponibilidad de las máquinas (una operación puede ser realizada por más de una máquina) Medidas de eficiencia Los programas se evalúan y se comparan entre sí utilizando medidas de eficiencia. En la práctica, el objetivo general es a menudo una combinación de varios objetivos básicos. A continuación se señalan algunos de los objetivos básicos más habituales: C max (Makespan): Instante en el que la última pieza abandona el taller. C = max { C }, (Ec. 4.1) max i donde C i es el tiempo de finalización de la pieza i.33 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 33 L max (Lateness): Valor máximo del huelgo de una pieza. L = max { L }, (Ec. 4.2) max i donde L i es el huelgo de la pieza i, es decir, la diferencia entre C i (tiempo de terminación de la pieza o completion time) y d i (fecha de entrega o due date). T med (Average Tardiness): Retraso medio de las piezas. T med n max(0, Ci di) = i = 1 n, (Ec. 4.3) donde n es el número de piezas, C i es el tiempo de finalización de la pieza i y d i su fecha de entrega. T pond (Weighted Tardiness): Retraso ponderado de las piezas. T n pond = i = 1 { wi max(0, C di) }, (Ec. 4.4) i donde w i es el peso de prioridad asociado a la pieza i Clasificación Un problema de taller mecánico suele describirse mediante la sencilla notación propuesta por Conwall, Maxwell y Miller [12] formada por cuatro símbolos A / B / C / D: A indica el número de piezas. Si es un número arbitrario se designa por n; en nuestro caso n=28. En los problemas dinámicos puede referirse a la ley de probabilidad de llegada de las mismas. B indica el número de máquinas en el taller. Si es un número arbitrario se designa por m. En nuestro caso disponemos de 16 máquinas. C señala el tipo de flujo de las piezas en el taller. Generalmente se designa por uno de los símbolos siguientes: F (Flow-Shop o Flujo regular) P (Permutation Flow-Shop)34 Pág. 34 Memoria R (Randomly Routed Job-Shop o Rutas Aleatorias) G (General Job o Job-Shop) En nuestro problema el flujo corresponde al flujo de tipo general, Job-Shop o G. Se trata de una situación donde una pieza puede tener dos operaciones consecutivas en las máquinas j y j, mientras que otra pieza puede tener dos operaciones consecutivas en j y j. D corresponde a la medida de eficiencia escogida para evaluar la calidad de los programas. En nuestro caso a resolver es T med. Según se desprende de lo expuesto hasta ahora se concluye que nuestro caso de estudio corresponde al problema semidinámico n / m / G / T med, donde n = 28 y m = 16, flujo general y el retraso medio como medida de eficiciencia. Cabe destacar que el procedimiento de resolución propuesto contemplará tanto el caso semidinámico como el estático (incorporando la posibilidad de fijar instantes de disponibilidad de máquinas dsitintos o iguales) y que los valores de n y m no son siempre fijos. Se han tomado 28 productos y 16 máquinas por corresponder a la situación más habitual en la planta, pero en la aplicación informática se tendrá en cuenta la posibilidad de agregar o eliminar máquinas y productos Hipótesis generalmente aceptadas en los problemas estáticos Conway, Maxwell y Miller [12] enumeran las hipótesis habitualmente aceptadas en los problemas estáticos del Taller Mecánico: 1. Cada máquina está disponible continuamente desde un instante, f 0, hasta T, con T arbitrariamente grande. No existen intervalos de indisponibilidad bien sea por averías o por mantenimiento programado, 2. En las rutas de las piezas no se producen convergencias (montajes) ni divergencias (partición en lotes). Para cada operación existe una sola operación precedente inmediata (exceptuada la primera operación de cada pieza) y una sola operación siguiente inmediata (exceptuada la última operación de cada pieza), 3. Cada operación puede ejecutarse en un solo tipo de máquina de taller, 4. Sólo hay una máquina de cada tipo en el taller,35 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Cuando una operación ha comenzado debe terminarse antes de ejecutar otra en la misma máquina, no se admiten interrupciones, 6. No pueden solaparse dos operaciones de la misma pieza (en la misma máquina o en máquinas distintas), 7. Cada máquina puede ejecutar una sola operación a la vez, 8. La única restricción activa en el taller es la relativa a las máquinas, no existen restricciones relativas a la disponibilidad de mano de obra, utensilios, materiales, etc. Estas hipótesis definen un problema teórico parecido al modelo considerado en este trabajo, a excepción de los puntos 1 ( ya que las máquinas pueden no estar disponibles hasta un cierto instante), 3 (una operación puede realizarse en un solo tipo o en varios tipos de máquinas) y 4 (existen varias unidades de algunos tipos de máquina). Tal y como se explicó anteriormente, de acuerdo con la empresa se asumen las hipótesis 6 y 7 como ciertas El taller mecánico flexible (Flexible Job-Shop) En este proyecto se plantea un problema de secuenciación en un entorno denominado taller mecánico con máquinas en paralelo (Parallel Machine Scheduling), que también es conocido como taller mecánico híbrido o flexible (Flexible Job-Shop Scheduling Problem, FJSSP). Dicho problema es una variante del taller mecánico clásico y se caracteriza por poseer una mayor disponibilidad de las máquinas para realizar las operaciones. En esta configuración, una máquina puede realizar más de un tipo de operación. Para cualquier operación dada, existe un subconjunto no vacío de máquinas capaz de realizarla. Se pueden considerar dos tipos de flexibilidad de máquinas para describir el funcionamiento del FJSSP: Flexibilidad total: todas las operaciones son realizables en todas las máquinas disponibles. Flexibilidad parcial: algunas operaciones solamente se pueden realizar en algunas de las máquinas disponibles. En nuestro caso se tiene flexibilidad parcial de máquinas: programación de n piezas (productos) en m máquinas no homogéneas en paralelo. No homogéneo significa que no todas las operaciones pueden ser procesadas en cualquier máquina, sino sólo en un conjunto predeterminado.36 Pág. 36 Memoria 4.3. Estado del arte La investigación en el campo de secuenciación (scheduling) sigue en continuo desarrollo desde sus orígenes, a finales de los años cincuenta, y ha sido objeto de gran cantidad de literatura para su resolución, desde técnicas basadas en reglas de despacho (dispatching) hasta algoritmos de ramificación y poda (branch&bound) altamente sofisticados, heurísticas basadas en cuellos de botella" (bottleneck based heuristics) o metaheurísticas como, por ejemplo, los algoritmos genéticos paralelos. Dichas técnicas han sido formuladas por un gran número de investigadores en el ámbito de la industria, desde científicos de gestión hasta expertos en producción. No obstante, con la aparición de nuevas metodologías, como redes neuronales y computación evolutiva, investigadores relacionados con la biología, genética y neurofisiología han realizado también contribuciones regulares a la teoría de secuenciación, poniendo de manifiesto la naturaleza multidisciplinar de la misma. Existen diversas opiniones con respecto al origen del problema del taller mecánico. Roy y Sussman [30] en 1964 fueron los primeros en proponer la representación mediante el grafo disyuntivo. Balas en 1969 [5] aplicó por primera vez un procedimiento enumerativo basado en este grafo. Sin embargo existen trabajos anteriores: Giffer y Thompson [16] propusieron en 1960 un algoritmo de reglas de dispatching de prioridad, Jackson [19] en 1956 generalizó el algoritmo del flow-shop de Johnson [20] de 1954 al algoritmo del job-shop y, en 1955, Akers y Friedman [3] aplicaron un modelo de álgebra booleana para representar secuencias de procesamiento. Aunque no está claro a quién se le debe atribuir el primer planteamiento del Job-Shop Problem, se acepta que el libro Industrial Scheduling" editado en 1963 por Muth y Thompson [26], constituye la base para la mayoría de las investigaciones que siguieron. Más recientemente, se han desarrollado métodos exactos para la resolución del job-shop, como los publicados por Applegate y Cook (1991) [4], Brucker et al. (1994) [8], Williamson et al. (1997) [32], quienes han resuelto con éxito pequeños ejemplares, incluyendo el ejemplar 10x10 de Fisher y Thompson propuesto en 1963 y resuelto por primera vez veinte años después. En la actualidad, problemas de dimensión 15x15 siguen considerándose aún intratables mediante métodos exactos. Para resolver tales problemas se han desarrollado numerosos métodos heurísticos, entre los que cabe mencionar las contribuciones en algoritmos genéticos de Oliveira (2000) [27], la creación de un método GRASP por Binato et al. (2002) [7], el desarrollo de un método GRASP con recirculación de Aiex et al. (2003) [1], y el método de optimización híbrida de Wang y Zheng (2001) [31]. En el entorno de job-shop con máquinas en paralelo Cheng et al. (1990) [11] publicaron un estado del arte que describe las investigaciones realizadas en los problemas de37 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 37 secuenciación con máquinas en paralelo. Posteriormente, Kim et al. (2002) [22] propusieron un método de resolución para dichos problemas basado en el algoritmo de recocido simulado. Más recientemente, Ravetti et al. (2007) [29] desarrollaron un modelo matemático basado en la metaheurística GRASP para máquinas en paralelo y tiempos de preparación dependientes de la secuencia. Finalmente, un informe reciente en esta misma área es el publicado por Allahverdi et al. (2008) [2], en el que se menciona las diferentes clases de problemas de job-shop flexible y las técnicas empleadas para su resolución. Los métodos desarrollados en el campo de la secuenciación de operaciones se pueden dividir en dos categorías, los métodos exactos, que proporcionan una solución globalmente óptima, pero pueden requerir un tiempo de computación muy alto, y los métodos aproximados (heurísticos), que habitualmente proporcionan una solución razonablemente buena en un tiempo aceptable. Como mejora a los métodos heurísticos se generaron los métodos metaheurísticos. A continuación en los apartados a se muestra una selección, sin ánimo de ser exhaustiva, de los métodos más destacados. En el apartado se explica el concepto de robustez y las reglas que pueden utilizarse para hacer un programa (solución) más robusto frente a las perturbaciones aleatorias que pueden ocurrir durante su ejecución Métodos exactos Los métodos de resolución exactos son aquellos que garantizan el valor óptimo de la solución, pero normalmente a costa de un consumo computacional muy elevado, por lo que resultan adecuados para instancias pequeñas del problema. Según la clasificación establecida por Pinedo [28] se pueden distinguir los siguientes métodos: a) Programación lineal Este procedimiento, introducido en la Segunda Guerra mundial, resuelve un problema indeterminado, formulado a través de ecuaciones lineales, optimizando la función objetivo, también lineal, de tal forma que las variables de dicha función, estén sujetas a una serie de restricciones expresadas mediante un sistema de inecuaciones lineales. Un programa lineal entero es un programa lineal con la condición adicional de que las variables han de tomar valores enteros. Si entre las variables hay enteros y reales, se trata de un programa lineal mixto. Los programas lineales pueden resolverse en tiempo polinomial. Sin embargo, esto no sucede con los enteros ni los mixtos.38 Pág. 38 Memoria b) Ramificación y poda (Branch&Bound) La técnica de Branch&Bound fue creada por Land y Doig [24] en Se suele interpretar como un árbol de soluciones, donde cada rama lleva a una posible solución posterior a la actual. La característica de esta técnica con respecto a otras anteriores es que el algoritmo se encarga de detectar en qué ramificación las soluciones dadas ya no son óptimas, para podar esa rama del árbol y no continuar desaprovechando recursos en casos que se alejan de la solución óptima. La búsqueda comienza en el nodo raíz y continúa hasta llegar a un nodo hoja. Desde un nodo no seleccionado, la operación de ramificación determina el siguiente conjunto de posibles nodos a partir del cual puede progresar la búsqueda. El procedimiento de poda selecciona la operación con la que continuar la búsqueda y se basa en una estimación de una cota inferior y la mejor cota superior alcanzada hasta el momento. Habitualmente estos algoritmos toman como solución inicial una obtenida como resultado de algún método heurístico, lo que permite ahorrar un tiempo de computación considerable. c) Programación dinámica En 1953 Bellman [6] ideó un método recursivo al que denominó Programación Dinámica. Este método plantea la solución como una sucesión de decisiones que intenta, a partir de un enfoque divide y vencerás, reducir el tiempo computacional necesario. Se trata de resolver una serie de etapas (subdivisiones del problema) en cada una de las cuales se toma una decisión simple hasta hallar una solución al problema original. Se determina la solución óptima para cada iteración, en base a la información obtenida en todas las etapas anteriores, y su contribución a la función objetivo Métodos heurísticos Los métodos heurísticos se utilizan para hallar una solución aunque no óptima, al menos factible, razonablemente buena, con un consumo de tiempo limitado. La heurística comprende los métodos o algoritmos de exploración en los que las soluciones se hallan mediante la evaluación del progreso logrado en la búsqueda de un resultado final. Se califica de heurístico a un procedimiento que encuentra soluciones con un coste computacional razonable, aunque no se garantice su optimalidad. Según indica Martí [25], los algoritmos heurísticos suelen ser métodos de resolución muy útiles cuando se cumplen una o varias de las siguientes situaciones:39 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 39 La solución puede ser aproximada. El problema es de una naturaleza tal que no se conoce ningún método exacto para su resolución. Aunque existe un método exacto para resolver el problema, su uso es computacionalmente muy costoso o inviable. Como paso intermedio hacia otro procedimiento de resolución, normalmente un algoritmo metaheurístico. Cuando existen limitaciones de tiempo, espacio para almacenaje de datos, presupuesto, etc, que priorizan una solución rápida a costa de pérdida de precisión. Al resolver un problema de forma heurística se debe de medir la calidad de los resultados puesto que, como ya se ha mencionado, la optimalidad no está garantizada. Se debe, pues, medir la calidad y eficiencia de un algoritmo para poder determinar su valía frente a otros. Para tal fin existen diversos procedimientos, entre los que se encuentran los siguientes [25]: Comparación con la solución óptima, si se conoce, o con la mejor solución disponible. Comparación con una cota. Comparación con un método exacto truncado. Comparación con los resultados de otras heurísticas. Análisis del peor caso. A continuación se muestra una clasificación [25], no excluyente, de los métodos heurísticos más conocidos. Esta clasificación pretende establecer una enumeración de dichas técnicas heurísticas, aunque algunas se podrían incluir en más de una categoría: a) Heurísticas constructivas Consisten en construir literalmente paso a paso una solución del problema. Usualmente son métodos deterministas y suelen estar basados en la mejor elección en cada iteración. Un ejemplo lo constituyen las heurísticas basadas en reglas de prioridad referidas en el apartado f).40 Pág. 40 Memoria b) Heurísticas de descomposición Consisten en dividir el problema en subproblemas más pequeños, siendo la salida de uno la entrada de otro, de forma que al resolver todos los subproblemas se obtenga una solución para el problema global. c) Heurísticas de reducción Modifican las estructuras del modelo creando una versión más pequeña con el fin de hacerlo más sencillo de resolver, obteniendo, a partir de la solución del problema modificado, la solución del caso completo. d) Heurísticas inductivas Consiste en identificar alguna característica que deba poseer la solución óptima (por ejemplo, la detección de alguna variable con ciertos valores o correlación) e introducirla como restricciones del problema para reducir el espacio de soluciones, simplificando el problema. El riesgo obvio es dejar fuera la solución óptima del problema original. e) Heurísticas de búsqueda local A diferencia de los métodos anteriores, los procedimientos de búsqueda o mejora local, comienzan con una solución del problema y la mejoran progresivamente. El método finaliza cuando no existe ninguna solución accesible que mejore la anterior. f) Heurísticas basadas en reglas de prioridad (Priority Dispatch Rules) Las reglas de prioridad son probablemente las aplicadas con mayor frecuencia para resolver problemas de scheduling, esto se debe a su fácil implementación y a su aceptable complejidad de tiempo. Una regla de despacho es una regla que prioriza los trabajos en espera de ser procesados por una máquina. El criterio de prioridad debe tener en cuenta las características de las máquinas y de las operaciones, así como los instantes de tiempo. Cada vez que una máquina queda libre, la regla de despacho selecciona el trabajo con mayor prioridad entre los trabajos candidatos en espera. La investigación en este campo ha sido ampliamente desarrollada durante décadas, y numerosas reglas han sido diseñadas desde entonces. Los algoritmos de Giffer y Thompson [16] se pueden considerar como la base de la mayoría de heurísticas basadas en reglas de prioridad.41 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 41 g) Heurísticas basadas en cuellos de botella (Bottleneck Based Heuristics) Las serias dificultades que se han encontrado en la resolución óptima de ejemplares de tipo Job-Shop de dimensiones industriales propiciaron el diseño de muchos métodos heurísticos; entre los más exitosos destaca el Shifting bottleneck procedure (SBP). Un SBP se caracteriza por las siguientes etapas: identificación del subproblema, selección del cuello de botella, solución del subproblema y reoptimización del scheduling. La estrategia implica relajar el problema de scheduling n piezas x m máquinas, en m problemas de una máquina y resolver cada subproblema de forma iterativa usando la aproximación de Carlier [9]. Cada una de las soluciones se compara con las demás y se ordenan las máquinas según su solución. La máquina no secuenciada que tiene la solución mayor se identifica como la máquina que provoca el cuello de botella. SPB secuencia dicha máquina basándose en las que ya han sido calculadas, ignorando el resto de máquinas no secuenciadas. Se secuencia la máquina cuello de botella puesto que el scheduling en etapas posteriores podría deteriorar el tiempo de realización del programa (makespan). Cada vez que una máquina se identifica como cuello de botella, todas las máquinas que ya han sido secuenciadas, y que son susceptibles de mejoras, se reoptimizan localmente resolviendo el problema de una máquina de nuevo. La principal contribución de esta aproximación es la forma en que se usa la relajación de una máquina para decidir el orden en el que las máquinas deben ser secuenciadas. En los últimos años han aparecido una serie de métodos bajo el nombre de Metaheurísticas con el propósito de obtener mejores resultados que los obtenidos por los métodos heurísticos tradicionales. La base de los procedimientos metaheurísticos la constituyen los métodos constructivos y los de búsqueda local.42 Pág. 42 Memoria Métodos metaheurísticos Los algoritmos metaheurísticos son algoritmos aproximados de optimización y búsqueda de propósito general. Parten de una solución factible inicial (habitualmente obtenida con otra heurística) y mediante alteraciones de la solución, van iterando a otras factibles de su entorno, almacenado la mejor solución encontrada hasta que se cumpla un determinado criterio de parada. El sufijo meta significa más allá, a un nivel superior, las metaheurísticas son estrategias para diseñar o mejorar los procedimientos heurísticos con miras a obtener un alto rendimiento. Se aplican generalmente a los problemas para los cuales no hay algoritmo específico satisfactorio o heurístico para su resolución; o cuando no es práctico utilizar tal método en ejecución. Los métodos metaheurísticos poseen características interrelacionadas que dificultan elestablecimiento de una única clasificación. A continuación se describen algunas de las formas más habituales de clasificación recogidas en la literatura [14]: Atendiendo a la inspiración: Natural: Algoritmos que se basan en un símil real, ya sea biológico, social, etc. Sin inspiración: Algoritmos que se obtienen directamente de sus propiedades matemáticas. Atendiendo al número de soluciones: Poblacionales: buscan el óptimo a través de un conjunto de soluciones. Trayectoriales: trabajan con una sola solución que mejoran iterativamente. Atendiendo a la función objetivo: Estáticos: no hacen ninguna modificación sobre la función objetivo del problema. Dinámicos: modifican la función objetivo durante la búsqueda. Atendiendo a la vecindad: Una vecindad: durante la búsqueda utilizan una sola estructura de vecindad. Varias vecindades: durante la búsqueda modifican la estructura de la vecindad. Atendiendo al uso de memoria: Sin memoria: se basan exclusivamente en el estado anterior. Con memoria: utilizan la estructura de memoria para recordar la historia pasada.43 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 43 Según el criterio de clasificación basado en el número de soluciones, cabe destacar los siguientes métodos metaheurísticos: a) Metaheurísticas basadas en trayectorias Parten de una solución inicial vacía y van actualizando la solución actual mediante la exploración del vecindario, formando un vecindario. La búsqueda finaliza cuando se alcanza un número máximo de iteraciones, se encuentra una solución con una calidad aceptable o se detecta un estancamiento del proceso. Un ejemplo de metaheurística constructiva es la GRASP (Greedy Randomized Adaptative Search Procedures), un procedimiento de búsqueda introducido en 1995 por Feo y Resende [15], basado en funciones voraces aleatorizadas que se adaptan. Es uno de los métodos más populares debido a su sencillez y facilidad de implementación. El método GRASP es un método iterativo donde cada paso consiste en una fase de construcción y otra de mejora. En la fase de construcción se aplica una heurística constructiva para obtener una solución inicial y en la segunda fase dicha solución se mejora mediante un algoritmo de búsqueda local. En cada iteración la elección del próximo elemento a ser añadido a la solución parcial está determinada por una función greedy (voraz o golosa), la cual elige el elemento que da mejor resultado inmediato sin tener en cuenta una perspectiva más amplia. Se dice que se adapta porque en cada iteración se actualizan los beneficios obtenidos al añadir el elemento seleccionado a la solución parcial. Se denomina aleatorizado porque no selecciona al mejor candidato sino que, con el objeto de diversificar y no repetir soluciones, se construye una lista de los mejores candidatos, de entre los cuales, en función de su bondad, se elige uno al azar. En la fase de mejora se realiza un proceso de búsqueda local a partir de la solución construida hasta que no se pueda mejorar más. Los algoritmos de Recocido Simulado (Simulated Annealing) fueron introducidos por Cerny [10] y Kirkpatrick [23] para la optimización de problemas combinatorios con mínimos locales. Utilizan técnicas de optimización no determinista: no buscan la mejor solución en el entorno de la solución actual sino que generan aleatoriamente una solución cercana y la aceptan como la mejor si tiene menor coste, o en caso contrario con una cierta probabilidad p; esta probabilidad de aceptación irá disminuyendo con el número de iteraciones y está relacionada con el empeoramiento del coste. El término de recocido simulado proviene de la estrecha analogía que guarda con el proceso del recocido tal y como se usa en metalurgia. Éste consiste en el enfriamiento progresivo de un metal de manera que sus moléculas van adoptando poco a poco una44 Pág. 44 Memoria configuración de mínima energía. A medida que la temperatura disminuye se va ralentizando el movimiento de las moléculas y éstas tienden a adoptar paulatinamente las configuraciones de menor energía. El espacio de configuraciones (posiciones de las moléculas) en el caso del Job-Shop viene determinado por los valores de una variable de interés, normalmente la secuencia de operaciones que se desean procesar, mientras que el papel de la energía lo asume la función que se intenta minimizar. La Búsqueda Tabú (Tabu Search) aumenta el rendimiento del método de búsqueda local mediante el uso de estructuras de memoria: una vez que una solución es abandonada, se la marca como "tabú" de modo que el algoritmo no vuelva a visitar esa posible solución en un número determinado de iteraciones. Este método se debe a Glover [17], quien lo presentó en Consiste en un procedimiento que restringe la búsqueda y evita los mínimos locales, almacenando la historia de búsqueda en memoria. Se prohíben movimientos entre vecinos que cumplan ciertas propiedades, con objeto de guiar el proceso de búsqueda para no duplicar soluciones previamente obtenidas. b) Metaheurísticas basadas en poblaciones Son métodos que van construyendo un conjunto de individuos que representan el conjunto de soluciones. El procedimiento consiste en generar, seleccionar, combinar y reemplazar dicho conjunto. Su eficiencia y resultado depende fundamentalmente de la forma con la que se manipula la población en cada iteración. Un ejemplo lo constituyen los Algoritmos Genéticos. Los Algoritmos Genéticos surgieron en 1975 de la mano de Holland [18], e imitan el procedimiento de la selección natural sobre el espacio de soluciones del problema considerado. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), así como también a una selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. Otra metaheurística basada en poblaciones es la Optimización basada en Colonias de Hormigas (Ant Colony Optimization). Se trata de algoritmos inspirados en el comportamiento que muestran las hormigas para encontrar las trayectorias desde la45 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 45 colonia hasta el alimento. En la naturaleza, las hormigas vagan aleatoriamente en su búsqueda de alimento, y a lo largo de su trayectoria de regreso a la colonia depositan una hormona denominada feromona. Si otras hormigas encuentran este rastro, lo más probable es que sigan esta trayectoria para dejar el alimento en la colonia. Con el tiempo el rastro de la feromona comienza a evaporarse y se reduce su fuerza atractiva, pero las hormigas que siguen el rastro la refuerzan y logran que perdure por más tiempo. Cuantas más hormigas recorren una trayectoria, más intenso es el olor del rastro, lo que estimula a más hormigas a seguir esa trayectoria. Desde el punto de vista algorítmico, la evaporación de la feromona tiene la ventaja de evitar la convergencia a una solución localmente óptima. Si no hubiera feromonas, todas las trayectorias serían igualmente atractivas para las hormigas, lo que haría que la exploración del espacio de la solución fuese demasiado amplia. Este comportamiento es la base para el diseño del algoritmo, donde las "hormigas simuladas" caminan alrededor del gráfico que representa el problema a solucionar. En 1995 Kennedy y Eberhart [21] desarrollaron una técnica de optimización basada en poblaciones llamada Particle Swarm Optimization, PSO (Optimización mediante cúmulo de partículas). Este tipo de algoritmos se inspiraron en el comportamiento social de las bandadas de pájaros y los bancos de peces. En estas asociaciones existe un líder que condiciona el desplazamiento de la manada. Además, cada individuo se guía basándose en su propia experiencia previa; en concreto, la toma de decisión por parte de cada individuo o partícula se realiza teniendo en cuenta un componente social y un componente individual, mediante las que se determina el movimiento de esta partícula para alcanzar una nueva posición Robustez Una vez presentados los procedimientos de resolución heurísticos y metaheurísticos conviene destacar aquí la importancia del concepto de robustez, ya que dichos procedimientos no sólo deben proporcionar una solución factible, sino también robusta frente a las variaciones externas que puedan afectar a su rendimiento. El concepto de robustez de una solución o programa se refiere generalmente a su habilidad para afrontar perturbaciones aleatorias que ocurran en el tiempo de ejecución y permanecer aceptable (con un deterioro mínimo en su función objetivo). En la práctica, debido a las condiciones de trabajo dinámicas e inciertas, los planes difícilmente se corresponden con las previsiones y deben modificarse a menudo a causa de sucesos aleatorios (por ejemplo, una avería en una máquina o un trabajo urgente que debe insertarse inmediatamente). De este modo, cuanto más robusto es un plan o una46 Pág. 46 Memoria secuenciación de operaciones, más sencillo es reprogramarlo, por lo que resulta conveniente incorporar reglas de robustez en el propio desarrollo del método de resolución. En concreto, se pueden seguir varias reglas para crear programas más robustos, por ejemplo: Insertar tiempos de máquina parada. La primera regla sugiere insertar periodos de paro de máquina en ciertos instantes de tiempo. Es equivalente a programar las máquinas por debajo de su capacidad. Las duraciones de los periodos ociosos, así como la fijación de los tiempos en el programa, dependerán de la naturaleza de las perturbaciones que pueden ocurrir. Se podría argumentar que los periodos ociosos al principio del programa deben ser más cortos que los periodos ociosos hacia el final del programa, puesto que la probabilidad de que ocurra un suceso inesperado al principio suele ser menor que más adelante. En la práctica, algunos programadores siguen la regla según la cual en la semana actual las máquinas funcionan al 90% de su capacidad, en la semana siguiente al 80%, y en la siguiente al 70%. Sin embargo, una razón para mantener los periodos ociosos de igual longitud al principio que al final del programa es la siguiente: aún cuando la probabilidad de una perturbación sea pequeña, su impacto relativo es más grave que una perturbación que ocurra hacia el final del proceso. Programar los trabajos menos flexibles primero. Esta regla indica que los trabajos menos flexibles deben tener mayor prioridad que los más flexibles. Si ocurre un suceso inesperado, entonces los trabajos pendientes de procesar corresponderán a los más flexibles. La flexibilidad de un trabajo está determinada, por ejemplo, por el número de máquinas que pueden realizarlo, o bien por los tiempos de preparación que requiere. Algunos trabajos requieren una preparación que no depende de la secuencia, mientras otros precisan una preparación que dependerá fuertemente de la secuencia, es decir, los tiempos de preparación serán cortos sólo cuando siguen a ciertos trabajos, de lo contrario pueden ser mucho más largos. Dichos trabajos son claramente menos flexibles. No posponer innecesariamente el procesamiento de ninguna operación. Desde el punto de vista de costes de inventario y penalizaciones por adelantos, es deseable empezar las operaciones tan tarde como sea posible. Sin embargo, desde un punto de vista de robustez, puede ser deseable empezar las operaciones tan47 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 47 pronto como sea posible. Así, en cada caso se debe buscar el equilibrio entre robustez y costes por inventario, y ponderar qué es lo que más interesa. Mantener siempre algún trabajo en la cola de las máquinas más utilizadas. Esta regla tiene el propósito de asegurar que una máquina que sea cuello de botella nunca deje de estar alimentada a causa de un suceso aleatorio que ocurra en alguna etapa anterior. El razonamiento es el siguiente: si no se mantiene un inventario frente a la máquina cuello de botella y la máquina que alimenta el cuello de botella de repente se avería, entonces el cuello de botella debe permanecer ocioso y puede no ser capaz de recuperar el tiempo perdido más adelante. En este apartado se ha analizado la influencia de la aparición de sucesos aleatorios inesperados en la programación de operaciones, y se ha destacado la importancia de las reglas de robustez como una poderosa ayuda a la optimización bajo incertidumbre. Como se explicará en el capítulo siguiente, se han adoptado dichas reglas introduciéndolas en el propio procedimiento de resolución.48 Pág. 48 Memoria 4.4. Análisis comparativo de los métodos de resolución A continuación se muestran los criterios de selección que han motivado la elección del método de resolución para el caso de Job-Shop flexible descrito en este trabajo. Se realiza una comparación entre los métodos disponibles referidos en los apartados anteriores, valorando los pros y contras de cada uno de ellos y analizando su adecuación al problema a resolver. La tabla siguiente resume las principales ventajas e inconvenientes de los tipos de métodos aplicables, y sirve como base para establecer un criterio de selección: Métodos Ventajas Inconvenientes Idoneidad Solución óptima Tiempo computacional elevado Exactos Exploración exhaustiva de las soluciones No adecuados para problemas NP-hard Limitados a Job-Shop reducidos Descartado Precisos Dificultad de implementación Heurísticos Tiempo computacional razonable Adecuados en problemas NP-hard Proporcionan varias soluciones No siempre garantizan el óptimo Exploración de soluciones no exhaustiva Adecuado Sencillez de implementación Tiempo computacional razonable Meta heurísticos Adecuados para problemas NP-hard Proporcionan varias soluciones Sencillez de implementación No siempre garantizan el óptimo Exploración de soluciones no exhaustiva Adecuado Mejoran los resultados heurísticos Fig Cuadro comparativo de los posibles métodos de resolución Como criterio de selección se consideran los siguientes aspectos fundamentales que debe cumplir el método de resolución:49 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 49 Simple. El método debe estar basado en un principio sencillo y claro; fácil de comprender. Rápido. Se ha de proporcionar una respuesta rápida, a ser posible, unos pocos minutos. Solución aproximada. No es imprescindible obtener la secuencia óptima, pero sí una secuencia factible que mejore el retraso medio respecto a la solución actual. Realista. El programa debe respetar las particularidades del problema (prioridades, precedencias, tiempos de preparación, etc). Robusto. El comportamiento del método debe ser poco sensible a pequeñas alteraciones del contexto de aplicación. Interactivo. Se debe permitir que el usuario pueda aplicar sus conocimientos para mejorar el rendimiento del procedimiento. Múltiple. Debe suministrar diferentes soluciones alternativas de alta calidad entre las que el usuario pueda elegir Elección del método de resolución Como resultado de los criterios anteriores se descartan directamente los métodos exactos de resolución, puesto que demuestran ser intratables para ejemplares de las dimensiones del problema de estudio, consumen un tiempo computacional muy elevado y son difíciles de implementar. Se opta por utilizar una heurística. La elección de este de método se basa en varios motivos. En primer lugar, la solución puede ser aproximada, siempre que satisfaga de forma razonable el objetivo perseguido. En segundo lugar, aunque siempre que esté disponible y se pueda costear es preferible un método exacto frente a uno heurístico, en nuestro caso no se puede aplicar un método exacto dada la naturaleza hard del problema, puesto que dicho método o no existe o dispara el consumo de tiempo computacional. La empresa dispone de serias limitaciones económicas y de tiempo, por lo que prevalece la obtención de un método rápido que mejore la planificación actual, aunque sea menos preciso. Por último, una ventaja importante es que su complejidad es reducida en comparación con los métodos exactos, por lo que suelen ser más fáciles de entender (por parte de los directivos de las empresas y gente no experta), sin mencionar que generalmente ofrecen más de una solución, permitiendo así ampliar las posibilidades de elección.50 Pág. 50 Memoria En este punto se plantea la cuestión Qué tipo de heurística aplicar? La literatura recoge que uno de los métodos más exitosos utilizados para este tipo de problema corresponde a la utilización de un método híbrido, consistente en aplicar primero una heurística (por ejemplo un algoritmo de tipo constructivo) que proporcione una solución inicial, y a continuación, en una segunda etapa, utilizar una metaheurística de búsqueda local que intente mejorar el resultado obtenido. Así, como heurística inicial se ha elegido un método constructivo directo basado en un Algoritmo de Dispatching, cuyo funcionamiento se explica en el capítulo 5.3. La utilización de un procedimiento de búsqueda local en el caso de estudio presenta dificultades debido a la complejidad de la definición del vecindario. El algoritmo de dispatching que proporciona la solución inicial está fuertemente priorizado y existen numerosas restricciones de precedencia, por lo que cabe esperar que las posibilidades de alterar operaciones o máquinas para generar un programa vecino son reducidas. Además, experimentalmente se ha observado que estos tipos de vecindario para el problema de Job-Shop son demasiado simples para ser efectivos: el número de programas vecinos que son mejores que el programa actual tiende a ser muy limitado. Por esta razón, se ha descartado la búsqueda local y, como alternativa, se ha optado por desarrollar un procedimiento aleatorio en la segunda etapa del procedimiento de resolución. Es decir, en una primera etapa se obtiene una única solución inicial resultante de la aplicación del procedimiento directo del algoritmo de dispatching, en el que las reglas de prioridad siguen un orden fijo predeterminado. En una segunda etapa, con el fin de obtener un mayor número de soluciones y tratar de encontrar entre ellas alguna que mejore la solución inicial, se tiene la opción de utilizar el procedimiento aleatorio, consistente en relajar los órdenes de las reglas prioridad mediante la asignación de porcentajes de probabilidad de aplicación de las mismas, obteniendo tantas soluciones como número de repeticiones haya indicado el usuario. La ponderación probabilística de las reglas de prioridad está motivada por el siguiente razonamiento: El enfoque de solución propuesto, basado en un método de dispatching, es un procedimiento directo, es decir, las decisiones se van tomando según un orden de prioridad de selección de operaciones fijo que conduce a una única secuencia solución. Sin embargo, a pesar de que este orden se ha intentado establecer para conseguir un buen valor del retraso medio, lo cierto es que no es un orden absoluto y tampoco tiene por qué ser siempre el mejor. En este contexto, se plantea la necesidad de relajar el orden de las reglas de prioridad mediante la asignación de pesos de probabilidad, para observar si entre las distintas combinaciones aleatorias se produce alguna mejora respecto a la solución inicial.51 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 51 El funcionamiento detallado de los procedimientos directo y aleatorio se explica, respectivamente, en los apartados y Finalmente, con el fin de tratar de obtener una solución resistente frente a los incidentes aleatorios, se han utilizado distintas reglas de robustez en el diseño del algoritmo, tal como se indica en el apartado52 53 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Procedimiento de resolución 5.1. Clasificación del problema Como se ha comentado, el problema de secuenciación planteado en este proyecto corresponde al tipo de problemas NP-hard, los de mayor complejidad, para los que no existen algoritmos capaces de conducir a soluciones óptimas en un tiempo computacional aceptable. Para poder solucionarlo se ha desarrollado un procedimiento heurístico que se presenta en este apartado Formalización del problema El caso expuesto corresponde al problema de taller mecánico flexible n/m/g/t med con máquinas no homogéneas en paralelo (Flexible Job-Shop Scheduling Problem, FJSSP). Esto es, para una operación dada, puede existir más de una máquina capaz de realizarla, pero no todas las operaciones pueden ser procesadas en cualquier máquina. Se pretende encontrar la secuencia de operaciones en las máquinas para la fabricación de un pedido de z tipos de pieza, con demandas y fechas de entrega diferentes, de manera que se minimice el retraso medio en la entrega de las piezas El Algoritmo de Dispatching Para resolver el problema de secuenciación de la empresa se diseña una heurística consistente en un Algoritmo de Dispatching. Se trata de un método heurístico constructivo (se parte de una solución inicial vacía y se van añadiendo elementos siguiendo ciertos criterios para obtener la solución final) y directo (una vez se programa una operación no se reconsidera ni modifica en pasos siguientes). En un momento dado del proceso, el conjunto E (operaciones elegibles) está constituido por las operaciones con sus precedentes en el subconjunto P (operaciones ya programadas): 1 Resto de operaciones N 2 Operaciones elegibles E 3 Operaciones programadas P Fig Conjuntos de operaciones del algoritmo de Dispatching54 Pág. 54 Memoria Al programar una operación de una pieza, la operación pasa de E a P automáticamente y la operación siguiente de dicha pieza pasa de N a E (salvo si la operación es la última de la pieza). En un problema n/m inicialmente se sitúan en E, las n primeras operaciones de las piezas sin operación precedente, y en N las operaciones restantes; P está vacío. En un instante t, los subconjuntos N, E y P se hallan en un estado determinado. Cuando el algoritmo termina, todas las operaciones están en P. El conjunto E se subdivide en subconjuntos, caracterizados por las operaciones que se han de procesar en la máquina o máquinas. Así, E j (E = E 1 E 2 E m ) es el subconjunto de operaciones de E a realizar en la máquina j, también llamado cola de operaciones en la máquina j (y que puede estar vacío durante la aplicación). En cada iteración, la programación se realiza en dos fases. En primer lugar se elige la máquina o máquinas con menor instante de disponibilidad para iniciar una nueva operación, y a continuación se escoge la operación a programar entre las operaciones del subconjunto E j correspondiente, según las reglas de prioridad establecidas Nomenclatura n: número de piezas. m: número de máquinas. G(i): número de operaciones de la pieza i (i = 1 n) H(j): número de operaciones en la cola de la máquina j ( j =1 m). f j : instante en que está disponible la máquina j para una nueva operación (inicialmente coincide con la disponibilidad inicial). p k,i,j : tiempo de proceso de la operación k de la pieza i en la máquina j. r k,i : instante de disponibilidad de la operación (k, i). Es el instante en que la operación llega al sistema, la fecha más temprana en la que la operación k de la pieza i puede ser procesada. Rp k,i,j : (release date o ready date) instante más temprano para empezar la operación (k, i) en la máquina j:55 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 55 rp k,i,j = max { r k,i, f j } para todo (k,i) є E j fp j : instante más temprano para empezar una nueva operación en la máquina j (si no tiene cola, se asigna valor infinito): fp j = min (k,i) є Ej { rp k,i,j } fp j = si E j no es vacío si E j es vacío t inicio (k, i) : instante de inicio de fabricación la operación programada. t inicio (k, i) = rp k,i, j t final (k, i) : instante final de fabricación de la operación programada. t final (k, i) = t inicio (k, i) + D p k,i,j Elección de máquina En el caso que nos ocupa, se elegirá la máquina según las reglas de prioridad siguientes: Regla 1: Seleccionar la máquina j que esté disponible más pronto. Es decir, aquella con menor fp j : fp min = min { fp j }. Si hay empate entre varias máquinas, ir a la Regla 2. Regla 2: Utilizar las reglas del criterio de elección de operaciones y elegir la máquina cuya operación sea la más prioritaria. Si la operación elegida puede realizarse en varias máquinas, ir a Regla 3. Regla 3: Elegir la máquina más rápida para realizar la operación de la Regla 2. En caso de empate entre varias máquinas, ir a Regla 4. Regla 4: Seleccionar cualquiera. La Regla 1 hace que las operaciones empiecen lo antes posible (en cuanto queda libre una máquina se elige y se asigna la operación correspondiente). Su aplicación contribuye a la robustez del programa, puesto que las penalizaciones por los retrasos y los bajos costes de inventario hacen deseable no posponer innecesariamente el procesamiento de las piezas, para prevenir así el impacto de sucesos inesperados que afectan al ritmo de producción.56 Pág. 56 Memoria Elección de operación Una vez elegida la máquina, es preciso aplicar una regla para seleccionar la operación. Este paso tiene una gran importancia, puesto que determina la forma en la que se ordenan las operaciones en la secuencia solución. Por este motivo es conveniente establecer un orden de prioridad adaptado al objetivo de nuestro caso real: minimizar en lo posible el retraso medio de las entregas. El orden de prioridad elegido, ordenado de mayor a menor importancia, es el siguiente: Regla 1: Prioridad a la pieza de mayor % de retraso de entrega acumulado en el pedido anterior. Selecciona la operación correspondiente a la pieza con mayor número de unidades en retraso. El porcentaje de unidades en retraso se obtiene calculando la diferencia, dividida por 100, entre la cantidad de unidades de la pieza demandadas en el pedido anterior y el número de unidades en retraso de dicho pedido. Conviene recordar que la entrega es semanal; cada pedido debe entregarse en un día concreto de la semana actual. Si en la semana actual no se ha podido servir las piezas, entonces se entregan en el pedido de la semana siguiente, en el día que corresponda. Si resulta que en la semana siguiente no hay pedido de esa pieza, se fabrica durante la semana actual y se asigna como fecha de entrega el lunes de esa semana. Regla 2: Prioridad a la pieza con más días de retraso acumulados desde el pedido anterior. Prioriza la operación de la pieza que lleva más días en retraso, entendiéndose como días de retraso la diferencia entre la fecha actual y la fecha en la que debería haberse realizado la entrega en el pedido anterior. Regla 3: Prioridad a la pieza con fecha de entrega más urgente. Prioriza la operación de la pieza con fecha de entrega más inmediata en el pedido de la semana actual. Regla 4: Prioridad a la pieza de mayor duración pendiente. Da prioridad a la operación de la pieza cuyas operaciones siguientes comportan más tiempo de proceso. Se calcula sumando los tiempos de proceso de las operaciones pendientes de realizar. Si una operación determinada tiene varios tiempos de proceso posibles (al poderse fabricar en diversas máquinas), se toma el tiempo de proceso mayor. Esta regla se ha introducido en el procedimiento como medida de robustez. Indica que los trabajos menos flexibles deben tener mayor prioridad que los más flexibles. En este caso, los trabajos menos flexibles son los de mayor duración de proceso, puesto que corresponden o bien a los de mayor número de operaciones (más tiempo de preparación y más tiempo de máquina), o bien a operaciones de soldadura, cuyas57 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 57 máquinas correspondientes tienden a convertirse en cuellos de botella. Así, si ocurre un suceso inesperado, los trabajos pendientes de procesar corresponderán a los más flexibles y el impacto en la reprogramación será menor. Regla 5: Prioridad a la pieza de mayor demanda mensual media. Esta regla prioriza la fabricación de las piezas de las que se sabe que tienen una mayor demanda en promedio. En resumen, se ha elegido un orden de prioridades basado en la necesidad de reducir los retrasos en las entregas, por lo que se da preferencia a la operación de una pieza determinada cuanto más crítico sea su nivel de retraso, medido en porcentaje de retraso acumulado en el pedido anterior (Regla 1), cantidad de días de retraso (Regla 2), entrega más inmediata (Regla 3), más tiempo de proceso pendiente (Regla 4) y mayor cantidad media demandada (Regla 5) Esquema del Algoritmo de Dispatching Paso 0 (inicialización). Situar en el subconjunto de operaciones candidatas las primeras operaciones de las piezas, con sus valores r 1, i correspondientes. Para cada máquina j, determinar el valor fp j. Determinar fp min (y la máquina asociada). Paso 1 (elección de la máquina). Si fp min =, se han programado todas las operaciones. En caso contrario, elegir la máquina según fp min (Regla 1). En caso de empate entre varias máquinas elegir máquina mediante las Reglas 2, 3 y 4 de elección de operaciones. Una vez elegida la máquina, generar el subconjunto de operaciones candidatas, formado por las operaciones elegibles que es capaz de realizar dicha máquina. Paso 2 (elección de la operación). Si existe una sola operación candidato tomarla. En caso contrario, aplicar las reglas de prioridad de selección de operaciones para elegir la operación a programar.58 Pág. 58 Memoria Paso 3 (actualización). Programar la operación (k, i) elegida fijando sus instantes de inicio (t inicio (k, i) ) y de fin (t final (k, i) ): t inicio (k, i) = rp k,i, j t final (k, i) = t inicio (k, i) + D p k,i,j, donde D es la demanda de la pieza correspondiente a la operación programada. Pasar la operación elegida a Programada, guardarla en la secuencia con sus instantes de inicio y fin. Si no es la última operación de la pieza i, pasar la operación siguiente de i de N a E. Sea j la máquina asociada a esta operación siguiente. Si j = j (la misma máquina realiza las dos operaciones consecutivas) En este caso, la segunda operación no puede empezar hasta que se haya procesado la primera, por lo que la operación siguiente (k+1, i) se sitúa en el conjunto de operaciones candidatas con fecha de disponibilidad r( k+1, i ) igual a la fecha de terminación de la operación anterior t final(k, i). r (k+1, i) = t final (k, i) m 1 (k, i) (k+1, i) r k+1, i = t final (k, i) Fig Caso máquinas iguales59 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 59 Si j j (las máquinas que procesan las operaciones son distintas) Si p (k+1, i, j ) p (k,i,j) En este caso el tiempo de proceso de la segunda operación es mayor o igual que el de la primera. La disponibilidad en horas de la operación siguiente r (k+1, i) será igual a la fecha de inicio de la operación anterior (k, i) más el tiempo necesario para fabricar y trasladar un lote de transferencia de 15 piezas de la máquina j a la máquina j : r (k+1,i) = t inicio(k, i) + (2 + 15p k,i,j )/60 m 1 (k, i) m 2 (2 + 15p (k,i,j))/60 (k +1, i) t inicio(k, i) r (k+1, i) Fig Caso máquinas distintas, p (k+1, i,j ) p (k, i,j) Si p (k+1,i,j ) < p (k,i,j) Si el la segunda operación tiene menor tiempo de proceso que la primera, entonces la fecha de disponibilidad en horas de la segunda operación (k+1, i) será igual a la fecha final de la primera operación (k, i) menos el tiempo de proceso de (k+1, i) en la máquina j más el tiempo necesario para fabricar y trasladar un lote de transferencia de 15 piezas de la máquina j a la j : r (k+1,i) = t final(k, i) - D p (k, i, j ) + (2 + 15p k, i, j )/60 m 1 (k, i) D p (k, i, j ) m 2 (k +1, i) m 2 (2 + 15p (k, i, j)) / 60 (k + 1, i) r (k +1, i) t final (k, i) Fig Caso máquinas distintas, p (k+1, i, j ) < p (k, i, j)60 Pág. 60 Memoria Actualizar los valores fj de la máquina j de la siguiente manera: Si la máquina j todavía no se ha utilizado, f j = 0. Si se ha programado alguna operación en la máquina j, entonces f j = t final (k, i), es decir, la máquina j tendrá un tiempo de disponibilidad f j igual al tiempo de terminación de la última operación programada en la máquina j. Calcular rp k,i, j = max (r k, i, f j ) Determinar fp min = min (rp k,+1, i ) Volver al paso 1. Paso 4 (función objetivo). Calcular el retraso medio según la fórmula: T med n max(0, Ci di) = i= 1 n, (Ec. 5.1) Donde C i es el instante de finalización o completion time de la pieza i, y d i es la fecha de entrega o due date de la pieza i Reglas de robustez En este apartado se exponen las reglas de robustez que se han integrado en el diseño del algoritmo. El propósito de estas reglas es contribuir a crear un programa más robusto, es decir, más eficiente pese a los sucesos aleatorios que pueden ocurrir durante su ejecución. Las reglas de robustez empleadas en el programa propuesto son las siguientes: a) No posponer innecesariamente el procesamiento de las operaciones. Esta regla de robustez se ha implementado a través de la Regla 1 de elección de máquina: se prioriza la máquina que está disponible más pronto, de manera que las operaciones empiezan lo antes posible, reduciendo así el impacto de posibles futuros retrasos debidos a algún contratiempo inesperado que altere el ritmo de producción.61 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 61 b) Mantener alimentadas las máquinas cuello de botella. Este criterio tiene el propósito de intentar que una máquina nunca deje de estar alimentada a causa de un suceso aleatorio que ocurra en alguna etapa anterior, por lo que supone la aplicación de una medida de robustez. El razonamiento es el siguiente: si no se mantiene un inventario frente a una máquina que resulta ser un cuello de botella y la máquina que alimenta el cuello de botella de repente se avería, entonces el cuello de botella debe permanecer ocioso y puede que posteriormente no sea capaz de recuperar el tiempo perdido. Para ello, se mantiene las máquinas alimentadas con un cierto inventario de piezas. El lote de transferencia entre máquinas es de 15 unidades. Esto significa que la segunda máquina dispondrá, como mínimo, de un suministro de 15 piezas mientras trabaja en paralelo con la primera máquina. En la práctica, es improbable que una máquina se quede sin suministro, puesto que normalmente una máquina cualquiera es más lenta que la máquina que le suministra (la que realiza la operación precedente). Esto se debe a que la operación siguiente de una pieza suele ser más compleja y comporta más tiempo de proceso. c) Priorizar los trabajos menos flexibles. Esta regla corresponde a la cuarta regla de elección de operación. Se programan primero los trabajos menos flexibles (los de mayor tiempo de proceso pendiente). De este modo, si ocurre un contratiempo, entonces los trabajos que faltan por entregar son los más flexibles, por lo que resultará más sencillo afrontan la reprogramación de los mismos Procedimiento directo Por defecto el programa se ejecuta, en una primera etapa, según el orden de prioridad de elección de operaciones jerarquizado y fijo proporcionado anteriormente. Es decir, a la hora de seleccionar qué operación se debe fabricar, el algoritmo va ejecutando ordenadamente las reglas, de más a menos prioridad, hasta que obtiene la selección de la operación. Esto es, en primer lugar se ejecuta la Regla 1. Si al aplicar esta regla se produce un empate entre varias operaciones, se descarta el resto de operaciones y se va a la Regla 2 con el grupo de operaciones empatadas, y así hasta llegar a alguna regla que produzca el desempate y proporcione la operación a seleccionar. Si se llega a la última regla con un empate entre varias operaciones, entonces se elige una operación entre cualquiera de ellas.62 Pág. 62 Memoria Procedimiento aleatorio Una vez se ha obtenido una secuencia inicial mediante el procedimiento directo, se ofrece la posibilidad, en una segunda etapa, de explorar un mayor número de soluciones mediante un procedimiento aleatorio, con el fin de establecer una comparación respecto a la solución inicial y elegir la opción más adecuada. Este procedimiento se diferencia del directo en que las reglas de prioridad de selección de operaciones no siguen un orden jerarquizado, sino que se ejecutan aleatoriamente según unos pesos (porcentajes) de probabilidad que el usuario asigna a cada regla. De esta manera se consigue una relajación en el orden de prioridad que permite obtener un mayor número de secuencias solución y por tanto, al ejecutarlo un mayor número de veces, aumenta las posibilidades de hallar una solución mejor que la obtenida inicialmente mediante el método directo. Por defecto se tomarán los siguientes porcentajes de probabilidad para la aplicación de las reglas de prioridad de elección de operaciones: 60, 20, 10, 5 y 5% para las reglas de prioridad 1 a 5 de selección de operaciones. La selección de la operación a fabricar funciona del siguiente modo: Se genera un número aleatorio entre 0 y 99; por ejemplo, el 74. Según la Tabla 5.5, dicho número pertenece al intervalo de aplicación de la Regla 2, por lo que se elige la operación según esta regla. Si, según esta regla, hubiese un empate entre varias operaciones, entonces se continúa visitando las siguientes reglas de forma ordenada (de la 3 a la 5) hasta que alguna de ellas proporcione la operación a elegir. Si se diera un empate final, entonces el programa iría a la Regla 6 y elegiría al azar una operación cualquiera entre las finalistas. El usuario podrá ponderar los porcentajes de probabilidad de aplicación de las reglas de prioridad según las necesidades de la planta. Las reglas con mayores porcentajes tendrán una mayor aplicación. Regla Descripción % Probabilidad Intervalo aplicación 1 Mayor % de unidades en retraso 60 0 a 59 2 Mayor número de días de retraso a 79 3 Fecha de entrega más urgente a 89 4 Mayor duración pendiente 5 90 a 94 5 Mayor demanda mensual 5 95 a 99 Tabla 5.5. Pesos de probabilidad predeterminados63 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Ejemplo práctico A continuación se resuelve un ejemplo práctico, con el propósito de aclarar el funcionamiento del algoritmo de dispatching propuesto Datos iniciales Sea el ejemplar 26 / 16 / G / T med, es decir, un caso del problema del taller mecánico con 26 piezas, 16 máquinas, flujo general y el retraso como medida de eficiencia. Se deben fabricar 26 piezas (es decir, de las 28 posibles piezas hay 2 piezas con demanda 0). En la Tabla 5.6 se muestran los datos de la pieza 5, y en el Anexo A.2 se adjunta la lista completa de piezas con su tiempo de proceso unitario correspondiente. Pieza Op. Tiempo Preparación (min) Descripción Máquina Tiempo proceso unitario (min) Uds 1 60 Cortar formato A 0, Embutir + Cortar B, R 0, Embutir + Cortar V1, V2,V3, V4 0, Embutir + Cortar V1, V2,V3, V4 0, Conformar + Cortar V1, V2,V3, V4 0, Tabla Datos de la pieza nº5 En la Tabla 5.7 se muestra el calendario de entregas solicitado para el período del 16 al 20 de marzo de El lunes de la semana actual, es decir, el día 9, la planta recibe el calendario de pedidos, el cual se fabrica durante dicha semana y se entrega la semana siguiente en las fechas solicitadas en el calendario recibido. Si hubiera retrasos acumulados de pedidos anteriores, éstos se añaden al pedido actual. Obsérvese que en el calendario de pedidos la cantidad solicitada de las piezas número 1 y 4 es cero, por lo que esa semana en particular se fabrican 26 piezas de las 28 posibles. Además, las piezas número 13 y número 23 no tienen demanda pero sí retraso acumulado del pedido anterior, por lo que la cantidad de unidades en retraso del pedido anterior se añaden al pedido actual.64 Pág. 64 Memoria Pieza Calendario de entregas pedido actual 16/03/ /03/ /03/ /03/ /03/2009 Días de retraso Uds Retrasos Uds Total Pedido Tabla 5.7. Calendario de entregas del 16/03/09 al 20/03/0965 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Reglas de prioridad de máquinas La selección de las máquinas se realiza según el proceso explicado en el apartado En cada iteración, se siguen las 4 reglas de prioridad en el orden descrito (de la primera a la cuarta) y se selecciona la máquina que realizará la operación Reglas de prioridad de operaciones Una vez elegida la máquina, se debe seleccionar la operación a fabricar. En este ejemplo concreto se tienen los siguientes datos necesarios para la aplicación de estas reglas: Regla 1) Elegir la pieza con mayor porcentaje de unidades en retraso. Se da preferencia a la operación correspondiente a la pieza con mayor porcentaje de unidades en retraso en el pedido anterior. Se obtiene calculando la diferencia entre la cantidad de piezas pedidas y el número de piezas en retraso y dividiendo el resultado entre 100: REGLA 1: Prioridad por porcentaje de unidades en retraso Orden prioridad Numero pieza Nº piezas Retraso Nº piezas pedido anterior % retraso , , , , , Tabla 5.8. Prioridad según % retraso66 Pág. 66 Memoria Regla 2) Elegir la pieza con más días de retraso Prioriza la pieza con mayor tiempo de retraso. La tabla siguiente muestra los valores de nuestro caso correspondientes a los días de retraso acumulados por las piezas en el pedido anterior: REGLA 2: Prioridad por días de retraso Orden Numero prioridad pieza Días Retraso Tabla 5.9. Prioridad según número de días de retraso67 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 67 Regla 3) Elegir la pieza con fecha de entrega más urgente. Da preferencia a la pieza que se debe entregar antes. A continuación se muestra el orden de prioridad de las piezas según las fechas de entrega pactadas en este caso. Como ya se explicó anteriormente, algunas piezas no tienen fecha de entrega. La pieza 4, por ejemplo, no se ha pedido esa semana, por lo que no se tiene en cuenta. Las piezas 13 y 23 son piezas en retraso por lo que se les dará carácter de urgencia y por defecto se les asignará el lunes como fecha de entrega. REGLA3: Prioridad por fecha de entrega más urgente Orden Numero prioridad pieza Fecha de entrega 1 13 En retraso (lunes) 1 23 En retraso (lunes) 1 6 lunes 1 17 lunes 1 22 lunes 1 25 lunes 2 3 martes 2 5 martes 2 9 martes 2 10 martes 2 20 martes 3 14 miércoles 3 16 miércoles 3 19 miércoles 3 26 miércoles 3 27 miércoles 4 8 jueves 4 11 jueves 4 15 jueves 4 21 jueves 4 24 jueves 4 28 jueves 5 2 viernes 5 7 viernes 5 12 viernes 5 18 viernes 6 1 No hay pedido 6 4 No hay pedido Tabla Prioridad según fecha de entrega68 Pág. 68 Memoria Regla 4) Elegir la pieza con mayor duración pendiente. Da prioridad a la pieza con operaciones siguientes que comportan más tiempo de proceso pendiente. Se trata de una regla dinámica, puesto que la duración pendiente de una pieza varía a medida que avanza la programación y va progresando su nivel de procesamiento. En un instante de tiempo determinado, la duración pendiente de una pieza corresponde al sumatorio de los tiempos de proceso de sus operaciones que faltan por realizar. En caso de existir varios tiempos de proceso posibles (al disponer de varias máquinas distintas para realizar la operación), se toman los tiempos de proceso más largos. Regla 5) Elegir la pieza de mayor demanda mensual media. Prioriza las piezas más demandadas en promedio. En nuestro caso, el orden de prioridades es: Regla 5: Prioridad por demanda Orden prioridad Numero pieza Demanda media Tabla Prioridad según demanda media69 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Simulación El programa se obtiene ejecutando el algoritmo de dispatching descrito en el apartado A modo de ejemplo se explica una iteración escogida al azar: Iteración Elegibles p kij (h) Máquinas posibles r k,i f j rp k,i Empieza (h) Termina (h) 58 (1, 20) 8,333 Y1 0 33,583 33,583 33,583 41,916 30,348 8,333 Y2 0 40,566 40,566 40,566 48,899 (1, 24) 1,615 B 0 40,062 40,062 40,062 41,677 1,615 R 0 40,140 40,140 40,140 41,755 (1, 27) 5,166 B 0 40, ,062 40,062 45,229 5,166 R 0 40,140 40,140 40,140 45,306 (1, 28) 19,2 B 0 40,062 40,062 40,062 59,262 19,2 R 0 40,140 40,140 40,140 59,340 (5, 15) 9,083 X1 16,401 44,702 44,702 44,702 53,786 9,083 X2 16,401 30,348 30,348 30,348 39,431 (2, 16) 6 B 25,923 40,062 40,062 40,062 46,062 6 R 25,923 40,140 40,140 40,140 46,140 4,75 E 25,923 33,955 33,955 33,955 38,705 (6, 7) 25,333 X1 26,432 44,702 44,702 44,702 70,036 25,333 X2 26,432 30,348 30,348 30,348 55,681 (5, 25) 2,333 X1 28,401 44,702 44,702 44,702 47,036 2,333 X2 28,401 30,348 30,348 30,348 32,681 (5, 5) 11 V1 29,279 40,170 40,170 40,170 51, V2 29,279 40,279 40,279 40,279 51, V3 29,279 33,221 33,221 33,221 44, V4 29,279 39,861 39,861 39,861 50,861 (3, 14) 5,666 B 34,556 40,062 40,062 40,062 45,729 5,666 R 34,556 40,140 40,140 40,140 45,806 (3, 26) 4,571 B 29,906 40,062 40,062 40,062 44,633 4,571 R 29,906 40,140 40,140 40,140 44,711 4,125 E 29,906 33,955 33,955 33,955 38,08 fp min Tabla Ejemplo de cálculo del algoritmo El algoritmo de dispatching contiene tantas iteraciones (decisiones) como operaciones se deben programar. En nuestro caso se tienen 85 operaciones y, por tanto, 85 iteraciones a realizar. Veamos, como ejemplo, el cálculo de la iteración número 58. Por columnas, se tiene (todos los tiempos expresados en horas):70 Pág. 70 Memoria Elegibles Máquinas p k, i, j r k, i Lista de operaciones de las piezas candidatas a ser programadas. Lista de máquinas capaces de realizar la operación. Tiempo de proceso total de la operación en la máquina. Instante más temprano en que está disponible la operación. f j Instante más temprano en que queda disponible la máquina j. rp k, i, j Empieza Termina fp min Instante más temprano en el que se puede procesar la operación. Instante más temprano en el que se podría procesar la operación. Instante más temprano en el que se podría procesar la operación. El valor mínimo de los instantes de disponibilidad de las máquinas. En el algoritmo la asignación y la secuenciación se realizan conjuntamente en cada iteración. Se calcula el valor de fp min y se elige la máquina correspondiente a este valor, puesto que se trata de la máquina que puede empezar más pronto; en este caso es la máquina X2. Si hay varias máquinas con el mismo valor, entonces se elige la máquina correspondiente a la operación más prioritaria. Hay tres operaciones en la cola de X2: la (5, 15), la (6, 7) y la (5, 25). Se utiliza el criterio de prioridad de selección de operaciones y la primera regla proporciona la operación más prioritaria: la (5, 15). De este modo, se elige la máquina X2 para procesar la quinta operación de la pieza número 15, y se asignan los valores de inicio y de fin de proceso. En la iteración siguiente se actualiza el valor de disponibilidad de la máquina X2 (tomando el valor de terminación de la operación asignada) y se añade la operación siguiente de la pieza (si la tiene) a la lista de elegibles. En ese momento se repite el proceso explicado para seleccionar la siguiente operación a asignar Resultados Se obtiene la siguiente secuencia de fabricación de las operaciones de las piezas en las máquinas, con sus instantes de principio y fin.71 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 71 Orden Operación Pieza Máquina Empieza(h) Termina(h) Y1 0 6, I1 0 1, A 0 1, Y2 0 10, V1 0 1, R 0 6, E 0 5, B 0 5, V2 0,04 2, Z1 0,05 6, V3 0,06 1, A 1,33 4, V4 1,38 10, V1 2,50 10, V2 4,03 10, V3 4,10 19, A 4,77 7, B 5,50 11, E 5,58 10, Y1 6,58 12, R 6,83 12, A 7,44 11, V4 10,74 26, E 10,95 16, Y2 10,98 40, B 11,59 17, X1 11,65 44, A 11,94 13, I1 11,97 14, X2 12,01 30, Y1 12,92 23, R 12,92 19, A 13,94 23, V1 13,99 27, V2 14,07 27, E 16,33 21, B 17,68 19, B 19,14 26, V3 19,72 33, R 19,92 21, Z1 19,98 30, R 21,38 26, E 21,70 25, Y1 23,25 33, A 23,27 27, E 25,83 29, B 26,14 27, V4 26,36 39, R 26,88 28,3472 Pág. 72 Memoria B 27,61 29, A 27,64 28, R 28,35 29, B 29,06 40, V1 29,17 40, V2 29,28 40, R 29,81 40, E 29,83 33, X2 30,35 39, V3 33,22 44, Y1 33,58 41, E 33,95 38, E 38,70 42, X2 39,43 41, B 40,06 45, R 40,14 45, X2 41,76 50, E 42,83 48, X1 44,70 70, B 45,23 52, R 45,81 53, E 48,83 54, Z1 48,94 82, X2 50,43 78, B 52,45 58, R 53,03 72, B 58,45 77, X1 70,04 72, R 72,23 91, E 72,41 91, B 77,65 79, B 79,27 80, B 80,88 82, B 82,49 84, X1 82,55 84, E 91,61 110,81 Tabla Secuencia resultante de la simulación del ejemplo práctico El valor de la función objetivo (retraso medio), la relación de piezas que terminan tarde y su tiempo de retraso correspondiente, son los mostrados en la Tabla 5.14.73 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 73 Pieza Máquina Empieza(h) Termina(h) Fecha entrega(h) Retraso 2 V2 0,04 2,37 0 2,37 3 V3 0,06 1,99 0 1,99 5 V3 33,22 44, V4 10,74 26, ,36 7 X1 44,70 70, X2 12,01 30, Y1 23,25 33, Y1 12,92 23, Y2 0 10, ,98 12 A 23,27 27, Y1 0 6,58 0 6,58 14 X2 50,43 78, X2 30,35 39, ,43 16 X1 70,04 72, R 21,38 26, A 27,65 28, X1 11,65 44, ,70 20 Y1 33,58 41, Y2 10,98 40, ,57 22 Z1 19,98 30, Y1 6,58 12, ,92 24 X1 82,55 84, X2 39,43 41, X2 41,76 50, Z1 48,94 82, E 91,61 123, Retraso medio (h): 7,15 Tabla Valores de retraso obtenidos en la resolución del ejemplo práctico 74 Pág. 74 Memoria 5.5. Manual de usuario de la aplicación informática El algoritmo de dispatching diseñado se ha implementado en una aplicación informática cuyo funcionamiento se describe en este capítulo. El código fuente ha sido implementado en lenguaje C# y compilado en Microsoft Visual Studio El texto completo del código fuente desarrollado se adjunta en el Anexo B Introducción de datos La aplicación es un fichero ejecutable denominado Secuenciador que se puede instalar en cualquier directorio del PC. Antes de empezar a utilizar el programa es necesario crear una carpeta de nombre tmp en la unidad C. Al ejecutar el archivo se abre la ventana Principal del programa: Paso 1: Editar las máquinas Ir a Maquinaria para configurar las máquinas de la planta Aparece la ventana Maquinaria, donde se deben rellenar tres campos: Máquina: Se refiere al nombre de la máquina. Tiempo de inicio: Es el instante, en horas, a partir del cual la máquina está disponible. Por defecto se asigna el valor cero.75 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 75 Tiempo de preparación: Tiempo de preparación, en minutos, necesario para realizar una nueva operación. En nuestro caso este tiempo es de 60 para las prensas y 20 para las máquinas de soldar. Aparece la ventana Formulario de Piezas: Se debe rellenar los siguientes campos: Nombre: Se refiere al nombre de la pieza, el cual se ha de indicar en el menú desplegable de este campo. Cantidad: El número de unidades a fabricar. Fecha de entrega: Seleccionar en el calendario desplegable la fecha de entrega de la pieza. Si una pieza lleva retraso respecto al pedido anterior, se debe seleccionar un día del calendario que sea domingo. El programa entiende que el tiempo de fabricación que se emplea en dicha pieza debe ser considerado como tiempo de retraso.76 Pág. 76 Memoria Días de retraso: En caso de que se trate de una pieza con retraso acumulado en el pedido anterior, indicar el número de días que lleva en retraso. Demanda mensual: Indicar el valor medio de demanda mensual estimada. % retraso: En caso de que sea una pieza con retraso acumulado en el pedido anterior, indicar el porcentaje de unidades de retraso respecto a la cantidad requerida en dicho pedido. Las operaciones de la pieza se añaden a la lista de la misma manera que se añaden las máquinas. En este caso se deben rellenar los siguientes campos: Nº Operación: Introducir el número de operación de la pieza. Máquina: La máquina en la que puede realizarse la operación. Tiempo: Tiempo de proceso de la operación en la máquina indicada anteriormente. Nota: Si una operación puede ser realizada por varias máquinas, como ocurre en este caso con la operación 2, continuar añadiendo el mismo número de operación indicando la nueva máquina y su tiempo de proceso correspondiente. Paso 6: Guardar las piezas 77 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 77 En la lista Operaciones los campos Finalizado, Tiempo_Inicio, Tiempo_Fin y Pieza son campos internos de control del algoritmo, por lo que deben ser ignorados. Una vez guardada la configuración de las piezas, el programa vuelve de nuevo a la ventana Principal, donde se debe Cargar, para que inicialice la configuración de piezas y máquinas y a continuación Generar, para crear la secuencia de operaciones. Paso 8: Generar la secuencia Clicar para secuenciar. Paso 7: Cargar todos los datos Pulsar para cargar. Al Cargar aparecerá el siguiente mensaje de confirmación: Cálculo de la secuencia: Procedimiento directo El algoritmo de dispatching calcula la elección de la operación siguiendo el procedimiento jerárquico. Es decir, comprueba en primer lugar la primera regla de prioridad. Si dicha regla no sirve para desempatar las operaciones candidatas, procede a verificar la segunda regla,78 Pág. 78 Memoria y así sucesivamente, hasta que llegar a una regla que permite elegir la operación a programar. Para generar la secuencia de operaciones según el procedimiento directo (una sola secuencia) se debe ir al botón Generar. Al finalizar el cálculo el programa muestra el mensaje siguiente: En el caso no aleatorio (la casilla Aleatorio debe estar desactivada) solamente se calcula una secuencia, por lo que se muestra el recordatorio: Y a continuación aparece el valor del retraso medio (en horas) producido en la secuencia obtenida y el número de repetición que ha proporcionado dicho valor:79 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág Cálculo de la secuencia: Procedimiento aleatorio Paso 1: Repeticiones Indicar aquí el número de veces que se lanzará el programa. Paso 2: Aleatoriedad Clicar para activar. Paso 3: Ponderar Indicar los pesos de probabilidad para cada regla de prioridad de elección de operaciones. El programa ofrece la posibilidad de ponderar los criterios de prioridad en la elección de las operaciones, introduciendo un valor de probabilidad. Activando la casilla Aleatoriedad, se asigna una probabilidad a cada una de las reglas de prioridad, por lo que el algoritmo considerará las reglas de forma desordenada, en función del número aleatorio que se obtenga en cada caso. En el ejemplo, se ha indicado la siguiente ponderación de probabilidades: Regla % Probabilidad Rango aleatorio Tabla Ponderación de la probabilidad de reglas de prioridad80 Pág. 80 Memoria Supóngase que se debe seleccionar una operación y el programa ha generado el número aleatorio 50. Entonces, se comprobará en primer lugar la primera regla, y si hay un empate entre operaciones, entonces continúa considerando en orden incremental el resto de reglas, hasta que se obtiene la operación a programar. Pero si el número aleatorio es, por ejemplo, 83, entonces es la regla 3 la que se comprobará en primer lugar, y si no determina la operación, entonces se comprueba la regla 4, y después la regla 5, si fuera necesario. Si esta última regla no proporciona una la operación a programar, entonces se selecciona una cualquiera entre las finalistas. En la casilla Repeticiones se ha de introducir el número de secuencias que se desean obtener. No existe límite para este campo (y el programa calcularía soluciones hasta que se agotase la memoria). A título orientativo, si se introducen 1000 repeticiones, se genera un archivo de solución en torno a los 10Mb Ficheros solución El programa crea 4 ficheros.txt en el directorio C:\tmp: maquinas.txt: Guarda la configuración de las máquinas introducida por el usuario en la ventana Maquinaria. piezas.txt: Guarda la lista de piezas configuradas en la ventana Formulario de Piezas. retrasos.txt: Muestra la lista de piezas en retraso, el valor del retraso de cada una de ellas y el número de piezas con retraso. Las columnas se refieren, por este orden, al número de repetición, el número de pieza, el número de la última operación y el valor del retraso respecto a la fecha de entrega. solucion.txt: Muestra la secuenciación obtenida, indicando el orden de cada una de las operaciones, la máquina a la que deben asignarse y los instantes de inicio y de fin en los que deben ser programadas. También muestra el valor del retraso medio obtenido para cada secuencia. La Tabla 5.23 se muestra el resultado obtenido en formato Excel. Los ficheros obtenidos se abren con la aplicación Bloc de notas en formato txt, pero para mayor comodidad es recomendable importar los resultados desde una hoja de cálculo de Excel, siguiendo los pasos que se indican: En primer lugar, abrir una hoja de Excel e ir al menú Datos/ Obtener datos externos/ Importar datos tal como muestra la imagen siguiente: 81 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 81 Paso 1: Importar fichero de datos Seleccionar Importar datos desde el menú Datos Aparece una ventana en la que se debe seleccionar el directorio Mi PC/ C:/ tmp/, en el que se encuentran los cuatro ficheros txt que genera el programa. A continuación se selecciona el fichero que interese abrir, por ejemplo, el archivo solucion.txt, que es el que contiene la secuenciación de las operaciones, y clicar en Abrir: Paso 2: Seleccionar archivo a importar Seleccionar uno de estos cuatro ficheros Paso 3: Abrir fichero Clicar en Abrir A continuación aparece el asistente para importar los datos desde el fichero seleccionado anteriormente. Se debe activar la casilla Delimitados:82 Pág. 82 Memoria Paso 5: Ir al paso siguiente Paso 4: Seleccionar tipo de archivo Ir a Siguiente. Activar la casilla Delimitados. En la pantalla siguiente, de debe seleccionar el tipo de separador contenido en los datos de origen. En nuestro caso, se trata de espacios, por lo que se deberá activar la casilla correspondiente: Paso 6: Seleccionar tipo de separadores Activar la casilla Espacio. Paso 7: Ir al paso siguiente Ir a Siguiente. 83 Algoritmo de dispatching para la programación de la producción en una planta de fabricación Pág. 83 Después, aparece una penúltima pantalla, donde se deben dejar tal como están los parámetros por defecto. Paso 7: Finalizar Finalizar para importar los datos a la hoja de cálculo. Finalmente, en la última pantalla se debe seleccionar dónde se desea importar los datos, en la hoja de cálculo existente o en una nueva hoja. Clicando en Aceptar se finaliza el proceso de importación y aparecen los datos ordenados por columnas dentro de la hoja de cálculo. Paso 7: Situar los datos Aceptar para rellenar las columnas con los datos importados. Mostrar más
Planificación y control a corto plazo Alberto Gómez Gómez BIBLIOGRAFÍA BÁSICA Chase, R.B.; Aquilano, N.J.; Jacobs, F.R. (2000): Administración de Producción y Operaciones (Santa Fe de Bogotá: McGraw- Hill). Más detalles Una heurística para la asignación de máquinas a trabajos fijos
VIII Congreso de Ingeniería de Organización Leganés, 9 y 10 de septiembre de 2004 Una heurística para la asignación de máquinas a trabajos fijos José Manuel García Sánchez, Marcos Calle Suárez, Gabriel Más detalles Programación de Sistemas Productivos
Universidad Simón Bolívar Programación de Sistemas Productivos Secuenciación de Operaciones PS-4162 Gestión de la Producción II 1 Contenido Secuencias de trabajo en los centros de trabajo Reglas de prioridad Más detalles Algoritmos exactos y heurísticos para minimizar el adelantamiento y retraso ponderados en una máquina con una fecha de entrega común
Algoritmos... en una máquina con una fecha de entrega común Algoritmos exactos y heurísticos para minimizar el adelantamiento y retraso ponderados en una máquina con una fecha de entrega común R. Alvarez-Valdés, Más detalles JUSTO A TIEMPO (JIT)
PÁG. 1 DE 9 1. QUÉ ES? Just in time (que también se usa con sus siglas JIT), literalmente quiere decir Justo a tiempo. Es una filosofía que define la forma en que debería optimizarse un sistema de producción. Más detalles PROBLEMAS DE SIMULACIÓN PARA RESOLVER POR EL MÉTODO DE MONTECARLO.
PROBLEMAS DE SIMULACIÓN PARA RESOLVER POR EL MÉTODO DE MONTECARLO. PROBLEMA 1 A un puerto de carga y descarga de material, llegan durante la noche los barcos, que serán descargados durante el día siguiente. Más detalles GESTIÓN DE LA PRODUCCIÓN EN FABRICACIÓN MECÁNICA PROFESIONAL
Página 1 de 12 CUALIFICACIÓN GESTIÓN DE LA PRODUCCIÓN EN FABRICACIÓN MECÁNICA PROFESIONAL Familia Profesional Fabricación Mecánica Nivel 3 Código FME356_3 Versión 6 Situación Contraste externo Actualización Más detalles Planificación detallada
Planificación detallada 77 Planificación detallada En las empresas que fabrican contra pedido la tarea de determinar la secuencia óptima de fabricación de artículos en un taller es complicada debido al Más detalles índice UA 1: GESTIÓN DE ALMACÉN UA 2: GESTIÓN DE STOCKS UA 3: GESTIÓN Y PREPARACIÓN DE PEDIDOS UA 4: GESTIÓN Y PREPARACIÓN DE INVENTARIOS
índice UA 1: GESTIÓN DE ALMACÉN 5 Fundamentos de la gestión de almacenes. Configuración del almacén. Tipos de carga y almacenamiento. Equipos para manipulación y almacenamiento. UA 2: GESTIÓN DE STOCKS Más detalles Justo a tiempo JIT. La filosofía del "justo a tiempo" se fundamenta principalmente en:
Justo a tiempo JIT El sistema justo a tiempo, comenzó como el sistema de producción de la empresa Toyota por el año 1976 buscando mejorar la flexibilidad de los procesos fabriles como respuesta al descenso Más detalles Capítulo VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING
Capítulo VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING 6.1. HEURÍSTICAS CONVENCIONALES El problema de job shop scheduling (JSSP) es un problema muy importante [69]; está entre los problemas de optimización Más detalles 3.1. Características de la programación maestra de la producción
Unidad III Programación de Producción y Asignación de Personal 3.1. Características de la programación maestra de la producción Una vez concluido el plan agregado, el siguiente paso consiste en traducirlo Más detalles ESCUELA PROFESIONAL SAN FRANCISCO
Módulo Profesional: Gestión y logística del mantenimiento de vehículos. Equivalencia en créditos ECTS: 8 Código: 0297 Resultados de aprendizaje y criterios de evaluación. 1. Elabora la planificación de Más detalles DATOS IDENTIFICATIVOS DE LA UNIDAD FORMATIVA PLANIFICACIÓN Y GESTIÓN DE LA DEMANDA DURACIÓN 70
UNIDAD FORMATIVA DATOS IDENTIFICATIVOS DE LA UNIDAD FORMATIVA PLANIFICACIÓN Y GESTIÓN DE LA DEMANDA DURACIÓN 70 Código UF0475 Familia profesional COMERCIO Y MARKETING Área Profesional Logística Comercial Más detalles Programación de tareas, un reto diario en la empresa
Programación de tareas, un reto diario en la empresa Pedro Sánchez Martín Ingeniero del ICAI (1993) y Doctor en Ingeniería Industrial por la UPCO (1998). Profesor del Departamento de Organización Industrial Más detalles Integradora 3. Administración de la capacidad
Administración de operaciones Integradora 3. Administración de la capacidad Objetivo Al finalizar la actividad integradora, serás capaz de: Analizar diferentes alternativas para aumentar la capacidad de Más detalles Planificación y Control de Proyectos de Software mediante MS Project
Práctica 2 Planificación y Control de Proyectos de Software mediante MS Project E n esta práctica vamos a introducirnos en la Planificación y Control de Proyectos de Software mediante herramientas informáticas Más detalles PROGRAMA DOCENTE GESTIÓN DE PRODUCCIÓN CÓDIGO: 3041107120
PROGRAMA DOCENTE DE LA ASIGNATURA GESTIÓN DE PRODUCCIÓN CÓDIGO: 3041107120 3º Curso de Ingeniería Industrial. E.T.S. de Ingenieros Industriales de Vigo. NÚMERO DE CRÉDITOS: 6 (3 A. + 3 L.) GRUPOS DE AULA Más detalles 1. PRESENTACIÓN GLOBAL LEAN.
GLOBAL LEAN APPS 1. PRESENTACIÓN GLOBAL LEAN. GLOBALLEAN apuesta por mejorar la competitividad de las empresas. Y una herramienta clave para conseguir mejoras de competitividad que deriven en resultados Más detalles Flow-Shop Dinámico. Por: Juan Carlos Rivera Samuel De Greiff
Flow-Shop Dinámico Por: Juan Carlos Rivera Samuel De Greiff 1 Configuración tipo Flow- Shop Disposición lineal de los equipos. Productos con altos niveles de estandarización. Varios productos en volúmenes Más detalles FLEXIPLAN: UN SISTEMA DE PLANIFICACIÓN DE LA PRODUCCIÓN
27 Congreso Nacional de Estadística e Investigación Operativa Lleida, 8-11 de abril de 2003 FLEXIPLAN: UN SISTEMA DE PLANIFICACIÓN DE LA PRODUCCIÓN Vicente Valls 1, Jose Manuel Belenguer 1, Pilar Lino Más detalles PROGRAMACIÓN CICLO FORMATIVO DE GRADO SUPERIOR CONSTRUCCIONES METÁLICAS DEPARTAMENTO DE FABRICACIÓN MECÁNICA CURSO: 2013-2014
PROGRAMACIÓN CICLO FORMATIVO DE GRADO SUPERIOR CONSTRUCCIONES METÁLICAS DEPARTAMENTO DE FABRICACIÓN MECÁNICA CURSO: 2013-2014 MÓDULO: Programación de la Producción JEFE DEL DEPARTAMENTO D. Gregorio Hernández Más detalles Módulo 4: Producción. Disertante: Ing. Guillermo Wyngaard INTI Mar del Plata
Módulo 4: Producción Disertante: Ing. Guillermo Wyngaard INTI Mar del Plata Agenda 1 Estrategias para afrontar la demanda 2 TPS - Just in time 3 Reducción del tamaño de lote 4 SMED 5 Nivelación de la producción Más detalles El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.
Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El Más detalles SESIÓN 8 TIPOS DE SISTEMAS DE MANUFACTURA
SESIÓN 8 TIPOS DE SISTEMAS DE MANUFACTURA CONTENIDO Términos en manufactura Clasificación de sistemas de manufactura Beneficios y ejemplos de sistemas de manufactura Los componentes de un sistema de manufactura Más detalles UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO
- 1 - UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO Tema 1: Operaciones financieras: elementos Tema 2: Capitalización y descuento simple Tema 3: Capitalización y descuento compuesto Tema Más detalles Cómo crear un plan maestro de producción Parte 1
Cómo crear un plan maestro de producción Parte 1 Pymex (2013) Cómo crear un plan maestro de producción. Recuperado de: http://pymex.pe/pymes/estrategias-de-crecimiento/como-crear-un-plan-maestro-de-produccionparte-1 Más detalles TEMA 7: PLANIFICACIÓN Y CONTROL DE LA PRODUCCIÓN
Tema 7: Planificación y control de la produción. Pág. 1 TEMA 7: PLANIFICACIÓN Y CONTROL DE LA PRODUCCIÓN 1. Planificación agregada y programación de la producción 2. Planificación de necesidades de materiales Más detalles Tema 2. Ingeniería del Software I feliu.trias@urjc.es
Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición Más detalles ADMINISTRACION DE OPERACIONES
Sesión 7: Administración de inventarios I ADMINISTRACION DE OPERACIONES Objetivo específico 1: El alumno conocerá y aplicara los modelos y sistemas de inventarios y los adecuará a las características propias Más detalles Soluciones de software que potencian a la industria del salmón
INNOVA Soluciones de software que potencian a la industria del salmón Controle Monitoree Perfeccione Maximizar el resultado y el rendimiento Cumplir con las normas de calidad y garantía de la seguridad Más detalles 2. Flexibilidad en la fabricación. 3. Clasificación de las tecnologías de fabricación. 4. Ingeniería concurrente. Ejemplo de diseño de máquina.
Tema 1. Introducción a los procesos de fabricación 1. Introducción al ciclo productivo. 2. Flexibilidad en la fabricación. 3. Clasificación de las tecnologías de fabricación. 4. Ingeniería concurrente. Más detalles PCLabs. Práctica de Ingeniería del Software I Curso 2008/09. Descripción del problema
PCLabs Práctica de Ingeniería del Software I Curso 2008/09 Descripción del problema Introducción... 1 Organización de la empresa... 1 Gestión del almacén... 2 Gestión de pedidos de clientes... 3 Gestión Más detalles El Value Stream Mapping en entornos con alta variedad de productos e inestabilidad de la demanda
II International Conference on Industrial Engineering and Industrial Management XII Congreso de Ingeniería de Organización September 3-5, 2008, Burgos, Spain El Value Stream Mapping en entornos con alta Más detalles Desarrollo de algoritmos genéticos, de recocido simulado e híbridos para la planificación de un taller flexible
X Congreso de Ingeniería de Organización Valencia, 7 y 8 de septiembre de 2006 Desarrollo de algoritmos genéticos, de recocido simulado e híbridos para la planificación de un taller flexible Sara Lumbreras Más detalles AXIONAL Enterprise CMMS. Enterprise Computerized Maintenance Management System
deister software AXIONAL Enterprise CMMS Enterprise Computerized Maintenance Management System Contents FUNCTIONS..................................................................................3 Módulo Más detalles TECNICO SUPERIOR EN LOGISTICA Y COMPRAS TECNICAS DE ALMACENAJE I
TECNICO SUPERIOR EN LOGISTICA Y COMPRAS TECNICAS DE ALMACENAJE I INTRODUCCIÓN AL ALMACENAJE TÉCNICO Tipos de mediciones y sus objetivos Evaluación de métricas UNIDAD I METRICAS Características de las métricas Más detalles Claves para optimizar la gestión financiera de STOCKS. Control de Gestión
[.estrategiafinanciera.es ] Claves para optimizar la gestión financiera de STOCKS El responsable financiero ha de coordinar las áreas encargadas de la gestión operativa de almacenes asesorando sobre las Más detalles Capítulo III. Manejo de Incidentes
Manejo de Incidentes Manejo de Incidentes Tabla de contenido 1.- En qué consiste el manejo de incidentes?...45 1.1.- Ventajas...47 1.2.- Barreras...47 2.- Requerimientos...48 3.- Clasificación de los incidentes...48 Más detalles Soluciones Supply Chain Planning para fabricantes Internacionales
15 Aniversario 1996-2011 En Planning Group tenemos amplia experiencia en el aporte de soluciones a la Industria fabricante, dirigidas a ayudar en la planificación de la cadena de suministro y especialmente Más detalles Mantenimiento de Sistemas de Información
de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD Más detalles TEMA 4.- EL SUBSISTEMA DE PRODUCCIÓN.
TEMA 4.- EL SUBSISTEMA DE PRODUCCIÓN. 1. Concepto y elementos del subsistema de producción. 2. Clases de procesos productivos 3. Objetivos y decisiones en la administración de la producción Concepto y Más detalles UNIDAD II. ADMINISTRACIÓN DE OPERACIONES Tema 3. Aportaciones de la Administración de operaciones.
UNIDAD II. ADMINISTRACIÓN DE OPERACIONES Tema 3. Aportaciones de la Administración de operaciones. 2.2. Objetivo de aprendizaje: SABER: Describir las características y uso de: Sistemas de partes intercambiables, Más detalles [TECNOLOGÍA RAID] Documentos de formación de SM Data: http://www.smdata.com/formacion.php
2011 Documentos de formación de SM Data: http://www.smdata.com/formacion.php [] Introducción a la tecnología RAID; Qué es RAID?; ventajas de RAID; definición de los más populares niveles de RAID y diferentes Más detalles 2.2.- Puntos de renovación de pedidos. Punto de re orden = Margen de tiempo en días x uso diario Tiempo = 16 días
2.2.- Puntos de renovación de pedidos. Una vez que la empresa ha calculado la cantidad económica de pedido, debe determinar el momento adecuado para efectuar los pedidos. Se requiere un punto de re orden Más detalles MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL
MODULO: MERCADEO Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) 1 Servicio de Soporte. El presente apartado constituye las condiciones de soporte y mantenimiento por parte de enncloud Más detalles DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA
DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA Resumen AUTORIA CARLOS CABALLERO GONZÁLEZ TEMATICA INFORMÁTICA ETAPA ESO-BACHILLERATO-CFGM(ESI,ASI,DSI) Se describe la revolución que supuso la incursión Más detalles PCGeek. Descripción del problema
PCGeek Descripción del problema Ejercicio de Ingeniería del Software I Ejercicio de Ingeniería del Software I Página 1 de 9 1 Introducción... 3 1.1 Organización de la empresa... 3 2 Gestión del almacén... Más detalles Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI
Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI Ricardo Köller Jemio Departamento de Ciencias Exactas e Ingeniería, Universidad Más detalles Controle completamente la fabricación de su empresa Sistema de gestión de la producción para la empresa Sistema de gestión de la fabricación para la empresa Resolución de sus problemas más comunes de gestión Más detalles TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones. Más detalles ANÁLISIS MODAL DE FALLOS EFECTOS (A. M. F. E.)
ANÁLISIS MODAL DE FALLOS EFECTOS (A. M. F. E.) Y 1. INTRODUCCIÓN Este documento describe paso a paso el proceso de identificación, evaluación y prevención de deficiencias en los productos o servicios. Más detalles IN4703 Gestión de Operaciones. Programación de Operaciones (Operations Scheduling)
IN4703 Gestión de Operaciones Programación de Operaciones (Operations Scheduling) Lineamientos de la Clase de Hoy Objetivos de la Programación de Operaciones Sistemas de Manufactura (Manufacturing Execution Más detalles Scheduling Problem. Cuándo y dónde debo hacer cada trabajo?
Scheduling Problem Cuándo y dónde debo hacer cada trabajo? Ejemplos de problemas de asignación de recursos Fabricación de varios tipos de productos Asignación de turnos de trabajo Inversión financiera Más detalles Soluciones empresariales en tiempo real para la fabricación discreta y los bienes de consumo
Soluciones empresariales en tiempo real para la fabricación discreta y los bienes de consumo Andreas Renulf Durante los últimos años, la satisfacción del cliente y la especial atención a las competencias Más detalles SERIES DOCENTES TN-CCG-01
SERIES DOCENTES TN-CCG-01 Sistemas de Costos Autor: Antonio Farías Landabur Ayudante Colaborador: Marco Lang www.managementcontrol.cl Departamento de Control de Gestión y Sistemas de Información Facultad Más detalles INDICADORES DE ACTIVIDAD TESORERÍA GENERAL DEL BANCO CENTRAL DE CHILE
III REUNION DE TESOREROS DE BANCA CENTRAL Buenos Aires, Argentina, 6 al 9 de octubre de 1998 INDICADORES DE ACTIVIDAD TESORERÍA GENERAL DEL BANCO CENTRAL DE CHILE Ponencia presentada por Sr. Carlos Leiva Más detalles La gestión de proyectos es la rama de la ciencia de la administración que trata de la planificación y el control de proyectos.
DEFINICIÓN DE PROYECTO Un proyecto es un conjunto de acciones No repetitivas Únicas De duración determinada Formalmente organizadas Que utilizan recursos Podremos considerar un proyecto, a efectos de aplicarle Más detalles 11. GESTIÓN DE LOS RIESGOS DEL PROYECTO PROYECTO TÉCNICO
11. GESTIÓN DE LOS RIESGOS DEL PROYECTO PROYECTO TÉCNICO Documento redactado por Documento revisado por Documento aprobado por Joaquín De Abreu David Naranjo 30-08-12 Joaquín de Abreu 05-09-12 Jordi Labandeira Más detalles 2. La automatización integrada de la fabricación y de los servicios
1 CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIAS DIVISIÓN DE INGENIERIAS DEPARTAMENTO DE INGENIERIA MECANICA ELECTRICA CRONOGRAMA DE MATERIA CARRERA: INGENIERIA MECÁNICA ELECTRICA MATERIA: Sistemas Más detalles EXPERTIS Y LA GESTION DE FABRICACION
EXPERTIS Y LA GESTION DE FABRICACION Ingeniería Informática DesingSoft, S.L. - 1 - Introducción: Expertis dispone de un conjunto de módulos y aplicaciones orientadas a empresas del sector de Fabricación Más detalles Innovación de las Industrias Textiles
Master Universitario en Innovación de las Industrias Textiles Módulo Caracterización del mercado y de la empresa Asignatura Análisis del mercado y Canales de distribución Sesión Gestión de stocks Juan Más detalles Introducción a los Sistemas Integrados de Fabricación
Sistemas Integrados de Fabricación Introducción a los Sistemas Integrados de Fabricación Rosendo Zamora Pedreño Dpto. Ingeniería de Materiales y Fabricación rosendo.zamora@upct.es Índice 1. Introducción Más detalles Estado del Arte del Job Shop Scheduling Problem
Estado del Arte del Job Shop Scheduling Problem Víctor Peña y Lillo Zumelzu Departamento de Informática, Universidad Técnica Federico Santa María Valparaíso, Chile vpena@inf.utfsm.cl 17 de mayo de 2006 Más detalles Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1
Sistemas de producción y búsqueda de soluciones Area de Computación e Inteligencia Artificial 1 Técnicas de búsqueda Resolución de problemas en Inteligencia Artificial. En general, podemos afirmar que Más detalles INDICE. Sobre los Autores
INDICE Sobre los Autores XVII Prólogo XXIII Parte Primera. Planificación, Programación y Control de las Operaciones 1. Introducción a la Planificación y Control de la Producción 3 1.1. Introducción 3 1.2. Más detalles MODELOS DE PLANIFICACIÓN
MODELOS DE PLANIFICACIÓN Santiago de Compostela, Octubre 2006 1 s jk C max P Jm prmt L max NP Rm tree C j Algoritmos wj U j Uj Calendarios Fm prec w j U j Práctica CONTENIDO. Contents 1 Descripción del Más detalles Gestión de Stock y logística básica
Prueba de evaluación 1 Gestión de Stock y logística básica Datos del alumno: Firma del alumno: Fecha de envío: Recuerde: Cumplimente la prueba de evaluación (sin olvidar firma y fecha de envío) y el cuestionario Más detalles PROCEDIMIENTO HEURÍSTICO PARA MINIMIZAR EL C max EN CELDAS ROBOTIZADAS CON BUFFERS FINITOS Y PIEZAS DISTINTAS
27 Congreso Nacional de Estadística e Investigación Operativa Lleida, 8 11 de abril de 2003 PROCEDIMIENTO HEURÍSTICO PARA MINIMIZAR EL C max EN CELDAS ROBOTIZADAS CON BUFFERS FINITOS Y PIEZAS DISTINTAS Más detalles La Administración de Proyectos
La Administración de Proyectos La administración de proyectos es el proceso de planear, organizar y administrar tareas y recursos para alcanzar un objetivo concreto, generalmente con delimitaciones de Más detalles UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE CIENCIAS MATEMÁTICAS E.A.P. DE..INVESTIGACIÓN OPERATIVA Sistemas de Inventarios Capítulo3. Marco teórico MONOGRAFÍA Para optar el Título de Licenciado Más detalles Ingeniería Técnica en Informática de Gestión
Departamento de Informática Universidad Carlos III de Madrid Ingeniería Técnica en Informática de Gestión Inteligencia Artificial Febrero 2006. 1 a parte Normas generales del examen El tiempo para realizar Más detalles RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica.
RAID Como se dijo anteriormente, el ritmo de mejora de prestaciones en memoria secundaria ha sido considerablemente menor que en procesadores y en memoria principal. Esta desigualdad ha hecho, quizás, Más detalles Project 2013. Ing. Christian Ovalle
2013 Ing. Christian Ovalle PROJECT Antes de comenzar un proyecto se necesitan definir los objetivos de un proyecto y luego determinado, cuales son las tareas que necesita realizar para alcanzar ese objetivo. Más detalles El problema de la planificación
El problema de la planificación de la producción 7 El problema de la planificación La planificación en las empresas es un proceso por el cual cada uno de los departamentos organiza sus recursos en el tiempo Más detalles Introducción al sistema Kanban
Introducción al sistema Kanban En la actualidad, si una empresa no es lo suficientemente flexible para adaptarse a los cambios del mercado se podría decir que esa empresa estará fuera de competencia en Más detalles UN ALGORITMO DE ESTIMACIÓN DE DISTRIBUCIONES PARA EL PROBLEMA DE SECUENCIAMIENTO EN CONFIGURACIÓN JOBSHOP FLEXIBLE
UN ALGORITMO DE ESTIMACIÓN DE DISTRIBUCIONES PARA EL PROBLEMA DE SECUENCIAMIENTO EN CONFIGURACIÓN JOBSHOP FLEXIBLE Ricardo Pérez Rodríguez & Arturo Hernández Aguirre Comunicación del CIMAT No I-15-01/23-01-2015 Más detalles Compras y aprovisionamiento
Compras y aprovisionamiento El proceso de aprovisionamiento Factores que influyen en la función de aprovisionamiento Evolución de la función de compras Compras y aprovisionamiento en métodos JIT El aprovisionamiento Más detalles Unidad 7. Administración de inventarios. Objetivos específicos de aprendizaje
Unidad 7 Administración de inventarios Objetivos específicos de aprendizaje Al terminar de estudiar este capítulo, el estudiante será capaz de: Explicar el concepto de inventarios. Explicar el concepto Más detalles Gestión de compras T.6
Gestión de compras T.6 Contenido 1 FUNCIÓN DEL APROVISIONAMIENTO... 2 2 IMPORTANCIA DE UNA BUENA POLÍTICA DE APROVISIONAMIENTO... 2 3 EL DEPARTAMENTO DE COMPRAS... 3 A) FUNCIÓN DE COMPRA... 3 B) FUNCIÓN Más detalles 9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de decisión.
TEMA 9 TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA EL ANÁLISIS DE LA INFORMACIÓN CONTABLE 9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de Más detalles Análisis de los datos
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización Más detalles Tutorial de Moodle. Actividad Cuestionario
Tutorial de Moodle Actividad Cuestionario Cuestionario Para qué sirve? El Cuestionario es una actividad autoevaluable, en la cual la nota se calcula automáticamente. Sirve al alumno como autoevaluación Más detalles El Sudoku de la Planificación de la Producción
Mejoras a la planificación y secuenciación de órdenes en SAP ECC El Sudoku de la Planificación de la Producción La planificación en las empresas es un proceso por el cual cada uno de los departamentos Más detalles INNOVA. Controle Monitoree Perfeccione. Soluciones de software que potencian a la industria cárnica
INNOVA Soluciones de software que potencian a la industria cárnica Controle Monitoree Perfeccione Maximiza el resultado y el rendimiento Cumple con las normas de calidad y garantía de la seguridad de los Más detalles Ciclo de vida del Software
Tema 2: Ciclo de vida del Software Marcos López Sanz Índice Qué es el ciclo de vida del Software? La norma 12207-2008 Modelos de desarrollo Qué es el Ciclo de Vida del SW? Es una sucesión de etapas por Más detalles CLASIFICACIÓN DE LOS SISTEMAS PRODUCTIVOS
TEMA 3 PRODUCCIÓN CLASIFICACIÓN DE LOS SISTEMAS PRODUCTIVOS DIMENSIÓN NIVEL SÍMBOLO Variedad de productos: Producto único 1 Varios productos n Variedad de proceso: Una sola operación 1 Varias operaciones Más detalles Planificación y secuenciamiento de procesos por lotes. Prof. Cesar de Prada ISA-UVA
Planificación secuenciamiento de procesos por lotes Prof. Cesar de Prada ISA-UVA Indice Procesos plantas batch Conceptos básicos de secuenciamiento Formulación de problemas de secuenciamiento Resolución Más detalles Curso de Identificación, Formulación y Evaluación de Proyectos FCE UN L 2008
A continuación se presenta los pasos a seguir para la planificación y control de un proyecto. En relación al tiempo disponible se hacen las siguientes aclaraciones: Se ha marcado con resaltado aquellos Más detalles CÁLCULO DE CICLOS DE CONSUMO Y ROTACIÓN DE INVENTARIOS
4 CÁLCULO DE CICLOS DE CONSUMO Y ROTACIÓN DE INVENTARIOS Al finalizar el capítulo, el alumno calculará los ciclos de consumo y rotación de inventarios de acuerdo con los métodos de valuación, para la determinación Más detalles ANÁLISIS ECONÓMICO Evaluación de Proyectos
Página0 ANÁLISIS ECONÓMICO Evaluación de Proyectos Página1 Índice Introducción 02 Valor actual neto 03 Flujo neto de Caja 04 Plazo de Recuperación, Plazo de Reembolso, o Pay-Back estático 04 Tasa de Rendimiento Más detalles SOFTWARE DE GESTION DE PRODUCCIÓN: ORTHOGES
SOFTWARE DE GESTION DE PRODUCCIÓN: ORTHOGES Jesús A. Royo Sánchez, Ana Brun de Buen, María Pilar Lambán Castillo, Daniel Pérez Soriano. Profesores del Área de Ingeniería de los Procesos de Fabricación Más detalles TÉCNICAS DE PLANIFICACIÓN Y CONTROL DE PROYECTOS 1
Técnicas de planificación y control de proyectos Andrés Ramos Universidad Pontificia Comillas http://www.iit.comillas.edu/aramos/ Andres.Ramos@comillas.edu TÉCNICAS DE PLANIFICACIÓN Y CONTROL DE PROYECTOS Más detalles &$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN
&$3Ì78/2 6.1. INTRODUCCIÓN Los primeros avances para solucionar el TSP, por medio de Algoritmos Evolutivos han sido introducidos por Goldberg y Lingle en [68] y Grefenstette en [72]. En éste área muchos Más detalles FMEM0109 Gestión de la Producción en Fabricación Mecánica
FMEM0109 Gestión de la Producción en Fabricación Mecánica TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES FMEM0109 Gestión de la Producción en Fabricación Más detalles Tema I: Gestión de Proyectos Software: Planificación
Tema I: Gestión de Proyectos Software: Planificación Bibliografía Calvo-Manzano, J.A., Cervera, J., Fernández, L., Piattini, M. Aplicaciones Informáticas de Gestión. Una perspectiva de Ingeniería del Software. Más detalles Boletín de Asesoría Gerencial* Mejores prácticas en la gestión de almacenes
Espiñeira, Sheldon y Asociados No. 19-2008 *connectedthinking Haga click en los enlaces para navegar a través del documento Haga click en los enlaces para llegar directamente a cada sección 4Introducción Más detalles UNIVERSIDAD DE BURGOS
UNIVERSIDAD DE BURGOS DEPARTAMENTO DE INGENIERÍA CIVIL TESIS DOCTORAL ANÁLISIS DE LA RELAJACIÓN LAGRANGIANA COMO MÉTODO DE PROGRAMACIÓN DE TALLERES FLEXIBLES EN UN ENTORNO MULTIAGENTE Autor: Directores: Más detalles 2017 © DocPlayer.es Política de privacidad | Condiciones del servicio | Feedback

References: resolución 
 resolución 
 resolución 
 RESOLUCIÓN 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 Resolución 
 Resolución