Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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.
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.
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.
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
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
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
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
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
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.
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.
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.
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.
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
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.
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
21
Figura 3. Modelo del ejemplo del problema con posibles rutas
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.
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
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).
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
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
𝑆𝑖 𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 𝑒𝑠 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑑𝑜𝑑𝑙𝑐
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
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
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
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.
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
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)
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
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
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)
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
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
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
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
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
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
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
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
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.
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
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.
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
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
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.
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.
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.
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.