24
1 INTRODUCCIÓN El establecimiento de la nueva Junta Directiva del Banco de la República en el año 2017 acarreo retos importantes para las plantas industriales del banco, especialmente en el lineamiento correspondiente a mejorar en el mediano plazo la eficiencia de sus operaciones, garantizando la producción y abastecimiento de las espe- cies monetarias de forma autónoma en el país según lo establece el Plan Estratégico 2017-2021 (Banco de la República, 2017). Con el fin de cumplir estos objetivos, las directivas de la Imprenta de Billetes (IB) han eje- cutado en los últimos años planes de renovación de equipos y entrenamiento de su personal, sin embargo, la tarea de programas las actividades principales de la producción presentan un reto importante dada la cantidad de variables involucradas. El esquema general de producción que utiliza la IB se denomina Hybrid FlowShop. Es así, que cada trabajo es procesado en una secuencia de etapas definida y en cada etapa se tiene una o más maquinas en paralelo disponibles, conocido por ser un problema de tipo NP-Hard (Emmons & Vairaktarakis, 2013). Actualmente, el método para la programación de las actividades de producción se realiza de forma manual y depende de la experiencia del Jefe de Producción, el cual, define en qué máquinas y en qué momento se deben procesar los diferentes baches para un horizonte de programación de un año y que son plasmados gráficamente en un dia- grama de Gantt. En la Ilustración 1, se observa un ejemplo de esta programación, en el eje horizontal tenemos el horizonte de programación expresado en meses, dividido en cuatro semanas cada uno, y en el eje vertical tenemos las maquinas ordenadas de acuerdo con la secuencia de producción. Utilizando este método, el tiempo aproximado de generar una nueva programación esta entre tres y cuatro semanas, y de aquí se derivan decisiones importantes sobre la planeación de la producción, por ejemplo, la contratación, compra y logística de materias primas e insumos, la programación de actividades de mantenimiento preventivo, la programación de proyectos de instalaciones o actualizaciones de los equipos de la planta, entre otros. METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN DE LA PLANTA DE LA IMPRENTA DE BILLETES DEL BANCO DE LA REPÚBLICA Edward Andrés Perilla Sánchez [email protected] Departamento de Ingenieria Industrial Universidad de los Andes. Bogotá, Colombia Enero de 2021 Resumen Este trabajo plantea la investigación e implementación de tres metaheurísticas que permiten resolver el problema de programación y secuenciación de trabajos de la planta de producción de la Imprenta de Billetes del Banco de la República, el cual, funciona bajo el sistema Hybrid Flowshop with Mis- sing Operations teniendo como objetivo minimizar el tiempo total de completar todos los trabajos o Makespan, conocido por ser un problema de tipo NP-Hard. Para este propósito, se comparan las soluciones de las metaheurísticas Simulated Annealing (SA), Greedy Randomized Adapttive Search Procedure (GRASP) y Biased Random-Keys Genetic Algorithm utili-zando el mismo procedimiento de scheduling basado en el algoritmo NEH. Igualmente, se muestran los resultados computacionales respecto a las soluciones de un modelo exacto para evaluar su eficiencia en 30 instancias generadas aleatoriamente. Keywords: Hybrid FlowShop, Missing Operations, Scheduling, Metaheuristics, Makespan

METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

1 INTRODUCCIÓN

El establecimiento de la nueva Junta Directiva del Banco de la República en el año 2017 acarreo retos importantes para las plantas industriales del banco, especialmente en el lineamiento correspondiente a mejorar en el mediano plazo la eficiencia de sus operaciones, garantizando la producción y abastecimiento de las espe-cies monetarias de forma autónoma en el país según lo establece el Plan Estratégico 2017-2021 (Banco de la República, 2017). Con el fin de cumplir estos objetivos, las directivas de la Imprenta de Billetes (IB) han eje-cutado en los últimos años planes de renovación de equipos y entrenamiento de su personal, sin embargo, la tarea de programas las actividades principales de la producción presentan un reto importante dada la cantidad de variables involucradas.

El esquema general de producción que utiliza la IB se denomina Hybrid FlowShop. Es así, que cada trabajo

es procesado en una secuencia de etapas definida y en cada etapa se tiene una o más maquinas en paralelo disponibles, conocido por ser un problema de tipo NP-Hard (Emmons & Vairaktarakis, 2013). Actualmente, el método para la programación de las actividades de producción se realiza de forma manual y depende de la experiencia del Jefe de Producción, el cual, define en qué máquinas y en qué momento se deben procesar los diferentes baches para un horizonte de programación de un año y que son plasmados gráficamente en un dia-grama de Gantt. En la Ilustración 1, se observa un ejemplo de esta programación, en el eje horizontal tenemos el horizonte de programación expresado en meses, dividido en cuatro semanas cada uno, y en el eje vertical tenemos las maquinas ordenadas de acuerdo con la secuencia de producción. Utilizando este método, el tiempo aproximado de generar una nueva programación esta entre tres y cuatro semanas, y de aquí se derivan decisiones importantes sobre la planeación de la producción, por ejemplo, la contratación, compra y logística de materias primas e insumos, la programación de actividades de mantenimiento preventivo, la programación de proyectos de instalaciones o actualizaciones de los equipos de la planta, entre otros.

METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN DE LA PLANTA DE LA IMPRENTA DE BILLETES

DEL BANCO DE LA REPÚBLICA

Edward Andrés Perilla Sánchez [email protected]

Departamento de Ingenieria Industrial Universidad de los Andes. Bogotá, Colombia

Enero de 2021

Resumen

Este trabajo plantea la investigación e implementación de tres metaheurísticas que permiten resolver

el problema de programación y secuenciación de trabajos de la planta de producción de la Imprenta

de Billetes del Banco de la República, el cual, funciona bajo el sistema Hybrid Flowshop with Mis-

sing Operations teniendo como objetivo minimizar el tiempo total de completar todos los trabajos o

Makespan, conocido por ser un problema de tipo NP-Hard. Para este propósito, se comparan las

soluciones de las metaheurísticas Simulated Annealing (SA), Greedy Randomized Adapttive Search

Procedure (GRASP) y Biased Random-Keys Genetic Algorithm utili-zando el mismo procedimiento

de scheduling basado en el algoritmo NEH. Igualmente, se muestran los resultados computacionales

respecto a las soluciones de un modelo exacto para evaluar su eficiencia en 30 instancias generadas

aleatoriamente.

Keywords: Hybrid FlowShop, Missing Operations, Scheduling, Metaheuristics, Makespan

Page 2: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Ilustración 1.Método de programación actual.

El cliente principal de la IB es el Departamento de Tesorería (DTE) quien tiene como objetivo principal la distribución del efectivo en todo el país e informar regularmente los cambios en sus necesidades de billetes a producir anualmente para cada denominación o espécimen monetario. En consecuencia, la IB debe reprogramar varias actividades por los cambios en los tamaños de los baches de producción. Es importante mencionar que, en los últimos años la demanda de billetes ha ido aumentando de forma sostenida. En la Ilustración 2, se puede observar la cantidad de billetes producidos anualmente por la IB desde el año 1985 y que para el año 2019 alcanza su máximo histórico en 1.210 millones de piezas (Banco de la República, 2020). Todo lo anterior, refleja la necesidad de utilizar herramientas que permitan explorar diferentes programaciones que satisfagan con una mayor eficiencia las necesidades del DTE y en tiempos más cortos. En parte teniendo en cuenta que a pesar de que la IB posee sistemas como SAP que le ayudan a la gestión de sus inventarios, no se cuenta con solvers o algoritmos que le ayuden a resolver el problema de programación de una forma más inteligente e integrada.

Ilustración 2. Producción IB 1985-2019

Ante este reto, esta investigación propone el desarrollo de tres metaheurísticas para resolver el problema de programación de producción de la IB, evaluado su eficiencia contra el método exacto en la solución de 30 instancias generadas aleatoriamente. El documento se encuentra organizado de la siguiente manera:

• En la Sección 2 se especifican los objetivos de la investigación. • En la Sección 3 se define el sistema de producción de la IB. • En la Sección 4 contiene una revisión del estado del arte del problema. • La Sección 5 se define matemáticamente el problema. • La Sección 6 establece los mecanismos de Búsqueda Local y la heurística usada para la programación de

producción. • La Sección 7 define cada metaheurística y una breve explicación de la generación de instancias. • La Sección 8 se da una breve explicación de la generación de instancias • La Sección 9 se enseña la calibración de los parámetros de las implementaciones. • La Sección 10 muestra el análisis de los resultados obtenidos. • La Sección 11 establece las conclusiones de la investigación y recomendaciones para el futuro.

Page 3: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

2 OBJETIVOS DE LA INVESTIGACIÓN

Teniendo en cuenta el Plan Estratégico 2017-2021 establecido por el Banco de la República en el cual se busca una mejora en la eficiencia de sus plantas de producción, haciendo uso de herramientas que mejoren la toma de decisiones y permitan responder de forma acertada las necesidades del DTE en términos de efectivo en el país, el objetivo principal de la investigación se definió como:

• Diseñar e implementar tres metaheurísticas que permitan solucionar el problema de la programación de

producción de la Imprenta de Billetes del Banco de la Republica.

Para alcanzar este objetivo, se han definido los siguientes objetivos secundarios:

• Caracterizar el sistema FlowShop de producción de la Imprenta de Billetes del Banco de la Republica. • Definir y modelar matemáticamente el problema de programación de la Imprenta de Billetes. • Diseñar las metaheurísticas que son consideradas como alternativas de solución del problema de optimi-

zación en sistemas Hybrid FlowShop with Missing Operations. • Diseñar un generador de instancias que simule los sistemas Hybrid FlowShop with Missing Operations. • Analizar el desempeño de las metaheurísticas y del modelo matemático a través del diseño de experimen-

tos en la solución de 30 instancias generadas aleatoriamente.

3 DEFINICION DEL PROBLEMA

El proceso de producción en la IB al igual que en muchos bancos centrales del mundo se realiza bajo el sistema de producción (Solomon & Spurling, 2014), donde cada trabajo tiene una secuencia de etapas definida que agregan los diferentes dispositivos de seguridad a cada espécimen. Sin embargo, el sistema de la IB posee dos importantes variantes, la primera, existe una o más maquinas no relacionadas por etapa y la segunda, no todos los trabajos tienen la misma secuencia de procesamiento. Mas definidamente, el sistema de producción de la IB se clasifica como Hybrid FlowShop with Missing Operations Problem (HFSMOP) considerado un problema NP-hard dada su naturaleza combinatoria (Dios et al., 2018). Este sistema posee las siguientes carac-terísticas (Ruiz & Vázquez-Rodríguez, 2010):

• El número de etapas de procesamiento 𝑚 es al menos 2. • En cada etapa 𝑖 tiene 𝑀(𝑖) ≥ 1 maquinas en paralelo y al menos una etapa tiene 𝑀(𝑖) > 1 maquinas. • Todos los trabajos siguen un flujo de producción. Aunque algunos trabajos pueden saltarse algunas etapas

siempre que sea procesada en alguna de ellas. • Cada trabajo requiere un tiempo de procesamiento establecido para cada etapa.

Adicionalmente, el sistema de producción de la IB se programa bajo los siguientes supuestos:

• Actualmente se fabrican seis billetes o especímenes. • El lote base de producción es de 10.000 pliegos, que dependiendo del formato (cantidad de billetes por

hoja) equivale a 500.000 o 600.000 billetes por cada uno. • Existe tiempo por cambio de referencia si se desea producir un espécimen diferente y este varía según la

etapa a procesar. • Para todas las etapas a excepción de corte, existe un tiempo de secado o enfriamiento después de procesar

cada lote. Para optimizar el control logístico se hacen corridas o baches compuestos entre 30 y 60 lotes de un mismo espécimen que es definido por la Jefatura de Producción.

• El almacenamiento en WIP (Work in Process) no es considerado dentro del alcance del problema.

• No se considera restricciones en la disponibilidad de materias primas, ni de máquinas por causas relacio-

nadas por fallas operativas o mantenimientos preventivos.

Page 4: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

La producción de los síes billetes actuales se realiza en siete etapas y en once maquinas en el siguiente orden:

1. Impresión Offset: Impresión plana de las imágenes del fondo por anverso y reverso simultáneamente de

los especímenes. 2. Primera Calcografía: Impresión de imágenes en alto relieve por una cara del espécimen (anverso o

reverso). 3. Segunda Calcografía: Impresión de imágenes en alto relieve por la otra cara del espécimen. 4. Impresión Serigráfica: Impresión de imagen ópticamente variable de alta seguridad. 5. Impresión Tipográfica: Impresión del número de serie único para cada espécimen. 6. Impresión Flexográfica: Impresión de capa protectora de barniz trasparente por ambas caras. 7. Corte y Empaque: Ultimo proceso donde se realiza el corte, agrupación y empaque seguro de los espe-

címenes para ser entregados al DTE.

Etapas 1 2 3 4 5 6 7

Billetes → Secuencia de producción →

Billete 1 X X

X X X

Billete 2 X X X X X

Billete 3 X X X X X

Billete 4 X X X X X

X

Billete 5 X X X X X X

Billete 6 X X X X X X

Tabla 1. Configuración secuencia de producción.

En la Tabla 1, se especifica la secuencia para los seis especímenes que se producen. Para los trabajos que se programen de los billetes 1, 2 y 3, estos no son procesados en las etapas 3 y 4, y para los trabajos que se programen de los billetes 4,5 y 6 no son procesados en la etapa 6. La definición de la secuencia de producción depende directamente del diseño de cada billete. De lo anterior, es una característica propia de la IB que los trabajos no sean procesados en todas las etapas.

Ilustración 3. Esquema Hybrid FlowShop de la IB.

En la Ilustración 3, se muestra el esquema general del sistema de producción de la IB basado en el HFSMOP y el número de máquinas asignadas para cada etapa. Es así como, en las etapas 2 y 3 correspondiente a la primer y segunda calcografía se dispone de un mismo número de máquinas correspondientes a tres, dado a que solo puede imprimir una cara del espécimen por ejecución. De ser necesario imprimir la otra cara del mismo espé-cimen se requiere realizar un cambio de referencia. Para las etapas 4 y 6 solo se posee una máquina para cada una de ellas, puesto que no todos los trabajos son procesados en dichas etapas. Las maquinas en cada etapa se consideran idénticas por lo que el tiempo de procesamiento de los trabajos es igual.

Page 5: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

3.1 Notación del Problema

Entendiendo el general del sistema de producción de la IB la definición en la notación estándar 𝛼|𝛽|𝛾, en donde 𝛼 describe el sistema de producción o la disposición de las maquinas. 𝛽 representa las posibles restric-ciones del sistema y finalmente, 𝛾 representa el objetivo a optimizar del sistema (Graham et al., 1979). Para el caso específico de la IB la notación del problema es (Ruiz & Vázquez-Rodríguez, 2010):

𝐹𝐻7, ((𝑃𝑀𝑘)𝑘=17 ) | 𝑆𝑚 , 𝑠𝑘𝑖𝑝, 𝑝𝑟𝑚𝑢| 𝐶𝑚𝑎𝑥

Donde 𝐹𝐻7 indica que es un problema Hybrid FlowShop de siete etapas, (𝑃𝑀𝑘)𝑘=1

7 especifica que las maquinas son idénticas (Identical Parallel Machines), 𝑆𝑚 muestra que existe un tiempo de setup dependiente de las etapas, 𝑠𝑘𝑖𝑝 indica que los trabajos pueden saltarse algunas etapas del proceso, 𝑝𝑟𝑚𝑢 especifica que es un Permutation Flow Shop y la función objetivo a optimizar es el 𝐶𝑚𝑎𝑥 o makespan.

4 ESTADO DEL ARTE

Para los problemas del tipo Hybrid FlowShop existe un gran número de aportes en investigación, tanto para los métodos exactos, heurísticas y metaheurísticas. Heurísticas basadas en reglas de despacho, por ejemplo, dadas una limitaciones de recursos de forma probabilística (Paul, 1979) o algoritmos basados en búsquedas locales (Negenman, 2001). Problemas más sencillos de configuración de una maquina en la primera etapa y dos máquinas en la segunda etapa (𝑚 = 2, 𝑀(1) = 1, 𝑀(2) = 2) estableciendo algoritmos de Branch & Bound para instancias pequeñas (Gupta, 1988) o para el caso de 𝑚 etapas y sin tiempos de espera entre ellas (no-wait) para problemas de producción de polímeros (Salvador, 1973). En el caso especial |𝑠𝑘𝑖𝑝|, para problemas de gran escala con relación a decisiones adicionales en la planificación como stocks de seguridad (Gue et al., 2000). En optimización multiobjetivo (Jungwattanakit et al., 2009) se establece una función que describe la relación línea entre el makespan y la cantidad de trabajos tardíos logrando resolver instancias de tamaño 𝑛 = 50, 𝑚 = 20.

Los aportes en metaheurísticas al problema Hybrid FlowShop han sido muy variados. Desde algoritmos

basados en el Tabú Search fundado en la construcción de redes para hallar la ruta crítica (Nowicki & Smutnicki, 1998). Metaheurísticas que contemplan los almacenamientos de tipo justo a tiempo (Gourgand et al., 2000) basado en el SA o en problemas donde se debe definir el tamaño de cada trabajo (𝑠𝑖𝑧𝑒) basado en Iterated Greedy Search (Ying, 2009) o con el uso de algoritmos genéticos (Jenabi et al., 2007). La simulación de reglas de despacho se ponen a prueba para el entrenamiento de una red neuronal que minimicen el makespan (Tang et al., 2005). Mas recientemente, el uso de diferentes tipos de perturbación denominado shake para el problema |𝑝𝑟𝑚𝑢| sobre el algoritmo genético (Andrade et al., 2019), aplicando la estrategia Variable Neighborhood Des-cent (VND).

Entre los trabajos que consideran explícitamente las operaciones faltantes (Missing Operations), (Leisten

& Kolbe, 1998) abordan las operaciones faltantes en el entorno clásico de FlowShop 𝑚 etapas con una sola máquina. Se evalúa y analiza la conveniencia de utilizar la permutación estricta. Su conclusión es que se pueden encontrar ventajas al calcular el Total Flow Time (o del tiempo de flujo total) si se permite la permutación no estricta. Para el mismo caso, (Rajendran & Ziegler, 2001) analizan el rendimiento de varias reglas de despacho y una heurística que utiliza diferentes niveles de operaciones faltantes de 0%, 20%, 30% y 40%. La diferencia entre las programaciones con y sin permutación en problemas de dos etapas, mostrando que las programaciones sin permutación obtienen mejores resultados sin aumentar mucho los tiempos de computacionales (Tseng et al., 2008). Presentan una heurística para generar una programación no permutacional, obteniendo mejores resulta-dos para el objetivo de makespan. La heurística fue probada en un conjunto de instancias considerando los siguientes niveles de operaciones faltantes: 0%, 20% y 40%. Más recientemente, (.M et al., 2014) resuelven el problema HFSMO de 𝑚 etapas con el objetivo de makespan considerando los mismos porcentajes de operacio-nes faltantes. Utilizan dos metaheurísticas diferentes (Simulated Annealing y Particle Swarm Optimization), obteniendo que la primera supera a la segunda, tanto en tiempo computacional como en la calidad de las solu-ciones. Por último, (Marichelvam & Prabaharan, 2014) proponen una nueva metaheurística híbrida para el pro-blema de 𝑚 etapas para el HFSMOP con objetivo de makespan llamada Improved Hybrid Genetic Scatter

Page 6: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Search (IHGSS), donde se combinan un Algoritmo Genético (GA) y una Scatter Search (SS). Los autores com-paran sus resultados contra las versiones estándar del AG y la SS, concluyendo que el IHGSS supera a ambas metaheurísticas.

5 FORMULACIÓN MATEMÁTICA DEL PROBLEMA

De forma general, en los problemas de tipo HFSMOP donde se busca minimizar el 𝐶𝑚𝑎𝑥 tenemos un conjunto 𝑁 con 𝑛 trabajos, un conjunto 𝑀 con 𝑚 etapas donde en la etapa 𝑖 (𝑖 = {1,2, . . , 𝑚}) existe un subconjunto 𝑚𝑖 de máquinas. Además, como cada trabajo puede tener una secuencia de procesamiento diferente, 𝐸𝑖 establece el conjunto de trabajos a ser procesados en la etapa 𝑖, por lo tanto, 𝐸𝑖 ⊆ 𝑁. Igualmente, cada trabajo es procesado solo por una maquina 𝑙 (𝑙 = {1,2, … , 𝑚}) y no puede ser procesado simultáneamente.

El modelo presentado a continuación es una adaptación de Mixed-integer Linear Problem (MILP) propuesto

por (Kis & Pesch, 2005) y (Ruiz et al., 2008): Conjuntos, índices y parámetros:

𝑛: 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠. 𝑚: 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑒𝑡𝑎𝑝𝑎𝑠.

𝑗, 𝑘: í𝑛𝑑𝑖𝑐𝑒 𝑝𝑎𝑟𝑎 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠 𝑑𝑜𝑛𝑑𝑒 (1,2, . . , 𝑛).

𝑖: í𝑛𝑑𝑖𝑐𝑒 𝑝𝑎𝑟𝑎 𝑙𝑎𝑠 𝑒𝑡𝑎𝑝𝑎𝑠 𝑑𝑜𝑛𝑑𝑒 (1,2, . . , 𝑛).

𝐸𝑖: 𝑐𝑜𝑛𝑗. 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠 𝑎 𝑠𝑒𝑟 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑠𝑑𝑜𝑠 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖. 𝑚𝑖: 𝑛𝑢𝑚𝑒𝑟𝑜 𝑑𝑒 𝑚𝑎𝑞𝑢𝑖𝑛𝑎𝑠 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖.

𝑙: í𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖. 𝑝𝑖𝑗: 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖

𝑠𝑖: 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑠𝑒𝑡𝑢𝑝 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖.

Las variables usadas en este modelo son:

𝑋𝑗𝑖𝑘𝑙: {1. 𝑠𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑜 𝑑𝑒𝑠𝑝𝑢𝑒𝑠 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑘 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖 𝑒𝑛 𝑙𝑎 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 𝑙.

0. 𝑑𝑙𝑐

𝐶𝑖𝑗: 𝑡𝑖𝑒𝑚𝑝𝑜 𝑐𝑜𝑛 𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑎𝑟 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑒𝑛 𝑙𝑎 𝑒𝑡𝑎𝑝𝑎 𝑖. 𝐶𝑚𝑎𝑥: 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑎𝑟 𝑒𝑙 ú𝑙𝑡𝑖𝑚𝑜 𝑡𝑟𝑎𝑏𝑎𝑗𝑜.

Función Objetivo:

𝑀𝑖𝑛 𝐶𝑚𝑎𝑥 (0)

Sujeto a:

∑ ∑ 𝑋𝑗𝑖𝑘𝑙

𝑚𝑖

𝑙=1𝑘∈{0∪𝐸𝑖},𝑘≠𝑗

= 1; ∀𝑖, 𝑗 ∈ 𝐸𝑖 (1)

∑ ∑ 𝑋𝑗𝑖𝑘𝑙

𝑚𝑖

𝑙=1𝑗∈𝐸𝑖,𝑘≠𝑗

≤ 1; ∀𝑖, 𝑗 ∈ 𝐸𝑖 (2)

∑ 𝑋𝑗𝑖0𝑙

𝑗∈𝐸𝑖

= 1; ∀𝑖, 𝑙 (3)

∑ 𝑋𝑗𝑖𝑘𝑙

𝑗∈𝐸𝑖,𝑘≠𝑗

≤ ∑ 𝑋𝑘𝑖𝑗𝑙

𝑗∈∈{0∪𝐸𝑖},𝑘≠𝑗

; ∀𝑖, 𝑙, 𝑘 ∈ 𝐸𝑖 (4)

∑(𝑋𝑗𝑖𝑘𝑙 + 𝑋𝑘𝑖𝑗𝑙)

𝑚𝑖

𝑙=1

≤ 1; ∀𝑖, (𝑗, 𝑘) ∈ 𝐸𝑖 (5)

𝐶𝑗1 ≥ 𝑝𝑗1 + 𝑠1; ∀𝑗 ∈ 𝐸𝑖 (6)

Page 7: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

𝐶𝑗𝑖 ≥ 𝐶𝑗𝑖−1 + 𝑠𝑖 + 𝑝𝑗𝑖; ∀𝑗, 𝑖 ∈ 𝐸𝑖 , 𝑖 > 1 (7)

𝐶𝑗𝑖 ≥ 𝐶𝑘𝑖 + 𝑠𝑖 + 𝑝𝑗𝑖 − 𝑀 (1 − ∑ 𝑋𝑗𝑖𝑘𝑙

𝑚𝑖

𝑙=1

) ; ∀𝑗, 𝑖, 𝑘 ∈ 𝐸𝑖 , 𝑘 ≠ 𝑗 (8)

𝐶𝑚𝑎𝑥 ≥ 𝐶𝑗𝑚; ∀𝑗 ∈ 𝐸𝑖 (9)

𝐶𝑗𝑖 ≥ 0; ∀𝑗, 𝑖 ∈ 𝐸𝑖 (10)

𝑋𝑗𝑖𝑘𝑙 ∈ {0,1}; ∀𝑖, 𝑙, 𝑗 ∈ 𝐸𝑖 , 𝑘 ∈ {0 ∪ 𝐸𝑖}, 𝑘 ≠ 𝑗 (11)

En este modelo, el conjunto de restricciones (1) asegura que cada trabajo tiene exactamente un trabajo

anterior en cada etapa. El conjunto de restricciones (2) especifica que cada trabajo tiene como máximo un trabajo sucesivo (ya que no hay ningún trabajo después del último trabajo en cada máquina). El juego de res-tricciones (3) asegura que el trabajo ficticio 0 tiene exactamente un trabajo sucesivo incluido el tiempo de setup. El juego de restricciones en (4) asegura que para cada trabajo en cada etapa hay una y sólo una máquina que satisface las tres condiciones anteriores. El juego de restricciones (6) controla que el tiempo de finalización del trabajo en cada etapa sea mayor que su tiempo de procesamiento. Por similitud, el conjunto de restricciones (7) da el tiempo de terminación en las etapas subsiguientes. El valor del tiempo de procesamiento de los trabajos que se saltan una etapa se establece en 0. El conjunto de restricciones (8) implica que la relación entre los trabajos consecutivos de cada etapa respeta la secuencia. El juego de restricciones (9) calcula el tiempo de espera. Por último, los conjuntos de restricciones (10) y (11) definen las variables de decisión.

Para el caso de la IB, existe unas restricciones adicionales para las etapas 2 y 3 donde el subconjunto de

maquinas 𝑚2 = 𝑚3. Para esto, se plantea las siguientes restricciones:

𝐶𝑗3 ≥ 𝐶𝑘2 + 𝑠3 + 𝑝𝑗3 − 𝑀 (1 − ∑ 𝑋𝑗3𝑘𝑙

𝑚3

𝑙=1

) ; ∀𝑗, 𝑖, 𝑘 ∈ 𝐸3, 𝑘 ≠ 𝑗 (8.1)

𝐶𝑗3 ≥ 𝐶𝑘3 + 𝑠3 + 𝑝𝑗3 − 𝑀 (1 − ∑ 𝑋𝑗3𝑘𝑙

𝑚3

𝑙=1

) ; ∀𝑗, 𝑖, 𝑘 ∈ 𝐸3, 𝑘 ≠ 𝑗 (8.2)

𝐶𝑗2 ≥ 𝐶𝑘3 + 𝑠2 + 𝑝𝑗2 − 𝑀 (1 − ∑ 𝑋𝑗2𝑘𝑙

𝑚2

𝑙=1

) ; ∀𝑗, 𝑖, 𝑘 ∈ 𝐸2, 𝑘 ≠ 𝑗 (8.3)

𝐶𝑗2 ≥ 𝐶𝑘2 + 𝑠2 + 𝑝𝑗2 − 𝑀 (1 − ∑ 𝑋𝑗2𝑘𝑙

𝑚2

𝑙=1

) ; ∀𝑗, 𝑖, 𝑘 ∈ 𝐸2, 𝑘 ≠ 𝑗 (8.4)

Las restricciones (8.1) a (8.4) garantizan la correcta asignación y secuenciación de los trabajos a procesar

en estas etapas. Es decir, estas etapas no necesariamente pueden procesar trabajos precedentes de la misma etapa como lo indica la restricción (8), sino que establece las posibles combinaciones de programación para las etapas de calcografía. Por ejemplo, en la restricción (8.1) se define el tiempo de completar el trabajo 𝑗 en la etapa 3 como el tiempo de finalizar el trabajo 𝑘 en la etapa 2, más el tiempo de setup si este existe, más el tiempo de procesar el trabajo 𝑗 en la etapa 3. El caso contrario, donde la precedencia de las etapas esta invertida queda definida en la restricción (8.3). En resumen, se permite la programación de trabajos para el conjunto de maquinas de la etapa 2 y 3 sin importar que el trabajo precedente sea de la etapa de primera o segunda calco-grafía.

Page 8: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

6 BÚSQUEDA LOCAL Y HEURÍSTICA DE PROGRAMACIÓN

Para los problemas de tipo FlowShop en donde es posible tener una permutación propia por cada etapa 𝑖 tenemos un espacio de posibles soluciones del orden de (𝑛!)𝑚. Sin embargo, si establecemos la restricción de permutación para todo el sistema, en donde, se debe secuenciar los trabajos en cada etapa en el mismo orden, el número de soluciones posibles se reduce a 𝑛! (Pan & Ruiz, 2012). Lo anterior, simplifica el espacio de búsqueda y la codificación del problema. Para el caso de la IB, los trabajos se pueden identificar verificando primero, el espécimen a procesar, expresado por un numero del 1 al 6 correspondiente al numero de especíme-nes que son producidos actualmente y segundo, el numero del bache de producción correspondiente a las agru-paciones de lotes que realiza la Jefatura de Producción con el fin de llevar un control logístico y de calidad de los especímenes que son entregado finalmente al DTE. Para la representación del problema se ha usado un vector:

4.001 3.010 2.015 1.025 5.030

Ilustración 4. Codificación de un problema de cuatro trabajos.

Como se observa en la Ilustración 4, número decimal contiene en su parte entrera la identificación del espé-cimen a procesarse y en su parte decimal el número del bache de producción. El orden en el vector indica el orden en el que va a programarse la producción en sus diferentes etapas. Para este tipo de problema y para la codificación de tipo vector los operadores más usados son los de inserción e intercambio o swaps (Besten, 2001). Dependiendo del grado de perturbación que se quiera lograr estos operadores pueden ser variados, desde el intercambio de dos trabajos adyacentes hasta la inserción o reversión de un fragmento del vector:

1 2 3 4 5 6 7 8 9

1 2 3 4 6 5 7 8 9

1. Intercambio de dos trabajos adyacentes

1 2 3 4 5 6 7 8 9

1 2 8 4 5 6 7 3 9

2. Intercambio de dos trabajos aleatorios

1 2 3 4 5 6 7 8 9

1 6 2 3 4 5 7 8 9

3. Inserción de un trabajo

1 2 3 4 5 6 7 8 9

1 2 3 4 8 7 6 5 9

4. Subsecuencia de trabajos reversada. Ilustración 5. Operadores y perturbaciones en el problema Flow Shop.

En la Ilustración 5, se muestran los operadores ordenados por su grado de perturbación de menor a mayor (Nearchou, 2004). El primero, escoge aleatoriamente una posición 𝑖 del vector y se realiza un intercambio con la posición 𝑖 + 1. En el segundo, escogen dos posiciones aleatoriamente del vector y se intercambian. El tercero, escoge aleatoriamente un trabajo en el vector y se inserta en otra posición escogida también aleatoriamente. El último operador, se selecciona aleatoriamente una subsecuencia del vector con 𝑖 posiciones y se revierten.

Page 9: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

6.1 Heurística para el problema HFSMOP

En general para el problema del Flow Shop, las heurísticas más usadas en la literatura se clasifican en reglas de despacho, heurísticas constructivas y heurísticas de mejora (Vallada et al., 2008). Sin embargo, una de las heurísticas más usadas en el problema de permutation Flow Shop es la propuesta por Nawaz, Enscore y Ham (NEH), en donde, los trabajos son rankeados por su tiempo de procesamiento, y de forma iterativa se van in-sertando los trabajos en las todas las posibles posiciones y se van aceptando las soluciones que tengan un menor makespan (Nawaz et al., 1983).

No obstante, en el caso de la IB donde tenemos más de una maquina en varias etapas y aunque el orden de

los trabajos depende del vector codificado, podemos asignar dichos trabajos de acuerdo con la disponibilidad de las maquinas, es decir, de acuerdo al tiempo de finalización del trabajo anterior más temprano de las máqui-nas de dicha etapa (Emmons & Vairaktarakis, 2013). Esto representa en sí un espacio de búsqueda más amplio por explorar. El algoritmo mostrado a continuación (Algoritmo 1), presenta una solución para el problema HFSMOP:

Algoritmo 1: Heurística para el HFSMOP

Input: vector con solución codificada 𝑆.

Output: Valor FO (𝐶𝑚𝑎𝑥)

𝑇𝐹𝑀𝑎𝑞𝑚𝑖← 0, //Tiempo Final maquinas

𝑇𝐹𝐽𝑜𝑏𝑗 ← 0, //Tiempo Final jobs

𝐶𝑎𝑚𝑏𝑖𝑜𝑅𝑒𝑓 ← 0, //Cambio de referencia

For each job 𝑗 in 𝑆 do

For each stage 𝑖 do

𝑇𝐼𝐽𝑜𝑏𝑚𝑖← 0, //Tiempo de inicio maquinas

𝑇𝐹𝑖𝑛𝑑𝑚𝑖← 0, //Tiempo final evaluador

For each machine 𝑙 in 𝑚𝑖 do

If not assigned jobs in 𝑙 then

𝑇𝐼𝐽𝑜𝑏𝑚𝑖← max{𝑇𝐹𝑀𝑎𝑞𝑚𝑖

, 𝑇𝐹𝐽𝑜𝑏𝑗}

Else

For each job 𝑘 assigned in 𝑙 do

Evaluate Cambio de referencia

Update 𝐶𝑎𝑚𝑏𝑖𝑜𝑅𝑒𝑓

Update 𝑇𝐼𝐽𝑜𝑏𝑚𝑖

End For

//Tiempo final en 𝑚𝑖

𝑇𝐹𝑖𝑛𝑑𝑚𝑖← 𝐶𝑎𝑚𝑏𝑖𝑜𝑅𝑒𝑓 + 𝑇𝐼𝐽𝑜𝑏𝑚𝑖

+ 𝑝𝑖𝑗

End For

𝑀𝑎𝑐ℎ𝑆𝑒𝑙𝑒𝑐𝑡𝑒𝑑 ← 𝑎𝑟𝑔𝑚𝑖𝑛𝑙 (𝑇𝐹𝑖𝑛𝑑𝑚𝑖)

Update 𝑇𝐹𝑀𝑎𝑞𝑚𝑖, 𝑇𝐹𝐽𝑜𝑏𝑗 with 𝑇𝐹𝑖𝑛𝑑𝑀𝑎𝑐ℎ𝑆𝑒𝑙𝑒𝑐𝑡𝑒𝑑

End For

End For

𝐶𝑚𝑎𝑥 ← max{ 𝑇𝐹𝐽𝑜𝑏𝑗}

Return 𝐶𝑚𝑎𝑥

El Algoritmo 1, se basa en el algoritmo NEH, en cual, en vez de evaluar cada trabajo en cada posición del

vector 𝑆, se evalúa la asignación cada trabajo 𝑗 en cada maquina 𝑚𝑖 de la etapa 𝑖. Esta evaluación comprende tres pasos, en el primero, se evalúa si existe un cambio de referencia o producto que para el caso de la IB consiste en determinar si el trabajo 𝑗 pertenece a la misma familia de productos de trabajo ya asignado 𝑘. El segundo y tercer paso son los más importantes, ya que evalúa si el trabajo 𝑗 puede asignarse antes o después del trabajo 𝑘 en la maquina 𝑙 en la etapa 𝑖. En términos de complejidad computacional el Algoritmo 1 es del orden 𝑂(𝑛2𝑚). En la Sección 10, se muestran los resultados y el impacto de esta heurística en las diferentes implementaciones.

Page 10: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

7 METAHEURÍSTICAS

Para el HFSMOP de la Imprenta de Billetes se han definido tres metaheurísticas que usan métodos búsqueda diferentes. La primera, el Simulated Annelaing o recocido simulado considerado un algoritmo de búsqueda de trayectoria, la segunda, el GRASP considerada un algoritmo de búsqueda iterativa y, por último, una variación del algoritmo genético considerada una metaheurística poblacional basada en el esquema elitista y usando las llaves sesgadas aleatorizadas o Bieased Random-Keys. En la Sección 10, se muestra el análisis realizado sobre la eficiencia computacional y la calidad de las soluciones de cada una de las implementaciones.

7.1 Simulated Annealing

El recocido simulado es un algoritmo de búsqueda estocástica que se puede aplicar a una variedad grande de problemas. Basado en el proceso termodinámico de los metales, los parámetros iniciales de esta metaheurística son 𝑖 representando la solución inicial del problema, 𝑇0 correspondiente a la temperatura inicial del sistema. También el parámetro 𝑁𝑢𝑚𝐼𝑡𝑒𝑟 estableciendo el número de transiciones o iteraciones del sistema. Y finalmente el parámetro α, el cual establece el factor de transición de la cadena de Markov (Kirkpatrick et al., 1983). A medida que se enfría el sistema el criterio de aceptación de una perturbación está dada por la siguiente proba-bilidad (Wierenga, 2008):

Pr{𝑎𝑐𝑐𝑒𝑝𝑡 𝑗} = {1 𝑖𝑓 𝑓(𝑗) < 𝑓(𝑖)

𝑒(

𝑓(𝑖)−𝑓(𝑗)𝑇

) 𝑒𝑙𝑠𝑒.

El criterio de aceptación es una de las características más importantes de este algoritmo de trayectoria, dado

que le permite poder escapar de mínimos locales aceptando soluciones de menor calidad lo que garantiza que se pueda explorar de forma sistemática el espacio de búsqueda a medida que el sistema se enfría. La transición o enfriamiento se realiza cuando se ha generado un número máximo de vecinos o se han aceptado un número de vecinos y combinado con el criterio de aceptación se puede controlar el grado de perturbación de forma inteligente, es así que, cuando el sistema está llegando a un estado de reposo o de baja temperatura solo se aceptan las soluciones que mejoren la función objetivo buscando llegar al mínimo local o global.

Para los problemas de tipo HFSMOP se han hecho diferentes aportes con el uso de esta metaheurística,

donde varia principalmente en los mecanismos de mejora, por ejemplo, haciendo uso de diferentes operadores de búsqueda local (Jenabi et al., 2007), o múltiples reglas para el cambio de vecindarios o híbridos con me-taheurísticas como Variable Neighborhood Search (Li et al., 2020).

Algoritmo 2: Simulated Annealing para el HFSMOP

Input: 𝑁𝑢𝑚𝐼𝑡𝑒𝑟, 𝛼, 𝑇0

Output: 𝑆𝑏𝑒𝑠𝑡

Select solución inicial 𝑆0

𝑇 ← 𝑇0

𝐹𝑂0 ← 𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆0)

𝑆𝑏𝑒𝑠𝑡 ← 𝑆0

𝐹𝑂𝑏𝑒𝑠𝑡 ← 𝐹𝑂0

𝑖 ← 1

While (𝑖 ≤ 𝑁𝑢𝑚𝐼𝑡𝑒𝑟) do

Select 𝑜𝑝𝑒𝑟𝑎𝑑𝑜𝑟 aleatoriamente

𝑆𝑛𝑒𝑤 ← 𝑜𝑝𝑒𝑟𝑎𝑑𝑜𝑟(𝑆0) //Búsqueda Local

If (𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆𝑛𝑒𝑤) < 𝐹𝑂0) then

𝑆0 ← 𝑆𝑛𝑒𝑤

𝐹𝑂0 ← 𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆𝑛𝑒𝑤)

If (𝐹𝑂0 < 𝐹𝑂𝑏𝑒𝑠𝑡) then

𝑆𝑏𝑒𝑠𝑡 ← 𝑆0

𝐹𝑂𝑏𝑒𝑠𝑡 ← 𝐹𝑂0

Page 11: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Else

𝑟 ← 𝑅𝑎𝑛𝑑(0,1)

If (𝑟 < 𝑒(𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆𝑛𝑒𝑤)−𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆0))

𝑇 ) then

𝑆0 ← 𝑆𝑛𝑒𝑤

𝐹𝑂0 ← 𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑆𝑛𝑒𝑤)

𝑇 ← 𝛼 𝑇

𝑖 ← 𝑖 + 1

End While

Return 𝑆𝑏𝑒𝑠𝑡

La implementación propuesta para esta metaheurística pretende mejorar el mecanismo de búsqueda del

algoritmo base, aplicando de forma aleatoria los operadores expuestos en la Sección 6, de esta forma, se pueden aplicar mecanismos de perturbación grandes que le permitan al algoritmo salir de óptimos locales y por otro lado, mecanismos de perturbación pequeños que permitan llegar a óptimos locales o en su defecto al óptimo global. El Algoritmo 2, muestra el pseudocódigo de la metaheurística propuesta. En la Sección 9, se muestra la respectiva calibración de estos parámetros.

7.2 Greedy Randomized Adaptive Search Procedure (GRASP)

El GRASP es una metaheurística iterativa o multiarranque que consta principalmente de dos fases: cons-trucción y búsqueda local (Feo & Resende, 1989). En la fase constructiva se construyen soluciones haciendo uso de un algoritmo goloso aleatorizado; en el caso que la solución construida sea infactible debe aplicarse un procedimiento de reparación de dicha solución. Una vez se tenga una solución factible, en la segunda fase se trata de obtener un óptimo local usando operadores de búsqueda local. Por último, se guarda la mejor solución obtenida.

El Algoritmo 3, muestra la implementación usada para resolver el problema del HFSMOP (Resende &

Ribeiro, 2019). En la Sección 9, se realiza la calibración de los parámetros.

Algoritmo 3: GRASP para el HFSMOP

Input: 𝑁𝑢𝑚𝐼𝑡𝑒𝑟, 𝛼

Output: 𝑆𝑏𝑒𝑠𝑡

For 𝑘 = 1 𝑡𝑜 𝑁𝑢𝑚𝐼𝑡𝑒𝑟 do

// Fase Constructiva – Soluciones factibles

𝑆𝑛𝑒𝑤 ← 𝐺𝑟𝑒𝑒𝑑𝑦𝑅𝑎𝑛𝑑𝑜𝑚𝑖𝑧𝑒𝑑𝐶𝑜𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛(𝛼)

𝑆𝑛𝑒𝑤 ← 𝐿𝑜𝑐𝑎𝑙𝑆𝑒𝑎𝑟𝑐ℎ(𝑆𝑛𝑒𝑤) //Fase de mejora

Update 𝑆𝑏𝑒𝑠𝑡

End For

Return 𝑆𝑏𝑒𝑠𝑡

Es así que, en la fase constructiva se inicia con una solución vacía, los candidatos son evaluados a través de

una función de costos incrementales para ser agregados a una lista restricta (RCL) valorados a través de un valor denominado threshold calculado como 𝑐𝑚𝑖𝑛 + 𝛼(𝑐𝑚𝑎𝑥 − 𝑐𝑚𝑖𝑛). De esta lista, se selecciona de forma aleatoria a un candidato y se agrega a la solución; esto se hace hasta agregar todos los candidatos (Resende & Ribeiro, 2019).

Sin embargo, para el caso de la IB evaluar los costos incrementales de cada candidato o cada trabajo puede

resultar costoso computacionalmente si lo evaluamos con el Algoritmo 1. Es por esto, que se ha utilizado la siguiente Lower Bound para estimar el makespan parcial de agregar dicho candidato.

Page 12: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Lower Bound: Estimador 𝐶𝑚𝑎𝑥

Input: Solución 𝑆

Output: 𝐶𝑚𝑎𝑥

𝑇𝐼𝐸𝑡𝑎𝑝𝑖 ← 0, //Tiempo inicial en la etapa 𝑖

𝑇𝐹𝐸𝑡𝑎𝑝𝑖 ← 0, //Tiempo final en la etapa 𝑖

For 𝑖 = 1 𝑡𝑜 𝑚 do

𝑁𝑚𝑎𝑞 ← |𝑚𝑖| //Numero de maquinas en la etapa 𝑖 If 𝑖 > 1 then

𝑇𝐼𝐸𝑡𝑎𝑝𝑖 ← max{𝑝𝑖+1,𝑗| 𝑗 ∈ 𝑆[1, … , 𝑁𝑚𝑎𝑞]}

𝑇𝐹𝐸𝑡𝑎𝑝𝑖 ← 𝑇𝐼𝐸𝑡𝑎𝑝𝑖−1 + (∑ 𝑝𝑖𝑗𝑗∈𝑆

𝑁𝑚𝑎𝑞)

Else

𝑇𝐹𝐸𝑡𝑎𝑝𝑖 ←∑ 𝑝𝑖𝑗𝑗∈𝑆

𝑁𝑚𝑎𝑞

End For

𝐶𝑚𝑎𝑥 ← max { 𝑇𝐹𝐸𝑡𝑎𝑝𝑖 | 𝑖 ∈ 𝑚}

Return 𝐶𝑚𝑎𝑥

Este Lower Bound para el problema HFSMOP estima el tiempo de inicio de cada etapa 𝑖 obteniendo el

máximo tiempo de procesar los primeros 𝑚𝑖 trabajos incluidos los tiempos de setup, luego, cada tiempo de finalización de todos los trabajos 𝑗 en la etapa 𝑖 se estima como la suma del tiempo de inicio más el tiempo de procesar dichos trabajos entre el número de máquinas disponibles. Finalmente, se obtiene el Lower Bound como el máximo de todos los tiempos de finalización de las etapas 𝑖. Comparado con el Algoritmo 1 la complejidad computacional es menor y del orden de 𝑂(𝑛𝑚) disminuyendo de forma notable el costo computacional. La búsqueda local usada para esta metaheurística es el intercambio de dos trabajos adyacentes dado a que el me-canismo de perturbación que tiene un vecindario más pequeño de búsqueda, pero el más probable para que se encuentren mejores soluciones.

7.3 Biased Random-Keys Genetic Algorithm (BRKGA)

El algoritmo genético es una metaheurística poblacional de búsqueda inspirada en la teoría de la evolución natural propuesta por Charles Darwin en 1859, se asemeja al proceso de selección natural donde los mejores individuos son los más aptos para transferir su información genética a la siguiente generación (Darwin, 2009). En optimización, el algoritmo en su forma básica presenta el siguiente ciclo evolutivo (Kramer, 2017). Primero, se inicializa el problema con una población creada aleatoriamente, aunque, también se puede generar esta po-blación con una heurística (Andrade et al., 2019). Segundo, se ejecuta la etapa evolutiva en donde se realiza un proceso denominado crossover, aquí se combinan la información de los padres lo cuales pueden ser seleccio-nados aleatoriamente y se crea nuevos hijos. Tercero, los hijos creados pasan por un proceso de mutación que cambia la información original de la combinación. Por último, en el proceso de selección se escogen los mejores individuos que son evaluados por una función fitness los cuales pasan a la siguiente generación.

El esquema de implementación del algoritmo genético para el HFSMOP se basa en el modelo elitista. En

este se define que proporciones de la población se denominan Elites y No Elites, los primeros corresponden a aquellos individuos que poseen la mejor función objetivo y los segundos son los individuos con soluciones de peor calidad. Este esquema tiene como regla que la población Elite pase a la siguiente generación sin correr riesgo de ser eliminados, aunque también participan en el proceso de combinación, mientras que la Población No Elite debe pasar por el proceso de crossover para tener chance de pasar su información a la siguiente gene-ración y mueren al final de esta. En la Ilustración 6, se observa el esquema de este algoritmo:

Page 13: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Ilustración 6. Algoritmo Genético Elitista.

Algoritmo 4: BRKGA para el HFSMOP

Input: 𝐺𝑒𝑛, 𝑃𝑜𝑝, 𝑃𝑒 , 𝑃𝑚

Output: 𝑆𝑏𝑒𝑠𝑡

// Generación de la población

𝑃 ← 𝑃𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛𝐺𝑒𝑛𝑒𝑟𝑎𝑡𝑜𝑟(𝑃𝑜𝑝, 𝑃𝑒 , 𝑃𝑚)

𝐹𝑂𝑝 ← 𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑃)

For 𝑘 = 1 𝑡𝑜 (𝑛 ∗ 𝐺𝑒𝑛) do

𝑃𝑛𝑒𝑤 ← 𝐶𝑟𝑜𝑠𝑠𝑜𝑣𝑒𝑟(𝑃) //Fase de reproducción

𝑃𝑛𝑒𝑤 ← 𝑀𝑢𝑡𝑎𝑡𝑖𝑜𝑛(𝑃𝑛𝑒𝑤) //Fase de mutación

𝐹𝑂𝑝𝑛𝑒𝑤← 𝐹𝑖𝑡𝑛𝑒𝑠𝑠(𝑃𝑛𝑒𝑤)

𝑃 ← 𝑅𝑒𝑝𝑙𝑎𝑐𝑒(𝑃𝑛𝑒𝑤 , 𝐹𝑂𝑝𝑛𝑒𝑤) //Fase de reemplazo de individuos

Update 𝑆𝑏𝑒𝑠𝑡

End For

Return 𝑆𝑏𝑒𝑠𝑡

El esquema elitista del algoritmo genético tiene un paso adicional denominado Replace, en donde, los hijos

generados en la fase crossover y la fase de mutación son clasificados según su función fitness y aquellos con los peores valores son eliminados de la población, de esta forma ya queda constituida la siguiente generación. El Algoritmo 4, muestra la implementación hecha para el problema HFSMOP. Los parámetros calibrados en la Sección 9 son el factor generacional (𝐺𝑒𝑛), el tamaño de la población (𝑃𝑜𝑝), proporción de la población que es élite (𝑃𝑒), la proporción de la población que se mutará (𝑃𝑚).

7.3.1 Codificación de tipo Biased Random-Keys

La codificación de tipo Biased Random-Keys permite guardar diferentes tipos de variables, estas pueden ser relacionadas con una llave que es generada con un numero aleatorio, luego, para obtener la solución solo es necesario decodificar ordenando el vector de llaves (Andrade et al., 2019). Para resolver el problema del HFSMOP se utilizó este tipo de codificación, a continuación, se muestra un ejemplo de este tipo de esta:

Page 14: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Ilustración 7.Ejemplo codificación problema de 10 trabajos.

La aplicación más importante de este tipo de codificación en el algoritmo genético es en la fase crossover. Usando las llaves de ambos padres seleccionados, se especifica una probabilidad con la que el padre No Élite pueda transferir su información genética a su descendiente, normalmente esta probabilidad debe ser mayor a 0.7. Luego, lanzando números aleatorios se evalúa la probabilidad de transmisión.

Padre 1 Élite - Codificado

1 2 3 4 5 6 7 8

0,445 0,729 0,929 0,826 0,045 0,301 0,961 0,704

Padre 2 No Élite - Codificado

1 2 3 4 5 6 7 8

0,848 0,633 0,734 0,187 0,606 0,915 0,304 0,659

Números aleatorios

0,994 0,244 0,317 0,095 0,202 0,469 0,202 0,998

Hijo - Codificado

1 2 3 4 5 6 7 8

0,848 0,729 0,929 0,826 0,998 0,301 0,961 0,659

Ilustración 8. Proceso Crossover usando las llaves sesgadas aleatorias.

En la Ilustración 8, se muestra un ejemplo del proceso de reproducción usando las llaves sesgadas aleatorias. El hijo codificado, tiene la información de su padre Élite en seis de las ocho posiciones correspondientes y solo dos de su padre No Élite. De esta forma al decodificar la solución del hijo, se puede garantizar que los este conserve la esencia de su padre Élite que posee una solución de buena calidad. Esto resulta muy conveniente para el tiempo computacional de este algoritmo genético elitista ya que no es necesario crear métodos que reparen las soluciones de los hijos creados como sucede en el modelo básico.

8 INSTANCIAS

Para evaluar la eficacia de los algoritmos resolviendo el HFSMOP, se ha generado un algoritmo que permite crear problemas aleatoriamente de diferentes tamaños y características tanto de los trabajos como de las etapas con las características propias de la IB. Las configuraciones principales son:

• Cada trabajo tiene una probabilidad del 20% de no ser programado en cada una de las etapas.

• La cantidad de máquinas disponibles en cada etapa se determina aleatoriamente 𝑈~[1,3].

Page 15: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

• El tiempo de procesamiento de cada máquina se determina aleatoriamente 𝑈~[15,70] minutos por bache.

• El tamaño de cada bache de producción se determina aleatoriamente 𝑈~[1,3] lotes.

Las instancias por resolver para los tres algoritmos y el método exacto son 30 con la siguiente configuración: 𝑛 = {4,8,20,40,75,150} trabajos y 𝑚 = {3,4,8,10,12 } etapas. De esta forma, podemos analizar escenarios en donde la IB pueda aumentar su capacidad incluyendo más maquinas en ciertas etapas, o eventualmente en un futuro donde se quieran aumentar el número de etapas para ciertos especímenes, por ejemplo, el impacto de incluir la etapa de Flexografía a la producción de todos los especímenes en el cual solo se cuenta con una máquina.

9 CALIBRACIÓN DE PARÁMETROS

Para la calibración de los diferentes parámetros de los tres algoritmos, se realizó la corrida de 30 réplicas para tres grupos de instancias generadas con el algoritmo descrito en la Sección 8, el primero de tamaño pequeño de 𝑛 = {4} y 𝑚 = {3,8,12}. La segunda de tamaño medio 𝑛 = {20,80} y 𝑚 = {3,8,12}. Y el último de tamaño grande de 𝑛 = {100} y 𝑚 = {3,8,12}.En la Tabla 2, se muestran los diferentes niveles de los parámetros a calibrar.

Algoritmo 2: SA Algoritmo 3: GRASP Algoritmo 4: BRKGA

Parámetro Índice del

nivel

Valor ni-

vel Parámetro

Índice del

nivel

Valor ni-

vel Parámetro

Índice del

nivel

Valor ni-

vel

NumIter. 1 1n NumIter. 1 0.25n Factor Gen. 1 1n

2 2n 2 0.5n 2 2n

3 4n 3 0.75n 3 3n

Alfa 1 0.99 Alfa 1 0.25 Tamaño Población 1 3n

2 0.95 2 0.50 2 6n

3 0.90 3 0.75 3 9n

Temp. Inicial 1 10n Población Elite 1 0.05

2 25n 2 0.10

3 50n 3 0.20

Población a Mutar 1 0.03

2 0.06

3 0.09

Tabla 2. Niveles de los parámetros de los algoritmos

Para la calibración se realizó un diseño de experimento factorial completo por lo que se corrió un total de 9.720 pruebas para el Algoritmo 2, 3.240 pruebas para el Algoritmo 3 y 29.160 pruebas para el Algoritmo 4.

Page 16: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Ilustración 9. Análisis factorial (Simulated Annealing).

Para el Algoritmo 2 en la Ilustración 9, se observa un efecto leve en el promedio de la función objetivo (FO) y el tiempo computacional para los parámetros 𝛼 y 𝑇𝑒𝑚𝑝𝐼𝑛𝑖. Por el contrario, el parámetro asociado al número de iteraciones tiene un efecto significativo sobre el tiempo computacional. En el primero, se observa que un número mayor de iteraciones solo presenta mejoras leves en el promedio de la FO con un máximo de un 2%, pero si un impacto mayor en el tiempo con aumentos hasta de un 300%, aunque estos solo representan 12 segundos adicionales en promedio.

Ilustración 10.Análisis factorial (GRASP).

Para el Algoritmo 3 en la Ilustración 10, se observa un mejor resultado en el promedio de la FO para un 𝛼 bajo, lo que significa que en la fase constructiva es mejor ser restrictivos en la selección de candidatos. Para el caso del numero de iteraciones el efecto en notorio cuando tenemos configurado el nivel 0.75. en el tiempo computacional, el 𝛼 no tiene un efecto notorio, pero si el numero de iteraciones a medida que este configure en un nivel mayor.

Page 17: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Ilustración 11. Análsis factorial (BRKGA)

Para el Algoritmo 4 en la Ilustración 11, se observa un mejor promedio de la FO aumentando el nivel de todos sus parámetros, excepto para el tamaño de la población a mutar 𝑃𝑚. En términos del tiempo promedio de ejecución se observa que aumentando los niveles en el factor generacional 𝐺𝑒𝑛 y en el tamaño de la población 𝑃𝑜𝑝 el tiempo aumenta un 270% equivalentes a 13 segundos en promedio, lo cual es aceptable y tiene sentido dado a que estos parámetros están ligados directamente en el número de iteraciones del algoritmo.

Algoritmo 2: SA Algoritmo 3: GRASP Algoritmo 4: BRKGA

Parámetro Valor nivel Parámetro Valor nivel Parámetro Valor nivel

NumIter. 4n NumIter. 0.25n Factor Gen. 1n

Alfa 0.95

Alfa 0.25

Tamaño Población 3n

Temp. Inicial 10n

Población Elite 0.2

Población a Mutar 0.06

Tabla 3.Parámetros calibrados.

La determinación de los mejores niveles de cada parámetro se sobre la variable principal que es el makespan para el caso de minimización. De forma general, se busca la combinación de factores que tenga el valor mínimo del promedio de las funciones objetivos de las instancias. En la Tabla 3, se resumen los mejores parámetros encontrados.

10 RESULTADOS Y ANÁLSIS

Todas las corridas de la calibración de parámetros como la evaluación de las instancias de prueba fueron ejecutadas en un computador con procesador Intel Core i7-8550U @ 1.80 GHz con 16 Gb de RAM DDR4 y Windows 10 x64 bits. Para resolver el MILP se usó el solver de Gurobi v9.0 y las implementaciones de los algoritmos fueron hechas en el lenguaje de programación de Python v3.8.5.

Page 18: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Para el caso del modelo MILP se estableció un criterio de parada de 3.600 segundos, en este punto se recuperó la mejor solución de ser encontrada o el best Bound calculado. Para el caso de las metaheurísticas implementadas se estableció un criterio de parada de 3.600 segundos. En la Sección de Anexos en la Tabla 5 se encuentran los resultados de las 30 instancias para todos los algoritmos.

Ilustración 12. Análisis Factorial sobre la FO y el tiempo de ejecución.

Como se observa en la Ilustración 12, el promedio de las FO encontradas por los tres algoritmos si las eva-luamos en función del número de trabajo 𝑛 fue similar. Por el contrario, para el numero de etapas 𝑚 se observa que el Algoritmo BRKGA encontró mejores soluciones, seguido por el Algoritmo SA y por último el Algoritmo GRASP. Si analizamos el tiempo computacional, se puede concluir que el mayor impacto lo recibe le Algoritmo GRASP a partir de los 40 trabajos, donde su tiempo computacional aumenta un 1.300% aproximadamente en promedio respecto a la ejecución de los problemas con 20 trabajos. En el caso del Algoritmo BRKGA, el im-pacto en el tiempo computacional se observa a partir de los 75 trabajos, donde se incrementa un 700% en promedio aproximadamente. El Algoritmo SA, tiene el menor impacto con respecto al tiempo computacional, donde se ve un incremento del 600% aproximadamente en promedio a partir de las instancias de 150 trabajos. En el caso del factor del número de etapas 𝑚, el SA mantiene una ejecución promedio de 41 segundos máximo, por el contrario, el algoritmo BRKGA tiene un promedio de ejecución de 200 segundos y el algoritmo GRASP una ejecución promedio de 250 segundos; lo que indica que estos dos últimos tardan entre 4 y 5 veces más que el algoritmo SA.

Para analizar de forma conjunta la calidad de las implementaciones en función de su valor objetivo se utilizó

la Desviación Porcentual Relativa (Relative Percentage Deviation (RPD)) definido como (Fernandez-Viagas & Framinan, 2017):

𝑅𝑃𝐷𝑔𝑟𝐴 =

𝐶𝑔𝑟𝐴 − 𝐶𝑔

𝑏𝑒𝑠𝑡

𝐶𝑔𝑏𝑒𝑠𝑡 ; ∀𝐴 ∈ 𝒜, 𝑔 ∈ 𝐼, 𝑟 ∈ ℛ𝐴 (𝑎)

Donde 𝐼 es el conjunto de instancias, 𝒜 es el conjunto de algoritmos y ℛ𝐴 son las corridas de cada algo-

ritmo. El ARPD se calcula como (Fernandez-Viagas & Framinan, 2017):

Page 19: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

𝐴𝑅𝑃𝐷𝐴 =100

|𝐼| ∙ |ℛ𝐴|∑ ∑ 𝑅𝑃𝐷𝑔𝑟

𝐴

𝑟∈ℛ𝐴𝑔∈𝐼

(𝑏)

Para el tiempo computacional, se utilizó el indicador Average Relative Percentage Computational Time

(ARPT). Este se calcula como (Andrade et al., 2019):

𝐴𝑅𝑃𝑇𝐴 = 1 + 1

|𝐼| ∙ |ℛ𝐴|∑ ∑

𝑇𝑔𝑟𝐴 − 𝐴𝐶𝑇𝑔

𝐴𝐶𝑇𝑔𝑟∈ℛ𝐴𝑔∈𝐼

(𝑐)

Donde 𝑇𝑔𝑟𝐴 es el promedio del tiempo por instancia para cada algoritmo. 𝐴𝐶𝑇𝑔 se calcula como:

𝐴𝐶𝑇𝑔 =1

|𝐴|∑ ∑

𝑇𝑔𝑟𝐴

|ℛ𝐴|𝑟∈ℛ𝐴𝐴∈𝒜

; ∀𝑔 ∈ 𝐼 (𝑑)

En la Tabla 4 se muestra los cálculos de los indicadores ARPD y ARPT para las 30 instancias:

Tabla 4. Indicadores ARPD y ARPT.

Page 20: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

De forma general, el algoritmo exacto encuentra solución para el 76% de las instancias, de los cuales en-cuentra el valor óptimo para las primeras cinco instancias, sin embargo, para las instancias 23, 24, 25, 27,28, 29 y 30 llega al límite de 3.600 segundos y no encuentra una solución factible. Para el resto de las instancias se llega también al límite de tiempo, pero se obtiene la mejor solución factible encontrada. A medida que aumenta el tamaño del problema el indicador ARPD empieza a empeorar gradualmente. El método exacto llega a un indicador ARPD de 1.185.

Para los algoritmos propuestos se logra optimalidad también para las primeras cinco instancias, a excepción

del algoritmo GRASP que no lo logra para las instancias 1 y 4 aunque con un ARPD bajo, Asimismo, se en-cuentra una solución para las demás instancias. El algoritmo BRKGA logra obtener los mejores resultados para todas las instancias con un ARPD de 0.028, seguido por el algoritmo Simulated Annealing con un 0.072 y por último el algoritmo GRASP con un 0.117.

En relación con el desempeño del tiempo computacional, el método exacto presenta el peor indicador ARPT

con 61.762. Para los algoritmos propuestos los mejores tiempos los obtiene el algoritmo Simulated Annealing con un indicador ARPT de 0.477, seguido por el algoritmo BRKGA con 3.986 y en último lugar el algoritmo GRASP con 4.739.

Ilustración 13. Fromntera de pareto usando ARPD y ARPT.

En la Ilustración 5, se muestra la frontera de Pareto que relaciona los indicadores ARPD y ARPT. En este se puede encontrar los mejores valores en el cuadrante inferior-izquierdo y los peores valores en el cuadrante superior-derecho. Los algoritmos BRKGA y Simulated Annealing presentan los mejores resultados para resolver el problema del HSFP dominando sobre los algoritmos GRASP y el método exacto.

11 CONCLUSIONES

Este articulo muestra un resumen del trabajo de grado realizado a lo largo de la maestria y que busca ayudar a la Imprenta de Billetes del Banco de la República de Colombia con el problema de programación de su planta basado en el sistema Hybrid Flowshop with Missing Operations Problem. Esta es una actividad fundamental para la planificación y optimización de sus demás actividades y que le representará una mejora importante en su eficiencia que permitirá tener un mejor costo de producción de los billetes.

Page 21: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

Los algoritmos propuestos de forma general son una buena opción para resolver problemas de tamaños

considerables, incluso, si la IB en un futuro desea aumentar su capacidad en planta incluyen más etapas y maquinas al proceso productivo.

Las cuatro estrategias de búsqueda local implementadas para el algoritmo Simulated Annealing aprovechan

su naturaleza estocástica para explorar efectivamente la región de búsqueda, por lo que logra ser un algoritmo que obtiene muy buenos resultados sin tener un costo computacional considerable. Por el contrario, el algoritmo BRKGA logra obtener los mejores resultados sin hacer uso de estas estrategias directamente, ya que gracias a su proceso de crossover y mutación haciendo uso de las llaves sesgadas aleatorias logra aplicar una gran varie-dad de pequeñas y grandes perturbaciones a los individuos que pasarán a la siguiente generación. Lo anterior, le permite alcanzar el objetivo de explorar y explotar de forma eficiente a pesar de estar mejorando múltiples soluciones o individuos de la población en paralelo. El algoritmo GRASP presentó un gran reto para aumentar su eficiencia computacional sobre todo en las instancias más grandes donde la búsqueda local combinado con la heurística de scheduling le afectó considerablemente.

De forma satisfactoria se alcanzan los objetivos de la investigación, ahora la IB puede contar con tres algo-

ritmos que pueden usarse para la programación de horizontes a corto, mediano y largo plazo. Ahora el reto consiste en incluir estas metaheurísticas en el framework del Banco de la República, de tal forma que pueda evaluarse de forma muy rápida en los sistemas de Business Intelligence y tenga acceso en tiempo real a los requerimientos de su cliente el DTE, al igual que estas soluciones puedan llegar rápidamente a los involucrados del proceso productivo. Una vez realizado los anterior, el siguiente reto consistirá en evaluar el impacto de estas herramientas en los indicadores de eficiencia establecidos en el sistema de Gestión de Calidad de la IB, y así cuantificar los ahorros lo cual permitirá tener especímenes de una mayor calidad a menos costo.

Page 22: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

12 BIBLIOGRAFÍA

Arango-Arango, C., Misas A, M., & Hernández, J. (16 de 10 de 2004). Banco de la República - Repositorio Institucional. doi:10.32468/be.309

Banco de la República. (2017). PLAN ESTRATÉGICO 2017-2021. (S. FINANCIERA, Ed.) Recuperado el 30 de 01 de 2020, de https://www.banrep.gov.co/es/plan-estrategico_2017-2021/introduccion. .M, S., Sridhar, S., & Harikannan, N. (2014). Optimization of Realistic Multi-Stage Hybrid Flow Shop

Scheduling Problems with Missing Operations Using Meta-Heuristics. International Journal of Engineering and Technology, 6, 484–496.

Andrade, C. E., Silva, T., & Pessoa, L. S. (2019). Minimizing flowtime in a flowshop scheduling problem with a biased random-key genetic algorithm. Expert Systems with Applications, 128, 67–80. https://doi.org/10.1016/j.eswa.2019.03.007

Banco de la República. (2020). Producción anual acumulada de billetes desagregado por denominación. 31 de Diciembre de 2020. https://www.banrep.gov.co/es/billetes-y-monedas/estadisticas-de-produccion

Besten, M. (2001). Neighborhoods Revisited: An Experimental Investigation into the Effectiveness of Variable Neighborhood Descent for Scheduling.

Darwin, C. (2009). On the Origin of Species : By Means of Natural Selection.: Vol. 6th ed. The Floating Press. https://ezproxy.uniandes.edu.co:8443/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=e000xww&AN=314031&lang=es&site=eds-live&scope=site

Dios, M., Fernandez-Viagas, V., & Framinan, J. M. (2018). Efficient heuristics for the hybrid flow shop scheduling problem with missing operations. Computers & Industrial Engineering, 115, 88–99. https://doi.org/https://doi.org/10.1016/j.cie.2017.10.034

Emmons, H., & Vairaktarakis, G. (2013). Flow Shop Scheduling Theoretical Results, Algorithms, and Applications. https://doi.org/https://doi.org/10.1007/978-1-4614-5152-5

Feo, T. A., & Resende, M. G. C. (1989). A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, 8(2), 67–71. https://doi.org/https://doi.org/10.1016/0167-6377(89)90002-3

Fernandez-Viagas, V., & Framinan, J. M. (2017). A beam-search-based constructive heuristic for the PFSP to minimise total flowtime. Computers and Operations Research, 81, 167–177. https://doi.org/10.1016/j.cor.2016.12.020

Gourgand, M., Grangeon, N., & Norre, S. (2000). Meta-heuristics for the deterministic hybrid flow shop problem. Journal Europeen Des Systemes Automatises, 34, 1107–1135.

Graham, R. L., Lawler, E. L., Lenstra, J. K., & Kan, A. H. G. R. (1979). Optimization and Approximation in Deterministic Sequencing and Scheduling: a Survey. In P. L. Hammer, E. L. Johnson, & B. H. Korte (Eds.), Discrete Optimization II (Vol. 5, pp. 287–326). Elsevier. https://doi.org/https://doi.org/10.1016/S0167-5060(08)70356-X

Gue, K., Nemhauser, G., & Padron, M. (2000). Production Scheduling in Almost Continuous Time. IIE Transactions, 29. https://doi.org/10.1080/07408179708966344

Gupta, J. N. D. (1988). Two-Stage, Hybrid Flowshop Scheduling Problem. The Journal of the Operational Research Society, 39(4), 359–364. http://www.jstor.org/stable/2582115

Jenabi, M., Fatemi Ghomi, S. M. T., Torabi, S. A., & Karimi, B. (2007). Two hybrid meta-heuristics for the finite horizon ELSP in flexible flow lines with unrelated parallel machines. Applied Mathematics and Computation, 186(1), 230–245. https://doi.org/https://doi.org/10.1016/j.amc.2006.06.121

Jungwattanakit, J., Reodecha, M., Chaovalitwongse, P., & Werner, F. (2009). A comparison of scheduling algorithms for flexible flow shop problems with unrelated parallel machines, setup times, and dual criteria. Computers & Operations Research, 36(2), 358–378. https://doi.org/https://doi.org/10.1016/j.cor.2007.10.004

Kirkpatrick, S., Gelatt, C. ~D., & Vecchi, M. ~P. (1983). Optimization by Simulated Annealing. Science, 220(4598), 671–680. https://doi.org/10.1126/science.220.4598.671

Kis, T., & Pesch, E. (2005). A review of exact solution methods for the non-preemptive multiprocessor flowshop problem. European Journal of Operational Research, 164(3 SPEC. ISS.), 592–608. https://doi.org/10.1016/j.ejor.2003.12.026

Kramer, O. (2017). Studies in Computational Intelligence 679 Genetic Algorithm Essentials. https://www.mendeley.com/research-papers/studies-computational-intelligence-679-genetic-algorithm-essentials/?utm_source=desktop&utm_medium=1.17.13&utm_campaign=open_catalog&userDocumentId=%7B7a663108-07c0-4ee8-bd54-f1a7009fb46e%7D

Leisten, R., & Kolbe, M. (1998). A note on scheduling jobs with missing operations in permutation flow shops. International Journal of Production Research, 36(9), 2627–2630.

Page 23: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

https://doi.org/10.1080/002075498192742 Li, Y., Wang, C., Gao, L., Song, Y., & Li, X. (2020). An improved simulated annealing algorithm based on

residual network for permutation flow shop scheduling. Complex & Intelligent Systems. https://doi.org/10.1007/s40747-020-00205-9

Marichelvam, M. K., & Prabaharan, T. (2014). Performance evaluation of an improved hybrid genetic scatter search (IHGSS) algorithm for multistage hybrid flow shop scheduling problems with missing operations. International Journal of Industrial and Systems Engineering, 16(1), 120–141. https://econpapers.repec.org/RePEc:ids:ijisen:v:16:y:2014:i:1:p:120-141

Nawaz, M., Enscore, E. E., & Ham, I. (1983). A heuristic algorithm for the m-machine, n-job flow-shop sequencing problem. Omega, 11(1), 91–95. https://doi.org/https://doi.org/10.1016/0305-0483(83)90088-9

Nearchou, A. (2004). Flow-shop sequencing using hybrid simulated annealing. Journal of Intelligent Manufacturing, 15, 317–328. https://doi.org/10.1023/B:JIMS.0000026570.03851.cc

Negenman, E. (2001). Local search algorithms for the multiprocessor flow shop scheduling problem. European Journal of Operational Research, 128, 147–158. https://doi.org/10.1016/S0377-2217(99)00354-9

Nowicki, E., & Smutnicki, C. (1998). The flow shop with parallel machines: A tabu search approach. European Journal of Operational Research, 106(2), 226–253. https://doi.org/https://doi.org/10.1016/S0377-2217(97)00260-9

Pan, Q. K., & Ruiz, R. (2012). Local search methods for the flowshop scheduling problem with flowtime minimization. European Journal of Operational Research, 222(1), 31–43. https://doi.org/10.1016/j.ejor.2012.04.034

Paul, R. J. (1979). A Production Scheduling Problem in the Glass-Container Industry. Operations Research, 27(2), 290–302. https://doi.org/10.1287/opre.27.2.290

Rajendran, C., & Ziegler, H. (2001). A performance analysis of dispatching rules and a heuristic in static flowshops with missing operations of jobs. European Journal of Operational Research, 131(3), 622–634. https://doi.org/https://doi.org/10.1016/S0377-2217(00)00105-3

Resende, M. G. C., & Ribeiro, C. C. (2019). Greedy Randomized Adaptive Search Procedures: Advances and Extensions. In M. Gendreau & J.-Y. Potvin (Eds.), Handbook of Metaheuristics (pp. 169–220). Springer International Publishing. https://doi.org/10.1007/978-3-319-91086-4_6

Ruiz, R., Şerifoğlu, F. S., & Urlings, T. (2008). Modeling realistic hybrid flexible flowshop scheduling problems. Computers & Operations Research, 35(4), 1151–1175. https://doi.org/https://doi.org/10.1016/j.cor.2006.07.014

Ruiz, R., & Vázquez-Rodríguez, J. A. (2010). The hybrid flow shop scheduling problem. European Journal of Operational Research, 205(1), 1–18. https://doi.org/10.1016/j.ejor.2009.09.024

Salvador, M. S. (1973). A Solution to a Special Class of Flow Shop Scheduling Problems. In S. E. Elmaghraby (Ed.), Symposium on the Theory of Scheduling and Its Applications (pp. 83–91). Springer Berlin Heidelberg.

Solomon, D., & Spurling, T. (2014). Plastic Banknote. CSIRO Publishing. https://doi.org/10.1071/9781486300327

Tang, L., Liu, W., & Liu, J. (2005). A neural network model and algorithm for the hybrid flow shop scheduling problemin a dynamic environment. Journal of Intelligent Manufacturing, 16(3), 361–370. https://doi.org/10.1007/s10845-005-7029-0

Tseng, C.-T., Liao, C.-J., & Liao, T.-X. (2008). A note on two-stage hybrid flowshop scheduling with missing operations. Computers & Industrial Engineering, 54(3), 695–704. https://doi.org/https://doi.org/10.1016/j.cie.2007.09.005

Vallada, E., Ruiz, R., & Minella, G. (2008). Minimising total tardiness in the m-machine flowshop problem: A review and evaluation of heuristics and metaheuristics. Computers and Operations Research, 35(4), 1350–1373. https://doi.org/10.1016/j.cor.2006.08.016

Wierenga, B. (2008). Handbook of Marketing Decision Models. In Handbook of Marketing Decision Models (Vol. 9, Issue 2005). https://doi.org/10.1007/978-0-387-78213-3

Ying, K.-C. (2009). An iterated greedy heuristic for multistage hybrid flowshop scheduling problems with multiprocessor tasks. Journal of the Operational Research Society, 60(6), 810–817. https://doi.org/10.1057/palgrave.jors.2602625

Page 24: METAHEURÍSTICAS PARA LA PROGRAMACIÓN DE PRODUCCIÓN …

13 ANEXOS

GUROBI GRASP SA BRKGA

N M FO Tiempo Status Best Bound Prom. FO Prom.

Tiempo (s) Prom. FO

Prom.

Tiempo (s) Prom. FO

Prom.

Tiempo (s)

4 3 410,00 0,0481 Óptimo 410,00 451,00 0,0625 410,00 0,0058 410,00 0,0081

4 4 384,00 0,0643 Óptimo 384,00 384,00 0,0938 384,00 0,0067 384,00 0,0055

4 8 1.312,33 0,2189 Óptimo 1.312,33 1.312,33 0,1562 1.312,33 0,0135 1.312,33 0,0312

4 10 1.524,35 0,7902 Óptimo 1.524,35 1.533,52 0,1719 1.524,35 0,0165 1.524,35 0,0312

4 12 1.476,01 1,0333 Óptimo 1.476,01 1.476,01 0,2656 1.476,01 0,0196 1.476,01 0,0318

10 3 876,02 3.619,3920 TL - Best Sol 749,01 1.093,38 1,5105 1.077,88 0,0414 1.077,88 0,1712

10 4 1.057,34 3.600,5310 TL - Best Sol 746,01 1.243,67 1,8593 1.069,84 0,0533 1.057,34 0,2500

10 8 1.509,66 5.661,2460 TL - Best Sol 985,82 1.564,66 2,7812 1.523,49 0,1030 1.514,15 0,4531

10 10 2.159,84 6.099,2420 TL - Best Sol 1.479,51 2.163,33 4,4218 2.111,68 0,1249 2.111,68 0,5622

10 12 1.893,49 3.601,5800 TL - Best Sol 1.293,59 1.963,49 3,4374 1.912,49 0,1505 1.905,99 0,6631

20 3 1.679,00 3.602,3240 TL - Best Sol 365,00 1.679,00 15,4615 1.679,00 0,2037 1.679,00 1,7629

20 4 1.704,00 3.618,8540 TL - Best Sol 572,50 1.650,50 13,5482 1.592,50 0,2757 1.534,50 2,4023

20 8 6.368,00 3.607,6500 TL - Best Sol 1.243,91 3.927,00 22,3790 3.817,00 0,5253 3.632,00 4,6509

20 10 6.972,01 3.603,9990 TL - Best Sol 1.568,51 3.374,34 32,8552 3.640,51 0,6675 3.388,34 5,8490

20 12 6.363,65 3.602,6130 TL - Best Sol 1.557,99 3.038,99 15,3605 3.124,99 0,7970 3.053,99 7,0587

40 3 2.978,00 3.604,5210 TL - Best Sol 450,00 2.198,00 117,5461 2.238,00 1,3021 2.200,00 23,0355

40 4 11.199,00 3.606,1010 TL - Best Sol 779,97 6.157,00 99,2361 6.294,00 1,6649 6.157,00 29,2356

40 8 14.861,00 3.603,3580 TL - Best Sol 1.111,00 5.972,00 240,4176 6.008,00 3,3372 5.928,00 58,5364

40 10 10.857,29 3.602,0950 TL - Best Sol 1.315,79 3.886,31 486,7693 4.052,80 4,2454 3.875,31 75,1031

40 12 18.467,79 3.601,4150 TL - Best Sol 1.396,99 5.254,66 458,0343 5.254,66 5,1743 5.154,99 90,5878

75 3 8.345,30 3.601,5420 TL - Best Sol 493,66 7.991,49 602,7580 7.947,83 7,6489 7.914,83 250,2409

75 4 8.094,82 3.602,1060 TL - Best Sol 548,99 7.222,99 601,2717 6.982,33 9,8977 6.982,33 329,7440

75 8 0* 3.604,2880 TL - Best Bound 1.125,99 10.636,99 603,8294 10.548,66 19,4768 10.449,33 614,0840

75 10 0* 3.604,0400 TL - Best Bound 1.372,50 11.757,50 604,2585 11.166,00 24,3350 10.976,50 617,7867

75 12 0* 3.605,0190 TL - Best Bound 1.584,03 10.187,69 607,6281 9.777,85 29,4377 9.498,01 619,5258

150 3 24.436,00 3.604,5050 TL - Best Sol 393,00 18.275,00 601,4802 18.275,00 54,4959 18.275,00 652,9164

150 4 0* 3.605,3090 TL - Best Bound 626,49 20.550,83 603,1380 20.438,83 70,4381 20.438,83 652,8915

150 8 0* 3.613,3460 TL - Best Bound 993,48 21.265,82 601,0132 21.037,99 142,2019 21.031,16 733,2308

150 10 0* 3.610,8240 TL - Best Bound 1.115,01 20.319,01 671,3241 20.161,67 173,4351 20.069,67 739,1259

150 12 0* 3.616,9490 TL - Best Bound 1.444,53 14.819,85 626,2907 14.843,85 211,8664 14.793,85 795,1651

Tabla 5.Resultados obtenidos para las 30 instancias