Algoritmo
Genético
para la programación
de una línea de producción
bietá
pica
mixta
y
comparación
con
una
aproximación
tipo Flow Shop Híbrido
programado con base a TOC
Caso de estudio: Línea de producción
metalmecánica
Lorena Maria Bejarano Aranzazu
Asesor:
Ph.D. Ciro Alberto Amaya Guio
Facultad de Ingeniería
Departamento de Ingeniería Industrial
Universidad de los Andes
Bogotá D.C, Mayo de 2016
Tabla de contenido
Lista de Tablas ... 3
Lista de Ilustraciones ... 3
I. Introducción ... 4
Justificación, novedad e importancia del proyecto ... 4
Alcance del proyecto ... 5
II. Marco Teórico ... 5
Descripción del problema ... 5
Sistema real: Mixed Shop bietápico Open Flow ... 5
Conceptos clave ... 7
Estado del arte ... 8
III. Objetivos ... 13
Objetivo general ... 13
Objetivos específicos ... 13
IV. Estrategias de solución ... 13
Solución exacta ... 13
Formulación matemática ... 14
Método de solución aproximado : Algoritmo Genético ... 17
Propuesta de solución 1: GA ... 18
Representación de los cromosomas ... 19
Población inicial ... 20
Estrategia de selección de cromosomas padres ... 21
Reproducción de hijos: Operadores genéticos ... 21
Evaluación de individuos ... 22
Criterio de detención ... 22
Pseudo-‐código Algoritmo Genético ... 23
Pseudo-‐código algoritmo Crossover ... 23
Propuesta de solución 2: GA_SPT ... 24
Propuesta de solución 3: GA_Delivery ... 25
V. Resultados experimentales ... 25
Uso de instancias académicas CHR ... 25
Tres propuestas de solución: Instancias CHR ... 28
Prueba de robustez a la mejor propuesta de solución ... 29
Mejor propuesta Vs TOC – Aproximación FFs: Instancias CHR ... 30
Caso de estudio ... 35
Mejor propuesta de solución Vs TOC -‐ Aproximación FFs: Caso de estudio ... 37
VI. Conclusiones ... 38
Anexo 1: Comparación de soluciones iniciales con regla SPT Vs LPT ... 40
Anexo 2: Calibración de parámetros. Diseño de experimentos 2k ... 41
Bibliografía ... 49
Lista de Tablas
TABLA 1. EJEMPLO TIEMPOS DE PROCESO TRABAJO/MÁQUINA ... 19
TABLA 2. MÁQUINAS EN OM PARA LAS INSTANCIAS ACADÉMICAS ... 26
TABLA 3. INSTANCIAS CHR ORIGINALES Y MODIFICADAS. ... 27
TABLA 4. MAKESPAN DE LAS TRES PROPUESTAS DE SOLUCIÓN EN LAS INSTANCIAS CHR ... 28
TABLA 5. ESTADÍSTICAS DE ROBUSTEZ PARA LA MEJOR SOLUCIÓN ... 30
TABLA 6. MAKESPAN DE LA MEJOR SOLUCIÓN Y LA TOC-‐APROXIMACIÓN FFS EN LAS INSTANCIAS CHR ... 33
TABLA 7. MAKESPAN CASO DE ESTUDIO, TRES PROPUESTAS DE SOLUCIÓN ... 37
TABLA 8. RESULTADOS CASO DE ESTUDIO, MEJOR PROPUESTA TOC-‐APROXIMACIÓN FFS ... 38
TABLA 9. SPT VS LPT INSTANCIAS ACADÉMICAS ... 40
TABLA 10. NIVELES Y FACTORES DEL ALGORITMO GENÉTICO ... 42
TABLA 11. NOTACIÓN DE YATES PARA LOS FACTORES ... 42
TABLA 12. FACTORES PARA OBTENER EL MENOR MAKESPAN ... 48
Lista de Ilustraciones
ILUSTRACIÓN 1 SISTEMA DE PRODUCCIÓN (MIXED SHOP) ... 6ILUSTRACIÓN 2 FLUJO DE PROCESO APROXIMADO (FLEXIBLE FLOW SHOP) ... 10
ILUSTRACIÓN 3. PROPUESTA DE SOLUCIÓN 1 ... 18
ILUSTRACIÓN 4. REPRESENTACIÓN DEL CROMOSOMA BASADO EN LA OPERACIÓN ... 19
ILUSTRACIÓN 5. DIAGRAMA DE GANTT PARA LA REPRESENTACIÓN DEL CROMOSOMA BASADO EN OPERACIÓN ... 20
ILUSTRACIÓN 6. REPRESENTACIÓN DEL CROMOSOMA BASADO EN EL TRABAJO ... 20
ILUSTRACIÓN 7. PROPUESTA DE SOLUCIÓN 2 ... 24
ILUSTRACIÓN 8. PROPUESTA DE SOLUCIÓN 3 ... 25
ILUSTRACIÓN 9. GRÁFICO DE PARETO DE LOS EFECTOS ESTANDARIZADOS PARA TODOS LOS FACTORES E INTERACCIONES ... 44
ILUSTRACIÓN 10. GRÁFICO NORMAL DE EFECTOS ESTANDARIZADOS PARA TODOS LOS FACTORES E INTERACCIONES 45 ILUSTRACIÓN 11. GRÁFICO DE RESIDUOS PARA VARIABLE DE RESPUESTA (MAKESPAN) CON TODOS LOS FACTORES E INTERACCIONES ... 45
ILUSTRACIÓN 12. GRÁFICA DE PARETO DE EFECTOS ESTANDARIZADOS PARA LOS EFECTOS E INTERACCIONES SIGNIFICATIVAS ... 47
ILUSTRACIÓN 13. GRÁFICO NORMAL DE LOS EFECTOS ESTANDARIZADOS DE LOS FACTORES E INTERACCIONES SIGNIFICATIVOS ... 47
ILUSTRACIÓN 14. GRÁFICA DE RESIDUOS PARA LA VARIABLE DE RESPUESTA (MAKESPAN) DE LOS FACTORES E INTERACCIONES SELECCIONADOS ... 48
I.
Introducción
En diversos sectores productivos, la programación de la producción tiene gran repercusión en la productividad y competitividad de las empresas; especialmente donde se emplean sistemas de manufactura existe una relación directa entre el desempeño de las empresas y su capacidad de programar la producción de forma adecuada.
La programación de la producción es un problema que varía su complejidad según las características de cada proceso y es necesario contar con herramientas que permitan solucionar el problema de forma eficaz y sencilla para que las empresas puedan utilizarlo en su operación. Se busca determinar en qué tiempos y en qué máquinas se van a procesar los trabajos, así como el tiempo total de terminación.
Justificación, novedad e importancia del proyecto
Según la revisión de literatura y de acuerdo con (Liu & Ong, 2004), los problemas de múltiples etapas más conocidos como Mixed Shop, han sido poco aplicados y estudiados por la academia, y los autores interesados en éste tipo de problemas los han abordado desde un Flow Shop à Open Shop (Su et al., 2005), es decir, se tienen dos etapas donde la primera se desarrolla como un Flow Shop y la segunda como un Open Shop, por ejemplo en la industria automotriz, donde los vehículos (trabajos) se ensamblan siguiendo una única y misma ruta (Flow Shop) y después del ensamble se realiza el control de calidad donde cada vehículo puede visitar las estaciones de revisión en cualquier orden (Open Shop), no importa si se verifica primero la pintura o los frenos, y cada vehículo recorre las estaciones del control de calidad sin una ruta establecida.
A diferencia de lo descrito anteriormente, el sistema de producción del presente trabajo es Open Shop à Flow Shop, donde en la primera etapa del proceso no existen restricciones de ruta, es decir que los trabajos pueden visitar las máquinas de la primera etapa en cualquier orden y éste puede diferir entre trabajos; y en la segunda etapa siguen una línea Flow Shop, donde todos los trabajos siguen la misma ruta predeterminada en las estaciones de dicha etapa. Este tipo de problema únicamente ha sido abordado por (Mejía & Bejarano, 2015) y (Dong et
al., 2013), lo que despierta interés en resolverlo ya que es novedoso y tiene gran aplicación en la industria.
Alcance del proyecto
Determinar la brecha entre la modelación del sistema real (línea de producción mixta bietápica Open Flow) y la solución propuesta por (Mejía & Bejarano, 2015) donde se realiza una aproximación tipo Flow Shop, para conocer cuál es el costo de optimalidad Vs esfuerzo y tiempo de programación y ejecución. Se mostrará el tiempo total de terminación de la programación de producción en un caso de estudio, así como en instancias académicas conocidas (Carlier, Heller y Reeves).
El objetivo principal es realizar la programación de la producción del sistema real proponiendo una nueva estrategia de solución que mejore la propuesta de (Mejía & Bejarano, 2015).
El presente trabajo esta organizado de la siguiente forma; en la sección II. se encuentra el marco teórico donde se presenta la descripción y definición del problema, seguido de las soluciones encontradas en la literatura. En la sección III. se mencionan los objetivos que se desarrollarán a lo largo del trabajo. En la sección IV. se describe el algoritmo y las estrategias de solución propuestas. La sección V. presenta los resultados experimentales que permiten evaluar el método propuesto. Finalmente en la sección VI. se dan algunas conclusiones. Adicionalmente, al final del documento, se muestra un anexo con la calibración de los parámetros utilizados en el algoritmo de solución.
II.
Marco Teórico
Descripción del problema
Sistema real: Mixed Shop bietápico Open Flow
En la industria es común encontrar que el proceso de producción es un sistema donde los trabajos pasan por dos etapas, donde en las primeras máquinas no existe restricción de ruta (Open Shop) y en la últimas máquinas del proceso los trabajos deben seguir el mismo orden de proceso (Flow Shop). Este problema ha sido
estudiado en la literatura únicamente por (Mejía & Bejarano, 2015) y (Dong et al.,
2013).
Dado que es un problema poco estudiado, se busca encontrar un método de programación de la producción que permita a las empresas con dicho sistema de producción ser más eficientes.
El sistema de producción que vamos a estudiar esta compuesto por una serie de estaciones de trabajo donde cada estación tiene entre 2 y 4 máquinas idénticas en paralelo y algunas estaciones tienen una única máquina; las estaciones de trabajo están divididas en dos etapas, en las primeras estaciones los trabajos se comportan como un Open Shop, ya que en éstas los trabajos no tienen restricción de ruta, es decir que la realización de las operaciones en cada máquina no tiene una restricción de orden o predecesor establecidas; y en las últimas estaciones de trabajo del proceso, los trabajos se comportan como un Flow Shop Flexible o línea de producción porque todas las ordenes deben seguir la misma ruta, es decir que todos los trabajos se procesan en el mismo orden.
El sistema descrito anteriormente se muestra gráficamente a continuación:
Ilustración 1 Sistema de producción (Mixed Shop)
Ø Elementos del sistema descrito: -‐ Máquinas
-‐ Trabajos
-‐ Series de operaciones
-‐ Estaciones en serie con máquinas en paralelo
-‐ Si una estación tiene máquinas en paralelo, todas las máquinas están en capacidad de procesar cualquier trabajo.
-‐ Cada trabajo debe ser procesado en una sola maquina. -‐ Cada máquina i puede procesar sólo un trabajo a la vez. -‐ Las máquinas operan sin fallas ni mantenimientos.
-‐ En el tiempo cero todas las máquinas están disponibles y vacías.
-‐ Se cuenta con el tiempo de proceso p!" de cada trabajo i en cada máquina j. Si un trabajo no debe ser procesado en alguna estación, su tiempo de proceso será cero.
-‐ Todos los tiempos de proceso son conocidos y constantes.
-‐ Dos operaciones del mismo trabajo no pueden ser procesadas simultáneamente, se procesa una operación a la vez.
-‐ Se hará la programación sin interrupciones, es decir, el proceso de un trabajo en una máquina no se puede interrumpir para que ingrese otro trabajo distinto a esa máquina. El único momento en el que el proceso de un trabajo es interrumpido es en el cambio de turno y descanso, estos cambios y tiempos de descanso son conocidos y constantes.
-‐ Los trabajos son independientes entre sí y están disponibles en el instante inicial.
-‐ No se tienen relaciones de precedencia entre trabajos. -‐ No ingresan nuevas órdenes (trabajos) al sistema.
Conociendo el sistema de producción, se planteará una solución para el problema X//𝐶!"#; donde X es la estructura del sistema (framework), que en este caso corresponde a un sistema Mixto (Mixed Shop); y 𝐶!"# es la función objetivo que busca minimizar el tiempo total de terminación (makespan).
Conceptos clave
Según (Pinedo, 2010)
o Trabajo: Operación que es realizada en una máquina y tiene una duración establecida
o Secuencia: Orden en el que se procesa una serie de trabajos en una máquina específica
o Tiempo de proceso: Tiempo requerido para procesar un trabajo en una máquina
o Máquinas idénticas en paralelo (Pm): En una estación de trabajo hay m
máquinas que son iguales, cada trabajo debe ser procesado únicamente en una de las m máquinas
o Flow Shop (Fm): Hay m máquinas en serie, cada trabajo debe procesarse
en todas las máquinas; todos los trabajos siguen la misma ruta y luego de ser procesado en una máquina pasa a la cola de la siguiente.
o Flow Shop Flexible (FFc): Hay c etapas en serie con un número de máquinas en paralelo idénticas en cada etapa. Cada trabajo debe ser procesado en una de las máquinas de cada etapa.
o Flow Shop Híbrido (FHc): Hay c etapas en serie con un número de máquinas en paralelo idénticas en cada etapa. No todos los trabajos visitan todas las etapas, un trabajo debe ser procesado únicamente en una de las máquinas de cada etapa si éste visita dicha etapa. El orden de las máquinas según la ruta de cada trabajo es el mismo para todos los trabajos.
o Job Shop (Jm): Es un taller con m máquinas, donde cada trabajo tiene una ruta predeterminada; es posible que exista recirculación, es decir, que un trabajo puede visitar una máquina más de una vez.
o Open Shop (Om): Hay m máquinas, aunque cada trabajo debe ser procesado en cada máquina, algunos tiempos de proceso serán cero. No hay restricciones respecto a la ruta de cada trabajo.
Estado del arte
En 1985 fue definido por Teruo Masuda, Hiroaki Ishii y Toshio Nishida el concepto de Mixed Shop Scheduling, donde se tiene un grupo de máquinas y dos subconjuntos de tipos de trabajados, un set de trabajos tipo Flow Shop y un set de trabajos tipo Open Shop. Este tipo de problemas también ha sido llamado Multi-‐ stage (MSS), ya que cada trabajo requiere operaciones en diferentes máquinas y adicionalmente se tienen tres tipos de trabajos (Flow, Job y Open) o shop puros; en
práctica un MSS es una mezcla de los shops puros. En la literatura, también es común encontrar los Mixed Shop Problems junto a los Group Shop Problems (GSS),
que se caracterizan por tener dos grupos de trabajos, donde todas las operaciones del grupo uno deben ser procesadas antes de las operaciones del grupo dos, pero el orden en el cual se realizan los trabajos entre grupos no tiene restricción.
En resumen, de acuerdo con (Liu & Ong, 2004), el término Mixed Shop Problem
es un caso general para los sistemas Multi-‐satage o Group Shop Problems.
Esta definición es la que más se ajusta al problema presentado, donde no tenemos subconjuntos de trabajos donde unos son Open Shop, otros Job Shop u otros Flow Shop, sino tenemos etapas del proceso donde todos los trabajos se comportan como un Om en las primeras estaciones y como un FHc en las siguientes estaciones, donde adicionalmente cada estación cuenta con máquinas idénticas en paralelo, es decir que tenemos un sistema de producción mixto, no trabajos mixtos en un sistema de producción.
Es por esto que se ha decido definir este sistema como una línea de producción bietápica mixta.
El problema descrito anteriormente, únicamente ha sido trabajo por dos autores: (Mejía & Bejarano, 2015) y (Dong et al., 2013).
Los primeros abordan el problema considerando más de tres máquinas, y resolvieron el problema aproximando el sistema a un Flow Shop, con base a la metodología de teoría de restricciones TOC, la metodología consiste en encontrar la máquina cuello de botella y programar los trabajos en dicha máquina según una regla de despacho seleccionada, y según el cuello de botella seguir con un algoritmo de lista antes y después de este, es decir, que las colas de trabajos en cada máquina operan de acuerdo a la disciplina FIFO (primero en entrar, primero en salir), y la permutación en la programación implica que el orden en el que los trabajos pasan por la máquina cuello de botella, se mantiene a través de todo el sistema.
En el Flexible Flow Shop donde se tienen m máquinas en paralelo en c niveles en serie, cada nivel tiene diferente número de máquinas en paralelo, algunos niveles (estaciones) sólo tienen una sola máquina, y cada trabajo se procesa en cada nivel.
En el gráfico2 se muestra lo descrito anteriormente, las flechas azules representan las máquinas en paralelo de una estación, las estaciones que no tienen máquinas en paralelo están compuestas por una sola máquina.
Ilustración 2 Flujo de proceso aproximado (Flexible Flow Shop)
En la metodología TOC, según Eli Goldratt los procesos multitarea, de cualquier ámbito, se mueven a la velocidad del paso más lento siendo éste el factor limitante denominado cuello de botella. El cuello de botella es un recurso cuya capacidad, en un periodo de tiempo, es igual o menor que la demanda que hay de el, es decir, que limita al sistema con relación a su objetivo.
Lo que se busca es incrementar el flujo de trabajo que fluye a través del sistema y para esto se deben identificar e intervenir los elementos que lo limitan, dichos elementos son conocidos como restricciones y estas son las que determinan el desempeño del sistema, adicionalmente son el punto de apalancamiento del mismo.
En este caso el departamento de producción busca acortar los plazos de entrega y la manera de acelerar el proceso es lograr que el cuello de botella trabaje hasta el límite de su capacidad.
Buscando el balanceo de la demanda de los clientes con la capacidad de la planta, los autores desarrollaron una herramienta en Visual Basic para Microsoft Excel que ayuda a tomar la decisión aproximada sobre cuánto producir y qué recursos se necesitan para cubrir la demanda en un horizonte de planeación. Realizan la unión entre el pronóstico en firme de ventas y la planeación de los recursos.
Con la herramienta desarrollada y diseñada con base a TOC calcularon la programación de las máquinas de la zona mecánica que es la que determina el flujo de materiales en la planta.
La utilización de dicha herramienta permite a la empresa obtener los tiempos estimados de cada órden de producción, y determinar con certeza qué ordenes de produccion pueden ser ejecutadas mes a mes.
Y (Dong et al., 2013), abordan el problema de dos etapas, donde la primera es un Open Shop que tiene dos máquinas, y la segunda etapa un Flow Shop de una sola máquina; dan solución al problema mezclando diferentes algoritmos óptimos, como son la regla de Johnson y el algoritmo de Gonzales y Sahni, para el Open Shop de dos máquinas. Obtienen buenas soluciones pero para problemas de pequeña escala donde la primera etapa considera únicamente dos máquinas y la segunda etapa una máquina; y no se consideran máquinas en paralelo.
Hay otro problema parecido al propuesto, es de dos etapas pero la primera es un Flow Shop y la segunda Open Shop; éste también ha sido poco estudiado, en la literatura se encuentra el trabajo de (Su et al., 2005), que fue inspirado por las industrias que siguen en un principio una línea de ensamble tipo Flow Shop y después pasan a estaciones de control de calidad siguiendo un Open Shop; los autores presentan dos casos, en el primero la primera etapa tiene una máquina y la segunda etapa dos máquinas; y en el segundo caso se tienen configuraciones entre 2 y 10 máquinas en todo el sistema. Los autores dan solución a este problema por medio de tres estrategias distintas: programación entera, Branch and Bound y una heurística basada en la heurística CDS (desarrollada por Campbell, Dudek y Smith) y la regla LTPT (Tiempo de procesamiento más largo primero). Las instancias para probar las soluciones fueron creadas por ellos mismos.
Por último, en la literatura también se encuentra bajo el nombre de Mixed Shop un problema diametralmente distinto al propuesto, donde no se tiene un sistema mixto, sino que los trabajos son mixtos, es decir, cada trabajo sigue la secuencia en las máquinas de acuerdo al sistema que sigue (Flow, Job u Open Shop), cada trabajo es un shop puro, por ejemplo: el trabajo1 sigue un Open Shop, el trabajo2
sigue un Job Shop y los trabajos 3 y 4 siguen un Flow Shop; Shakhlevich, et al. (2000), muestra un conglomerado de varios resultados de este problema.
Otros autores que trabajaron ambientes con trabajos mixtos fueron Masuda et al. (1985) quienes propusieron un algoritmo polinomial O(n log n) que fue mejorado por Strusevich (1991) quien desarrolló un algoritmo O(nO+nj log nj),
ambos para solucionar el problema para dos máquinas donde se tienen trabajos mixtos, unos son Open Shop y otros Job Shop.
El problema fue extendido a tres máquinas por Shakhlevich et al. (1999), desarrollando un algoritmo polinomial y pseudopolinomial, concluyendo que éstos funcionaban únicamente para casos pequeños de no más de tres máquinas.
Estos algoritmos se desarrollaron con base a los existentes para shop puros de dos máquinas, como son el de Johnson (1954) en el Fm y el de Gonzalez & Sahni (1976) para el Om.
Liu et al., (2002) también utilizaron los algoritmos Enfriamiento Simulado (Simulated Anneling), Búsqueda Tabú (Tabu Search) y Umbral de aceptación (Threshold accepting) para 10 y 15 máquinas, con 10, 15 y 20 trabajos Jm y 5, 10, 15 y 20 trabajos Om; encontrando muy buenas soluciones que se aproximaban a la cota inferior establecida para ese tipo de problemas en algunas instancias evaluadas. Liu et al. (2005), probaron sus algoritmos con las instancias de
whizzkids97 para GSS, y encontraron que la solución más eficiente y rápida es la Búsqueda Tabú.
Blum & Sampels, (2004) desarrollaron una aproximación Max-‐Min de colonia de hormigas que utiliza una guía de un programa sin retrasos para construir las soluciones las cuales empleaban búsqueda local de caja negra. Compararon éste algoritmo con una adaptación de la búsqueda local Tabú. Encuentran que su algoritmo funciona particularmente bien en las instancias para Open Shop, y mejoran la cota inferior encontrada para 15 de las 28 instancias whizzkids97 probadas.
Koulamas & Kyparisis, (2015) dan solución al problema mixto MSS, donde un subconjunto de trabajos dado debe ser procesado en un Flow Shop mientras que los trabajos restantes pueden ser procesados como un Open Shop, por medio de un
algoritmo heurístico; éste, basado en un algoritmo exacto que soluciona el problema para Open Shop de tres máquinas. Concluyen que el uso del algoritmo heurístico soluciona el problema mixto únicamente para tres máquinas en un tiempo polinomial.
Rossi, et al., (2015) desarrollaron un algoritmo constructivo O(recursos x trabajos2) y formalizaron la solución por medio de una representación de grafo
disyuntivo, su cotribución se basa en tener en cuenta que las operaciones se pueden translapar.
III.
Objetivos
Objetivo general
Proponer un método de solución para la programación de una línea de producción mixta de dos etapas donde la primera es Open Shop y la segunda es Flow Shop.
Objetivos específicos
-‐ Desarrollar la programación de la línea de producción mixta bietápica Open Flow, con tres alternativas de solución.
-‐ Comparar las soluciones entre ellas mismas, determinar cuál es la mejor; y compararla con la solución encontrada en la literatura.
-‐ Aplicar el algoritmo propuesto en un caso real en la industria metalmecánica.
IV.
Estrategias de solución
Solución exacta
El problema se podría solucionar por medio de un método exacto como programación lineal, pero este método no se va a ejecutar dado que como lo demuestran Dong et al. (2013), el problema que se esta solucionando es considerado NP-‐hard.
Una estrategia de solución es resolver cada etapa del sistema independientemente, primero el Open Shop y luego el Flow Shop, esta estrategia no garantiza el óptimo para el problema mixto y en futuras investigaciones se
debería considerar plantear un solo modelo que considere las dos etapas. A continuación se muestra cuál es el óptimo para cada etapa por separado, sin embargo dada la complejidad del problema, se va a considerar y proponer dar solución al problema por medio de un método heurístico.
Formulación matemática
Ø Primera Etapa (Om): Adaptado de Naderi et al. (2011)
-‐ Parámetros, conjuntos y notaciones:
NI: Número de máquinas.
NJ: Número de trabajos.
I: Conjunto de estaciones, indexado en i,k. I = 0,…,NI
J: Conjunto de trabajos, indexado en j,l. I = 0,…,NJ 𝑂!,! = Operación del trabajo j en la máquina i. 𝑝!,! =𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑑𝑒 𝑙𝑎 𝑜𝑝𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑗,𝑖.
𝑀=𝑁ú𝑚𝑒𝑟𝑜 𝑔𝑟𝑎𝑑𝑒 𝑀.
-‐ Variables:
𝑥!,!,!=𝑉𝑎𝑙𝑜𝑟 𝑑𝑒 1 𝑠𝑖 𝑂!,! 𝑒𝑠 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑎 𝑑𝑒𝑠𝑝𝑢é𝑠 𝑑𝑒 𝑂!,!,.0 𝑑.𝑙.𝑐. 𝑖,𝑘 𝜖 𝐼 \𝑘<>𝑖 ,𝑖∈ 1,…,𝑁𝐼−1 ,𝑙>𝑖
𝑦!,!,!=𝑉𝑎𝑙𝑜𝑟 𝑑𝑒 1 𝑠𝑖 𝑂!,! 𝑒𝑠 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑎 𝑑𝑒𝑠𝑝𝑢é𝑠 𝑑𝑒 𝑂!,!.0 𝑑.𝑙.𝑐. 𝑗,𝑙 𝜖 𝐽\𝑗<>𝑙 ,𝑗∈ 1,…,𝑁𝐽−1 ,𝑘>𝑗
𝐶!,!=𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑐𝑖ó𝑛 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖.
-‐ Restricciones:
𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜: 𝑀𝑖𝑛 𝐶!"#
𝑠.𝑎:
𝐶!,!−𝑝!,!+𝑀 1−𝑥!,!,! ≥𝐶!,! ∀ 𝑖<𝑘,𝑗 (1)
𝐶!,!−𝑝!,!+𝑀 1−𝑥!,!,! ≥𝐶!,! ∀ 𝑖<𝑘,𝑗 (2)
𝐶!,!−𝐶!,!+𝑀 1−𝑦!,!,! ≥𝑝!,! ∀ 𝑗<𝑙,𝑖 (3)
𝐶!,!−𝐶!,!+𝑀𝑦!,!,!≥𝑝!,! ∀ 𝑗<𝑙,𝑖 4
𝐶!"#≥𝐶!,! ∀ 𝑗,𝑖 (5)
𝑥!,!,!∈ 0,1 ∀ 𝑖,𝑗∈ 1…𝑚−1 ,𝑘>𝑖 (6)
𝑦!,!,!∈ 0,1 ∀ 𝑖,𝑗∈ 1…𝑛−1 ,𝑙>𝑗 (7)
Las restricciones (1) y (2) representan las restricciones de ruta , y las (3) y (4) hacen referencia a la secuenciación de las máquinas. La restricción (5) es la función objetivo, donde el makespan debe ser mayor o igual a todos los tiempos de terminación del proceso. Y por último las restricciones (6) y (7) hacen referencia a la naturaleza de las variables.
Ø Segunda Etapa: Adaptado de Jungwattanakit, J., et al (2008)
- Parámetros, conjuntos y notaciones:
𝑡:index de las estaciones. t = 1,…,k
I:Conjunto de máquinas,indexado en i = 1,…, 𝑚!
J:Conjunto de trabajos,indexado en j, l = 1,…, 𝑛
𝑚! = Número de máquinas idénticas en paralelo en la estación 𝑡
𝑂!! =Tiempo de operación del trabajo 𝑗 en la estación 𝑡
𝑎!! =Tiempo cuando la máquina 𝑖 en el estado 𝑡 esta disponible
𝑀 = Número grande M
- Variables:
𝐶!"#: Tiempo de terminación del último trabajo que deja el sistema makespan
𝑋!"#! = 1 si el trabajo 𝑗 es programado inmediatamente antes del trabajo 𝑙
en la máquina 𝑖 en la estación 𝑡,y 0 dlc.
𝐶!! =Tiempo de terminación del trabajo 𝑗 en estación 𝑡
- Restricciones:
𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜: Minimizar 𝐶!"#
𝑠.𝑎:
𝑋!"#! !
!!!
!!
!!!
=1 ∀ 𝑡,𝑙 1
𝑋!"#! !!!
!!! !!
!!!
=1 ∀ 𝑡,𝑗 2
𝑋!!!!
!!!
!!!
=1 ∀ 𝑡,𝑖 3
𝑋!"!(!!!) !
!!!
=1 ∀ 𝑡,𝑖 (4)
𝑋!""! =0 ∀ 𝑡,𝑖,𝑗 (5)
𝑋!"#!
!
!!!
= 𝑋!"#! !!!
!!!
∀ 𝑡,𝑖,𝑙 (6)
𝑋!"#! ∈ 0,1 ∀ 𝑡,𝑖,𝑗,𝑙;𝑗=0…𝑛 ,𝑙 =1…𝑛+1 (7)
𝐶!!− 𝐶
!! ≥𝑂!!+ 𝑋!"#! !!
!!!
−1 𝑀 ∀ 𝑡,𝑗,𝑙 ; 𝑗≠𝑙 (8)
𝐶!!≥0 ∀ 𝑡,𝑗 (9)
𝐶!!−𝐶
!!!!≥ 𝑋!"#!
!
!!!
!!
!!!
+𝑂!! ∀ 𝑡,𝑗 (10)
𝐶!!=𝑟! ∀ 𝑗 (11)
𝐶!! ≥ 𝑎𝑖𝑡𝑋 !!!!
!!
!!!
+𝑂!! ∀ 𝑡,𝑗 (12)
𝐶!"# ≥ 𝐶!! ∀ 𝑗 (13)
La función objetivo es realizar una programación de trabajos que minimice el makespan. Las restricciones (1) a (7) aseguran que la programación parcial en cada máquina en cada estación sea factible, tenemos 𝑋!!!! = 1 si el trabajo l es
secuenciado como el primer trabajo en la máquina i en la estación t, y 𝑋!"!(!!!) = 1
si el trabajo j es secuenciado como el último trabajo en la máquina i en la estación
t. Las restricciones (1) y (2) aseguran que solo un trabajo se le asigna a cada posición en la secuencia en cada estación. El conjunto de restricciones (3) y (4) aseguran que solo un trabajo va a ser asignado en la primera y en la última posición de la secuencia, respectivamente, en cada máquina y en cada estación. La restricción (5) asegura que un trabajo no va a regresar a una estación t, después que ha terminado su proceso en esa estación. La restricción (6) fuerza a construir una secuencia consistente en todas las estaciones. La restricción (7) define la naturaleza binaria de las variables. El conjunto de restricciones de la (8) a la (12) encuentran el tiempo de terminación de cada trabajo; la restricción (8) establece que si el trabajo j y l son programados en la misma máquina en una estación en particular con el trabajo j programado antes que el trabajo l, entonces el trabajo j tiene que completar su proceso antes de que el trabajo l comience. Esta restricción
fuerza a que el trabajo l siga al trabajo j por al menos el tiempo de proceso del trabajo l, el valor grande M es una constante tan grande como la suma todos los tiempos de proceso de los trabajos. La restricción (9) asegura que el tiempo de terminación de cada trabajo es cada estación es un valor no negativo. La restricción (10) especifica las restricciones de precedencia de los trabajos diciendo que un trabajo no puede empezar su proceso en la siguiente estación (t+1) antes que éste termine en la estación actual (t). La restricción (11) aplica únicamente a la primera estación, diciendo que un trabajo no puede empezar su proceso en la primera estación antes de su fecha de lanzamiento (release date). La restricción (12) aplica solamente a trabajos que son asignados a la primera secuencia en cada máquina, es decir, que el trabajo no puede empezar a ser procesado antes de que la máquina este disponible. Y el conjunto de restricciones (13) enlaza la variable de decisión terminación total de la programación (makespan ).
Método de solución aproximado : Algoritmo Genético
Las metaheurísticas son entendidas como un conjunto de algoritmos de búsqueda que se componen de soluciones codificadas, de acuerdo a la estructura del problema, a la cual se le realizan cambios hasta un criterio de parada en el cual se obtiene una solución final. Estas pueden ser trabajadas con algoritmos puros, por ejemplo: Búsqueda local y algoritmos genéticos (GA); o pueden ser trabajados con algoritmos híbridos, los cuales son entendidos como la aplicación de las principales ideas de algoritmos puros combinadas en un mismo algoritmo. Dentro de esta rama encontramos algoritmos especializados en búsquedas rápidas, como los son los algoritmos genéticos. (Nikolaev & Jacobson, 2010).
Los algoritmos genéticos propuestos en 1975 por J. H. Holland, como su nombre lo indica son algoritmos basados en el comportamiento de la genética. El uso de estos algoritmos se ve representado en múltiples elementos como lo son: Cromosomas que representan las soluciones al problema; Poblaciones que representan diferentes conjuntos de soluciones al problema; Mutación como el cambio en los cromosomas o solución codificada (Glover & Kochenberger, 2003). La utilización de estos algoritmos cuenta con tres aspectos importantes: (1)
definición de la función objetivo, (2) definición de la representación genética de la solución y (3) codificación del problema en términos del algoritmo genético.
Los algoritmos genéticos (AG) han demostrado ser un método de optimización con algunas ventajas respecto de métodos convencionales (Hasançebi & Erbatur, 2000). Un AG mantiene un conjunto de soluciones potenciales en cada generación. Su popularidad se puede atribuir a la aplicación de problemas de optimización continuos y discretos, así como su naturaleza probabilística y menor probabilidad de quedar atrapado en óptimos locales que se presentan en muchos problemas prácticos de optimización (Javadi et al., 2005).
Dadas las características descritas anteriormente, para resolver el problema de programación de una línea de producción bietápica mixta propondremos tres métodos de solución con base en un algoritmo genético, todos los elementos del algoritmo genético se explican a continuación para la primera propuesta de solución que hemos llamado GA, en las otras dos propuestas de solución se explican los cambios respecto a la primera propuesta, dichos cambios son evidentes en la codificación del cromosoma y en la evaluación del makespan.
Propuesta de solución 1: GA
En esta primera propuesta de solución se toman las dos etapas en las que se divide el problema (Open Shop y Flow Shop), y se resuelven por separado, es decir, se encuentra el makespan para la primera etapa, luego para la segunda, y el makespan total es la suma de las soluciones de cada etapa.
Ilustración 3. Propuesta de solución 1
A continuación se describen los elementos y funcionamiento del algoritmo genético propuesto.
Representación de los cromosomas
La representación del cromosoma es el primer paso y uno de los aspectos más importantes de un AG. Algunas representaciones pueden llevar a soluciones buenas, mientras que otras no convergen o consumen demasiado tiempo de computación (Renner & Ekárt, 2003). Por esto, para resolver el problema mixto, se proponen dos esquemas de representación, uno para la primera etapa (Open Shop) y otro para la segunda etapa (Flow Shop).
Para programar la secuencia en la primera etapa (Open Shop) se utiliza una representación basada en la operación donde se tiene un esquema de n x m de acuerdo a las máquinas que visitan los trabajos, entonces el cromosoma contiene n x m posiciones o genomas y cada posición contiene el número del trabajo que se repite m veces, obteniendo la secuencia en la que cada trabajo visita cada máquina que pertenece a su ruta.
A continuación se presenta una ilustración de la representación del cromosoma basado en operación, suponiendo que se tienen tres trabajos y cada trabajo consta de tres operaciones, y cada operación se procesa en una máquina, la primera operación se procesa en la máquina 1, la segunda operación en la máquina 2 y la tercera operación en la máquina 3:
2,1 1,2 1,1 3,3 2,3 2,2 3,2 1,3 3,1
Ilustración 4. Representación del cromosoma basado en la operación
Esta solución se puede representar por medio del diagrama de Gantt, entonces supongamos que se tienen los siguientes tiempos de proceso:
Tabla 1. Ejemplo tiempos de proceso trabajo/máquina
Trabajo/Máquina
1
2
3
1
3 3 12
1 5 33
2 3 3
M1 2
1 3 M2 1 3 2 M3 3 2 1
Ilustración 5. Diagrama de Gantt para la representación del cromosoma basado en operación
Para programar la secuencia en la segunda etapa (Flow Shop) el esquema de representación utilizado es basado en el trabajo, donde el cromosoma tiene m posiciones y representa la secuencia de procesamiento de los trabajos. A continuación se muestra una representación de éste cromosoma para nueve trabajos:
3 6 1 4 2 9 7 5 8
Ilustración 6. Representación del cromosoma basado en el trabajo
Población inicial
Los algoritmos genéticos se caracterizan por la evolución de una población inicial (conjunto de posibles soluciones) que lleva a mejores soluciones por medio de las iteraciones, permitiendo a los individuos (cromosomas) más aptos reproducirse y dejar que los individuos menos aptos mueran.
Para la generación de la población inicial en la primera etapa se utilizó el algoritmo SPT, ya que éste, domina en comparación a otras reglas de despacho, brindando así una excelente solución inicial (Ruíz et al., 2006). Otros autores cómo M. Ciavotta, R. Ruíz, F. Sivrikaya, H. Urligs, M. Seido, entre otros, coinciden en que la mejor solución utilizando reglas de despacho se obtiene por SPT, y en sus estudios utilizan dicho algoritmo para obtener la solución inicial factible. Adicionalmente en el Anexo 1 se encuentra que la regla SPT genera mejores soluciones que la regla LPT, y se ratifica la decisión de utilizar la regla SPT para generar la solución inicial. De esta solución inicial se realizan mutaciones sucesivas hasta completar la población inicial (valor del parámetro POPSIZE), dado que las mutaciones son hechas de una solución inicial factible se garantiza que todas las soluciones de la población son factibles.
La primera población inicial del Flow no tiene en cuenta la programación de la primera etapa pero en la evaluación el makespan se evalúa teniendo el punto de partida de la programación de la primera. La población inicial de la segunda etapa también se hace por SPT.
Estrategia de selección de cromosomas padres
La selección de padres se realiza por torneo, que consiste en tomar dos cromosomas de la población inicial aleatoriamente, de estos se elige como primer padre el cromosoma con menor makespan; después se seleccionan otros dos cromosomas aleatoriamente y se selecciona al segundo padre de la misma forma. Este torneo se realiza hasta completar la cantidad de hijos o reproducciones establecida (valor del parámetro CROSSOVERS). En la estrategia de selección de padres por torneo se quedan como población para la siguiente generación, los cromosomas que tienen la mejor función de adaptación fitness, es decir, el menor makespan.
Reproducción de hijos: Operadores genéticos
Los operadores genéticos utilizados en nuestro algoritmo genético son
recombinación (crossover) y mutación.
Como estrategia de intensificación utilizamos el operador de recombinación
Ordered Crossover (OX) que de acuerdo con (Ruíz et al., 2006) y (Seido et al., 2008), es uno de los operadores con los que se obtienen mejores resultados. Éste operador consiste en seleccionar aleatoriamente una sección de cada padre y copiarla en el hijo conservando las posiciones, para cada hijo empezando en el último punto de corte del segundo padre, los genomas son copiados en el mismo orden omitiendo los genes ya presentes, si se alcanza el fin de la secuencia, entonces se va al principio.
En esta primera propuesta de solución se realiza el proceso de recombinación para cada etapa (Open Shop y Flow Shop) por separado.
Como estrategia de diversificación utilizamos la mutación, intercambiando genes entre cromosomas; la posición del gen a intercambiar se realiza de forma aleatoria. La mutación se realiza cuando ya se completaron todas las
reproducciones de acuerdo al parámetro CROSSOVERS establecido, se realizan mutaciones de los cromosomas de esa población según la probabilidad P_MUTATE. La mutación se realiza en cada etapa por separado.
Después de la mutación se obtiene una cantidad de cromosomas que varia de acuerdo a la probabilidad de mutación (P_MUTATE), de todas estas soluciones se seleccionan las que tengan menor Makespan y tantas como el parámetro POPSIZE indique.
Evaluación de individuos
La probabilidad de sobrevivencia de un individuo está determinada por su condición de aptitud (fitness), mediante la evolución los más aptos son seleccionados. Los individuos con mejor fitness se escogen con más frecuencia que los individuos con peores valores. (Salazar & Sarzuri, 2015). En este caso, la función fitness se asocia al objetivo de minimizar el tiempo total de terminación de la programación de los trabajos o Makespan.
La secuencia de trabajos para la primera etapa se obtiene partiendo de que todos los trabajos están disponibles en el tiempo cero, llegada a esa primera solución se empieza a iterar el algoritmo genético en la segunda etapa, pero, teniendo en cuenta que cada trabajo tiene un tiempo de disponibilidad diferente para esta segunda etapa de acuerdo a la secuencia hecha en la primera etapa, ya que el trabajo esta disponible desde el momento en que sale de la etapa Open Shop; es decir, se tienen en cuenta los tiempos en los que se ocuparon las máquinas de acuerdo al tiempo en el que el trabajo esta disponible para entrar al sistema Flow Shop, esto se ve reflejado en la función fitness ya que el makespan tiene en cuenta desde qué momento el trabajo puede entrar a la segunda etapa del sistema.
La evaluación fitness se hace para cada nuevo cromosoma, se va comparando con la mejor solución actual y se reemplaza cuando se encuentra una solución mejor.
Criterio de detención
Pseudo-‐código Algoritmo Genético
Algoritmo Genético (P_INICIAL, MAX_ITER, CROSSOVERS, P_MUTATE, POPSIZE)
input: P_INICIAL lista de genomas de la población inicial MAX_ITER número máximo de iteraciones
CROSSOVERS número de parejas a reproducir (por generación) P_MUTATE probabilidad de mutar de cada individuo
POPSIZE tamaño de la población output: mejor_solución genomas
mejor_makespan ← ∞
mejor_solución ← Cromosoma vacío P ← P_INICIAL
for i ← 1 a MAX_ITER: for j ← 1 a CROSSOVERS:
g1a ← genoma aleatorio de P g1b ← genoma aleatorio de P g2a ← genoma aleatorio de P g2b ← genoma aleatorio de P
g1 ← genoma con el makespan más bajo entre g1a y g1b g2 ← genoma con el makespan mas bajo entre g2a y g2b Hijos ← crossover (g1,g2)
agregar elementos de Hijos a P
por cada genoma g en P:
if numero aleatorio ∈ [0,1) < P_MUTATE: agregar mutación de g a P
por cada genoma g en P: ms ← makespan de g if ms < mejor_makespan: mejor_solución ← g mejor_makespan ← ms
conservar de P los POPSIZE elementos de makespan mas bajo return mejor_solución
Pseudo-‐código algoritmo Crossover
algoritmo crossover(G1,G2) input: G1, G2 cromosomas output H1, H2 cromosomas
n ← numero de genes en G1
aleatorio1 ← número aleatorio en ∈ [0,n) aleatorio2 ← número aleatorio en ∈ [0,n-1)
inicio ← mínimo entre aleatorio1 y aleatorio2 fin ← máximo entre aleatorio1 y aleatorio2
H1 ← lista de genes vacía H2 ← lista de genes vacía
agregar a H1 elementos en G1 desde la posición inicio a fin agregar a H2 elementos en G2 desde la posición inicio a fin
for i ← 0 a n-1:
posición ← modulo(fin + i,n)
gen1 ← gen en posición de genoma G1 gen2 ← gen en posición de genoma G2 if H1 no contiene gen2:
añadir gen2 al final de H1 if H2 no contiene gen1: añadir gen1 al final de H2
rotar genes en H1 inicio posiciones rotar genes en H2 inicio posiciones return H1,H2
Propuesta de solución 2: GA_SPT
En esta segunda propuesta de solución se realizan el Algoritmo Genético con los mismos pasos descritos en la propuesta de solución 1 pero únicamente para la primera etapa Open Shop; y para la segunda etapa se ordenan los trabajos usando la regla de despacho SPT (los menores tiempos de procesamiento primero) y así determinar la secuencia de los trabajos en la segunda etapa (Flow Shop). Para realizar la secuencia de trabajos SPT se ordenan los trabajos según el tiempo total de las operaciones en la etapa dos pero teniendo en cuenta el tiempo en el que va a estar disponible para entrar de acuerdo al tiempo de salida de la primera etapa.
Ilustración 7. Propuesta de solución 2
Propuesta de solución 3: GA_Delivery
En esta tercera propuesta de solución se realizan los mismos pasos descritos en la propuesta de solución 1 para la primera etapa Open Shop, es decir se realiza el Algoritmo Genético únicamente en la primera etapa; y en la segunda etapa Flow Shop se utiliza el algoritmo de lista FOFI (primero en salir, primero en entrar), es decir que en la etapa dos (Flow Shop), el primer trabajo que sale de la etapa uno es el primero que entra a la etapa dos.
A diferencia de las anteriores propuestas de solución, en el AG_Delivery se tiene en cuenta el makespan total de la secuencia en el que entrarían los trabajos a la segunda etapa; no se minimiza el makespan en cada etapa por separado, sino se tiene en cuenta el orden de salida para mejorar la función objetivo en todo el sistema. En esta propuesta de solución AG_Delivery, no importa cuanto se va a demorar el trabajo en la etapa dos, sólo importa el tiempo de salida de la etapa uno ya que, el trabajo entra a la etapa dos tan pronto haya salido de la etapa uno de acuerdo a la disponibilidad de las máquinas en la segunda etapa.
Ilustración 8. Propuesta de solución 3
V.
Resultados experimentales
Los resultados se obtuvieron utilizando un computador con las siguientes características: Processor AMD Phenom(tm) II X3 720 Processor 2.80 GHz, Memoria de 8 GB.
Uso de instancias académicas CHR
Para probar los métodos se crearon unas instancias académicas basadas en las de Carlier, Heller y Reeves que se encuentran en la librería: http://people.brunel.ac.uk/~mastjjb/jeb/orlib/wtinfo.html, en el archivo: