SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

52
1 SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA PRODUCCIÓN EN UNA PLANTA COMPUESTA POR ÁREAS INTERRELACIONADAS PRESENTADO POR: DIANA EMMA GOGGEL BONILLA ASESOR: CIRO AMAYA GUIO UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA INDUSTRIAL BOGOTÁ D.C., MAYO DE 2020

Transcript of SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

Page 1: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

1

SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA PRODUCCIÓN

EN UNA PLANTA COMPUESTA POR ÁREAS INTERRELACIONADAS

PRESENTADO POR: DIANA EMMA GOGGEL BONILLA

ASESOR: CIRO AMAYA GUIO

UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA INDUSTRIAL

BOGOTÁ D.C., MAYO DE 2020

Page 2: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

2

TABLA DE CONTENIDO

Lista de ilustraciones .............................................................................................................. 4

Lista de tablas ......................................................................................................................... 5

1. Introducción ...................................................................................................................... 6

2. Objetivos ........................................................................................................................... 7

2.1. Objetivo General ....................................................................................................... 7

2.2. Objetivos Específicos ................................................................................................ 7

3. Metodología ...................................................................................................................... 8

4. Revisión de la literatura .................................................................................................... 9

4.1. Scheduling ................................................................................................................. 9

5. Modelo del problema ...................................................................................................... 15

5.1. Definición del problema .......................................................................................... 15

5.2. Modelos matemáticos de soporte al problema ........................................................ 23

5.2.1. Modelo matemático del Job Shop ................................................................. 23

5.2.2. Modelo matemático del Flow Shop con permutación .................................. 25

6. Métodos de solución ....................................................................................................... 28

6.1. Método 1 – Completo exacto .................................................................................. 28

6.2. Método 2 – Por áreas exacto ................................................................................... 28

6.3. Método 3 – Por áreas exacto con interrupciones ..................................................... 29

6.4. Método 4 – Completo con algoritmo genético ........................................................ 30

6.5. Método 5 – Por áreas con algoritmo genético ......................................................... 33

7. Análisis ........................................................................................................................... 33

7.1. Método 1 – Completo exacto .................................................................................. 36

7.2. Método 2 – Por áreas exacto ................................................................................... 37

7.3. Método 3 – Por áreas exacto con interrupciones ..................................................... 37

7.4. Método 4 – Completo con algoritmo genético ........................................................ 38

Page 3: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

3

7.5. Método 5 – Por áreas con algoritmo genético ......................................................... 39

7.6. Análisis comparativo ............................................................................................... 40

7.7. Prueba de robustez .................................................................................................. 42

8. Caso de Aplicación ......................................................................................................... 43

8.1. Comestibles Italo S.A. ............................................................................................. 44

8.2. Método de solución y análisis ................................................................................. 47

9. Conclusiones y recomendaciones ................................................................................... 49

10. Bibliografía ..................................................................................................................... 50

Page 4: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

4

Lista de Ilustraciones

Gráficas

Gráfica 1. Comparación del Makespan entre los métodos ................................................... 40

Gráfica 2. Comparación de los tiempos de corrida entre los métodos ................................. 41

Gráfica 3. Makespan de los métodos VS la cota inferior ..................................................... 41

Gráfica 4. Makespan de los métodos VS la cota inferior - Porcentual ................................. 42

Gráfica 5. Coeficiente de variación en las instancias ........................................................... 43

Gráfica 6. Ventas de Comestibles Italo en los años 2015, 2016 y 2017 .............................. 45

Gráfica 7. Diagrama de Pareto de Comestibles Italo............................................................ 45

Figuras

Figura 1. Metodología del proyecto ....................................................................................... 8

Figura 2. Modelo del ejemplo con las posibles interacciones .............................................. 18

Figura 3. Modelo del ejemplo con las posibles rutas ........................................................... 21

Figura 4. Procedimiento de la programación por áreas ........................................................ 29

Figura 5. Ejemplo de codificación ........................................................................................ 31

Page 5: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

5

Lista de Tablas

Tabla 1. Clasificación de la bibliografía ............................................................................... 12

Tabla 2. Características de los Stage Shop y Mixed Shop de la literatura ........................... 13

Tabla 3. Definición del problema con la nomenclatura de Schedule ................................... 17

Tabla 4. Posibles rutas que se pueden encontrar en el modelo del ejemplo ......................... 20

Tabla 5. Definición del ejemplo con la nomenclatura de Schedule ..................................... 23

Tabla 6. Valores de las variables a calibrar .......................................................................... 33

Tabla 7. Resultados de la calibración ................................................................................... 33

Tabla 8. Instancias utilizadas en los métodos de solución ................................................... 34

Tabla 9. El valor de cada cota para cada instancia ............................................................... 36

Tabla 10. Resultado método 1 .............................................................................................. 37

Tabla 11. Resultado método 2 .............................................................................................. 37

Tabla 12. Resultado método 3 .............................................................................................. 38

Tabla 13. Resultado método 4 .............................................................................................. 39

Tabla 14. Resultado método 5 .............................................................................................. 40

Tabla 15. Resultados de la prueba de robustez ..................................................................... 43

Tabla 16. Resultados del caso de aplicación ........................................................................ 48

Page 6: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

6

1. Introducción

La programación de la producción (Schedule) es un proceso de toma de decisiones, en la

cual se asignan recursos de acuerdo con los trabajos que se desean realizar, con la

finalidad de optimizar uno o más objetivos. Este proceso resulta de gran interés para la

industria manufacturera, como lo dice Nguyen & Bao [24], ya que es un factor clave para

mejorar la productividad de la fábrica y cumplir con las demandas, que por consecuente

mejoran la satisfacción de los clientes. Adicionalmente, mediante el Schedule también se

busca balancear las cargas en el sistema y lograr una distribución equitativa de los

recursos.

En la academia el problema de programación es de gran interés, a causa del alto nivel de

complejidad y la gran cantidad de posibles variaciones que existen, según Graves [13],

cada configuración del problema de Schedule es tan único o diferente que puede necesitar

una solución específica. Debido a lo anterior, se pueden encontrar muchos papers en la

literatura de los tipos “puros” o básicos del problema de programación, es decir del Flow

Shop, Job Shop y Open Shop, en los cuales se utilizan algoritmos, heurísticas y

metaheurísticas para solucionarlos. Sin embargo, Herrmann [14] explica que hay una

brecha entre la teoría de la programación de la producción y su práctica, debido en parte

a que la realidad es más compleja que los problemas “puros” de programación y a la falta

de interés en algunos casos de publicar lo hecho en la práctica. Debido a lo anterior, los

académicos empezaron en 1980 a revisar los problemas de múltiples etapas, como el

Stage Shop y Mixed Shop, los cuales son extensiones de los problemas básicos de

Schedule, donde los trabajos requieren diferentes operaciones en distintas máquinas y

hay más de una etapa o estación, por lo cual estos se acercan más a la práctica o a la

realidad en las empresas.

Por un lado, en el Stage Shop cada trabajo debe pasar por un número de etapas, las cuales

están compuestas por una o más operaciones. En este tipo de problemas se sigue la idea

de un problema básico, ya sea Flow Shop o Job Shop, entre las etapas y dentro de cada

etapa se tiene un problema de una máquina, de máquinas paralelas o de máquinas

independientes.

Page 7: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

7

Por otro lado, en el Mixed Shop se hacen combinaciones de los tres problemas iniciales

(Flow Shop, Job Shop y Open Shop), de manera que se acercan más a la realidad que se

presenta en las empresas de manufactura. Los autores que los han trabajado se han

enfocado principalmente en la combinación del Flow Shop y Open Shop, sin embargo,

según Liu & Ong [21] este tipo de problemas ha sido poco aplicado y estudiado por los

académicos.

Considerando lo dicho previamente, el objetivo de este trabajo de investigación es

solucionar el problema de la programación de la producción de una planta de manufactura

compuesta por áreas o secciones interrelacionadas, que se comportan como problemas de

Flow Shop y Job Shop. Lo anterior, se busca con el fin de minimizar los tiempos de

procesamiento, mientras se cumplen con ciertas características en los trabajos, las cuales

son: el tiempo de preparación, el tiempo de liberación, restricciones en las máquinas,

prioridades y preemption.

2. Objetivos

2.1. Objetivo general

Solucionar el problema de la programación de la producción en una planta

compuesta por áreas interrelacionadas, mientras se cumplen con ciertas

características en los trabajos, como los tiempos de preparación, con el fin de

minimizar el tiempo de procesamiento del último trabajo.

2.2. Objetivos específicos

2.2.1. Modelar el problema planteado.

2.2.2. Generar métodos de solución que permitan resolver el problema.

2.2.3. Analizar y comparar los métodos de solución.

2.2.4. Aplicar el mejor método de solución en el caso de aplicación.

2.2.5. Presentar las conclusiones y recomendaciones.

Page 8: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

8

3. Metodología

El trabajo de investigación busca modelar la programación de la producción de una planta

de manufactura compuesta por áreas o secciones interrelacionadas, donde las

características de los trabajos son: el tiempo de preparación, el tiempo de liberación, la

restricción en las máquinas, las prioridades y el preemption, teniendo como objetivo

minimizar los tiempos de procesamiento. Para desarrollar este proyecto de investigación

se va a utilizar la siguiente metodología (Figura 1), la cual consta de seis etapas.

Figura 1. Metodología del proyecto

Inicialmente se comienza con la revisión de la bibliografía, a través de artículos,

documentos y trabajos desarrollados en el área de interés. Revisando en primera instancia

el tema de Scheduling de manera general, seguido de Flow Shop y Job Shop, para luego

concentrarse en el tema de la programación de modelos mixtos y de múltiples etapas.

Además, se estudian los algoritmos, heurísticas y metaheurísticas más usadas para

resolver el Flow Shop, Job Shop, los modelos mixtos y de múltiples etapas.

La segunda parte consiste en modelar el problema, el cual está compuesta por dos etapas.

La primera es la definición, conceptualización y caracterización del problema, mientras

que la segunda sección es la formulación matemática del problema previamente definido.

El tercer paso consta de los métodos de solución, es decir la forma en que se resuelve el

problema, donde se tiene en cuenta el modelo matemático y la bibliografía examinada,

para generar varios métodos de solución.

Page 9: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

9

En la siguiente etapa se realiza el análisis de cada método por separado, luego se

comparan los métodos entre sí para definir el mejor. Finalmente se efectúa la prueba de

robustez con el mejor método de solución.

La quinta etapa se trata del caso de aplicación, en la cual inicialmente se habla de la

empresa Comestibles Italo, luego se emplea el mejor método de solución al problema real

y se realiza el análisis para ver la utilidad y eficiencia de esta forma de solución.

Por último, se finaliza con las conclusiones y recomendaciones que surgen del proyecto

de investigación.

4. Revisión de la literatura

El marco teórico está compuesto por la sección de Scheduling, en la cual se realiza la

revisión de la bibliografía, comenzando con una introducción al tema, seguida de la

exploración del Flow Shop y Job Shop, para luego continuar con el Stage y Mixed Shop.

4.1. Scheduling

La programación de la producción es un proceso de toma de decisiones, en el cual

se asignan recursos según los trabajos que se desean realizar, esto con la finalidad de

optimizar uno o más objetivos. Entre los problemas básicos de Scheduling se

encuentran el Flow Shop, Job Shop y Open Shop, la diferencia entre estos radica en

las rutas que siguen los trabajos. En el primero todos los trabajos siguen la misma

ruta, mientras que en el segundo cada trabajo tiene su propia ruta, la cual es

independiente de los demás trabajos. En el Open Shop en cambio no hay una ruta

definida solo se sabe que operaciones se deben realizar en los trabajos y al realizar

la programación se define la ruta de las operaciones.

Una vez aclarado la generalidad del Schedule, se prosigue a revisar los problemas de

Flow Shop y Job Shop más específicamente, dado que las áreas del problema

definido en este proyecto de investigación se pueden comportan de esta manera. Al

realizar la revisión bibliográfica de estos problemas se encontró que como ambos

son NP-Hard, los métodos de solución utilizados son algoritmos, heurísticas y

Page 10: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

10

metaheurísticas. En el problema de Flow Shop se busca normalmente optimizar el

Makespan a través de una heurística, la cual generalmente es el algoritmo genético,

que en algunos casos combinan con otras heurísticas para generar un método de

solución mixto. Ejemplos de este tipo de soluciones se encuentran en artículos como:

RB & Rajkumar [29] o Wang & Zheng [32]. En cuestión a los problemas de Job

Shop, el método de solución, utilizado en los papers, generalmente consiste en

generar un algoritmo mixto, el cual este compuesto por dos o más heurísticas, donde

una de estas normalmente es el algoritmo genético. Ejemplos de este tipo de

soluciones se encuentran en artículos como: Zobolas, Tarantilis & Ioannou [35],

Ponnambalam, Aravindan & Rao [28], Cheng, Peng & Lu [5].

El problema que se busca modelar es la programación de la producción de una planta

compuesta por áreas interrelacionadas, por lo cual es necesario indagar en problemas

de múltiples etapas, como el Stage Shop y el Mixed Shop, los cuales se acercan más

a la realidad y al problema definido en este proyecto de investigación. Inicialmente,

se analizó el problema de etapas, donde cada trabajo debe pasar por un número de

etapas, las cuales están compuestas por una o más operaciones. En este tipo de

problemas se encontró que la mayoría de los papers tratan situaciones con dos o tres

etapas de Flow Shop, donde en su mayoría las etapas están compuestas por una

máquina o por máquinas en paralelo. Ejemplos de este tipo de artículos son: los de

Lin [20], Komaki & Kayvanfar [18], Choi & Lee [6] y Panwalker & Koulamas [25].

En estos papers se evidencia que, como los problemas de etapas son extensiones de

los básicos, lo que hacen los autores es tomar un algoritmo, ya existentes y

comprobado para los problemas base, y ampliarlo o modificarlo para que funcione

en un Stage Shop.

Tras revisar el problema de Stage Shop y su bibliografía, se prosigue con el Mixed

Shop, el cual se considera una categoría más apropiada para la situación a modelar

en este proyecto de investigación, ya que son combinaciones de los problemas base,

donde los trabajos pueden seguir uno u otro tipo de problema básico. Autores, como

Ishii, Masuda & Nishida [16] o Koulamas, & Kyparisis [19], se han concentrado en

Page 11: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

11

abordar la combinación de Flow Shop y Open Shop, donde se tienen dos conjuntos

de trabajos, uno compuesto por los trabajos que se mueven como un Flow Shop y el

otro son los trabajos que se comportan como un Open Shop. Sin embargo, para los

problemas Mixed Shop en general y según Shakhlevich, Sotskov, & Werner [31], se

necesita una mezcla de técnicas y algoritmos que fueron desarrollados para los

problemas básicos, o desarrollar un algoritmo especial. Lo anterior se evidenció al

revisar los métodos de solución de los problemas mixtos, donde los autores generan

el método de solución de dos formas. La primera es revisando inicialmente el

problema si el Open Shop está vacío y definiendo que algoritmo lo resuelve, para

luego mirar el problema si el Flow Shop está vacío y definir el algoritmo que resuelve

dicha situación. Una vez definidas las soluciones para cada problema individual,

proceden a combinar y complementar ambas soluciones de manera que terminen con

un método de solución para el problema Mixto. La segunda forma de resolver el

problema es tomando un algoritmo general que funcione para uno de los problemas

base, el cual se modifica y mejora, con el propósito de que funcione en el caso mixto

que se está analizando.

Teniendo en cuenta que el método de solución en los casos mixtos surge

principalmente de los casos básicos se prosigue a revisar también como autores

solucionan problemas que tengan las características de la situación que se desea

resolver en este proyecto de investigación. Es decir, de un problema con una planta

de manufactura compuesta por áreas o secciones interrelacionadas, las cuales se

comportan como Flow Shop o Job Shop y donde las características que tienen los

trabajos son: el tiempo de preparación, el tiempo de liberación, la restricción en las

máquinas, las prioridades y el preemption, con el objetivo de minimizar los tiempos

de procesamiento.

En la siguiente tabla (Tabla 1) se encuentran clasificados los artículos de acuerdo

con el tipo de problema, es decir si es de Flow Shop, Job Shop, Stage Shop o Mixed

Shop, el autor y el método de solución utilizado, donde en la tabla (a) se ven las

Page 12: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

12

abreviaciones utilizadas para representar los algoritmos, heurísticas y

metaheurísticas utilizados por los autores.

(a) Abreviaciones de los métodos

Tabla 1. Clasificación de la bibliografía

En la tabla se puede evidenciar que el método más utilizado para resolver los

problemas es el algoritmo genético, seguido de la búsqueda local y generar un nuevo

algoritmo para resolver las distintas situaciones.

Metodo Abreviatura

Algoritmo Genético GA

Búsqueda Local LS

Búsqueda Tabú TS

Shiffting Bottleneck SB

Simmulated Annealing SA

New Algorithm NA

Grey Wolf Algorithm GW

Ant Colony AC

Evolutionary Algorithm EA

Imperialist Competitive Algorithm ICA

Shortest Processing Time SPT

Nawaz, Enscore, Ham NEH

Branch & Bound BB

GA LS TS SB SA GW AC EA ICA SPT NEH BB

Low, Yeh, & Huang [23] X

Ignall, & Schrage [15] X

RB, & Rajkumar [29] X

Wang, & Zheng [32] X X

Yagmahan, & Yenisey [33] X

Zobolas, Tarantilis, & Ioannou [35] X X

Pezzella, & Merelli [26] X X

Cheng, Peng, & Lu [5] X X

Fernandes, & Lourenco [12] X X

Zhang, Li, Guan, & Rao [34] X

Ponnambalam, Aravindan, & Rao [28] X

Lin [20] X

Komaki & Kayvanfar [18] X X

Choi & Lee [6] X

Panwalker & Koulamas [25] X

Kazemi, Mazdeh & Rostami [17] X

Liu & Ong [21] X X

Ishii, Masuda & Nishida [16] X

Dugarzhapov & Kononov [11] X

Nguyen & Bao [24] X

Çetinkaya & Duman [4] X

Método

Flow Shop

Job Shop

Stage Shop

Mixed

Shop

Tipo

ProblemaAutor Heuristicas

NA

Page 13: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

13

Adicionalmente, en la Tabla 2 se pueden visualizar las características de los Stage

Shop y Mixed Shop, se revisaron específicamente las características de estos

problemas dado que son los que más se asemejan a la situación que se está trabajando

en este proyecto de investigación, así como las características de este proyecto de

investigación.

Tabla 2. Características de los Stage Shop y Mixed Shop de la literatura

A continuación, se explican que hacen algunos de los autores de los problemas por

etapas y los modelos mixtos para resolver la situación que analizaron.

Lin [20] resuelve un problema por etapas, el cual está compuesto de dos etapas en

Flow Shop, una con una máquina y la otra con dos máquinas en paralelo, donde hay

dos posibles rutas. El autor soluciona el problema de minimizar la tardanza máxima

mediante un nuevo algoritmo que calcula una fecha de entrega modificada y con base

en esta organiza los trabajos.

Komaki & Kayvanfar [18] analizan un problema Flow Shop bietápico donde la

primera parte tiene máquinas en paralelo, y la segunda parte solo está compuesta por

una máquina. Para resolver el problema los autores tomaron de base el optimizador

Indicadores y Restricciones Abreviatura

Tiempo de terminación C

Tardanza T

Retraso L

Fecha de entrega d

Tiempo de procesamiento p

Tiempo de liberación r

Costos ct

Interrupciones prmp

Trabajos por lotes lote

Tiempo de preparación s

C T L ct d p r s ct prmp lote

Lin [20] X X X

Komaki & Kayvanfar [18] X X X

Choi & Lee [6] X X X

Panwalker & Koulamas [25] X X

Kazemi, Mazdeh & Rostami [17] X X X X X X

Liu & Ong [21] X X

Ishii, Masuda & Nishida [16] X X X X

Dugarzhapov & Kononov [11] X X X

Nguyen & Bao [24] X X

Çetinkaya & Duman [4] X X X

X X X XProyecto de Investigación

Mixed

Shop

Tipo

ProblemaAutor TrabajosObjetivos

Stage Shop

Indicadores Restricciones

Page 14: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

14

Grey Wolf y lo modificaron con la finalidad de que se ajustara al problema analizado.

Además, para mejorar su rendimiento lo complementaron con un algoritmo de

búsqueda local.

Panwalker & Koulamas [25] revisan un problema de tres etapas, cada una compuesta

por una máquina. El autor inicialmente define el mejor orden de las etapas que luego

se resuelven en forma de Flow Shop. El autor define el orden de las etapas por medio

de la regla SPT, teniendo como objetivos minimizar el Makespan y el tiempo

promedio de terminación de los trabajos.

Liu & Ong [21] revisan un modelo mixto de Job Shop y Open Shop, donde los

autores utilizan tres heurísticas, Simmulated Annealing, Tabu Search & Threshold

Accepting, que sirven para resolver los problemas independientes y las modifican

para el problema mixto.

Dugarzhapov & Kononov [11] revisan un modelo mixto de Flow Shop y Open Shop

con interrupciones, donde el objetivo es minimizar el Makespan, para lograr lo

anterior los autores generan un nuevo algoritmo que resuelve el problema en tiempo

polinomial.

Nguyen & Bao [24] resuelven en su paper un problema mixto de Job Shop y Open

Shop, con el objetivo de minimizar el Makespan. Los autores realizan lo anterior

modificando el algoritmo genético para resolver el problema que tienen.

Finalmente, luego de realizar la revisión bibliográfica se evidencia que el problema

a trabajar en este proyecto de investigación se clasifica como un problema por etapas,

donde la diferencia de este problema con otros en la literatura radica en que las etapas

se comportan como un Job shop. Además, la mayoría de los problemas por etapas

tratan de dos o tres etapas, y en este proyecto de investigación se está analizando un

problema de más de dos etapas. Asimismo, una diferencia importante de este

proyecto de investigación con la literatura reside en que internamente cada etapa esta

compuesta por Job Shop o Flow Shop, y no por una máquina, máquinas

independientes o paralelas.

Page 15: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

15

5. Modelo del problema

El modelo del problema está compuesto por dos secciones, donde en la primera se define,

caracteriza y conceptualiza el problema que se está tratando en el proyecto de

investigación, mientras que en la segunda parte se muestra el modelo matemático

asociado.

5.1. Definición del problema

El problema por modelar en este proyecto de investigación es la programación de la

producción de una planta compuesta por varias áreas interrelacionadas para un lapso

de una semana, en el cual las áreas se comportan como Flow Shop o Job Shop, y los

trabajos pasan por una o más etapas dependiendo de la ruta que deben seguir.

A continuación, se encuentran los supuestos que se van a manejar en este proyecto

de investigación.

- La capacidad de las máquinas es ilimitada.

- Una máquina solo puede procesar un trabajo a la vez.

- Las máquinas no tienen mantenimiento ni fallas.

- Todas las máquinas están disponibles en el tiempo cero.

- Un trabajo solo puede ser procesado por una máquina a la vez.

- En el tiempo cero se conocen todos los trabajos y sus parámetros, no ingresan

nuevos trabajos después del tiempo cero.

- Todos los parámetros (tiempos de proceso, tiempos de setup, etc.) son conocidos

y constantes.

- Los trabajos son independientes entre sí, no tienen ninguna relación de

precedencia entre ellos.

Por otro lado, las características del problema a trabajar son las siguientes:

- Hay diferentes niveles de prioridad entre los trabajos.

- Se va a generar una programación para un tiempo definido.

- Las áreas se pueden comportar como Flow Shop o Job Shop.

- Los trabajos pueden pasar por una o más áreas/etapas.

Page 16: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

16

- El 60% de los trabajos solo pasa por un área, el restante 40% de los trabajos pasa

por dos o más áreas.

- Todos los trabajos tienen tiempos de preparación, tiempos de procesamiento.

- Si las áreas se evalúan por separado los trabajos tiene tiempos de liberación en

las áreas que dependen de otras, debido a que solo van a poder procesarse si ya

fueron terminadas en las áreas anteriores.

- Los trabajos solo pueden ser realizados en ciertas maquinas (restricción de

máquinas).

- Se asocian grupos de máquinas para ser representadas como una sola máquina,

cuando estas se comportan como un Flow Shop, no pueden ser utilizadas por

separado, deben estar fabricando siempre el mismo trabajo, es decir no pueden

arrancar con otro trabajo si el predecesor no ha sido finalizado en todas las

máquinas del grupo, y el procedimiento realizado por cada máquina del grupo

solo tiene utilidad si se ejecutan en conjunto. El agrupamiento de las máquinas

se va a denominar “Línea”.

- El objetivo del problema es minimizar el tiempo de terminación del último

trabajo, denominado Cmax.

- La última área es la única que puede tener interrupciones, el resto de las áreas

trabajan sin interrupciones.

- Las características de los trabajos en este proyecto de investigación son: la

prioridad, el tiempo de procesamiento, el tiempo de preparación, el preemption

y la restricción en las máquinas o la ruta.

En la siguiente tabla (Tabla 3) se define el problema tratado en este proyecto de

investigación con la nomenclatura de Schedule (la representación de Graham, Lawler,

Lenstra, Rinnooy Kan) de manera general y por áreas, donde las prioridades se

representan con priori.

Page 17: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

17

Problema Nomenclatura

General 𝐽𝑚|𝑠𝑖𝑗, 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑝𝑟𝑚𝑝|𝐶𝑚𝑎𝑥

Algunas áreas independientes 𝐽𝑚|𝑠𝑖𝑗, 𝑝𝑟𝑖𝑜𝑟𝑖|𝐶𝑚𝑎𝑥

Algunas áreas independientes 𝐹𝑚|𝑠𝑖𝑗, 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖|𝐶𝑚𝑎𝑥

Algunas áreas dependientes 𝐽𝑚|𝑠𝑖𝑗, 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑟𝑗|𝐶𝑚𝑎𝑥

Algunas áreas dependientes 𝐹𝑚|𝑠𝑖𝑗, 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑟𝑗|𝐶𝑚𝑎𝑥

Última área 𝐹𝑚|𝑠𝑖𝑗, 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑝𝑟𝑚𝑝, 𝑟𝑗|𝐶𝑚𝑎𝑥

Tabla 3. Definición del problema con la nomenclatura de Schedule

A continuación, se presenta un ejemplo de un problema que se comporta como el

definido en este proyecto de investigación. En la siguiente gráfica (Figura 2) se puede

ver el modelo general del ejemplo, donde las líneas verdes representan la entrada o

el inicio del producto, las líneas anaranjadas son las interacciones entre las áreas y

las líneas azules oscuras son los posibles caminos que pueden tomar los productos al

salir. Este modelo muestra la situación a nivel de áreas, pero no muestra lo que

sucede dentro de cada una de ellas.

Page 18: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

18

Figura 2. Modelo del ejemplo con las posibles interacciones

Las áreas del ejemplo presentado en el modelo anterior están formadas de la

siguiente forma. La primera consiste en seis máquinas, las cuales están organizadas

en cuatro líneas de producción, donde cada línea está compuesta por dos máquinas.

La segunda área tiene tres líneas con una máquina, la tercera está compuesta por

cinco líneas, de las cuales dos tienen una máquina y tres tienen dos máquinas. La

cuarta etapa son cinco líneas de producción, donde cuatro tienen una máquina y solo

Page 19: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

19

una tiene dos máquinas, y finalmente la última área está compuesta por tres líneas

con una máquina. Adicionalmente, es importante recalcar que cada “Línea” de

producción representa un grupo de máquinas las cuales están organizadas como un

Flow Shop. Esta simplificación se realiza, ya que por un lado facilita el proceso de

programación y por otro este grupo de máquinas actúan como una sola, debido a que

para arrancar con un nuevo trabajo se debe haber terminado de procesar el trabajo

predecesor en todo el grupo de máquinas. Además, las máquinas no se utilizan por

separado siempre es en grupo y en cada una de ellas se realiza un procedimiento, que

solo sirve o tiene utilidad si se usan todas. Teniendo en cuenta lo anterior, se

evidencia que si se tratan las áreas por separado estas deben ser resueltas en cierto

orden, ya que hay interacciones entre ellas que afectan o se ven afectadas.

En este proyecto de investigación cada trabajo tiene una ruta definida, la cual dicta

el recorrido de dicho trabajo en la planta de manufactura y define si el trabajo pasa

por una o por varias áreas. Continuando con el ejemplo mencionado anteriormente,

las rutas de los trabajos que pasan por este modelo en particular cumplen ciertos

lineamientos. El primero es que, si un trabajo entra a la segunda máquina de una

línea de producción, este es empacado y por lo tanto sale del proceso de fabricación.

El segundo dice que, si un trabajo solo pasa por la primera máquina de una línea,

este va a seguir a otra área. Un tercer lineamiento explica que el área número cinco

es la última área que pueden visitar los trabajos, por lo cual luego de ser procesados

en esta deben salir del sistema. En la Tabla 4 se encuentran todas las posibles rutas

que pueden tomar los trabajos en el ejemplo tratado, las cuales suman un total de 26.

Estas se categorizan en simples y complejas, en las rutas simples, las cuales son once,

los productos solo pasan por un área, mientras que las rutas complejas, de las cuales

hay un total de quince, transitan por más de una etapa. La proporción entre rutas

simples y complejas cumpla con la característica definida para este proyecto de

investigación.

Page 20: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

20

Tabla 4. Posibles rutas que se pueden encontrar en el modelo del ejemplo

En la siguiente gráfica (Figura 3) se puede ver algunas rutas que pueden seguir los

productos en el ejemplo. Uno de los posibles caminos que puede haber en el ejemplo

es la ruta dos, en la cual el producto entra a la línea dos del área uno y pasa por ambas

partes de la línea (Máquina 1 y 2). Otro ejemplo, es la ruta 14, donde el producto

inicia en la línea tres del área uno y solo pasa por la máquina uno, para luego seguir

a la línea dos del área cuatro y finalizar en la línea uno del área cinco.

Ruta 1 E -> A1-L1M1 -> A1-L1M2 -> S

Ruta 2 E -> A1-L2M1 -> A1-L2M2 -> S

Ruta 3 E -> A1-L3M1 -> A1-L3M2 -> S

Ruta 4 E -> A1-L4M1 -> A1-L4M2 -> S

Ruta 5 E -> A2-L3 -> S

Ruta 6 E -> A3-L1M1 -> A3-L1M2 -> S

Ruta 7 E -> A3-L2M1 -> A3-L2M2 -> S

Ruta 8 E -> A3-L3M1 -> A3-L3M2 -> S

Ruta 9 E -> A3-L5 -> S

Ruta 10 E -> A4-L1M1 -> A4-L1M2 -> S

Ruta 11 E -> A4-L3 -> S

Ruta 12 E -> A1-L1M1 -> A4-L2 -> A5-L1 -> S

Ruta 13 E -> A1-L2M1 -> A4-L2 -> A5-L1 -> S

Ruta 14 E -> A1-L3M1 -> A4-L2 -> A5-L1 -> S

Ruta 15 E -> A1-L4M1 -> A4-L2 -> A5-L1 -> S

Ruta 16 E -> A1-L3M1 -> A4-L5 -> A5-L1 -> S

Ruta 17 E -> A1-L4M1 -> A4-L5 -> A5-L1 -> S

Ruta 18 E -> A2-L1 -> A3-L2M1 -> A5-L2 -> S

Ruta 19 E -> A2-L2 -> A4-L2 -> A5-L2 -> S

Ruta 20 E -> A3-L1M1 -> A4-L4 -> A5-L2 -> S

Ruta 21 E -> A3-L2M1 -> A4-L4 -> A5-L2 -> S

Ruta 22 E -> A3-L3M1 -> A5-L3 -> S

Ruta 23 E -> A3-L4 -> A5-L3 -> S

Ruta 24 E -> A4-L1M1 -> A5-L3 -> S

Ruta 25 E -> A4-L4 -> A5-L2 -> S

Ruta 26 E -> A4-L5 -> A5-L3 -> S

Ruta

Simples

Complejas

Abreviación Significado

E Entrada

S Salida

A Área

L Línea

M Máquina

Page 21: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

21

Figura 3. Modelo del ejemplo del problema con posibles rutas

Page 22: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

22

Las características de los trabajos en este proyecto de investigación son: la prioridad,

el tiempo de procesamiento, el tiempo de preparación, el tiempo de liberación, el

preemption y la restricción en las maquinas o la ruta. Un ejemplo de cómo se pueden

comportar dichas características es el siguiente. Comenzando con la prioridad, los

trabajos pueden tener un nivel de prioridad de acuerdo con una categorización, por

ejemplo, si un trabajo es de exportación este tendría una prioridad de uno, que es la

más alta, o una prioridad de dos si corresponde a un trabajo de temporada. Siguiendo

con las características se aclaran los tiempos de procesamiento, preparación y

liberación. Los primeros son el tiempo que demora un producto en ser fabricado en

una máquina en específico, estos tiempos siempre son mayores que los de

alistamiento y en las áreas uno a la cuatro del ejemplo, dichos procesamientos toman

entre 15 y 45 minutos, mientras que en el área cinco del ejemplo estos tiempos

rondan entre los 10 y 30 minutos. Los tiempos de preparación, por otro lado, dicen

cuanto se demora en alistar una máquina para cierto producto en específico. Para el

ejemplo tratado estos tiempos rondan entre los 0 y los 15 minutos en las áreas uno a

la cuatro, mientras que en el área cinco estos tiempos tienen una duración entre 0 y

10 minutos. Por último, los tiempos de liberación expresan en qué momento está

disponible un producto para ser fabricado, estos tiempos se encuentran entre las

diferentes áreas, cuando estas se analizan por separado. Para el ejemplo tratado, se

puede evidenciar que, dada la organización de las áreas, las áreas uno y dos no tienen

tiempos de liberación o estos son iguales a cero. Mientras que en el restante de las

áreas los tiempos de liberación van a depender del tiempo de terminación de los

trabajos en el área anterior. Continuando con las características, la siguiente es el

preemption, esta propiedad solo aplica para la última área y es una posibilidad, no

una obligación, la cual dice que es posible si se desea interrumpir un trabajo para

elaborar otro. La última característica es la restricción en las máquinas que también

se puede agrupar con la ruta, ya que la primera dice que un trabajo solo puede ser

fabricado por ciertas máquinas, mientras que la segunda explica cuál es el camino

que sigue cierto producto en la planta de producción.

Page 23: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

23

Adicionalmente, el objetivo del problema tratado en este proyecto de investigación

es minimizar el tiempo de terminación del último trabajo, denominado Cmax, por lo

cual también es el objetivo del ejemplo.

En la siguiente tabla (Tabla 5) se define el ejemplo con la nomenclatura de Schedule

(la representación de Graham, Lawler, Lenstra, Rinnooy Kan) de manera general y

por áreas, donde las prioridades se representan con priori.

Problema Nomenclatura

General 𝐽28|𝑠𝑖𝑗, 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑝𝑟𝑚𝑝|𝐶𝑚𝑎𝑥

Área 1 𝐽8|𝑠𝑖𝑗, 𝑝𝑟𝑖𝑜𝑟𝑖|𝐶𝑚𝑎𝑥

Área 2 𝐹3|𝑠𝑖𝑗, 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖|𝐶𝑚𝑎𝑥

Área 3 𝐽8|𝑠𝑖𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑟𝑗|𝐶𝑚𝑎𝑥

Área 4 𝐽6|𝑠𝑖𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑟𝑗|𝐶𝑚𝑎𝑥

Área 5 𝐹3|𝑠𝑖𝑗 , 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖, 𝑝𝑟𝑚𝑝, 𝑟𝑗|𝐶𝑚𝑎𝑥

Tabla 5. Definición del ejemplo con la nomenclatura de Schedule

5.2. Modelos matemáticos de soporte al problema

Una vez definido el problema, se continua con la formulación del modelo

matemático que lo representa. Debido a que las áreas se comportan como Flow Shop

y Job Shop, y que el modelo completo o general se comporta también como un Job

Shop, se realiza inicialmente el modelo matemático para este problema con base en

el de Balas [1]. Además, se genera también un modelo matemático para el problema

de Flow Shop con interrupciones basado en el modelo de Pinedo [27], con el fin de

representar la quinta área del modelo, en la cual los trabajos pueden realizar

permutación.

5.2.1. Modelo matemático del Job Shop

A continuación, se encuentra el modelo matemático del Job Shop, basado en

Balas [1], el cual tuvo que ser adecuado para que representara el problema

tratado en este proyecto de investigación. Los ajustes realizados fueron incluir

el tiempo de preparación en las restricciones necesarias, así como añadir otra

restricción que tuviera en cuenta que el tiempo de inicio de un trabajo debe ser

Page 24: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

24

mayor o igual al tiempo de liberación. También se adicionó una variable binaria

que define cuando un trabajo es programado y una restricción que define que el

tiempo máximo de programación, el cual puede ser como por ejemplo una

semana que equivale a 7200 minutos.

Parámetros, índices y conjuntos:

𝑛 ∶ 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠

𝑚 ∶ 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠

𝑗 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠. 𝑗 = 1 … 𝑛

𝑘 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠. 𝑘 = 𝑖 … 𝑛

𝑖 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠. 𝑖 = 1 … 𝑚

𝐽 ∶ 𝐶𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠

𝑀 ∶ 𝐶𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠

𝐾 ∶ 𝑉𝑎𝑙𝑜𝑟 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑔𝑟𝑎𝑛𝑑𝑒

𝑝𝑗𝑖 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑠𝑗𝑖 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑒𝑝𝑎𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑟𝑗 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑙𝑖𝑏𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗

𝜎𝑖𝑗

∶ 𝑀á𝑞𝑢𝑖𝑛𝑎 𝑒𝑛 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑖 𝑑𝑒 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗

𝑇𝑚𝑎𝑥 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑚á𝑥𝑖𝑚𝑜 𝑑𝑒 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑐𝑖ó𝑛

Variables:

𝑥𝑗𝑖 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑖𝑛𝑖𝑐𝑖𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝐶𝑚𝑎𝑥 ∶ 𝑀𝑎𝑘𝑒𝑠𝑝𝑎𝑛 −

𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑐𝑖ó𝑛 𝑑𝑒𝑙 ú𝑙𝑡𝑖𝑚𝑜 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑜

𝑌𝑘𝑗𝑖 = {

10

𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑘 𝑒𝑠 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑜 𝑎𝑛𝑡𝑒𝑠 𝑞𝑢𝑒 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑜 𝑎𝑛𝑡𝑒𝑠 𝑞𝑢𝑒 𝑘 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑧𝑗 = {10

𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑜𝑑𝑙𝑐

Función Objetivo:

min 𝐶𝑚𝑎𝑥 (1)

La función objetivo (1) busca minimizar el Makespan (tiempo de terminación

del último trabajo procesado).

Page 25: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

25

Restricciones:

𝑥𝑗𝜎𝑖

𝑗 ≥ 𝑥𝑗𝜎𝑖−1

𝑗 + 𝑝𝑗𝜎𝑖−1

𝑗 + 𝑠𝑗𝜎𝑖−1

𝑗 𝑗 ∈ 𝐽, 𝑖 = 2, … , 𝑚 (2)

𝑥𝑘𝑖 ≥ 𝑥𝑗𝑖 + 𝑝𝑗𝑖 + 𝑠𝑗𝑖 𝑘, 𝑗 ∈ 𝐽, 𝑖 ∈ 𝑀 (3)

𝑥𝑗𝜎1

𝑗 ≥ 𝑟𝑗 𝑗 ∈ 𝐽 (4)

𝑥𝑘𝑖 ≥ 𝑥𝑗𝑖 + 𝑝𝑗𝑖 + 𝑠𝑗𝑖 − 𝐾 ∗ 𝑌𝑘𝑗𝑖 𝑘, 𝑗 ∈ 𝐽, 𝑖 ∈ 𝑀 (5)

𝑥𝑗𝑖 ≥ 𝑥𝑘𝑖 + 𝑝𝑗𝑖 + 𝑠𝑗𝑖 − 𝐾 ∗ (1 − 𝑌𝑘𝑗𝑖 ) 𝑘, 𝑗 ∈ 𝐽, 𝑖 ∈ 𝑀 (6)

𝐶𝑚𝑎𝑥 ≥ 𝑥𝑗𝜎𝑚

𝑗 + 𝑝𝑗𝜎𝑚

𝑗 + 𝑠𝑗𝜎𝑚

𝑗 𝑗 ∈ 𝐽 (7)

𝐶𝑚𝑎𝑥 ≤ 𝑇𝑚𝑎𝑥 (8)

𝑥𝑗𝑖 ≥ 0 𝑗 ∈ 𝐽, 𝑖 ∈ 𝑀 (9)

𝐶𝑚𝑎𝑥 ≥ 0 𝑗 ∈ 𝐽, 𝑖 ∈ 𝑀 (10)

𝑌𝑘𝑗𝑖 ∈ {0,1} 𝑗, 𝑘 ∈ 𝐽 (11)

𝑧𝑗 ∈ {0,1} 𝑗 ∈ 𝐽 (12)

La restricción (2) asegura que cada trabajo, en las máquinas posteriores a la

primera, inicia en un tiempo igual o superior a la terminación del trabajo en la

máquina anterior. Por otro lado, la restricción (3) dice que el tiempo de inicio

de cada trabajo en la primera máquina debe ser mayor o igual al tiempo de

release de ese trabajo. Asimismo, la restricción (4) define que el tiempo de inicio

de cada trabajo en cada máquina debe ser mayor o igual al tiempo de terminación

del trabajo predecesor. Las restricciones (5) y (6) son la transformación de la

restricción disyuntiva (4), mientras que la restricción (7) define que el Makespan

es el tiempo de terminación de cada trabajo en la última máquina. Asimismo, la

restricción (8) define que el tiempo máximo de Makespan debe ser menor o

igual al tiempo máximo de programación. Adicionalmente, las restricciones (9)

y (10) dicen que las variables del tiempo de inicio de un trabajo y el Makespan,

deben ser mayores e iguales a cero. Por último, las restricciones (11) y (12)

definen que las variables 𝑌𝑘𝑗𝑖 y 𝑧𝑗 son binarias.

5.2.2. Modelo matemático del Flow Shop con permutación

A continuación, se encuentra el modelo matemático del Flow Shop con

permutación basado en Pinedo [27], el cual tuvo que ser adecuado para que

Page 26: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

26

representara el problema tratado en este proyecto de investigación. Los ajustes

realizados fueron incluir el tiempo de preparación en las restricciones necesarias,

además se adicionaron dos variables binarias, una que define cuando un trabajo

es programado y la otra que dice si un trabajo se puede procesar en una máquina.

Adicionalmente, se incluyó una restricción que define que el tiempo máximo de

programación, el cual puede ser como por ejemplo una semana que equivale a

7200 minutos.

Parámetros, índices y conjuntos:

𝑛 ∶ 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠

𝑚 ∶ 𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠

𝑗 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠. 𝑗 = 1 … 𝑛

𝑘 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑑𝑒 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠. 𝑘 = 1 … 𝑛

𝑖 ∶ 𝐼𝑛𝑑𝑖𝑐𝑒 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠. 𝑖 = 1 … 𝑚

𝐽 ∶ 𝐶𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠

𝑀 ∶ 𝐶𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠

𝑝𝑗𝑖 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑠𝑗𝑖 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑝𝑟𝑒𝑝𝑎𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑀𝑗𝑖 = {10

𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑠𝑒 𝑝𝑢𝑒𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑟 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖𝑑𝑙𝑐

𝑇𝑚𝑎𝑥 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑚á𝑥𝑖𝑚𝑜 𝑑𝑒 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑐𝑖ó𝑛

Variables:

𝑥𝑗𝑘 = {10

𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑒𝑙 𝑘−𝑒𝑠𝑖𝑚𝑜 𝑒𝑛 𝑙𝑎 𝑠𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎𝑑𝑙𝑐

𝐼𝑖𝑘 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑖𝑛𝑎𝑐𝑡𝑖𝑣𝑖𝑑𝑎𝑑 𝑑𝑒 𝑙𝑎𝑠 𝑚á𝑞𝑢𝑖𝑛𝑎𝑠 𝑖 𝑒𝑛𝑡𝑟𝑒 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑘 𝑦

𝑒𝑙 (𝑘 + 1)

𝑊𝑖𝑘 ∶ 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑠𝑝𝑒𝑟𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑑𝑒 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑘 𝑒𝑛𝑡𝑟𝑒 𝑙𝑎𝑠 𝑖 𝑦

𝑙𝑎 (𝑖 + 1)

∆𝑖𝑘∶ 𝐷𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 𝑒𝑛𝑡𝑟𝑒 𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜 𝑐𝑢𝑎𝑛𝑑𝑜 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑒𝑛 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑘

+ 1 𝑖𝑛𝑖𝑐𝑖𝑎 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

+ 1 𝑦 𝑒𝑙 𝑡𝑖𝑒𝑚𝑝𝑜 𝑒𝑛 𝑒𝑙 𝑞𝑢𝑒 𝑒𝑙 𝑘 𝑡𝑒𝑟𝑚𝑖𝑛𝑎 𝑒𝑛 𝑙𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑖

𝑧𝑗 = {10

𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑜𝑑𝑙𝑐

Page 27: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

27

Función Objetivo:

min ∑ ∑ 𝑥𝑗1(𝑝𝑗𝑖 + 𝑠𝑗𝑖) ∗

𝑛

𝑗=1

𝑀𝑗𝑖 +

𝑚−1

𝑖=1

∑ 𝐼𝑚𝑗

𝑛−1

𝑗=1

(1)

La función objetivo (1) busca minimizar el tiempo de inactividad en las

máquinas, lo cual es equivalente a minimizar el Makespan (tiempo de

preparación del último trabajo procesado).

Restricciones:

∑ 𝑥𝑗𝑘 = 1

𝑛

𝑗=1

𝑘 ∈ 𝐽 (2)

∑ 𝑥𝑗𝑘 = 1

𝑛

𝑘=1

𝑗 ∈ 𝐽 (3)

𝐼𝑖𝑘 + ∑ 𝑥𝑗,𝑘+1(𝑝𝑗𝑖 + 𝑠𝑗𝑖) ∗ 𝑀𝑗𝑖

𝑛

𝑗=1

+ 𝑊𝑖,𝑘+1 − 𝑊𝑖𝑘 − ∑ 𝑥𝑗𝑘(𝑝𝑗,𝑖+1 + 𝑠𝑗,𝑖+1) ∗ 𝑀𝑗,𝑖+1

𝑛

𝑗=1

− 𝐼𝑖+1,𝑘 = 0 𝑗 ∈ 𝐽, 𝑘 = 1, … , 𝑛 − 1, 𝑖 = 1, … , 𝑚 − 1 (4)

∑ ∑ 𝑥𝑗𝑘(𝑝𝑗𝑖 + 𝑠𝑗𝑖) ∗

𝑚

𝑖=1

𝑀𝑗𝑖

𝑛

𝑘=1

≤ 𝑇𝑚𝑎𝑥 𝑗 ∈ 𝐽 (5)

𝑊𝑖1 = 0 𝑖 = 1, … , 𝑚 − 1 (6)

𝐼1𝑘 = 0 𝑘 = 1, … , 𝑛 − 1 (7)

𝑊𝑖𝑘 ≥ 0 𝑖 = 1, … , 𝑚 − 1, 𝑘 ∈ 𝐽 (8)

𝐼𝑖𝑘 ≥ 0 𝑘 = 1, … , 𝑛 − 1, 𝑖 ∈ 𝑀 (9)

𝑥𝑗𝑘 ∈ {0,1} 𝑗, 𝑘 ∈ 𝐽 (10)

𝑧𝑗 ∈ {0,1} 𝑗 ∈ 𝐽 (11)

La restricción (2) asegura que cada posición solo tenga un trabajo asociado,

mientras que la tercera busca que cada trabajo solo se encuentre en una posición.

Además, la restricción (4) define que la diferencia entre el tiempo cuando el

trabajo en la posición k+1 inicia en la máquina i+1 y el tiempo en el que el k

termina en la máquina i. Por otro lado, la restricción (5) define que el tiempo

máximo de Makespan debe ser menor o igual al tiempo máximo de

programación. Adicionalmente, la restricción (6) define que el tiempo de espera

Page 28: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

28

del trabajo en la primera posición sea cero en todas las máquinas. La restricción

(7) en cambio, precisa que el tiempo de inactividad de la primera máquina sea

cero en todas las posiciones. Mientras que la restricción (8) dice que el tiempo

de espera de los trabajos en todas las posiciones desde la primera hasta la

penúltima máquina deben ser mayor o igual a cero. Igualmente, la restricción

(9) asegura que el tiempo de inactividad en cada máquina desde la primera hasta

la penúltima posición sea mayor o igual a cero. Por último, las restricciones (10)

y (11) definen que las variables, que indican si un trabajo está en una posición

y la de si un trabajo es programado, son binaria.

6. Métodos de solución

El método de solución está compuesto por cinco secciones, en las cuales se muestran los

diferentes métodos de solución utilizados para resolver el problema tratando en este

proyecto de investigación.

6.1. Método 1 – Completo exacto

El primer método de solución consiste en utilizar el modelo matemático del Job Shop,

mencionado anteriormente, para resolver el problema de forma completa, es decir,

el problema general considerando todas las área y máquinas, el cual se comporta

como un 𝐽𝑚|𝑠𝑖𝑗, 𝑀𝑗 , 𝑝𝑟𝑖𝑜𝑟𝑖|𝐶𝑚𝑎𝑥 . Este método se ejecuta por medio de la

programación entera mixta, por lo cual da como resultado la solución óptima.

6.2. Método 2 – Por áreas exacto con Job Shop

En el segundo método de solución se utiliza el modelo matemático del Job Shop,

pero a diferencia del método anterior, en este caso se programa cada área por

separado, con el fin de reducir el número de máquinas y trabajos que se tratan. En la

programación por áreas inicialmente se programan las áreas que no dependen de

otras, es decir donde los trabajos no tienen operaciones previas en otras áreas,

utilizando los parámetros iniciales. Luego a partir de los resultados obtenidos en

estas se crea un nuevo parámetro denominado “tiempo de liberación”, el cual dice

en qué momento se puede empezar a procesar un trabajo en otra área, basado en el

tiempo en que termina de ser producido en las áreas ya trabajadas. Después se

programan las demás áreas teniendo en cuenta la dependencia entre ellas, mediante

Page 29: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

29

la utilización de los parámetros iniciales y el tiempo de liberación. Este último es

actualizado con los resultados obtenidos en cada área. La última área sigue la misma

metodología que las áreas anteriores, y es importante recalcar que esta última zona

también se realiza la programación con el modelo matemático del Job Shop. En el

siguiente diagrama (Figura 4) se puede evidenciar el procedimiento de la

programación por áreas.

Figura 4. Procedimiento de la programación por áreas

6.3. Método 3 – Por áreas exacto con interrupciones

El tercer método de solución también consiste en generar la programación de cada

área por separado, igual que en el método anterior, sin embargo, la diferencia con el

segundo método radica, en que la última área se va a programar utilizando el modelo

matemático del Flow Shop con preemption en vez del de Job Shop. Lo anterior, con

Page 30: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

30

el fin de poder comparar la utilidad y efectividad de permitir que haya o no

interrupciones en la última área.

6.4. Método 4 – Completo con algoritmo genético

En el cuarto método de solución se utiliza la metaheurística de algoritmo genético

(AG) para resolver el problema de forma completa. El algoritmo genético fue

propuesto por John H. Holland en 1975, dicha metaheurística está basada en la

genética y los procesos evolutivos. Este algoritmo lo que hace es evolucionar una

población de individuos mediante la recombinación y mutación de los cromosomas,

definiendo el más apto según un criterio de evaluación, al igual que en los procesos

evolutivos.

Entre las ventajas de los algoritmos genéticos se encuentra el hecho de que estas

metaheurísticas conservan un conjunto de soluciones en cada generación, es decir

que no trabajan de forma secuencial, sino que ejecutan varias posibles soluciones de

forma simultánea. Adicionalmente con estos algoritmos hay una menor probabilidad

de obtener un mínimo local en comparación con otros métodos, debido a las

recombinaciones y mutaciones que se realizan sobre las posibles soluciones.

Los algoritmos genéticos están compuestos de seis elementos, los cuales son:

- Los cromosomas, que representan la codificación del problema a solucionar, es

decir la forma en la que se representa la solución.

- La población, que es un conjunto de posibles soluciones.

- Las generaciones, las cuales equivalen a las iteraciones realizadas por el

algoritmo en busca de la solución.

- La inicialización, la cual consiste en la forma como comienza el algoritmo, es

decir a la composición de la población inicial.

- La selección de los padres, que trata de la manera en que se realiza la

reproducción, es decir el modo en que se generan las nuevas generaciones.

- El fitness, este elemento representa la forma en que se evalúa la población, es

decir el criterio de selección.

Page 31: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

31

Para este proyecto de investigación los elementos del algoritmo genético explicados

anteriormente se definieron de la siguiente manera.

Representación del cromosoma

Para este proyecto de investigación la codificación del problema se realiza por medio

de las operaciones que debe realizar un producto, donde cada producto va a tener m

(número de máquinas) operaciones. Como se está trabajando con un problema de

Job Shop, cada producto debe seguir una ruta o secuencia definida, por lo cual

cuando se trata de la primera operación del trabajo uno se está hablando de la primera

operación o posición en la ruta del trabajo uno. De esta manera un cromosoma para

este proyecto de investigación es de tamaño NxM, donde N es el número de

productos y M el número de máquinas. A partir de este cromosoma se genera la

secuencia de las máquinas y con eso se calculan los tiempos de terminación de cada

trabajo en cada máquina. Al calcular dichos tiempos se tienen en cuenta las rutas de

los trabajos, penalizando con un número muy grande los casos donde estas rutas no

se respeten. Lo anterior significa que en el desarrollo del algoritmo se pueden tener

soluciones factibles e infectables.

Para clarificar lo anterior se presenta el siguiente ejemplo (Figura 5), el cual cuenta

con tres trabajos y tres máquinas.

Figura 5. Ejemplo de codificación

Page 32: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

32

Población inicial

La población inicial es un conjunto de posibles soluciones, la cual se genera por

aleatoriedad. Sin embargo, como la codificación permite soluciones infactibles, se

definen dos de las posibles soluciones para que aparezcan en la población inicial, el

resto soluciones se generan de forma aleatoria. Esto con el fin de asegurar una

solución factible y evitar la posibilidad de que el algoritmo se quede rondando

soluciones infactibles. Las dos soluciones factibles que se proporcionan, en realidad

es una sola (es la misma) y consiste en un vector que va de uno hasta NxM.

Cromosomas padres

Los cromosomas padres son recombinados entre sí para generar el cromosoma hijo,

además existe una probabilidad de que el cromosoma hijo presente una mutación.

Luego cada cromosoma es evaluado según el criterio definido, de manera que los

más aptos tienen mayor posibilidad de generar cromosomas hijos.

Fitness

La evaluación de los cromosomas se realiza según un criterio en este caso se busca

minimizar el máximo tiempo de terminación de los trabajos, por lo cual el algoritmo

lo que busca es obtener el valor más grande posibles que va a ser un número positivo

entre cero y uno. Al final se seleccionará como solución el cromosoma que genere

el mejor valor de Fitness, luego de no haber sido superado por otras soluciones tras

haber pasado cierto número de iteraciones. En el algoritmo se utilizó un máximo de

10.000 iteraciones.

Calibración

Las variables: probabilidad de mutación, tamaño de la población y numero de

iteraciones consecutivas sin mejora, del algoritmo genético deben ser calibradas a

través del diseño de experimentos. Para este proyecto dicha calibración se realiza

con ayuda del paquete “irace” de los autores Lopez-Ibáñez, Dubois-Lacoste, Cáceres,

Birattari, Stützle [22], donde se permiten un máximo de 150 experimentos y se busca

calibrar las variables entre los siguientes valores, utilizando como base las instancias

(1 - 13) del problema. (Tabla 6)

Page 33: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

33

Tabla 6. Valores de las variables a calibrar

Al realizar dicha calibración los resultados obtenidos fueron: (Tabla 7)

Tabla 7. Resultados de la calibración

6.5. Método 5 – Por áreas con algoritmo genético

El quinto, y último, método de solución realiza una programación por áreas, al igual

que el segundo, con la diferencia que en este caso se emplea el algoritmo genético

para generar la programación de la producción de cada área. Los parámetros

utilizados en este método son los mismos que se emplearon al realizar la

programación de la producción del modelo completo mediante el algoritmo genético.

Este método se realiza para poder comparar la programación completa con la

programación por áreas y seleccionar la mejor opción para el problema tratado en

este proyecto de investigación.

7. Análisis

El análisis está compuesto por siete secciones, donde las primeras cinco explican el

resultado de cada uno de los métodos de solución descritos en la sección anterior,

mientras que en la sexta parte se realiza un análisis comparativo de todos los métodos de

solución y la última sección muestra la prueba de robustez realizada sobre el método de

solución con el mejor desempeño. Antes de empezar con el análisis de cada método es

importante mencionar que el tiempo límite de corrida para todos los posibles escenarios

se definió en doce horas. Adicionalmente, es importante mencionar que para evaluar los

métodos de solucion se utilizó como problema específico el ejemplo presentado en la

Page 34: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

34

sección 5.1 denominada “Definición del problema” y se precisó el tiempo de

programación en infinito, con el fin de poder comparar todas las instancias.

Además, el tamaño de las instancias que se utilizaron se puede ver en la Tabla 8, en estas

instancias se tiene en cuenta la proporción entre las rutas simples y complejas. En este

proyecto de investigación no se tuvo en cuenta la dimensión del número de máquina en

las instancias, ya que en muchos papers de Stage Shop se encontró que los autores fijaban

este parámetro, cuando evaluaban un ejemplo en específico.

Tabla 8. Instancias utilizadas en los métodos de solución

Adicionalmente, para poder comparar los diferentes métodos entre sí, se utilizará el

modelo exacto y una cota inferior. La segunda es necesaria debido a que hay un punto en

que el método exacto no va a funcionar más, por lo cual es indispensable tener otra forma

de evaluar los demás métodos de solución. Para este proyecto de investigación se define

una cota inferior basada en la de Carlier & Pinson [3] y teniendo en cuenta las cotas

inferiores propuesta por Berkoune, Mesghouni & Rabenasolo [2] y Dai & Weiss [10]. La

cota inferior utilizada en este proyecto de investigación se calcula teniendo en cuenta que

el Makespan debe ser superior a la carga máxima sobre las máquinas y al máximo tiempo

de fabricación de un trabajo, por lo cual de estas dos variables se selecciona la más grande.

𝑡𝑚𝑎𝑥𝑇𝑟𝑎𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = max𝑗∈𝐽

(∑ 𝑝𝑖𝑗+𝑠𝑖𝑗

𝑚

𝑖=1

) 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 1 … 17 (1)

Instancia Trabajos

1 3

2 5

3 10

4 15

5 20

6 30

7 40

8 50

9 60

10 70

11 80

12 90

13 100

14 200

15 300

16 400

17 500

Page 35: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

35

𝑡𝑚𝑎𝑥𝑀𝑎𝑞𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = max𝑖∈𝑀

(∑ 𝑝𝑖𝑗+𝑠𝑖𝑗

𝑛

𝑗=1

) 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 1 … 17 (2)

𝑡𝑚𝑎𝑥𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = max(𝑡𝑚𝑎𝑥𝑇𝑟𝑎; 𝑡𝑚𝑎𝑥𝑀𝑎𝑞) 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 1 … 17 (3)

La primera formula (1) calcula el máximo tiempo de fabricación de los trabajos, mientras

que la segunda (2) computa la carga máxima de las máquinas. En la tercera ecuación (3)

se define el tiempo máximo como el máximo entre los tiempos calculados en las fórmulas

(1) y (2).

Adicionalmente, se tiene en cuenta que va a haber una diferencia entre el Cmax óptimo

y el 𝑡𝑚𝑎𝑥, y que dicha diferencia va a ir incrementando conforme aumente el número de

trabajos.

𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 =(𝑀𝑜𝑑𝑒𝑙𝑜𝐸𝑥𝑎𝑐𝑡𝑜𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 − 𝑡𝑚𝑎𝑥𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎)

𝑡𝑚𝑎𝑥𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 1 … 3 (4)

𝑖𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜𝐷𝑖𝑓𝑓1𝑎𝑙2 =(𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎2 − 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎1)

𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎1 (5)

𝑖𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜𝐷𝑖𝑓𝑓2𝑎𝑙3 =(𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎3 − 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎2)

𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎2 (6)

𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜𝐼𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜 =(𝑖𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜𝐷𝑖𝑓𝑓1𝑎𝑙2 + 𝑖𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜𝐷𝑖𝑓𝑓2𝑎𝑙3)

2 (7)

𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎−1 ∗ (1 + 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜𝐼𝑛𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑜) (8)

La cuarta formula (4) calcula la diferencia entre el modelo exacto y el tiempo máximo

para las instancias uno, dos y tres. Luego la quinta (5) y sexta (6) computa el incremento

de la diferencia entre las instancias uno y dos, y dos y tres, respectivamente. En la septima

ecuación (7) se define el promedio del incremento en la diferencia, es decir el promedio

de (5) y (6). Finalmente, la ecuación (8) calcula la diferencia para las instancias 1 a la 4,

como la diferencia en la instancia anterior multiplicado por uno más el promedio del

incremento.

Teniendo en cuenta lo anterior, la cota inferior se calcula como:

𝐶𝑜𝑡𝑎𝐼𝑛𝑓𝑒𝑟𝑖𝑜𝑟𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 𝑡𝑚𝑎𝑥 ∗ (1 + 𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎) 𝑖𝑛𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 1 … 17 (9)

Page 36: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

36

La última ecuación (9) define la cota inferior, la cual se computa multiplicando el 𝑡𝑚𝑎𝑥

por uno más la diferencia calculada para la instancia.

Los valores de cada una de las cotas para cada instancia se pueden ver en la siguiente

tabla (Tabla 9).

Tabla 9. El valor de cada cota para cada instancia

Por último, es importante mencionar que el desarrollo de los diferentes métodos se hizo

por medio del programa R y en los métodos con problemas de optimización se utilizó

también el programa Gusek. Adicionalmente, el computador utilizado para correr los

métodos de solucion tiene un procesador: Intel(R) Core (TM) i7-3630QM

[email protected], y un RAM instalada de 6,00GB.

7.1. Método 1 – Completo exacto

En el primer método de solución se resuelve el problema de forma completa

mediante el modelo matemático del Job Shop, por lo cual se obtiene la solución

óptima o exacta. Sin embargo, como el tiempo límite de corrida se definió en 12

horas, este método solo funciona para las tres primeras instancias, ya que a partir de

la cuarta instancias (15 productos) el tiempo de corrida sobrepasa el tiempo límite

definido. Los resultados obtenidos con este método de solución se pueden ver en la

Tabla 10, donde se evidencia que el tiempo de corrida crece exponencialmente

conforme se incrementa el número de productos a programar.

Cota 1 Modelo Exacto

Instancia 1 137 137

Instancia 2 137 137

Instancia 3 143 143

Instancia 4 151

Instancia 5 206

Instancia 6 324

Instancia 7 340

Instancia 8 525

Instancia 9 618

Instancia 10 663

Instancia 11 821

Instancia 12 1036

Instancia 13 1143

Instancia 14 2469

Instancia 15 4068

Instancia 16 6076

Instancia 17 8757

Page 37: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

37

Tabla 10. Resultados método 1

7.2. Método 2 – Por áreas exacto con Job Shop

El segundo método de solución resuelve el problema por áreas mediante la

programación entera mixta del modelo matemático de Job Shop. Sin embargo, como

el tiempo límite de corrida se definió en 12 horas, este método solo funciona para las

tres primeras instancias, ya que a partir de la cuarta instancias (15 productos) el

tiempo de corrida es superior a doce horas. En la cuarta instancia el tiempo límite se

excede al resolver el área tres y al probar la quinta instancia el tiempo límite se

excede a partir de la primera área. Los resultados de este método se pueden ver en la

Tabla 11, donde también se encuentra la diferencia porcentual entre los resultados

de este método y del método 1. En estos resultados se nota que este método empieza

a separarse o a tener una diferencia porcentual con el método exacto en la tercera

instancia, donde dicha diferencia es de 4.67%. Asimismo, se evidencia que el tiempo

de corrida de este método, también crece de forma exponencial, ya que para las dos

primeras instancias es muy bajo y parecido, sin embargo, a partir de la tercera

instancia la magnitud de este tiempo crece muy rápidamente.

Tabla 11. Resultados método 2

7.3. Método 3 – Por áreas exacto con interrupciones

En el tercer método de solución se resuelve el problema por áreas, utilizando en la

última la programación entera mixta del modelo matemático de Flow Shop con

interrupciones. Este método se realizó, porque en la quinta área las interrupciones

eran una posibilidad y se quería evaluar la utilidad de dicha característica. Sin

embargo, como las áreas uno a la cuatro se resuelve con el modelo del Job Shop, este

método tiene la misma dificultad que el anterior y es que solo funciona para las

Trabajos Cmax Tiempo en s Tiempo en min Tiempo en h

1 3 137 0.83 0.01 0.00

2 5 137 16.25 0.27 0.00

3 10 143 4645.70 77.43 1.29

4 15 NA

Instancias

Tiempo límite excedido

Trabajos Cmax Cmax VS óptimo Tiempo en s Tiempo en min Tiempo en h

1 3 137 0.00% 1.31 0.02 0.00

2 5 137 0.00% 1.30 0.02 0.00

3 10 143 4.67% 404.64 6.74 0.11

4 15 NA NA

Instancias

Tiempo límite excedido

Page 38: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

38

primeras tres instancias, ya que a partir de la cuarta instancias (15 productos) el

tiempo de corrida es superior a doce horas, lo cual se definió como el tiempo límite.

Los resultados del método se pueden ver en la Tabla 12, donde también se encuentra

la diferencia porcentual entre los resultados obtenidos en este método y en el método

1. Además, al comparar este método con respecto al anterior se evidencia que no es

útil, ya que el Makespan y el tiempo es peor, porque la diferencia entre este método

y el exacto siempre es mayor o igual que el del método 2. Debido a esto, esta forma

de resolver el problema se descarta.

Tabla 12. Resultados método 3

7.4. Método 4 – Completo con algoritmo genético

En el cuarto método de solución se resuelve el problema de forma completa,

mediante la metaheurística denominada algoritmo genético utilizando el paquete de

R denominado “GA” del autor Scrucca [30] para realizar la evaluación del algoritmo

genético. Los resultados de este método se pueden ver en la Tabla 13, donde se

encontró que al utilizar este método es posible resolver las 17 instancias, en el tiempo

límite definido (12 horas). Asimismo, se encontró que este método empieza a tener

una diferencia porcentual con el método exacto y la cota a partir de la segunda

instancia, la cual aumenta conforme se incrementa el número de productos llegando

a un valor máximo de 80.89% en la instancia 15. El tiempo de corrida aumenta en

este método de forma exponencial con una mayor pendiente a partir de la octava

instancia. Es importante notar que en la instancia 15, 16 y 17 el tiempo de corrida no

es muy alto, pero esto se debe a que el algoritmo llega a la solución en la iteración

88, que es el máximo número de iteraciones sin mejora definido. Lo anterior implica

que el método no logra mejorar la solución, y da como solución la propuesta en la

población inicial.

Trabajos Cmax Cmax VS óptimo Tiempo en s Tiempo en min Tiempo en h

1 3 143 4.20% 3.46 0.06 0.00

2 5 143 4.20% 2.36 0.04 0.00

3 10 150 4.67% 603.63 10.06 0.17

4 15 NA NA

Instancias

Tiempo límite excedido

Page 39: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

39

Tabla 13. Resultados método 4 – AG completo

7.5. Método 5 – Por áreas con algoritmo genético

El quinto y último método de solución resuelve el problema por áreas mediante el

algoritmo genético utilizando el paquete de R denominado “GA” para realizar la

evaluación del algoritmo genético. Los elementos y la codificación del AG en este

método de solución son los mismos que en el anterior, la diferencia radica en que se

resuelve cada área por separado teniendo en cuenta un nuevo parámetro denominado

tiempo de release. Dicho parámetro se actualiza al terminar la programación de cada

área y se utiliza en las áreas donde los productos hayan arrancado previamente, es

decir donde los trabajos tengan procesos previos en otras áreas, para calcular los

tiempos de terminación. Los resultados de este método se ven en la Tabla 14, en esta

se muestra que el método solo resuelve hasta la instancia 16 dentro del tiempo límite

definido (12 horas). Adicionalmente, se puede percatar que al igual que los métodos

anteriores, conforme se incrementa la cantidad de productos, se aumenta la distancia

entre el resultado obtenido con el método y la cota, llegando a una diferencia máxima

de 60.88%. En cuanto al tiempo de corrida, se nota un aumento exponencial, donde

entre las instancias uno y nueve el crecimiento es relativamente plano, y a partir de

la décima instancia la pendiente empieza a incrementarse.

Trabajos Cmax Cmax VS óptimo Cmax VS Cota Tiempo en s Tiempo en min Tiempo en h

1 3 137 0.00% 0.00% 26.94 0.45 0.01

2 5 143 4.20% 4.20% 118.97 1.98 0.03

3 10 231 38.10% 38.10% 292.67 4.88 0.08

4 15 281 NA 46.26% 543.48 9.06 0.15

5 20 554 NA 62.82% 659.85 11.00 0.18

6 30 1386 NA 76.62% 1264.3 21.07 0.35

7 40 1523 NA 77.68% 2352.06 39.20 0.65

8 50 2155 NA 75.64% 2738.03 45.63 0.76

9 60 2438 NA 74.65% 4461.86 74.36 1.24

10 70 2552 NA 74.02% 4862.14 81.04 1.35

11 80 3652 NA 77.52% 4912.75 81.88 1.36

12 90 5028 NA 79.40% 6964.47 116.07 1.93

13 100 5474 NA 79.12% 7399.23 123.32 2.06

14 200 11580 NA 78.68% 38206.9 636.78 10.61

15 300 21290 NA 80.89% 10171.31 169.52 2.83

16 400 28447 NA 78.64% 25606.61 426.78 7.11

17 500 35681 NA 75.46% 22697.01 378.28 6.30

Instancias

Page 40: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

40

Tabla 14. Resultados método 5 – AG por áreas

7.6. Análisis comparativo

Luego de analizar cada método por separado se prosigue a comparar los métodos

entre sí, iniciando por la comparación del Makespan (Gráfica 1). En esta gráfica se

evidencia que para las tres primeras instancias el mejor método, en cuanto al

Makespan, es el modelo exacto completo (Método 1). Sin embargo, de la instancia

cuatro en adelante el mejor método de solución es el algoritmo genético por partes

(Método 5), el cual también da un buen resultado para las primeras tres instancias.

Gráfica 1. Comparación del Makespan entre los métodos

Continuando con el análisis, se evalúan los tiempos de corrida en minutos de los

métodos (Gráfica 2). En esta grafica se evidencia que el mejor método de solución,

Trabajos Cmax Cmax VS óptimo Cmax VS Cota Tiempo en s Tiempo en min Tiempo en h

1 3 150 13.29% 8.67% 28.19 0.47 0.01

2 5 158 8.67% 13.29% 44.34 0.74 0.01

3 10 176 17.34% 18.75% 99.01 1.65 0.03

4 15 225 NA 32.89% 162.57 2.71 0.05

5 20 307 NA 32.90% 262.78 4.38 0.07

6 30 494 NA 34.41% 449.25 7.49 0.12

7 40 574 NA 40.77% 895.53 14.93 0.25

8 50 786 NA 33.21% 1064.41 17.74 0.30

9 60 1017 NA 39.23% 2043.86 34.06 0.57

10 70 1112 NA 40.38% 2679.92 44.67 0.74

11 80 1469 NA 44.11% 3504.31 58.41 0.97

12 90 1590 NA 34.84% 4891.89 81.53 1.36

13 100 1989 NA 42.53% 5170.76 86.18 1.44

14 200 5412 NA 54.38% 13770.27 229.50 3.83

15 300 10399 NA 60.88% 42888.62 714.81 11.91

16 400 14725 NA 58.74% 30293.91 504.90 8.41

17 500

Instancias

Tiempo límite excedido

Page 41: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

41

hasta la instancia 14 (200 productos), es el quinto. Sin embargo, de la instancia 15

en adelante el método cuatro resuelve las instancias con un menor tiempo de corrida.

Gráfica 2. Comparación de los tiempos de corrida entre los métodos

Tras realizar el análisis del Makespan y el tiempo de corrida de los métodos, se

prosigue a comparar el Makespan de los métodos versus la cota inferior. En las

gráficas 3 y 4 se ve la comparación contra la cota inferior, donde la primera gráfica

muestra la comparación de forma numérica y la segunda la comparación de forma

porcentual. En estas gráficas se puede evidenciar que el Makespan del método 4

crece de forma muy rápida y a partir de los 30 productos es superior a todos los

demás métodos. Asimismo, se evidencia que el método 5 se empieza a separar de

manera significativa de las cotas en la instancia 14 (200 productos). Al revisar la

gráfica de la diferencia porcentual se evidencia que dicha diferencia es menor al

100% para las instancias 1 a la 13 para el método 4 (Algoritmo genético por áreas).

Mientras que el método 5 supera una diferencia del 100% desde la instancia 5.

Gráfica 3. Makespan de los métodos VS la cota inferior

Page 42: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

42

Gráfica 4. Makespan de los métodos VS la cota inferior - Porcentual

Al finalizar todo el análisis se puede concluir que el mejor método de solución es el

algoritmo genético por partes, ya que da una buena solución con un tiempo de corrida

aceptable. Aunque el tiempo de corrida del método cuatro que es el algoritmo

genético completo da un mejor tiempo de corrida para las instancias 15, 16 y 17, el

Makespan de dichas es instancias es significativamente más alto que el del método

cuatro.

7.7. Prueba de robustez

De acuerdo con los resultados presentados en la sección anterior, se evidencia que el

método de solución con el cual se obtienen los mejores resultados es el algoritmo

genético por partes. Teniendo esto en cuenta se procede a evaluar la robustez y

consistencia de esta mejor solución, para lo cual se realizan 20 corridas para cada

instancia entre la uno y la dieciséis. Lo anterior debido a que en la instancia 17 el

tiempo de corrida excede el tiempo máximo establecido (12 horas). Los resultados

se pueden visualizar en la Tabla 15 y a partir de estos se puede concluir que el

coeficiente de variación sobre el Makespan es en promedio 6.69%, con un mínimo

de 2.75% y un máximo de 12.63%. Mientras que el coeficiente de variación sobre el

tiempo es en promedio 12.69%, con un mínimo de 0.97% y un máximo de 22.48%.

Asimismo, cabe recalcar que en la instancia 15 el 40% de las corridas superan el

tiempo límite excedido, mientras que en la instancia 16 dicho porcentaje es del 55%.

En la Gráfica 5 se puede visualizar el coeficiente de variación del Makespan y el

tiempo a lo largo de las instancias, en este se nota que el coeficiente de variación del

tiempo aumenta conforme se incrementan el número de productos, de manera lineal

Page 43: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

43

hasta la instancia 13, con un pico en la instancia 14. Mientras que el coeficiente de

variación del Makespan se mantiene alrededor del 5% en la hasta la instancia 11, las

únicas dos instancias que superan el 10% en el coeficiente de variación del Makespan

son la instancia 12 y 13.

Tabla 15. Resultados de la prueba de robustez

Gráfica 5. Coeficiente de variación en las instancias

Cmax Tiempo in s Cmax Tiempo in s Cmax Tiempo

1 4.29 1.37 155.75 23.35 2.75% 5.85% 158

2 5.45 0.34 152.00 34.48 3.58% 0.97% 151

3 13.02 3.77 182.05 81.37 7.15% 4.64% 199

4 10.69 9.45 219.80 134.95 4.86% 7.00% 228

5 15.62 18.40 286.90 200.93 5.44% 9.16% 307

6 26.01 44.54 500.70 344.55 5.20% 12.93% 504

7 34.86 90.94 570.90 726.66 6.11% 12.51% 583

8 43.35 113.31 786.25 946.99 5.51% 11.97% 804

9 61.78 169.73 973.30 1295.04 6.35% 13.11% #N/D

10 62.14 348.35 1124.80 2330.29 5.52% 14.95% 1003

11 65.69 534.90 1321.85 3214.10 4.97% 16.64% 1308

12 195.86 649.14 1633.95 3830.28 11.99% 16.95% 1534

13 232.76 760.87 1843.47 4026.75 12.63% 18.90% 1752

14 540.38 4527.57 5899.95 20136.06 9.16% 22.48% #N/D

15 753.30 6191.27 10382.25 44392.08 7.26% 13.95% #N/D

16 1339.15 9111.51 15736.45 43423.85 8.51% 20.98% #N/D

InstanciaCoeficiente de VariaciónDesviación Estandar Moda del

Cmax

Media

Page 44: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

44

8. Caso de aplicación

En este proyecto de investigación se va a utilizar lo desarrollado en la programación de

la producción de la empresa Comestibles Italo S.A., la cual es el caso de aplicación. Esta

sección está dividida en dos partes: Comestibles Italo S.A. y Método de solución y

análisis, donde en la primera parte se presenta y describe la empresa, mientras que en la

segunda se aplica el mejor método de solución encontrado y se genera el análisis asociado.

8.1. Comestibles Italo S.A.

Comestibles Italo S.A., fundada el 28 de noviembre de 1928 en Bogotá, Colombia,

se dedica a la fabricación y comercialización de galletería, chocolatería y dulcería.

Actualmente cuenta con más de 800 empleados, entre personal de planta y

administración, y una capacidad instalada de 11.300 toneladas año. La empresa

comercializa en Colombia a través de los canales de autoservicios, distribuidores,

mayoristas y detallistas, donde cuenta con más de 20.000 clientes activos.

Adicionalmente, Italo realiza exportaciones a Panamá, Costa Rica, Puerto Rico y

Cuba.

La misión de la compañía es: “Italo es una empresa con trayectoria, flexibilidad,

tecnología y competencia en el desarrollo, fabricación y comercialización de

chocolatería, galletería y dulcería para satisfacer el gusto de los consumidores,

buscando rentabilidad, crecimiento y sostenibilidad con responsabilidad.”

(Comestibles Italo S.A. [7]) y su visión es: “En el año 2020 Italo será reconocida

como líder por su deleite, calidad, innovación sostenible y asequibilidad, en la

fabricación de chocolatería, galletería y dulcería, en el mercado nacional e

internacional.” (Comestibles Italo S.A. [7])

Comestibles Italo presenta una demanda estacional que se repite anualmente, en la

cual las temporadas son: Día de la madre (abril), Amor y Amistad (agosto),

Halloween (septiembre) y navidad (noviembre). En la siguiente gráfica (Gráfica 6)

se pueden visualizar las ventas de la empresa durante los años 2015, 2016 y 2017.

Page 45: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

45

Gráfica 6. Ventas de Comestibles Italo en los años 2015, 2016 y 2017

Fuente: Comestibles Italo S.A. [8]

Adicionalmente, la compañía maneja actualmente 385 referencias que se distribuyen

de acuerdo con el diagrama de Pareto (Gráfica 7), donde se evidencia que el 20% de

las ventas están concentradas en 9 referencia y el 80% de las ventas se encuentran

condensadas en 115 productos, que corresponden al 30% de los productos.

Gráfica 7. Diagrama de Pareto de Comestibles Italo

Fuente: Comestibles Italo S.A. [9]

Comestibles Italo realiza anualmente la planeación de la producción, basándose en

el pronóstico de ventas que se tiene para el año. Dicho pronostico se calcula para

cada referencia en términos monetarios, y luego se pasa a su equivalente en

cantidades. Asimismo, al inicio del año se calcula, con base en el pronóstico, la

planeación de los recursos y materias primas que se necesitan a lo largo del año. Sin

embargo, es importante mencionar que las exportaciones no se encuentran dentro del

pronóstico de todo el año, sino que se van incluyendo conforme llegan los pedidos

de exportación. Adicionalmente, en la programación de la producción se tienen en

Page 46: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

46

cuenta tres niveles de prioridad, donde en el nivel uno, el más importante, se

encuentran las exportaciones, que ocurren con una probabilidad del 10%. La

siguiente prioridad en importancia es la dos, la cual acontece con una probabilidad

del 30% y corresponde a los trabajos de temporada. Para este proyecto se consideran

cuatro temporadas, las cuales son: el día de la madre (abril), amor y amistad (agosto),

Halloween (septiembre) y navidad (noviembre). La última categoría son los

productos normales, es decir que no son de exportación, ni de temporada.

Actualmente, la programación de la producción en Italo se realiza de forma diaria y

tarda alrededor de dos a tres horas. Las personas encargadas de dicha tarea son el

director de producción y el gerente de producción, donde el primero se encarga del

área de la programación de galleta y el segundo de la programación de las demás

áreas. La programación se realiza con base en el pronóstico y teniendo en cuenta que

debe haber un inventario (stock de seguridad) de medio mes para cada producto.

Adicionalmente, en el área de empaque actualmente se maneja con un día de atraso,

es decir que hoy se empaca lo que se fabricó ayer, ya que de esta manera es más fácil

manejar la programación de esta sección.

La planta de Italo está compuesta por cinco áreas: Galleta, Chocolate, Cocina,

Depositados y Empaque. Donde los productos siguen diferentes rutas o secuencias,

pasando a través de una o más áreas. De dichas rutas se sabe que el 60% de los

trabajos realiza una ruta simple, es decir que solo pasa por un área, mientras que el

restante 40 sigue una ruta compleja, pasa por dos o más áreas. Dentro de las rutas

simples los trabajos van al área de galleta o cocina con una probabilidad del 35%,

mientras que al área chocolate con el 25% y al área depositados solo va el 5%.

Además, las máquinas solo pueden producir cierto tipo de productos, por lo cual hay

restricción de máquinas. Adicionalmente, cada vez que se vaya a realizar un producto

se deben alistar las máquinas, lo que implica que hay tiempos de preparación que

varían en cada máquina según el producto que se vaya a fabricar.

Page 47: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

47

8.2. Método de solución y análisis

En esta sección se aplica el mejor método de solución (el algoritmo genético por

partes) al caso de aplicación, el cual se comporta como el ejemplo definido en la

sección 5.1 denominada “Definición del problema”. Como se explicó anteriormente

el sistema productivo de Comestibles Italo también cuenta con cinco zonas de

producción, las cuales equivalen a las tratadas en este proyecto de la siguiente

manera:

- El área uno corresponde al área de galleta, donde se produce galleta dulce y wafer.

- La segunda área coincide con el área de Depositados, donde se manufactura el

fondant, el masmelo y algunas gomitas.

- El área número tres equivale al área de Cocina, en esta área se fabrican los

productos con almendra, las grageas, el caramelo, las chupetas, entre otros.

- La cuarta área corresponde al área de chocolate, en la cual se produce todos los

productos que contengan chocolate. Un ejemplo de una línea en esta área es la

línea manual, donde la fabricación del chocolate la hacen de forma manual.

- La quinta y última área es la de empaque, donde se encuentra tres bandas que

empacan productos provenientes de todas las otras áreas.

Por medio del método se programan 385 productos, lo cual equivale a la producción

de un mes, de forma semanal. Los tiempos de preparación asociados a estas 385

referencias se encuentran entre cero y treinta minutos para las áreas uno a la cuatro,

mientras que en el área cinco estos tiempos están entre cero y quince minutos. Por

otro lado, los tiempos de procesamiento para las áreas uno a la cuatro está entre 30

y 300 minutos, en cambio los del área cinco se encuentran entre quince y cincuenta

minutos. Adicionalmente, para el mes que se está realiza la programación de la

producción, los productos de exportación son 38, los de temporada son 48 y los

normales 299.

Debido a que la programación de la producción se va a realizar semanal se deben

repartir las 385 referencias en cuatro semanas, dicha distribución se va a realizar

antes de generar la programación de la siguiente manera. Inicialmente se define que

las primeras tres semanas se van a producir 96 productos y en la cuarta semana 97

Page 48: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

48

productos, para alcanzar una producción de aproximadamente una semana (cinco

días de jornada continua). El procedimiento de la selección de los trabajos es el

siguiente:

1. Se toma la base de datos completa.

2. Se organiza por nivel de prioridad de mayor a menor, donde uno es la

mayor prioridad y tres la menor.

3. Se seleccionan los primeros 96 o 97 trabajos a programar, dependiendo de

la semana del mes, es decir que se extraen los de mayor prioridad, y se

crea un subgrupo denominado “Semana #”, donde el # corresponde a la

semana que se está programando.

4. Se eliminan de la base de datos completa los trabajos que se incluyeron en

el subgrupo y se repite el paso 3 hasta que el número de trabajos en la base

de datos completa sea cero.

Una vez realizada la selección de los trabajos se genera la programación de la

producción mediante el método 5, es decir el algoritmo genético por áreas. Los

resultados a nivel de Makespan y del tiempo de corrida de dicha programación se

encuentran en la Tabla 16, donde se evidencia que el tiempo máximo de corrida es

de 1.25 horas y se obtienen Cmax menores de 5000 para las semanas 2 a cuatro.

Tabla 16. Resultados del caso de aplicación

Con base en estos resultados se puede concluir que utilizar el método de solución es

conveniente, porque reduce el tiempo en que se realiza la programación de la

producción, además de proporcionar una programación más extendida (semanal),

que permite mayor organización de los recursos, lo cual se evidencia en que el Cmax

de todas las semanas no está al máximo, es decir es menor que 7200.

1 2 3 4

Número Productos 96 96 96 97

Cmax 7089 4714 4455 3314

Tiempo en s 4255.34 2525.04 2892.79 4496.09

Tiempo en min 70.92 42.08 48.21 74.93

Tiempo en h 1.18 0.70 0.80 1.25

Semana

Page 49: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

49

9. Conclusiones y recomendaciones

Como conclusión la mejor solución encontrada para generar una programación de la

producción que minimice el Makespan en una planta de producción con áreas

interrelacionadas, donde algunas áreas se comportan como Flow Shop y otras como Job

Shop, es el algoritmo genético por partes. Este método de solución obtiene los resultados

más cercanos a las cotas en un tiempo de corrida inferior al tiempo límite, para las

instancias 4 a la 16, es decir cuando el número de productos esta entre 15 y 400. Sin

embargo, cuando es necesario programar más de 500 trabajos se debe utilizar el algoritmo

genético completo que cumple con el máximo tiempo establecido (12 horas).

Tras implementar el algoritmo genético por partes en el caso de aplicación se encuentra,

este genera una programación en un tiempo de corrida máximo de 1.25 horas, obteniendo

resultados inferiores al máximo Cmax, que para este proyecto corresponde a 7200 que

equivale a una semana de 5 días en jornada continua. Lo anterior permite que el

programador utilice dicho tiempo en otro tipo de trabajos y también permite que el

producto que se vaya desarrollando sea empacado conforme terminan de ser fabricado.

Para futuras investigaciones se propone trabajar en generar una programación mensual

integrando las prioridades en los algoritmos. En este proyecto la parte de las prioridades

se trató como un paso manual previo a los métodos de solución, donde se organizaban

los productos de un mes de acuerdo con su prioridad, y se fabrican primero los de mayor

prioridad. Sin embargo, la solución óptima puede combinar trabajos de diferentes

prioridades y obtener al final del mes un mejor resultado. Asimismo, se propone

modificar el algoritmo genético de manera que solo considere soluciones factibles y de

esta manera encuentre una mejor solucion más rápidamente.

Page 50: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

50

10. Bibliografía

[1] Balas, E. (1979). Disjunctive programming. In Annals of discrete mathematics (Vol.

5, pp. 3-51). Elsevier.

[2] Berkoune, D., Mesghouni, K., & Rabenasolo, B. (2006). Lower bounds for the

scheduling problem with uncertain demands. International Journal of Applied

Mathematics and Computer Science, 16, 263-269.

[3] Carlier, J., & Pinson, É. (1989). An algorithm for solving the job-shop problem.

Management science, 35(2), 164-176.

[4] Çetinkaya, F. C., & Duman, M. (2010). Lot streaming in a two-machine mixed

Shop. The International Journal of Advanced Manufacturing Technology, 49(9-12),

1161-1173.

[5] Cheng, T., Peng, B., & Lu, Z. (2016). A hybrid evolutionary algorithm to solve the

job Shop scheduling problem. Annals of Operations Research, 242(2), 223-237.

doi:10.1007/s10479-013-1332-5

[6] Choi, H. S., & Lee, D. H. (2009). Scheduling algorithms to minimize the number of

tardy jobs in two-stage hybrid flow Shops. Computers & Industrial

Engineering, 56(1), 113-120.

[7] Comestibles Italo S.A. (s.f.). Recuperado del sitio web

http://www.comestiblesitalo.com/#home el 29 abril del 2018

[8] Comestibles Italo S.A. (2017) Ventas del año 2015, 2016, 2017 (Informe en Excel).

Bogotá D.C., Colombia.

[9] Comestibles Italo S.A. (2017) Ventas por producto del año 2017 (Informe en Excel).

Bogotá D.C., Colombia.

[10] Dai, J. G., & Weiss, G. (2002). A fluid heuristic for minimizing makespan in

job shops. Operations Research, 50(4), 692-707.

[11] Dugarzhapov, A., & Kononov, A. (2016). A polynomial-time algorithm for

the preemptive mixed-Shop problem with two-unit operations per job. Journal of

Scheduling, 19(1), 61-72.

[12] Fernandes, S., & Lourenco, H. (2007). A grasp and branch-and-bound

metaheuristic for the job-Shop scheduling. Lecture Notes in Computer

Science, 4446(4446), 60-71.

[13] Graves, S. (1981). A review of production scheduling. Operations

Research, 29(4), 646-675. doi:10.1287/opre.29.4.646

[14] Herrmann, J. W. (2006). Improving production scheduling: integrating

organizational, decision-making, and problem-solving perspectives. In IIE Annual

Conference. Proceedings (p. 1). Institute of Industrial and Systems Engineers (IISE).

[15] Ignall, E., & Schrage, L. (1965). Application of the branch and bound

technique to some flow-Shop scheduling problems. Operations research, 13(3), 400-

412.

Page 51: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

51

[16] Ishii, H., Masuda, T., & Nishida, T. (1987). Two machine mixed Shop

scheduling problem with controllable machine speeds. Discrete applied

mathematics, 17(1-2), 29-38.

[17] Kazemi, H., Mazdeh, M. M., & Rostami, M. (2017). The two-stage assembly

flow-Shop scheduling problem with batching and delivery. Engineering Applications

of Artificial Intelligence, 63, 98-107.

[18] Komaki, G. M., & Kayvanfar, V. (2015). Grey Wolf Optimizer algorithm for

the two-stage assembly flow Shop scheduling problem with release time. Journal of

Computational Science, 8, 109-120.

[19] Koulamas, C., & Kyparisis, G. J. (2015). The three-machine proportionate

open Shop and mixed Shop minimum makespan problems. European Journal of

Operational Research, 243(1), 70-74.

[20] Lin, B. M. (2015). Two-stage flow Shop scheduling with dedicated

machines. International Journal of Production Research, 53(4), 1094-1097.

[21] Liu, S. Q., & Ong, H. L. (2004). Metaheuristics for the mixed Shop scheduling

problem. Asia-Pacific Journal of Operational Research, 21(01), 97-115.

[22] Lopez-Ibáñez, M., Dubois-Lacoste, J., Cáceres, L. P., Birattari, M., & Stützle,

T. (2016). The irace package: Iterated racing for automatic algorithm configuration.

Operations Research Perspectives, 3, 43-58.

[23] Low, C., Yeh, J. Y., & Huang, K. I. (2004). A robust simulated annealing

heuristic for flow shop scheduling problems. The International Journal of Advanced

Manufacturing Technology, 23(9-10), 762-767.

[24] Nguyen, V., & Bao, H. P. (2016). An efficient solution to the mixed Shop

scheduling problem using a modified genetic algorithm. Procedia Computer

Science, 95, 475-482.

[25] Panwalkar, S. S., & Koulamas, C. (2013). The three-stage ordered flow Shop

problem with flexible stage ordering. Computarse & Industrial Engineering, 64(4),

1093-1095.

[26] Pezzella, F., & Merelli, E. (2000). A tabu search method guided by shifting

bottleneck for the job Shop scheduling problem. European Journal of Operational

Research, 120(2), 297-310. doi:10.1016/S0377-2217(99)00158-7

[27] Pinedo, M. L. (2016). Scheduling: Theory, Algorithms, and Systems. Springer

International Publishing. 5a ed doi: 10.1007/978-3-319-26580-3

[28] Ponnambalam, S. G., Aravindan, P., & Rao, P. S. (2001). Comparative

evaluation of genetic algorithms for job-shop scheduling. Production Planning &

Control, 12(6), 560-574.

[29] RB, J. R., & Rajkumar, R. (2017). An effective genetic algorithm for flow

shop scheduling problems to minimize makespan. Mechanics, 23(4), 594-603.

[30] Scrucca, L. (2013). GA: a package for genetic algorithms in R. Journal of

Statistical Software, 53(4), 1-37.

Page 52: SOLUCIÓN AL PROBLEMA DE LA PROGRAMACIÓN DE LA …

52

[31] Shakhlevich, N. V., Sotskov, Y. N., & Werner, F. (2000). Complexity of

mixed Shop scheduling problems: A survey. European Journal of Operational

Research, 120(2), 343-351.

[32] Wang, L., & Zheng, D. Z. (2003). An effective hybrid heuristic for flow Shop

scheduling. The International Journal of Advanced Manufacturing

Technology, 21(1), 38-44.

[33] Yagmahan, B., & Yenisey, M. M. (2008). Ant colony optimization for multi-

objective flow Shop scheduling problem. Computers & Industrial

Engineering, 54(3), 411-420.

[34] Zhang, C., Li, P., Guan, Z., & Rao, Y. (2007). A tabu search algorithm with a

new neighborhood structure for the job shop scheduling problem. Computers &

Operations Research, 34(11), 3229-3242.

[35] Zobolas, G. I., Tarantilis, C. D., & Ioannou, G. (2009). A hybrid evolutionary

algorithm for the job shop scheduling problem. Journal of the Operational Research

Society, 60(2), 221-235.