soluci on de problemas tipo flow-shop mediante algoritmos ... · soluci on de problemas tipo...

66
Soluci´ on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr ´ ıguez Qui ˜ nones Ingeniera de Sistemas odigo: 822139 Universidad Nacional de Colombia Facultad de Ingenier ´ ıa Departamento de Sistemas e Industrial Bogot ´ a, D.C. Enero de 2014

Upload: others

Post on 09-Mar-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Solucion de problemas tipo Flow-Shop mediantealgoritmos evolutivos

Tania Andrea Rodrıguez QuinonesIngeniera de Sistemas

Codigo: 822139

Universidad Nacional de ColombiaFacultad de Ingenierıa

Departamento de Sistemas e IndustrialBogota, D.C.Enero de 2014

Page 2: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Solucion de problemas tipo Flow-Shop mediantealgoritmos evolutivos

Tania Andrea Rodrıguez QuinonesIngeniera de Sistemas

Codigo: 822139

Trabajo de tesis para optar al tıtulo deMaestrıa en Ingenierıa Industrial

DirectorIng. Jonatan Gomez Perdomo, Ph.D.

Doctor en Ciencias de la Computacion

Lınea de investigacionAlgoritmos Evolutivos

Grupo de investigacionGrupo de Investigacion en Vida Artificial - ALIFE

Universidad Nacional de ColombiaFacultad de Ingenierıa

Departamento de Sistemas e IndustrialBogota, D.C.Enero de 2014

Page 3: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Tıtulo en espanol

Solucion de problemas tipo Flow-Shop mediante algoritmos evolutivos.

Title in English

Solving Flow-Shop problems using evolutionary algorithms.

Resumen: En esta Tesis se presenta una modificacion al algoritmo genetico HaEa(Hybrid Adaptative Evolutionary Algorithm) para resolver problemas de secuenciamientotipo Flow-Shop. Se revisan tres operadores geneticos de mutacion y tres de cruce, loscuales han sido utilizados en diferentes soluciones a problemas de permutacion. Seutiliza la heurıstica NEH para generar un individuo de la poblacion inicial lograndoobtener buenas soluciones. Los resultados experimentales muestran que entre los mejoresoperadores geneticos estan la mutacion de corrimiento y el cruce por emparejamientoparcial(PMX).

Abstract: In this thesis a modification to Hybrid Adaptative Evolutionary Algorithm(HaEa), is presented to solve Flow-Shop schedulling problems. Three different mutationsand three crossovers genetic operators are reviewed which have been used in differentsolutions for permutation problems. NEH heuristic is used to generate an individual ofthe initial population being able to obtain solutions in neighborhood on optimal point.The experimental results show that Shift Mutation and Partially Mapped Crossover(PMX) are among the best genetic operators.

Palabras clave: Algoritmos Evolutivos, Problemas Flow-Shop, Secuenciacion de Tareas,HaEa, Operadores Geneticos

Keywords: Evolutionary Algorithms, Flow-Shop Problems, Task Scheduling, HaEa, Ge-netic Operators

Page 4: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Nota de aceptacion

Trabajo de tesis

Aprobado

JuradoIng. Fabio Gonzalez

JuradoIng. Dave Machado

DirectorJonatan Gomez Perdomo Ph.D.

Bogota, D.C., Enero 2014

Page 5: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Dedicado a

A mis padres, que a lo largo de toda mi vida me han acompanado, brindandome todosu apoyo y carino, sobre todo en los momentos mas difıciles que he tenido que sortear. Susensenanzas y su ejemplo me han ensenado a salir adelante en momentos de dificultad, no sinantes mostrarme que la creatividad, la honestidad y la responsabilidad son caracterısticasque nunca puedo dejar de lado. A ellos, que tambien fueron los que sufrieron el desgastede culminar este gran logro.

Tambien muy especialmente a mi hermano, quien desde el cielo me brindo su apoyo ycompanıa, como un faro para llevar a buen puerto este proyecto.

Page 6: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Agradecimientos

Quiero dar gracias a mi director de tesis, Ph.D. Jonatan Gomez, por su paciencia, susensenanzas y su dedicacion durante el desarrollo de este trabajo.

Al Ing. Carlos Sierra quien me ha ensenado a ver el mundo desde una perspectivadiferente y que me ha brindado el apoyo incondicional necesario para alcanzar esta meta.A Juan Camilo Rubiano por ser mi patito de goma y ademas por ser el apoyo constantee impulsador en los momentos de debilidad. A la Ing. Diana Garcıa por acompanarme eneste proceso. A todos los integrantes del grupo de investigacion Alife de la UniversidadNacional, quienes con sus aportes y crıticas constructivas colaboraron con la maduraciondel trabajo.

Finalmente quiero agradecer a todos los integrantes de mi familia y a cada uno de misamigos que siempre creyeron en mi y me dieron las fuerzas necesarias para seguir adelante.

Page 7: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Indice general

Indice general I

Indice de tablas III

Indice de figuras IV

Introduccion VII

1. Conceptos Previos 1

1.1. Flow-Shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1. Makespan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.1. Seleccion de padres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.2. Aplicacion de operadores evolutivos . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.3. Remplazo de individuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3. Algoritmos Evolutivos en problemas de secuenciacion de tareas . . . . . . . . . 8

1.4. Algoritmos Evolutivos en problemas tipo Flow-Shop . . . . . . . . . . . . . . . . . 10

1.5. Heurıstica NEH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.6. HAEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2. Modelo Computacional 18

2.1. Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.1. Representacion del Cromosoma . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.2. Fitness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2. Metodos de seleccion y remplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3. Operadores geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.1. Mutacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

I

Page 8: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

INDICE GENERAL II

2.3.1.1. Mutacion de Intercambio (Swap Mutation) . . . . . . . . . . . . 21

2.3.1.2. Mutacion de Corrimiento (Shift Mutation) . . . . . . . . . . . . 21

2.3.1.3. Mutacion Heurıstica (Heuristic Mutation) . . . . . . . . . . . . 22

2.3.2. Cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.2.1. Cruce Cıclico (Cyclic Crossover) . . . . . . . . . . . . . . . . . . . 23

2.3.2.2. Cruce Basado en el Orden (Order Based Crossover) . . . . . 23

2.3.2.3. Cruce por Emparejamiento Parcial (Partially MappedCrossover) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3. Experimentacion y Resultados 25

3.1. HaEa con una sola mutacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2. HaEa con dos mutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3. HaEa con una mutacion y un cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4. HaEa con dos mutaciones y un cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

A. Algoritmos 36

A.1. Mutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

A.2. Cruces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Conclusiones 45

Trabajo futuro 47

Bibliografıa 48

Page 9: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Indice de tablas

1.1. Matriz de tiempos de ejecucion de la tarea Ti en la Maquina Mj . . . . . . . . 12

2.1. Tabla de tiempos para un problema de 4 maquinas y 5 tareas . . . . . . . . . . 19

3.1. Cantidad de tareas y maquinas de cada problema. Mejor solucion encon-trada hasta el momento y solucion dada por NEH . . . . . . . . . . . . . . . . . . 25

3.2. Resultados promedio utilizando una mutacion como operador genetico . . . . 27

3.3. Prueba de Wilcoxon para comparar los operadores de mutacion de inter-cambio y de corrimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4. Resultados promedio utilizando el operador mutacion de Corrimiento y otrotipo de mutacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5. Resultados promedio utilizando un tipo de mutacion y un tipo de cruce . . . 31

3.6. Resultados promedio utilizando el operador Mutacion de Corrimiento , otrotipo de mutacion y un tipo de cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7. Makespan y porcentaje de mejora obtenido para cada problema, utilizandoMutacion de Corrimiento y Cruce por Emparejamiento Parcial. . . . . . . . . . 35

3.8. Porcentaje GAP para cada problema encontrado con diferentes algoritmos,parte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.9. Porcentaje GAP para cada problema encontrado con diferentes algoritmos,parte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

III

Page 10: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Indice de figuras

1.1. Calculo del makespan para un cromosoma de 5 tareas en el orden 1-2-3-4-5 3

1.2. Calculo del makespan para un cromosoma de 5 tareas en el orden 3-1-5-2-4 4

1.3. Calculo del makespan para un cromosoma de 5 tareas . . . . . . . . . . . . . . . . 4

1.4. Cruce entre dos cromosomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5. Algoritmo Evolutivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6. Ejemplo de representacion de cromosoma [13] . . . . . . . . . . . . . . . . . . . . . . 9

1.7. Calculo del makespan para la secuencia T1 - T3 . . . . . . . . . . . . . . . . . . . . 13

1.8. Calculo del makespan para la secuencia T3 - T1 . . . . . . . . . . . . . . . . . . . . 13

1.9. Calculo del makespan para la secuencia T2 - T3 - T1 . . . . . . . . . . . . . . . . . 14

1.10. Calculo del makespan para la secuencia T3 - T2 - T1 . . . . . . . . . . . . . . . . . 14

1.11. Calculo del makespan para la secuencia T3 - T1 - T2 . . . . . . . . . . . . . . . . . 14

1.12. Calculo del makespan para la secuencia T4 - T3 - T1 - T2 . . . . . . . . . . . . . . 15

1.13. Calculo del makespan para la secuencia T3 - T4 - T1 - T2 . . . . . . . . . . . . . . 15

1.14. Calculo del makespan para la secuencia T3 - T1 - T4 - T2 . . . . . . . . . . . . . . 15

1.15. Calculo del makespan para la secuencia T3 - T1 - T2 - T4 . . . . . . . . . . . . . . 15

2.1. Representacion del cromosoma para un problema de 5 tareas . . . . . . . . . . . 19

2.2. Calculo del fitness para un cromosoma de 5 tareas en el orden 1-2-3-4-5 . . . 20

2.3. Mutacion de Intercambio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4. Mutacion de corrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5. Mutacion Heurıstica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.6. Cruce Cıclico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.7. Cruce Basado en el Orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.8. Cruce por Emparejamiento Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1. Variacion del makespan para el problema Ta001 con una mutacion . . . . . . . 28

IV

Page 11: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

INDICE DE FIGURAS V

3.2. Variacion del makespan para el problema Ta051 con una mutacion . . . . . . . 28

3.3. Variacion del makespan para el problema Ta111 con una mutacion . . . . . . . 28

3.4. Variacion del makespan para el problema Ta001 con un cruce y mutacionde corrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5. Variacion del makespan para el problema Ta051 con un cruce y mutacionde corrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.6. Variacion del makespan para el problema Ta111 con un cruce y mutacionde corrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Page 12: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Lista de Algoritmos

1. HAEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162. Swap Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363. Insertion Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374. Heuristic Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385. CyclicXOver Genera primer hijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396. CyclicXOver Genera segundo hijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407. OrderBasedXOver Genera primer hijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 418. OrderBasedXOver Genera segundo hijo . . . . . . . . . . . . . . . . . . . . . . . . . . 429. PartialMappedXOver Genera primer hijo . . . . . . . . . . . . . . . . . . . . . . . . . 4310. PartialMappedXOver Genera segundo hijo . . . . . . . . . . . . . . . . . . . . . . . . 44

VI

Page 13: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Introduccion

En la revolucion industrial el aumento del tamano de las organizaciones y su comple-jidad presento una dificultad en la distribucion de los recursos de una manera eficaz enlos componentes de una organizacion [47]. Al existir varias divisiones en una organizacionque tienen autonomıa en la toma de decisiones, aumentan las probabilidades de perder elobjetivo general complicando aun mas la distribucion de recursos de una manera optimay acorde con los procesos misionales [20].

Este problema de distribucion ha persistido hasta nuestros dıas por lo cual algunasorganizaciones han planteado una solucion utilizando lıneas de produccion basadas en laasignacion de tareas a traves de diferentes maquinarias y elementos de transformacion deinsumos. Un fallo en alguno de los puntos podrıa detener e incluso danar la produccion enun periodo de tiempo.

Esto conlleva a disenar y gestionar lıneas de produccion que cumplan con condicionesde calidad evitando fallas, recuperandose de las mismas, y asignando de manera eficientelas entradas de los insumos y la utilizacion de maquinas para obtener la mejor produccionposible.

Particularmente, en el proceso de asignacion de tareas se llega a un problema de op-timizacion con multiples restricciones en el cual se debe tener en cuenta la cantidad deinsumos disponibles, la cantidad de operarios y sus turnos, la cantidad de maquinaria dis-ponible y los tiempos que toma cada maquinaria en realizar la tarea; dependiendo de laorganizacion se pueden optimizar elementos como el tiempo de ejecucion total del proceso,los costos de produccion, el tiempo que esperan en cola las tareas para ser procesados enuna maquina, entre otros.

En la epoca de la segunda guerra mundial fue necesario realizar una distribucion ade-cuada de los recursos existentes a las distintas operaciones militares, para permitir unmejor uso de los recursos intangibles; como el comportamiento humano o la toma de de-cisiones. De esta manera surgio lo que se conoce como Investigacion de Operaciones lacual ayuda de forma numerica a la toma de decisiones, principalmente en casos donde esnecesario asignar escasos recursos a ciertas actividades para lograr un objetivo especificocomo maximizar ganancias, minimizar costos, entre otros [47].

A partir de esto, es posible construir algoritmos y metodos computacionales que permi-tan solucionar este tipo de problemas combinatorios de una manera rapida, apropiada, yflexible, buscando siempre encontrar el optimo global, como es el caso de las empresas queutilizan el concepto de Flow-Shop para disenar e implementar sus lıneas de produccion.

VII

Page 14: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

INTRODUCCION VIII

Las caracterısticas particulares de este concepto son que todas las tareas a realizarsiguen el mismo orden de maquinas, una maquina solo puede procesar una tarea a la vez,y no se tienen cuenta lıneas paralelas de produccion (solo una maquina de cada tipo) [50].De esta manera, el problema consiste en encontrar un orden de asignacion de una cantidaddeterminada de tareas que deben ser realizadas en un numero especıfico de maquinas conel objetivo de minimizar el tiempo de produccion, conocido como makespan.

Se han usado diferentes heurısticas para resolver este tipo de problemas, tal como lohizo Chen [7] y Haouari [19]. Otros autores han preferido el uso de metodos heurısticosy determinısticos para resolver problemas mas pequenos (Kyparisis [24] y Botta [2]). Aesto se le suman los trabajos donde se ha aplicado algoritmos evolutivos a la soluciondel problema, donde normalmente se le han hecho modificaciones al algoritmo para poderobtener mejores soluciones (Huang y otros [21], Onwubolu y Davendra [37], Shiau [44] yChiou [10], entre otros).

La importancia de buscar nuevos metodos de solucion al problema Flow-Shop radicaen que este ha sido considerado un problema de tipo NP-Hard [50], lo que hace que seacomplicado solucionarlo por metodos analıticos, sobre todo en los casos donde las maquinasy las tareas toman valores relativamente altos.

En esta tesis se propone realizar una modificacion al algoritmo evolutivo HaEa (HybridAdaptive Evolutionary Algorithm) planteado por Gomez [15] con el fin de resolver deforma efectiva un problema de tipo Flow-Shop. Se selecciona dicho algoritmo ya que losparametros utilizados para los operadores geneticos son buscados a la par con la solucional problema, ademas el proceso de evolucion se centra en el individuo, y no tanto en lapoblacion. Las caracterısticas anteriores hacen que HaEa sea capaz de encontrar buenassoluciones. Especıficamente la investigacion se centra en:

Seleccionar una representacion (codificacion) para problemas tipo Flow-Shop: Se analizara el algoritmo evolutivo HaEa para determinar cual sera la representa-cion apropiada para la solucion del problema; en esta etapa es importante tener en cuentalos tipos de algoritmos evolutivos que se han utilizado hasta el momento para resolver elproblema y determinar cuales son sus falencias y sus mayores aportes.

Proponer operadores geneticos necesarios para la solucion de problemastipo Flow-Shop mediante algoritmos evolutivos: Se estudiaran los diferentes ope-radores geneticos para poder determinar cual o cuales seran los mas apropiados para usaren el desarrollo del modelo, de acuerdo al tipo de problemas a solucionar.

Definir la funcion de fitness apropiada para la solucion de problemas ti-po Flow-Shop mediante algoritmos evolutivos: Debido a que los problemas tipoFlow-Shop tienen diferentes medidas de desempeno, se buscara cual de ellas es la masapropiada para optimizar teniendo en cuenta que los resultados obtenidos deberan poderser comparados con los de otros investigadores.

Comparar el modelo desarrollado con otros metodos que ayuden a la so-lucion de problemas tipo Flow-Shop: Realizar una comparacion entre el modelodesarrollado en esta tesis con otros modelos previamente expuestos por otros autores paraencontrar las soluciones de problemas tipo Flow-Shop

La investigacion es de gran utilidad en el ambito empresarial y academico ya que por unlado facilitara la busqueda de soluciones a problemas de secuenciacion de tareas el cual esbastante comun en las empresas productoras y por otro lado ayudara a las investigaciones

Page 15: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

INTRODUCCION IX

academicas que se realicen alrededor de este tema, generando una base para proximosdesarrollos.

Esquema de la Tesis

La estructura de la tesis se describe a continuacion:

• Capıtulo 1 Se muestran conceptos matematicos que definen los problemas tipoFlow-Shop, y algunos mecanismos que se han utilizado para resolverlos. Se muestrabrevemente la teorıa de Algoritmos Geneticos y como se han usado para resolverproblemas de secuenciacion de tareas. Posteriormente, se hace una recopilacion detrabajos en los cuales se utilizan Algoritmos Geneticos para resolver problemas deasignacion de tareas en lıneas de produccion Flow-Shop. Se describe el algoritmogenetico HaEa utilizado en el desarrollo de la tesis.

• Capıtulo 2 Se describe de forma detallada el algoritmo propuesto para resolverproblemas tipo Flow-Shop. Se mostrara la representacion del cromosoma y los ope-radores geneticos utilizados en la solucion.

• Capıtulo 3 Se especifican los experimentos realizados y los resultados obtenidos.

• Capıtulo 4 Se dan las conclusiones que se obtuvieron con el desarrollo de la tesis yse plantean trabajos futuros.

Page 16: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1

Conceptos Previos

Existen problemas conocidos como problemas de secuenciacion de tareas, donde todaslas tareas que se tienen programadas manejan la misma secuencia de produccion pero conun tiempo diferente de ejecucion en cada una de las maquinas que componen la secuencia.En este tipo de problemas se desea encontrar un orden especıfico en el que las tareas debenser efectuadas optimizando el tiempo de ejecucion de la secuencia de produccion total, loque quiere decir que se busca tener las maquinas trabajando el mayor tiempo posible perosin tareas represadas a espera de ser ejecutadas en estas maquinas [5].

En general, en este tipo de problemas se tienen n tareas y m maquinas distintas, con untiempo de ejecucion Tij de la tarea i-esima en la maquina j-esima, y con esta informacionse construye la matriz de pagos, la cual es utilizada para simular la ejecucion de las tareas alo largo de la secuencia de produccion. Solucionar este tipo de problemas implica encontrarel orden de las tareas que minimiza el tiempo total de ejecucion, conocido como makespan[26].

Velez y otros, afirman que solucionar un problema de secuenciacion implica asignarrecursos (maquinas) a las diferentes tareas que se tengan, de manera tal que se cumplacon algun criterio de optimizacion (normalmente minimizar el makespan)[53].

Existen tres tipos de problemas de secuenciacion: estaticos, semidinamicos y dinami-cos. Aquellos que tienen un numero de tareas y maquinas finito y las maquinas siempreestan disponibles se denominan problemas estaticos; en los problemas semidinamicos ladisponibilidad de las maquinas no es la misma para todos las tareas; y en los dinamicos,las tareas son infinitas,es decir, que mientras unas terminan su ejecucion llegan otras queempezaran a utilizar las maquinas, teniendo una cantidad de tareas constante en ejecucion[11].

Los problemas de secuenciacion tienen diferentes tipos de flujos, entre ellos se encuen-tran [52]:

• Flow Shop (F): Son aquellos problemas donde todas las piezas o tareas tienen exac-tamente la misma ruta de procesamiento.

• Open Shop (O): Son los problemas de secuenciacion donde las tareas no tienen unorden para usar las maquinas y en caso que la maquina este ocupada, existe la

1

Page 17: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 2

posibilidad de que dicha tarea se dirija a otra maquina, debido a la prioridad quepuede tener dicha tarea sobre las demas.

• Permutation Flow Shop (P): A diferencia del Open Shop, el orden de ejecucion delas tareas es FIFO.

• Job Shop (G): En este problema cada una de las tareas tiene un orden de uso de lasmaquinas diferente, pues depende de los plazos de entrega que tiene cada una de lastareas. Su objetivo consiste en encontrar la programacion de las tareas de maneratal que se minimice el tiempo de procesamiento.

• Single Machine Shop (II): Solo existe una maquina que debe procesar todas lastareas.

• Task Scheduling: A diferencia de los problemas anteriores, en este problema las tareaspredecesoras deben ser ejecutadas previamente para ejecutar la tarea actual [12].

1.1. Flow-Shop

En los problemas Tipo Flow-Shop todas las tareas son procesadas siguiendo un mismoorden de maquinas en la secuencia, teniendo como consecuencia que algunas tareas puedanllegar a maquinas ocupadas, lo que genera colas de espera para ser procesadas. La secuen-cia puede ser de produccion por lotes, donde una vez que se fabrica cierta cantidad deartıculos de un tipo de producto, se preparan las maquinas para fabricar el otro producto,tambien existen secuencias de de produccion continua, donde las maquinas siempre estantrabajando en la produccion del mismo producto [11].

Entre las consideraciones de los problemas Flow-Shop, Toro, Restrepo y otros destacanlas siguientes [50]:

• Existen n tareas, que pertenecen al conjunto N , las cuales son procesadas en elconjunto M que contiene m maquinas.

• Cada trabajo i ∈ N es procesado en la maquina 1 primero, en la maquina 2 comosegundo paso y por ultimo en la maquina m.

• El flujo de las maquinas es unidireccional

• Tij es el tiempo que gasta la tarea i en ser procesada por la maquina j, dicho tiempoes conocido

• Todas las tareas estan disponibles en el tiempo cero

• Las maquinas estan disponibles y no pueden ser interrumpidas

• Solo se puede procesar una tarea a la vez por maquina

• Una tarea solo puede ser procesada por una maquina a la vez

Page 18: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 3

1.1.1. Makespan

Π representa el conjunto de todas las posibles permutaciones (n!) las cuales con-forman el espacio solucion. El tiempo en completar el trabajo π(i) en la secuenciaπ = π(1), π(2), ..., π(n) en la maquina j, conocido como Cπ(i),j (makespan) se puede ex-presar como:

Cπ(1),1 = Tπ(1),1 (1.1)

Cπ(i),1 = Cπ(i−1),1 + Tπ(i),1 i = 2, ..., n (1.2)

Cπ(1),j = Cπ(1),j−1 + Tπ(i),j j = 2, ...,m (1.3)

Cπ(i),j = max{Cπ(i−1),j , Cπ(i),j−1}+ Tπ(i),j i = 2, ..., n; j = 2, ...,m (1.4)

El objetivo es encontrar una permutacion π ∈ Π tal que Cmax(π) = Cπ(i),j sea mınimo.

En la figura 1.1 se puede ver la forma como se calcula el makespan para un orden detareas especıfico. Como se puede ver la primera tarea en la lista siempre encontrara lasmaquinas desocupadas, mientras que en el resto de tareas se debe determinar si existealgun tiempo de espera (ya sea por parte de la maquina o de la tarea).

Figura 1.1. Calculo del makespan para un cromosoma de 5 tareas en el orden 1-2-3-4-5

En este caso se puede ver que la segunda maquina estuvo durante una unidad detiempo desocupada, pues aunque la maquina ya estaba desocupada la segunda tarea aunno terminaba en la primera maquina. Por otro lado se puede ver que la tercera tarea tuvoque esperar un lapso de una unidad de tiempo para ser atendida por la segunda maquina,pues esta ultima estaba ocupada con la tarea previa.

El makespan en el caso de la figura 1.1 es 34 unidades de tiempo.

Page 19: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 4

En la figura 1.2 se puede observar el calculo del makespan para otro orden de tareas, quepertenece al espacio solucion del problema anterior. En este caso el makespan disminuyorespecto al encontrado anteriormente, que corresponde a 32 unidades de tiempo.

Figura 1.2. Calculo del makespan para un cromosoma de 5 tareas en el orden 3-1-5-2-4

c

A diferencia de la solucion anterior, en la figura 1.3 se encontro un makespan mayor ala primera solucion encontrada (46 unidades de tiempo).

Figura 1.3. Calculo del makespan para un cromosoma de 5 tareas

De acuerdo a esto se puede decir que la mejor solucion de las tres encontradas es lacorrespondiente a la figura 1.2 pues si se sigue ese orden de tareas se obtiene un menortiempo de realizacion de las mismas en todas las maquinas.

En cuanto a la complejidad, teniendo en cuenta que un problema se considera facil siexiste un algoritmo que lo soluciona en un tiempo polinomial y que en caso contrario elproblema se considera difıcil [53]. Alvarez, Gallego y otros afirman que el problema Flow-Shop esta clasificado como un problema NP-difıcil (tambien conocido como NP-Hard), loque significa que su tiempo de ejecucion aumentara exponencialmente con el tamano delproblema [28].

Debido a esto, algunos autores han propuesto diferentes algoritmos para resolver Pro-blemas Tipo Flow-Shop mediante metodos que a lo largo de sus iteraciones buscan op-

Page 20: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 5

timizar el makespan. Por ejemplo, durante los noventas, la busqueda de algoritmos quesolucionan este tipo de problemas se baso en aplicar y desarrollar metodos metaheurısticos,ya que estos evitan caer en optimos locales (diversificacion) y ayudan a explorar a fondoaquellas regiones donde se han encontrado soluciones optimas (intensificacion), utilizandoconceptos traıdos de la inteligencia artificial, y la evolucion biologica [53].

Entre las metaheurısticas utilizadas para resolver este tipo de problemas se encuen-tran: el recocido simulado, los algoritmos demons, la busqueda tabu, algoritmos voraces,algoritmos GRASP y algoritmos evolutivos.

El recocido simulado, inicia con una solucion X0 y a partir de ahı busca solucionesvecinas al azar. Si esta solucion Xn es mejor que la anterior, pasa a ser la solucion X0,en caso tal que dicha solucion no sea optima guarda las respuestas no optimas siempre ycuando estas esten dentro del valor de aceptacion de empeoramiento. Dicho porcentaje deaceptacion va disminuyendo a medida que avanza el algoritmo. El aceptar soluciones nooptimas permite que el espacio de busqueda sea un poco mas amplio que el espacio dondese ubica el ultimo optimo local encontrado [40].

El algoritmo demon es una variacion del recocido simulado; en este caso el algoritmomaneja un credito llamado demon, el cual va disminuyendo a medida que se encuentra unvalor peor que el ultimo optimo encontrado, en cambio si el valor de la funcion objetivoes mejor que el ya encontrado, esta mejorıa se le suma al demon. De tal manera que,solamente se acepta una nueva solucion no optima si el credito del demon alcanza paraello [57].

Autores como Subramani en [45], Chen en [9], Nowicki en [34], Bozejko en [3] y Hurinken [22] han utilizado busqueda tabu para resolver diferentes problemas de secuenciacionde problemas. La principal ventaja de este metodo esta en que las soluciones visitadasrecientemente son guardadas con el fin de evitar que el algoritmo se quede en optimoslocales y ası mismo explore de forma mas profunda el espacio de busqueda. Debido a estose dice que la busqueda Tabu es una busqueda inteligente y con cierto grado de aprendizaje[27].

Los algoritmos voraces son eficientes pues permiten encontrar soluciones de formarapida, ya que utilizan el conocimiento adquirido del problema a traves de las restriccionesdel mismo. Uno de los mayores inconvenientes de este algoritmo es que debido a que escogeel mejor candidato de un grupo de soluciones, y toma este como solucion sin tener en cuentalos cambios que puedan ocurrir, tiende a caer en optimos locales. Tupia y otros proponen unalgoritmo voraz que soluciona un problema de tareas dependientes en diferentes maquinas,que obtiene soluciones muy cercanas a las optimas, con un tiempo de corrida muy pequenocomparado con algoritmos heurısticos [52].

Los procedimientos de busquedas voraces aleatorios y adaptativos, mas conocidos co-mo GRASP (Greedy Randomized Adaptive Search Procedures), por sus siglas en ingles,generan una solucion inicial por medio de metodos voraces para luego realizar una mejorade dicha solucion mediante una busqueda local. Ramirez propone un algoritmo GRASPpara solucionar problemas tipo Flow-Shop obteniendo mejores resultados (con una mejorasuperior al 3 %), para el ejemplo utilizado, que el algoritmo voraz [41].

Page 21: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 6

1.2. Algoritmos Evolutivos

La rama de la inteligencia artificial que simula los procesos de seleccion natural teniendoen cuenta que los individuos tienden a transmitir rasgos de una generacion a otra, losseres o individuos mas adaptados tienden a sobrevivir y que la naturaleza ocasionalmenteintroduce nuevos rasgos al sistema, es conocida como computacion evolutiva [12]. Estaes basada en procesos biologicos y es normalmente utilizada para resolver problemas deoptimizacion. Li y otros afirman que debido a que la busqueda en la computacion evolutivaes realizada en multiples direcciones, es mas facil salir de un mınimo local [25].

Se puede definir un Algoritmo Evolutivo (AE) como una tecnica que utiliza concep-tos darwinianos (reproduccion y supervivencia del mas apto) y operaciones geneticas pararesolver problemas de optimizacion, en determinado espacio de soluciones [43]. Los algorit-mos evolutivos son una tecnica de busqueda estocastica que explora el espacio de busquedapara obtener una poblacion de individuos, que representan el grupo de posibles soluciones[31], y con ayuda de conceptos biologicos de evolucion, a traves de las interaciones (gene-raciones) se busca tener individuos que cada vez esten mas cerca de la mejor solucion aun problema determinado. Algunos parametros de los algoritmos evolutivos son el tamanode poblacion, el maximo numero de generaciones, y la probabilidad de ocurrencia de losoperadores geneticos [18].

Los algoritmos evolutivos se dividen en tres fases [30]:

• Seleccion de padres.

• Aplicacion de operadores Evolutivos.

• Reemplazo de individuos.

1.2.1. Seleccion de padres

En esta fase se determinan por diferentes metodos los cromosomas padres que seranutilizados para generar nuevos individuos. Uno de los metodos utilizados en la seleccion depadres es ”seleccion por ruleta” que consiste en ubicar todos los individuos en los espaciosde una rueda giratoria, teniendo en cuenta que el individuo con mayor valor de la funcionfitness (funcion que determina que tan bueno es un individuo en determinado ambiente)sera ubicado en mas espacios y ası tendra una mayor probabilidad de ser escogido [39].

Otros metodos utilizados en la seleccion de padres son:

• Elitista: Se ordenan los individuos de mayor a menor valor de acuerdo al fitness y seseleccionan los mejores.

• Rango: Se divide la poblacion por rangos de acuerdo a un ranking establecido pre-viamente y de cada uno de los rangos se escoge un individuo.

• Rango Elitista: Este metodo es muy similar al metodo anterior, solo que en estaocasion se descartan los individuos que pertenezcan al rango mas bajo.

• Torneo: Se agrupan los padres y de cada grupo inicial se escogen los mejores y ası seva compitiendo hasta que queda el mejor individuo como unica eleccion. Normal-mente estos torneos se realizan con cuatro individuos pero pueden ser de mas, conla condicion de que el numero de individuos debe ser potencia de 2.

Page 22: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 7

1.2.2. Aplicacion de operadores evolutivos

Una vez escogidos los padres se procede a aplicar los operadores geneticos. Uno de losoperadores geneticos mas utilizados es el cruce, que consiste en dividir los dos cromosomasen un mismo punto y generar los hijos por medio de las combinaciones de las partes.En la generacion de los nuevos cromosomas cada uno de los numeros representa unacaracterıstica del individuo [43].

Figura 1.4. Cruce entre dos cromosomas

En la figura 1.1 se muestra el cruce entre dos cromosomas que fueron divididos exac-tamente por el mismo sitio y donde sus hijos son el resultado de la union de sus partes.

Otro operador genetico es la mutacion, el cual consiste en modificar puntos o rangos deun cromosoma para generar nuevos individuos. A diferencia del cruce, este solo necesita deun cromosoma para realizarse. Existen mutaciones de un punto, de varios puntos o muta-cion completa. Debido a que es preferible conservar ciertas caracterısticas del cromosomapadre, no es muy recomendado hacer una mutacion completa, pues con esta se pierden lascaracterısticas iniciales [30].

Debido a que la eleccion del operador genetico se hace cada vez que se genera un nuevoindividuo, al iniciar el algoritmo se le da una mayor ponderacion al cruce para ası poderexplorar el espacio de soluciones, despues de una determinada cantidad de generaciones lamayor ponderacion se le asigna a la mutacion y ası poder explorar los nichos [4].

1.2.3. Remplazo de individuos

Despues de aplicarse los operadores Evolutivos, es necesario determinar cuales son losindividuos que haran parte de la nueva poblacion, para ello se aplican ciertos metodos queayudan a determinar cuales son los cromosomas que continuan. En este paso es importantetener en cuenta que el tamano de la poblacion no debera variar durante el algoritmo

Para esto existen tambien varios metodos, uno de ellos la ruleta explicada anterior-mente. Otro metodo es el reemplazo generacional donde se sustituyen los padres por loshijos, sin importar quien de ellos es mejor. Y por ultimo esta el metodo de reemplazo queconsiste en escoger al mejor padre y al mejor hijo y al peor padre y al peor hijo, de cadauno de estos grupos se selecciona uno a reemplazar (generalmente se utiliza el metodoelitista), este metodo es conocido como Steady State [30].

Page 23: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 8

Figura 1.5. Algoritmo Evolutivo

Los algoritmos evolutivos estan conformados por fenotipos y genotipos. La represen-tacion real del individuo en el espacio es conocida como Fenotipo mientras que la repre-sentacion genetica del individuo es conocida como Genotipo. El genotipo se transformaen fenotipo y se halla su funcion de fitness. En la figura 1.2 se puede ver el ciclo de unalgoritmo evolutivo.

1.3. Algoritmos Evolutivos en problemas de secuenciacion detareas

En problemas de secuenciacion de tareas se han utilizado Algoritmos Evolutivos parahallar soluciones optimas al orden de las tareas de acuerdo a las restricciones de la secuenciade produccion, sin embargo algunas veces se tienen problemas debido a que no se intentadisminuir la complejidad del problema, sino que simplemente se hace la busqueda en elespacio de solucion cayendo algunas veces en soluciones poco optimas.

Un ejemplo de AE en secuenciacion de tareas fue realizado para Problemas Tipo Job-Shop por Teekeng y Thammano, donde el objetivo es minimizar el makespan teniendo comoparametros el orden de las tareas a ejecutar y la distribucion de las maquinas para dichastareas. En este trabajo los autores presentan modificaciones a los metodos tradicionalesque se utilizan para este tipo de algoritmos, particularmente en el mecanismo de selecciony en los operadores geneticos [49].

El mecanismo de seleccion es una modificacion del metodo de ruleta, donde se hace usode logica difusa para agrupar y seleccionar padres de acuerdo a sus rangos de pertenenciadentro de los grupos. En cuanto a los operadores geneticos plantean modificaciones tantoal cruce como a la mutacion donde se busca mantener la diversidad en los individuos de lapoblacion, ası como evitar convergencias prematuras del algoritmo, lo que evita obtenercomo solucion final optimos locales lejanos al optimo global.

Giovanni y otros proponen un algoritmo evolutivo para la solucion de problemas Job-Shop flexible y distribuido (DFJS). Cada gen del cromosoma describe la asignacion detrabajos en cada unidad y el orden de los mismos describe la secuencia de los trabajos ypor ende determina la ruta de trabajo. Similar a otros trabajos, el objetivo es minimizarel makespan del problema, por ende los autores determinan que este debe ser el fitness[13] .

En la figura 1.3 se puede ver un ejemplo de la representacion del cromosoma que se uti-liza. La cantidad de genes del cromosoma es igual a la cantidad de operaciones de trabajo,

Page 24: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 9

Figura 1.6. Ejemplo de representacion de cromosoma [13]

en el caso de que la cantidad de operaciones en una unidad sea menor, se completara elcromosoma con operaciones ficticias y tiempo de ejecucion cero, con el fin de no alterar eltamano del cromosoma y mucho menos los resultados finales. El algoritmo propuesto fuecomparado con algoritmos disenados para este tipo de problema y se obtuvieron los valo-res optimos o en su defecto muy cercanos al optimo. Igualmente se ratifico que el tiempocomputacional necesario es mucho menor que el que el usado por otro tipo de algoritmos.

Otros autores que han trabajado en la solucion de problemas tipo Job-Shop mediantealgoritmos evolutivos son Pezzella y otros en [38] y Goncalves y otros en [17]. Los opera-dores utilizados en estos casos, fueron cruce y mutacion con algunas variaciones, ya que elproblema de por si tiene la restriccion de que dos genes no pueden ser iguales, lo que generauna revision adicional a cada cromosoma obtenido para cerciorarse que dicho cromosomapertenece al espacio de busqueda. En ambos casos se obtuvieron resultados muy proximosa los optimos, con una desviacion estandar promedio de 0.39 % [17].

Los problemas de secuenciacion con flujos Task Scheduling tambien han sido soluciona-dos por medio de algoritmos evolutivos. Omara y otros han propuesto un algoritmo pararesolver este tipo de problemas. El cromosoma utilizado consiste en dos partes: la primeracorresponde a las maquinas que solucionaran cada una de las tareas y la segunda partemuestra el orden en que dichas tareas seran ejecutadas [36].

Realizan una modificacion en el momento de aplicar los operadores geneticos, puescuentan con dos tipos de cruce; inicialmente se determina una probabilidad de cruce µcy para determinar que cruce sera utilizado en cada iteracion, una vez seleccionados lospadres se genera un numero aleatorio entre 0 y 1, si dicho numero es menor a µc se aplicael operador de cruce a la primera parte del cromosoma, es decir se modifica la asignacionde maquinas para cada tarea; en caso contrario se aplica el cruce al orden de las tareas,siempre teniendo en cuenta que al generar los hijos no debe existir ninguna tarea repetida.El operador de mutacion al ser aplicado modifica la asignacion de la maquina.

Este algoritmo fue comparado con el algoritmo Ruta crıtica Modificada consideradouno de los mejores y descrito en [58], obteniendo mejores resultados la mayorıa de lasveces.

Goncalves y otros en [16] y Chan y otros en [6] desarrollaron algoritmos para aquellosproblemas de secuenciacion multi fabrica y multi producto. En el primer artıculo los auto-res estudian la asignacion de recursos ilimitados a varios proyectos, generando la poblacioninicial con una heurıstica basada en prioridades, tiempos de retraso y fechas de inicio delos proyectos o tareas. Por otro lado, en el segundo artıculo, proponen un nuevo cruce,denominado cruce de gen dominado, con el fin de eliminar el problema de determinar latasa de cruce optimo. En ambos artıculos se validan los algoritmos propuestos contra losalgoritmos tradicionales obteniendo resultados muy cercanos a los optimos y un tiempomenor de ejecucion.

Page 25: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 10

1.4. Algoritmos Evolutivos en problemas tipo Flow-Shop

Durante los ultimos diez anos, se ha venido intensificando el uso de los AlgoritmosEvolutivos en la solucion de problemas de sencuenciamiento Flow-Shop, gracias a quelos conceptos evolutivos utilizados en los algoritmos permiten que la complejidad de losproblemas sea mas manejable y se puedan encontrar soluciones optimas a los problemas.

Autores como Zare y Fakhrzad utilizan Algoritmos Evolutivos para resolver problemastipo Flow-Shop con maquinas paralelas, donde el objetivo es minimizar el total del tiempode tardanza de los trabajos. El problema Flow-Shop con maquinas paralelas, tambienconocido como Flow-Shop flexible incluye un numero de productos con la misma secuenciade pasos de produccion. Hay maquinas paralelas en cada paso de produccion y todos losproductos van desde el paso 1 hasta el paso n. Zare y Fakhrzad proponen resolver elproblema por medio de un algoritmo genetico hıbrido combinado con minerıa de datos enel cual se obtuvo que la tasa de convergencia del algoritmo mejora en un 48 % [59].

El Algoritmo Genetico propuesto por Akhshabi y otros, tiene como consideracionesel hecho de que los trabajos son indivisibles, que el tiempo de llegada del trabajo a lacola es aleatorio y que cada trabajo puede ser procesado por cualquier maquina. Estealgoritmo muestra que al aplicarse decrece considerablemente el tiempo del procesamientode la CPU, sin afectar el resultado del makespan, frente al mismo problema resuelto conotros metodos [26].

Toro y otros proponen un Algoritmo Genetico basado en el de Chu- Beaskley pararesolver un problema tıpico de Flow-Shop. En este caso los autores utilizan como repre-sentacion de los cromosomas un vector de tamano m(numero trabajos) donde la k-esimaposicion del vector representa el trabajo que se realizara de k-esimo [50].

Utilizan el cruce y la mutacion como operadores geneticos, pero al proceso de crucese le hizo una variacion y se utilizo el PMX(Partially mapped Crossover), que consiste enelegir dos puntos de cruce aleatoriamente,intercambiar los 2 segmentos y generar los nuevoshijos. Una vez realizado el intercambio se determina si el nuevo valor no se encuentra en elcromosoma, en este caso el cromosoma hijo permanece igual, en caso contrario se sustituyepor el valor que tiene dicho segmento en el otro padre. Al final uno de los hijos es eliminadoaleatoriamente. Al hijo que queda se le aplica el proceso de mutacion j veces (definido porel usuario) y finalmente se deja al hijo que tenga mejor fitness.

Si la nueva solucion es infactible, pero mas cercana a la solucion factible que unaya existente, entonces esta ultima es reemplazada. Si la solucion es factible y existe unasolucion infactible en la poblacion, la ultima es eliminada.Si la solucion es factible y lasdemas tambien son factibles, la nueva solucion pasa a ser parte de la poblacion solo si suFuncion Objetivo (FO) es mejor que la FO de alguna de las soluciones que se encuentranen la poblacion. Este algoritmo permite encontrar multiples soluciones y conservar ladiversidad del conjunto de alternativas.

La ecuacion 1.5 muestra la funcion de fitness utilizada por Mirabi en [29] para minimi-zar el makespan en un Algoritmo evolutivo Hıbrido. La poblacion inicial es generada poruna heurıstica y luego se le aplica un intercambio iterado que consiste en seleccionar decada cromosoma dos genes al azar e intercambiarlos y ası generar un primer hijo, luego seintercambian los vecinos de cada gen seleccionado generando cuatro hijos nuevos. De allı seselecciona el mejor hijo y si este tiene un mejor fitness que su padre pasa a reemplazarloen la poblacion inicial.

Page 26: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 11

F =

Psize∑h=1

Cmax(h) (1.5)

Gracias a la forma de seleccionar la poblacion inicial el algoritmo obtiene buenosresultados al ser comparado con algoritmos que resuelven problemas similares tipo Flow-Shop.

Autores como Chen en [8] y Wang en [54] desarrollaron un Algoritmo Genetico hıbridopara la solucion de problemas tipo Flow-Shop. Por un lado, en el artıculo de Chen, se inten-ta resolver un problema donde todos los trabajos tienen la misma rutina en las maquinasy la misma secuencia es repetida varias veces. Los autores proponen un algoritmo hıbridopara la solucion del problema donde se incorpora una nueva tecnica de busqueda local.

En el trabajo de Wang a diferencia del anterior artıculo, se busca solucionar un pro-blema Flow-Shop con buffers limitados, donde se tienen n trabajos y m maquinas, y entrecada par de maquinas consecutivas existe un buffer de tamano Bj. Los trabajos que seencuentran en cola obedecen la regla FIFO. Al igual que Chen, se utiliza la heurısticaNEH para generar la poblacion inicial. Como resultado final se obtiene en juntos casosque en el momento en que se incrementa la cantidad de operadores, el algoritmo tiendea converger mas rapido, ası como aumenta el costo de computacion con el tamano de lapoblacion.

En otro trabajo desarrollado por Wang, se puede encontrar la solucion a un problemaFlow Shop hıbrido. Este tipo de problemas se caracteriza por combinar propiedades delproblema Flow Shop tıpico y el problema de maquinas paralelas, es decir que en algunaetapa del problema se tiene mas de una maquina con caracterısticas iguales, generandoflexibilidad al proceso de produccion. El problema tomado por Wang como caso de estudioconsiste en dos estaciones, la primera con una maquina y la segunda estacion con mmaquinas (m ≥ 2) [55].

Wang utilizo dos operadores de cruce (en un punto y en dos puntos) y dos operado-res de mutacion (de intercambio y de corrimiento) los cuales combino obteniendo cuatroconjuntos de operadores. Finalizados los experimentos el autor concluye que los mejoresresultados se obtienen cuando se aplica el operador de cruce de dos puntos junto con lamutacion de intercambio.

Autores como Chiou y otros tambien utilizan el operador de mutacion de intercambioen el algoritmo propuesto para solucionar problemas de tipo Flow Shop de doble flujo.Estos autores proponen cuatro algoritmos de acuerdo a la cantidad de maquinas y a lasecuencia de los trabajos [10].

Uno de los algoritmos propuestos por los autores previamente mencionados es el GA-EDD-C el cual representa la secuencia de trabajos ordenada por la fecha de terminacionde cada trabajo y con varias maquinas. Otro de los algoritmos propuestos es GA-EDD-S donde la secuencia de trabajo es igual a la anterior pero solo existe una maquina deoperacion. Los algoritmos GA-FIFO-C y GA-FIFO-S cambian el orden de secuencia delos trabajos y se basan en la tecnica conocida como FIFO (First In First Out) donde laprimera tarea en llegar sera la primera tarea en ser atendida por las maquinas. Respecto ala cantidad de maquinas utilizadas en cada algoritmos, el primero (GA-FIFO-C ) manejavarias maquinas, mientras que el otro trabaja con una unica maquina.

Page 27: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 12

Dentro de las conclusiones que Wang encontro en dicho trabajo, vale la pena destacar elhecho que el algoritmo GA-EDD-C es el mas efectivo de los cuatro propuestos cuando hayuna gran diferencia en los tiempos de procesamiento de dos maquinas, lo cual se le atribuyeal enfoque de flujo transversal con el que funciona el algoritmo. Los demas algoritmostienen un comportamiento muy similar, sin importar la secuencia de los trabajos que sevan a realizar.

1.5. Heurıstica NEH

La heurıstica NEH fue creada por Nawaz, Enscore y Ham [33] y se utiliza con el fin degenerar al inicio del algoritmo evolutivo un individuo muy bueno. Los pasos de la heurısticason:

• Se deben ordenar los trabajos de mayor a menor teniendo en cuenta la suma de lostiempos de procesamiento en las maquinas

• Se toman los dos primeros trabajos de la lista y se organizan de forma tal que elmakespan sea el mınimo como si solo existieran esas dos tareas.

• De aquı en adelante y hasta la cantidad de tareas, se va insertando el trabajo quesigue en la lista en el lugar que minimice el makespan.

• Al final de las iteraciones se obtendra el orden de las tareas, con las condicionesiniciales, el cual tendra el makespan mınimo.

Una vez este individuo es generado se debe insertar en la poblacion inicial del algoritmoevolutivo.

La tabla 1.1 muestra el tiempo que demoran 4 tareas en ejecutarse en cada una de las5 maquinas existentes.

Maquinas (M)

M1 M2 M3 M4 M5

Tareas(T)

T1 5 9 8 10 1T2 9 3 10 1 8T3 9 4 5 8 6T4 4 8 8 7 2

Tabla 1.1. Matriz de tiempos de ejecucion de la tarea Ti en la Maquina Mj

Primer paso: Se suma el tiempo que demora cada tarea en pasar por todas lasmaquinas. Para la matriz de tiempos dada en la tabla 1.1 se tiene:

• T1 = 5 + 9 + 8 + 10 + 1 = 33

• T2 = 9 + 3 + 10 + 1 + 8 = 31

• T3 = 9 + 4 + 5 + 8 + 6 = 32

• T4 = 4 + 8 + 8 + 7 + 2 = 29

Page 28: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 13

Segundo paso: Una vez obtenidos los tiempos se procede a organizar de forma des-cendente las tareas. En este caso el orden es: T1 − T3 − T2 − T4

Tercer paso: Se seleccionan las tareas T1 y T3 de la lista organizada y se procede acalcular el makespan teniendo en cuenta solo estas dos tareas.

Figura 1.7. Calculo del makespan para la secuencia T1 - T3

Figura 1.8. Calculo del makespan para la secuencia T3 - T1

Como se puede ver en las figuras 1.7 y 1.8 el calculo del makespan se debe realizarpara cada una de las posibilidades de ordenamiento de las tareas. La mejor secuenciade tareas es T3 − T1 con un makespan = 42. Esto indica que necesariamente al final latarea T3 debera ser ejecutada antes que la tarea T1 pero no necesariamente debe ser lainmediatamente anterior.

Cuarto paso: Ahora se selecciona la siguiente tarea en la lista, T2, y se inserta en cadauna de las posibles posiciones. Las figuras 1.9, 1.10, 1.11 muestran el calculo del makespanpara cada uno de los posibles secuenciamientos de tareas. En la figura 1.11 se muestra lamejor secuencia una vez incluida la tarea T2, con un makespan = 50.

Page 29: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 14

Figura 1.9. Calculo del makespan para la secuencia T2 - T3 - T1

Figura 1.10. Calculo del makespan para la secuencia T3 - T2 - T1

Figura 1.11. Calculo del makespan para la secuencia T3 - T1 - T2

Quinto paso: Finalmente se selecciona la ultima tarea de la lista y se calcula elmakespan para cada una de las cuatro posibles secuencias de tareas. El orden final de lastareas se muestra en la figura 1.12. Las figuras 1.13, 1.14, 1.15 muestran los calculos delmakespan para cada una las otras tres secuencias posibles.

Page 30: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 15

Figura 1.12. Calculo del makespan para la secuencia T4 - T3 - T1 - T2

Figura 1.13. Calculo del makespan para la secuencia T3 - T4 - T1 - T2

Figura 1.14. Calculo del makespan para la secuencia T3 - T1 - T4 - T2

Figura 1.15. Calculo del makespan para la secuencia T3 - T1 - T2 - T4

Page 31: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 16

Sexto paso: La secuencia T4−T3−T1−T2 es la que hara parte de la poblacion inicialdel algoritmo evolutivo.

1.6. HAEA

HaEa(Hybrid Adaptative Evolutionary Algorithm) es un algoritmo evolutivo propuestopor Gomez donde cada una de las probabilidades de los operadores geneticos es buscadaa la par con la solucion del problema. Cada individuo es evolucionado por iteracion demanera independiente pero utilizando la informacion de la poblacion, lo que genera que elproceso de evolucion se centre en el individuo y no tanto en la poblacion [15].

Algorithm 1 HAEA

1: t0 = 02: P0 = PoblacionInicial(λ),3: while CondicionTerminar(t, Pt) es falso do4: Pt+1 = {}5: for cada ind ∈ Pt do6: rates = extractrates(ind)7: δ = random(0, 1) //Tasa de aprendizaje8: oper = OPSELECT (operators, rate)9: parents = PARENTSELECTION(Pt, ind)

10: offspring = apply(opers, parents)11: child = BEST (offspring, ind)12: if fitness(child) > fitness(ind) then13: rates[oper] = (1.0 + δ) ∗ rates[oper] //recompensa14: else15: rates[oper] = (1.0− δ) ∗ rates[oper] //castigo16: end if17: normalizerates(rates)18: setrates(child, rates)19: Pt+1 = Pt+1 ∪ {child}20: end for21: t = t+ 122: end while

En cada iteracion los individuos seleccionan solo un operador del grupo de operado-res, cada operador es seleccionado de acuerdo a la tasa codificada dentro del individuo.Las probabilidades iniciales de cada operador genetico estan dadas por una distribucionuniforme U[0,1]. Como se puede ver en el algoritmo 1 el ciclo de HAEA es el tradicional,se genera un poblacion inicial, se selecciona el padre(o padres segun el operador), se apli-can los operadores geneticos y se reemplazan los peores individuos generando una nuevapoblacion. Cuando el operador genetico no es unitario se utiliza un metodo de seleccionpara poder determinar los padres. Para escoger el operador genetico que se va a aplicar alos individuos padres, se utiliza un esquema de seleccion por torneo, teniendo en cuentalas tasas asignadas a cada uno de ellos.

Con el fin de garantizar una mejor poblacion a medida que evoluciona HAEA realizauna comparacion entre el hijo y el padre de forma tal que solo un individuo es escogidoy toma el lugar en la proxima poblacion. Para adaptar la probabilidad de los operadores

Page 32: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 1. CONCEPTOS PREVIOS 17

se compara el comportamiento del hijo respecto al comportamiento del padre, tomandoel cuenta el fitness de cada uno de ellos. Si el hijo es mejor que el padre el operadores recompensado y por el contrario si el hijo es peor o igual que el padre, el operadorsera castigado. En caso de que padre e hijo tengan el mismo fitness se selecciona al hijocomo parte de la proxima generacion, esto con el fin de crear diversidad y ampliar elespacio de busqueda. La magnitud de la recompensa o el castigo dada a los operadoresgeneticos es definida por una tasa de aprendizaje que es generada de forma aleatoria.

Page 33: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2

Modelo Computacional

Uno de los inconvenientes que se tiene al utilizar algoritmos evolutivos es la probabili-dad inicial que se le da a cada uno de los operadores, ya que esto influye en la eficiencia yeficacia de la respuesta. Como se vio en el capıtulo anterior, en HaEa las probabilidadesiniciales de cada operador genetico estan dadas por una distribucion uniforme y a medidaque va evolucionando la poblacion estas probabilidades se modifican. Esto permite que labusqueda en el espacio solucion sea mas amplia y que los resultados obtenidos sean masestables. Por esta razon, en el presente trabajo se utilizara HaEa para resolver problemastipo Flow-Shop. A continuacion se vera la definicion del problema, los metodos de selecciony de reemplazo utilizados y por ultimo los operadores geneticos ha utilizar.

2.1. Definicion

Inicializacion: Teniendo en cuenta que el espacio solucion para el problema tipoFlow-Shop son todas las permutaciones posibles de las n tareas(n!) y que el tamano de lapoblacion inicial es Ps, se genera la poblacion inicial de la siguiente manera:

• Se genera un individuo siguiendo la lınea que se plantea en el artıculo de Wang, Zhangy Zheng [54], es decir se utiliza la heurıstica NEH, para generar dicho individuo.

• Se crean los restantes Ps− 1 individuos de tamano n, teniendo en cuenta que debenser permutaciones que contengan los numeros de 1 hasta n. Estas permutaciones segeneran con el algoritmo del intercambio de doble paso [23].

2.1.1. Representacion del Cromosoma

Debido a las restricciones del problema se opta por definir un vector de permutacionescuya longitud es la cantidad de tareas. Ası, una representacion para un problema con cincotareas tiene la forma mostrada en la figura 2.1,

18

Page 34: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 19

Figura 2.1. Representacion del cromosoma para un problema de 5 tareas

donde se garantiza que ninguna tarea se realizara dos veces y por consiguiente todaslas tareas seran terminadas. El orden en que aparecen las tareas en el vector indica elorden en que pasaran a las maquina. En el cromosoma ejemplo, la tarea 3 iniciara y porende sera la primera tarea en ser terminada; la tarea 1 sera la segunda tarea a realizar, la5 sera la tercera y ası sucesivamente.

2.1.2. Fitness

El objetivo del problema es minimizar el tiempo total en desarrollar todas las tareas.Para ello se toma como fitness la suma de tiempos de terminacion de las tareas teniendoen cuenta el orden de las tareas, conocido como makespan,visto en la seccion 1.1.1.

T1 T2 T3 T4 T5

M1 5 5 3 6 3M2 4 4 2 4 4M3 4 4 2 4 1M4 3 6 3 2 5

Tabla 2.1. Tabla de tiempos para un problema de 4 maquinas y 5 tareas

De acuerdo a la ecuacion planteada del makespan en el capıtulo uno, para el ejemplodado en la tabla 2.1 y el orden de tareas 1−2−3−4−5, el fitness se calcula de la siguientemanera:

C11 = 5

C21 = 5 + 5 = 10

C31 = 10 + 3 = 13

C41 = 13 + 6 = 19

C51 = 19 + 3 = 22

Una vez obtenido el tiempo en que se desocupa la primera maquina se calcula el tiempoen que la primera tarea pasara por todas las maquinas.

C12 = 5 + 5 = 10

C13 = 10 + 3 = 13

C14 = 13 + 6 = 19

Despues se calcula el tiempo en que se desocupa cada maquina de realizar todas lastareas (makespan por maquina).

C22 = max(C12, C21) + T22 = max(9, 10) + 4 = 14

C32 = max(C22, C31) + T32 = max(14, 13) + 2 = 16

Page 35: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 20

C42 = max(C32, C41) + T42 = max(16, 19) + 4 = 23

C52 = max(C42, C51) + T52 = max(23, 22) + 4 = 27

Tal como se puede ver en la figura 2.2 la maquina 2 se desocupa en la unidad de tiempo27; estos mismos calculos deben repetirse para las siguientes maquinas y ası calcular elfitness total del ejercicio.

Figura 2.2. Calculo del fitness para un cromosoma de 5 tareas en el orden 1-2-3-4-5

2.2. Metodos de seleccion y remplazo

Los metodos de seleccion son los encargados de escoger los individuos que seran padresen la proxima generacion. El metodo de seleccion que se va a utilizar es torneo. Estemetodo de seleccion no requiere un conocimiento global de la poblacion, lo que ayuda areducir costos computacionales, teniendo en cuenta los espacios de solucion tan grandesque se manejan en problemas de permutaciones. El procedimiento consiste en agrupar lospadres y de cada grupo inicial se escogen los mejores y ası se va compitiendo hasta quequeda el mejor individuo como unica eleccion. Normalmente estos torneos se realizan concuatro individuos pero pueden ser de mas, con la condicion de que el numero de individuosdebe ser potencia de 2[30].

Por otro lado se tienen los metodos de reemplazo que son los encargados de determinarcual sera el individuo que pase a ser parte de la nueva generacion; esta seleccion se haceentre los padres y los hijos generados despues de aplicar los operadores geneticos.

HaEa utiliza el metodo de reemplazo de estado estable (Steady State), que consiste enescoger al mejor padre y al mejor hijo y al peor padre y al peor hijo, de cada uno de estosgrupos se selecciona uno a reemplazar (generalmente se utiliza el metodo elitista)[30].

2.3. Operadores geneticos

El exito de un algoritmo evolutivo depende en gran medida de saber seleccionar losoperadores geneticos con los que se generaran las proximas poblaciones. Una mala seleccionde dichos operadores puede hacer que el algoritmo genetico llegue a optimos locales y no

Page 36: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 21

salga de ellos, obteniendo resultados inapropiados [30]. De acuerdo al cromosoma propuestoen este trabajo, los operadores geneticos de cruce y mutacion, tal como se conocen noson una buena eleccion para la generacion de nuevos individuos; ya que estos en ningunmomento estan garantizando que el cromosoma no tenga genes repetidos.

En esta tesis se revisaran tres tipos de cruce y tres tipos de mutacion que han sidopropuestos en la literatura, para determinar cuales son los mas apropiados para este tipode problemas.

2.3.1. Mutacion

Los operadores de mutacion son operadores unitarios pues no necesitan de dos padrespara ser efectuados. Las mutaciones son cambios de la informacion genetica de un cro-mosoma y consiste en modificar puntos o rangos de un cromosoma para generar nuevosindividuos. Existen mutaciones de un punto, de varios puntos o mutacion completa. De-bido a que es preferible conservar ciertas caracterısticas del cromosoma padre, no es muyrecomendado hacer una mutacion completa, ya que con esta se pierden las caracterısticasiniciales de la poblacion.

Los operadores de mutacion permiten explorar los nichos del espacio solucion; en estetrabajo los tipos de mutaciones a revisar son: Mutacion de Intercambio, Mutacion deCorrimiento y Mutacion Heurıstica.

2.3.1.1. Mutacion de Intercambio (Swap Mutation)

Al aplicar mutacion de intercambio sobre un cromosoma, lo que se hace es seleccionarde forma aleatoria dos posiciones del cromosoma sobre el que se desea aplicar la mutacion(a y b), y posteriormente se procede a intercambiar la informacion de estos dos genes, detal forma que el gen a pasa a ocupar la posicion del gen b y de igual forma el gen b pasaa ocupar la posicion del gen a

Figura 2.3. Mutacion de Intercambio

El pseudocodigo de dicho operador se puede ver en el algoritmo 2, en el Anexo 1.

2.3.1.2. Mutacion de Corrimiento (Shift Mutation)

El algoritmo de la mutacion de corrimiento empieza generando dos posiciones al azar,una de ellas indicara el gen que sera movido y la otra indicara la nueva posicion del genseleccionado anteriormente.

En el ejemplo que se ve en la figura 2.4 se puede ver que las dos posiciones seleccionadases la tercera y la octava; la tarea que se encuentra en la posicion tres (tarea siete) ahora

Page 37: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 22

Figura 2.4. Mutacion de corrimiento

pasara a la posicion numero ocho. Las tareas que se encuentran entre la posicion cuatro yocho deberan disminuir en un numero su posicion actual. Como se puede notar el operadorsencillamente cambia un segmento del cromosoma de posicion. El pseudocodigo se puedever en el algoritmo 3, en el Anexo 1.

2.3.1.3. Mutacion Heurıstica (Heuristic Mutation)

Tsujimura y Gen en [51] proponen un operador genetico basado en la tecnica del vecinocercano y es utilizado como un operador de mutacion.

Figura 2.5. Mutacion Heurıstica

Inicialmente se seleccionan 3 posiciones para ser intercambiadas entre si. Se generantantos cromosomas como cantidad de combinaciones existan entre las posiciones (cincocromosomas mas el cromosoma inicial). Una vez generados los nuevos cromosomas seprocede a calcular el fitness de cada uno de ellos. El hijo finalmente sera aquel que tengaun mejor fitness. Para el caso de ejemplo expuesto en la figura 2.5 se puede notar que losgenes seleccionados para el intercambio fueron los ubicados en la posicion cinco, siete ynueve. Luego como C1 se peuden ver los cinco posibles hijos, el cual se definira por mediodel fitness.

En el Algoritmo 4 del Anexo 1, se puede ver el pseudocodigo de la mutacion heurıstica.

2.3.2. Cruce

Los operadores de cruce son operadores no unitarios pues necesitan de dos padres parapoder extraer y preservar la informacion genetica de ambos padres y combinarla con el finde generar nuevos hijos de mejor calidad. Debido a su forma de generar nuevos hijos sedice que el operador de cruce es el encargado de la exploracion del espacio de busqueda.

Page 38: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 23

Los operadores de cruce ha revisar son: Cruce Cıclico, Cruce Basado en el Orden,Cruce por Emparejamiento Parcial.

2.3.2.1. Cruce Cıclico (Cyclic Crossover)

El operador cıclico, propuesto por Oliver en [35], es un operador de cruce que garantizaque los hijos generados a partir de el cumplan con la exigencia inicial de los cromosomas,permitiendo que estos sigan siendo factibles en la solucion [14].

Figura 2.6. Cruce Cıclico

En la figura 2.6 se pueden observar los dos ciclos de los que esta compuesto esteoperador. El primer ciclo inicia con la primera posicion del padre numero uno, dicho gensera heredado al primer hijo. En el cromosoma del segundo padre se buscara la posiciondonde se encuentra el gen heredado (en este caso la tarea numero dos se encuentra enla tercera posicion) y esta sera la posicion del siguiente gen a heredar por el hijo uno, elcual estara en la misma posicion que en el cromosoma del padre uno (tarea numero siete).El ciclo termina cuando el valor del gen en el padre uno este en la primera posicion delsegundo padre (tal como ocurrio con el gen ubicado en la posicion nueve, tarea cuatro,que se encuentra en la primera posicion del segundo padre). Una vez finalizado este ciclose procede a completar el cromosoma del primer hijo; para lo cual se busca que genes delsegundo padre aun no hacen parte del cromosoma y se van colocando en aquellos genesque aun no tienen valor.

En el Algoritmo 5 expuesto en el Anexo 1 se presenta la logica funcional del operador,en donde se observa como se genera el primer hijo; mientras que en el algoritmo 6 sepuede observar la generacion del segundo hijo, la cual cumple con la misma logica descritapreviamente.

2.3.2.2. Cruce Basado en el Orden (Order Based Crossover)

Operador propuesto por Syswerda en [46] cuya idea central es obtener una mascarabinaria que indicara que gen sera heredado de cada padre.

En la figura 2.7 se puede ver un ejemplo de este operador. La mascara binaria generadamuestra que gen heredara cada hijo de sus padres; aquellas posiciones donde aparece elnumero uno, indica que el hijo uno heredara dicho gen del padre uno y el segundo hijolo heredara del segundo padre. Aquellas posiciones donde aparezca un cero en la mascaraindicara que este gen se tomara del otro padre (primer hijo tomara el gen del segundopadre y el segundo hijo del primer padre). Como es necesario tener en cuenta que losgenes no pueden repetirse se procedera a completar el cromosoma de forma similar alsegundo ciclo del operador de cruce cıclico.

Page 39: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 2. MODELO COMPUTACIONAL 24

Figura 2.7. Cruce Basado en el Orden

Los Algoritmos 7 y 8 del Anexo 1 muestra la logica que utiliza el operador para generarlos hijos a partir de los padres dados.

2.3.2.3. Cruce por Emparejamiento Parcial (Partially Mapped Crossover)

Cruce por Emparejamiento Parcial(PMX) tambien conocido como cruce en dos puntosy propuesto por Goldeberg en [14], es un operador utilizado en la solucion de problemasde permutacion por su capacidad de producir hijos con genes diferentes [32].

Figura 2.8. Cruce por Emparejamiento Parcial

En la figura 2.8 se puede ver la forma en que se generan los hijos utilizando PMX.La idea del operador es seleccionar de forma aleatoria dos posiciones por las cuales serandivididos los cromosomas padres. La parte comprendida entre los dos puntos de cortedel primer padre la heredara el segundo hijo conservando las posiciones, mientras que lamisma parte correspondiente al segundo padre hara parte del cromosoma del primer hijo.Para terminar de construir el primer hijo se toma cada gen del padre (no perteneciente ala region entre los dos cortes) y se revisa si ya se encuentra en el cromosoma hijo, en casoque no se encuentre se heredara dicho valor en la misma posicion. Para aquellas posicionesque aun quedan vacıas se buscara que genes del segundo padre aun no hacen parte delmismo. El segundo hijo se termina de construir de forma similar. Los Algoritmos 9 y 10en el Anexo 1 muestran el pseudocodigo del operador.

Page 40: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3

Experimentacion y Resultados

En este capıtulo se discute el rendimiento del algoritmo propuesto, para ellose tomaron los problemas de secuenciamiento de tareas tipo Flow-Shop propues-tos por Taillard en [48] los cuales se pueden descargar desde http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html.

Los problemas propuestos por Taillard se dividen en 12 tipos diferentes, de acuerdoa la cantidad de maquinas y tareas que tiene cada uno. En la tabla 3.1 se puede ver lacantidad de maquinas (m) y tareas (t) que tiene cada uno de los problemas, igualmentese puede ver la mejor solucion encontrada hasta el momento (BM) y la solucion obtenidacuando se utiliza unicamente la heurıstica NEH (NEH).

m t BM NEH

Ta001 5 20 1278 1286Ta011 10 20 1582 1680Ta021 20 20 2297 2410Ta031 5 50 2724 2733Ta041 10 50 3025 3135Ta051 20 50 3875 4082Ta061 5 100 5493 5519Ta071 10 100 5770 5846Ta081 20 100 6286 6541Ta091 10 200 10868 10942Ta101 20 200 11294 11594Ta111 20 500 26189 26670

Tabla 3.1. Cantidad de tareas y maquinas de cada problema. Mejor solucion encontrada hasta elmomento y solucion dada por NEH

Se realizo un analisis cercano al analisis factorial de parametros, teniendo en cuentaque los parametros en el algoritmo genetico HaEa son los operadores que se utilizan. Parael analisis que se llevo a cabo en esta investigacion, se tuvieron en cuenta tres tipos decruces y tres tipos de mutaciones.

25

Page 41: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 26

Debido a que el cruce no es suficiente para hacer evolucionar un algoritmo no setendran en cuenta aquellos experimentos que implican utilizar solo un cruce. Por otro ladodebido a que la mutacion, por su comportamiento permite explorar el espacio, se realizanexperimentos que demostraran que operador de mutacion es mas efectivo en estos casos.

Para cada grupo de datos se utilizaron cuatro escenarios para probar la efectividadde la heurıstica NEH y el algoritmo genetico HaEa en este tipo de problemas. Se tomouna poblacion inicial de 500 individuos y la condicion de parada fueron 200 iteraciones.Ademas cada uno de los experimentos se corrio 30 veces. Todas las pruebas fueron llevadasa cabo en un computador Windows 7 Professional con un procesador Intel(R) Core(TM)i5-2410M @2-30Ghz, con 4 Gb de RAM.

En el primer escenario se selecciono como operador genetico cada una de las mutacio-nes propuestas (Mutacion de Intercambio, Mutacion de Corrimiento y Mutacion Heurısti-ca).El segundo escenario toma como operadores geneticos dos mutaciones. Basandose enlos resultados obtenidos del primer escenario, se seleccione la mejor mutacion y se rea-lizan las pruebas combinando el operador ya seleccionado con otro tipo de mutacion.Enel tercer escenario las pruebas se realizan utilizando dos operadores geneticos, un crucey una mutacion. Dado que se tienen varios tipos de cruces y varios tipos de mutaciones,se realizan experimentos para cada una de las combinaciones posibles. Finalmente en elcuarto escenario se tienen tres operadores geneticos, uno de ellos es la mutacion que obtuvomejores resultados en el escenario numero uno. Los otros dos operadores son un cruce yuna mutacion; se evaluo cada una de las posibles combinaciones de acuerdo a la cantidadde operadores existentes.

Para cada uno de los resultados obtenidos se calculo el incremento respecto al resultadooptimo encontrado en la literatura(OptTa)[48], con la ecuacion 3.1, donde OptHAEA es elresultado que se obtuvo cuando se calculo el makespan utilizando la heurıstica NEH y elalgoritmo evolutivo HaEa.

%GAP =OptHAEA −OptTa

OptTa∗ 100 (3.1)

3.1. HaEa con una sola mutacion

En este caso el algoritmo evolutivo HaEa se comporta como un algoritmo de ascensoa la colina pues no adapta probabilidades, evaluando la efectividad de cada una de lasmutaciones. En la tabla 3.2 se puede observar el makespan promedio obtenido para cadaproblema, por cada operador y el incremento respecto al optimo (GAP).

3.1.1. Resultados

Para analizar el comportamiento de cada uno de los operadores de mutacion se utilizo laprueba de los rangos con signo de Wilcoxon, con el fin de determinar que operador es mejorpara este tipo de problemas. La prueba de Wilcoxon consiste en comparar las medias dedos muestras para lo cual se calcula la diferencia existente entre estas muestras. Una vezcalculada la diferencia se halla el valor absoluto para cada una de ellas y se organizande formas ascendente, para luego asignarles el valor del rango. La posicion en la que se

Page 42: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 27

Swap Mutation Shift Mutation Heuristic Mutation

HaEa %GAP HaEa %GAP HaEa %GAPTa001 1286,00 0,63 1285,10 0,56 1286,00 0,63Ta011 1673,30 5,77 1622,90 2,59 1670,90 5,62Ta021 2408,03 4,83 2347,70 2,21 2406,20 4,75Ta031 2731,23 0,27 2730,50 0,24 2730,90 0,25Ta041 3135,00 3,64 3134,06 3,61 3134,40 3,62Ta051 4081,30 5,32 4062,70 4,84 4077,40 5,22Ta061 5518,80 0,47 5519,00 0,47 5519,00 0,47Ta071 5846,00 1,32 5846,00 1,32 5846,00 1,32Ta081 6541,00 4,06 6535,40 3,97 6539,50 4,03Ta091 10942,00 0,68 10942,00 0,68 10942,00 0,68Ta101 11594,00 2,66 11585,20 2,58 11590,80 2,63Ta111 26670,00 1,84 26646,70 1,75 26659,40 1,80

Tabla 3.2. Resultados promedio utilizando una mutacion como operador genetico

ubica en la lista ordenada de los valores absolutos corresponde al rango y se suman losrangos positivos y los rangos negativos. Se calcula la media y la desviacion estandar parael conjunto de datos y utilizando las tablas de Wilcoxon se determina cual de las dosmuestras es mejor [56].

Intercambio(Xi) Corrimiento (Yi) Zi = Xi − Yi | Zi | Rango

HaEa-NEH HaEa-NEHTa001 1286,00 1285,10 0,90 0,90 3Ta011 1673,30 1622,90 50,40 50,40 9Ta021 2408,03 2347,70 60,33 60,33 10Ta031 2731,23 2730,50 0,73 0,73 2Ta041 3135,00 3134,06 0,94 0,94 4Ta051 4081,30 4062,70 18,60 18,60 7Ta061 5518,80 5519,00 -0,20 0,20 1Ta071 5846,00 5846,00 0,00 0,00Ta081 6541,00 6535,40 5,60 5,60 5Ta091 10942,00 10942,00 0,00 0,00Ta101 11594,00 11585,20 8,80 8,80 6Ta111 26670,00 26646,70 23,30 23,30 8

Tabla 3.3. Prueba de Wilcoxon para comparar los operadores de mutacion de intercambio y decorrimiento.

En la tabla 3.3 se puede observar la prueba de Wilcoxon para la mutacion de intercam-bio y la mutacion de corrimiento. Una vez realizada la prueba los resultados demostraronque cuando HaEa utiliza un solo operador, el operador de mutacion de Corrimiento tieneun mejor comportamiento frente a las otras dos mutaciones. Tambien se puede concluirque, aunque tienen un comportamiento muy similar, la mutacion Heurıstica es mejor quela mutacion de Intercambio.

Las figuras 3.1, 3.2 y 3.3 muestran el comportamiento del makespan a traves de las200 iteraciones para el problema mas pequeno, un problema mediano y el problema mas

Page 43: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 28

grande de los propuestos por Taillard. Tal como se concluyo la mutacion de Corrimientomuestra mejores resultados del makespan frente a las otras dos mutaciones.

Figura 3.1. Variacion del makespan para el problema Ta001 con una mutacion

Figura 3.2. Variacion del makespan para el problema Ta051 con una mutacion

Figura 3.3. Variacion del makespan para el problema Ta111 con una mutacion

Page 44: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 29

3.2. HaEa con dos mutaciones

En este escenario se evaluo el makespan de cada conjunto de datos, tomando comooperadores geneticos dos mutaciones. De acuerdo a los resultados del escenario anteriorse obtuvo que la mutacion de Corrimiento fue el operador que mejor resultados obtuvo,por esto se tomo como operador fijo en este escenario. El otro operador se seleccionabadel conjunto de mutaciones restantes. Para cada problema se corrieron dos algoritmosevolutivos; el primero de ellos utilizando como operadores mutacion de Corrimiento y Mu-tacion de Intercambio mientras que el segundo utilizo mutacion de Corrimiento y MutacionHeurıstica. La tabla 3.4 muestra los resultados obtenidos.

Swap Mutation Heuristic Mutation

HaEa %GAP HaEa %GAPTa001 1285,60 0,59 1285,30 0,57Ta011 1635,90 3,41 1634,20 3,30Ta021 2360,70 2,77 2359,60 2,73Ta031 2730,90 0,25 2731,00 0,26Ta041 3134,70 3,63 3134,30 3,61Ta051 4071,00 5,06 4066,30 4,94Ta061 5518,60 0,47 5519,00 0,47Ta071 5846,00 1,32 5846,00 1,32Ta081 6539,00 4,02 6538,20 4,01Ta091 10942,00 0,68 10942,00 0,68Ta101 11586,40 2,59 11588,60 2,61Ta111 26653,63 1,77 26650,56 1,76

Tabla 3.4. Resultados promedio utilizando el operador mutacion de Corrimiento y otro tipo demutacion

3.2.1. Resultados

Al igual que en el caso anterior, se utilizo la prueba de los rangos con signo de Wilcoxon,con el fin de determinar que conjunto de operadores es mejor para este tipo de problemas.

De acuerdo a los resultados que se obtuvieron al correr HaEa con un solo operador,se pudo determinar que el operador de mutacion de Corrimiento era mas efectivo que losotros dos. En este caso se busco la combinacion de mutaciones que obtuviera los mejoresresultados. Se realizo la prueba y se compararon los resultados obteniendo que cuando seutilizan las mutaciones de Corrimiento y Heurıstica se obtienen mejores resultados que conmutacion de Corrimiento y de Intercambio. Este resultado confirma lo que se pudo observaren el escenario anterior, donde se mostraba que efectivamente la mutacion Heurıstica esmejor que la de Intercambio.

De todas maneras es importante destacar que el caso donde HaEa utiliza una solamutacion obtiene mejores soluciones que cuando se utilizan las dos mutaciones, ya queen el ultimo caso el algoritmo evolutivo intenta utilizar la otra mutacion la cual no estaexplorando completamente el espacio solucion. Como era de esperarse al utilizar un muybueno operador (Mutacion de Corrimiento) con otro no tan bueno, los resultados tiendena desmejorar.

Page 45: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 30

3.3. HaEa con una mutacion y un cruce

Para el tercer escenario se tomaron como operadores geneticos un cruce y una mutacion.Se realizaron nueve experimentos por cada problema, cada una utilizando una combinacionde operadores de las que se lista a continuacion:

• Cruce por Emparejamiento Parcial - Mutacion de Intercambio

• Cruce por Emparejamiento Parcial - Mutacion de Corrimiento

• Cruce por Emparejamiento Parcial - Mutacion Heurıstica

• Cruce basado en el Orden - Mutacion de Intercambio

• Cruce basado en el Orden - Mutacion de Corrimiento

• Cruce basado en el Orden - Mutacion Heurıstica

• Cruce Cıclico - Mutacion de Intercambio

• Cruce Cıclico - Mutacion de Corrimiento

• Cruce Cıclico - Mutacion Heurıstica

En la tabla 3.5 se observa el makespan obtenido para cada problema por cada combi-nacion de operadores, junto a su porcentaje de mejora GAP.

3.3.1. Resultados

En este caso se aplico el test de Wilcoxon para determinar que mutacion era mejorindependientemente del tipo de cruce que se estuviera utilizando. Los resultados demos-traron una vez mas que no importa cual operador de cruce se utilice pues el operador demutacion de corrimiento sigue siendo el mejor.

Tambien se aplico el test para determinar que operador de cruce se comporta mejor,pero para esto solo se tuvieron en cuenta los resultados obtenidos utilizando el opera-dor de mutacion de Corrimiento. Segun el analisis realizado los operadores que se debenutilizar para solucionar problemas de tipo Flow-Shop son los operadores de cruce poremparejamiento parcial (PMX) y el operador de mutacion de Corrimiento.

Aunque en la figura 3.4 se observa que la combinacion de la mutacion de Corrimiento yel cruce Basado en el Orden obtienen mejores resultados, las figuras 3.5 y 3.6 muestran queefectivamente al utilizar el cruce por emparejamiento parcial(PMX) se llegan a mejoressoluciones que utilizando alguno de los otros dos cruces.

Page 46: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 31

Operadores Swap Mutation ShiftMutation HeuristicMutation

HaEa %GAP HaEa %GAP HaEa %GAP

Ta001

PartialMappedXover 1285,6 0,6 1282,0 0,31 1284,2 0,5OrderBasedXover 1278,0 0,0 1278,0 0,0 1278,0 0,0

CyclicXover 1286,0 0,6 1284,3 0,5 1285,5 0,6

Ta011

PartialMappedXover 1601,1 1,2 1591,3 0,59 1601,4 1,2OrderBasedXover 1594,7 0,8 1591,8 0,6 1592,9 0,7

CyclicXover 1622,7 2,6 1606,9 1,6 1636,0 3,4

Ta021

PartialMappedXover 2326,7 1,3 2314,4 0,76 2330,0 1,4OrderBasedXover 2311,5 0,6 2309,7 0,6 2311,5 0,6

CyclicXover 2359,9 2,7 2327,4 1,3 2375,0 3,4

Ta031

PartialMappedXover 2727,0 0,1 2728,6 0,17 2726,8 0,1OrderBasedXover 2725,7 0,1 2726,3 0,1 2725,8 0,1

CyclicXover 2725,7 0,1 2728,7 0,2 2727,2 0,1

Ta041

PartialMappedXover 3130,3 3,5 3086,7 2,04 3127,4 3,4OrderBasedXover 3130,2 3,5 3128,3 3,4 3126,4 3,4

CyclicXover 3133,2 3,6 3101,3 2,5 3133,4 3,6

Ta051

PartialMappedXover 4016,0 3,6 3977,2 2,64 4008,0 3,4OrderBasedXover 4050,1 4,5 4049,9 4,5 4042,1 4,3

CyclicXover 4063,8 4,9 3985,0 2,8 4067,7 5,0

Ta061

PartialMappedXover 5495,8 0,1 5493,2 0,00 5497,1 0,1OrderBasedXover 5494,8 0,0 5493,1 0,0 5494,9 0,0

CyclicXover 5506,5 0,2 5497,6 0,1 5514,8 0,4

Ta071

PartialMappedXover 5840,7 1,2 5807,5 0,65 5840,6 1,2OrderBasedXover 5845,9 1,3 5845,4 1,3 5844,7 1,3

CyclicXover 5846,0 1,3 5810,0 0,7 5846,0 1,3

Ta081

PartialMappedXover 6531,6 3,9 6478,2 3,06 6526,3 3,8OrderBasedXover 6541,0 4,1 6538,5 4,0 6540,2 4,0

CyclicXover 6539,2 4,0 6480,5 3,1 6534,7 4,0

Ta091

PartialMappedXover 10942,0 0,7 10942,0 0,68 10941,0 0,7OrderBasedXover 10942,0 0,7 10942,0 0,7 10942,0 0,7

CyclicXover 10942,0 0,7 10942,0 0,7 10942,0 0,7

Ta101

PartialMappedXover 11582,4 2,6 11522,9 2,03 11569,6 2,4OrderBasedXover 11594,0 2,7 11585,1 2,6 11591,6 2,6

CyclicXover 11589,1 2,6 11533,3 2,1 11568,7 2,4

Ta111

PartialMappedXover 26637,4 1,7 26534,7 1,32 26613,6 1,6OrderBasedXover 26669,7 1,8 26652,1 1,8 26661,1 1,8

CyclicXover 26652,4 1,8 26543,3 1,4 26626,7 1,7

Tabla 3.5. Resultados promedio utilizando un tipo de mutacion y un tipo de cruce

Page 47: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 32

Figura 3.4. Variacion del makespan para el problema Ta001 con un cruce y mutacion de corri-miento

Figura 3.5. Variacion del makespan para el problema Ta051 con un cruce y mutacion de corri-miento

Figura 3.6. Variacion del makespan para el problema Ta111 con un cruce y mutacion de corri-miento

Page 48: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 33

3.4. HaEa con dos mutaciones y un cruce

Se utilizaron tres operadores geneticos, un cruce y dos mutaciones. De acuerdo a losresultados obtenidos en el primer escenario se fijo el operador de mutacion de Corrimiento,los otros dos se obtuvieron combinando un cruce y una mutacion. Los resultados obtenidosse pueden observar en la tabla 3.6.

3.4.1. Resultados

Como se esperaba a partir de los comportamientos observados en los experimentos ylos resultados previos, el combinar un operador de cruce y dos operadores de mutacion nogenera mejores soluciones. En este caso sucede algo similar a lo que pasa cuando se utilizansolo dos mutaciones como operadores geneticos, el algoritmo evolutivo HaEa fuerza a lasdos mutaciones a explorar el espacio, pero como ya se vio las dos mutaciones restantesno son tan eficientes. Esto genera que los resultados no sean interesantes para un estudioposterior.

En la tabla 3.7 se muestran los resultados obtenidos por HaEa con la mejor combinacionde operadores (Mutacion de Corrimiento y Cruce por Emparejamiento Parcial), junto a suporcentaje GAP. En la tabla tambien se pueden observar los porcentajes GAP que obtuvoAncau en [1] para los algoritmos heurıstica Greedy (CG), heurıstica estocastica Greedy(SG) y heurıstica NEH. Respecto a los datos mostrados en la tabla, se puede concluirque HaEa siempre obtiene mejores resultados que las heurısticas Greedy y NEH, mientrasque comparado con el comportamiento de la heurıstica estocastica Greedy se concluye queHaEa muestra valores muy cercanos al optimo OptTa, a pesar de no ser tan cercanos comolos que arroja el SG.

Por otro lado se tienen las tablas 3.8 y 3.9, las cuales muestran el porcentaje GAPtanto para HaEa como para otros algoritmos estudiados por Ruiz y Maroto en [42].

Como se puede observar en las tablas las soluciones dadas por la mejor heurıstica(NEH) estan en un rango de error promedio del 3,33 %, mientras que el algoritmo propuestoen este trabajo tiene un error promedio del 1,19 % lo que demuestra una mejora significativacon las soluciones encontradas en la literatura.

Page 49: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 34

Operadores Swap Mutation Heuristic Mutation

HaEa %GAP HaEa %GAP

Ta001

PartialMappedXover 1281,0 0,23 1282,3 0,34OrderBasedXover 1278,5 0,04 1278,4 0,03

CyclicXover 1284,9 0,54 1284,1 0,47

Ta011

PartialMappedXover 1594,5 0,79 1593,9 0,75OrderBasedXover 1591,8 0,62 1590,7 0,55

CyclicXover 1605,3 1,47 1602,6 1,30

Ta021

PartialMappedXover 2316,6 0,85 2317,7 0,90OrderBasedXover 2310,4 0,58 2311,8 0,64

CyclicXover 2326,6 1,29 2331,5 1,50

Ta031

PartialMappedXover 2726,8 0,10 2727,3 0,12OrderBasedXover 2725,8 0,07 2726,3 0,08

CyclicXover 2727,0 0,11 2727,0 0,11

Ta041

PartialMappedXover 3093,8 2,27 3091,8 2,21OrderBasedXover 3133,2 3,58 3132,9 3,57

CyclicXover 3103,6 2,60 3102,6 2,57

Ta051

PartialMappedXover 3977,5 2,65 3977,1 2,63OrderBasedXover 4057,9 4,72 4061,4 4,81

CyclicXover 3996,2 3,13 3997,9 3,17

Ta061

PartialMappedXover 5493,4 0,01 5493,8 0,01OrderBasedXover 5493,4 0,01 5493,6 0,01

CyclicXover 5498,7 0,10 5496,6 0,06

Ta071

PartialMappedXover 5808,4 0,67 5806,8 0,64OrderBasedXover 5846,0 1,32 5846,0 1,32

CyclicXover 5817,6 0,82 5816,1 0,80

Ta081

PartialMappedXover 6481,3 3,11 6480,6 3,10OrderBasedXover 6540,1 4,04 6539,0 4,03

CyclicXover 6481,7 3,11 6477,1 3,04

Ta091

PartialMappedXover 10942,0 0,68 10942,0 0,68OrderBasedXover 10942,0 0,68 10942,0 0,68

CyclicXover 10942,0 0,68 10942,0 0,68

Ta101

PartialMappedXover 11523,9 2,04 11520,0 2,00OrderBasedXover 11588,1 2,60 11589,4 2,62

CyclicXover 11538,1 2,16 11528,2 2,07

Ta111

PartialMappedXover 26545,5 1,36 26536,3 1,33OrderBasedXover 26657,1 1,79 26653,5 1,77

CyclicXover 26552,8 1,39 26551,2 1,38

Tabla 3.6. Resultados promedio utilizando el operador Mutacion de Corrimiento , otro tipo demutacion y un tipo de cruce

Page 50: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CAPITULO 3. EXPERIMENTACION Y RESULTADOS 35

Problem HaEA ANCAU [1]

Makespan %GAP NEH CG SGTa001 1282,00 0,31 0.62 0.62 0.00Ta031 2728,60 0,17 0.33 5.11 0.00Ta061 5493,20 0,00 0.47 0.61 0.04Ta091 10942,00 0,68 0.68 1.58 0.66

Tabla 3.7. Makespan y porcentaje de mejora obtenido para cada problema, utilizando Mutacionde Corrimiento y Cruce por Emparejamiento Parcial.

HAEA-NEH HAEA SAOP Spirit GAChen GAReev GAMIT ILS GAPAC

Ta001 0,31 0,39 1.39 5.22 3.82 0.70 4.21 0.24 8.98Ta011 0,59 1,07 2.66 5.86 4.89 1.92 5.40 0.77 13.61Ta021 0,76 0,87 2.31 4.58 4.17 1.53 4.53 0.85 11.03Ta031 0,17 0,07 0.69 2.03 2.09 0.26 3.11 0.12 6.50Ta041 2,04 2,25 4.25 5.88 6.60 2.58 8.38 2.01 16.41Ta051 2,64 2,54 5.13 7.21 8.03 3.76 10.65 3.29 18.56Ta061 0,00 0,00 0.40 1.06 1.32 0.18 5.41 0.11 5.32Ta071 0,65 1,08 1.88 5.07 3.75 1.08 12.05 0.66 12.34Ta081 3,06 3,05 5.21 10.15 7.94 3.94 18.24 3.17 18.25Ta091 0,68 0,89 1.56 9.03 2.70 0.82 7.52 0.49 9.75Ta101 2,03 3,18 4.83 16.17 7.07 3.33 15.35 2.74 17.06Ta111 1,32 3,45 3.40 13.57 4.61 1.83 2.17 1.29 2.61

Promedio 1,19 1,57 2.81 7.15 4.75 1.83 8.92 1.31 12.53

Tabla 3.8. Porcentaje GAP para cada problema encontrado con diferentes algoritmos, parte 1

HAEA RA RACS RAES NEH HunRa HoCha Koula Sulim Pour

Ta001 0,31 8,86 7,71 4,95 3,35 9,35 6,94 7,68 4,46 12,05Ta011 0,59 15,40 10,66 8,62 5,02 13,34 10,51 11,82 7,84 12,34Ta021 0,76 16,35 8,16 6,41 3,73 13,47 8,30 11,89 6,69 10,71Ta031 0,17 6,30 5,40 3,28 0,84 4,21 3,33 4,03 2,20 6,58Ta041 2,04 15,05 12,19 10,41 5,12 13,35 11,29 12,13 8,46 14,44Ta051 2,64 18,88 12,86 10,00 6,20 14,99 12,40 14,93 9,62 14,87Ta061 0,00 3,54 4,58 3,25 0,46 1,99 2,70 3,12 1,28 4,06Ta071 0,65 10,48 8,72 7,31 2,13 8,12 7,96 7,50 5,75 7,82Ta081 3,06 16,96 12,48 10,56 5,11 13,65 11,10 14,04 9,28 13,18Ta091 0,68 6,17 7,11 6,16 1,43 4,50 5,11 5,09 4,09 5,52Ta101 2,03 12,67 11,83 10,39 4,37 12,59 9,99 11,60 8,85 11,50Ta111 1,32 8,34 8,38 7,77 2,24 6,75 7,14 6,82 6,06 7,69

Promedio 1,19 11,58 9,17 7,43 3,33 9,69 8,06 9,22 6,21 10,07

Tabla 3.9. Porcentaje GAP para cada problema encontrado con diferentes algoritmos, parte 2

Page 51: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A

Algoritmos

A.1. Mutaciones

Algorithm 2 Swap Mutation

Require: father 11: father1chromosome = father12: repx = Distribuciones.Uniforme(2,20)3: for rep = 0 hasta repx do4: start = random.int(tamano father1chromosome)5: end = random.int(tamano father1chromosome)6: tr = father1chromosome [start]7: father1chromosome[start] = father1chromosome[end]8: father1chromosome[end] = tr9: end for

10: children1 = father1chromosome11: v.add(children1)12: return v

36

Page 52: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 37

Algorithm 3 Insertion Mutation

Require: father 11: children1 = father12: father1chromosome = father13: number = random.int(tamano father1)4: position = random.int(tamano father1)5: if position ¿number then6: for i = 0 hasta number do7: children1[i] = father1chrosmosome[i]8: end for9: for j = number hasta position do

10: children1[j] = father1chrosmosome[j+1]11: end for12: for k = position + 1 hasta tamano children1 do13: children1[k] = father1chrosmosome[k]14: end for15: children1[position] = father1chromosome[number]16: end if17: if number ¿position then18: for i = 0 hasta position do19: children1[i] = father1chrosmosome[i]20: end for21: for j = position + 1 hasta number + 1 do22: children1[j] = father1chrosmosome[j-1]23: end for24: for k = number + 1 hasta tamano children1 do25: children1[k] = father1chrosmosome[k]26: end for27: children1[position] = father1chromosome[number]28: end if29: if number=position then30: children = father31: end if32: v.add(children1)33: return v

Page 53: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 38

Algorithm 4 Heuristic Mutation

Require: father 11: children1 = father12: father1chromosome = father13: maxfitness = fitness(father1chromosome)4: start = random.int(tamano father1)5: medium = random.int(tamano father1)6: while medium = start do7: medium = random.int(tamano father1)8: end while9: end = random.int(tamano father1)

10: while end = start —— end = medium do11: end = random.int(tamano father1)12: end while13: aux[0] = father1chromosome[start]14: aux[1] = father1chromosome[medium]15: aux[2] = father1chromosome[end]16: permutation[][] = getPermutations(aux)17: for i = 0 hasta 5 do18: for k = 0 hasta tamano father1chrosmosome do19: if k = start then20: children[k] = permutation[i+1][0]21: end if22: if k = medium then23: children[k] = permutation[i+1][1]24: end if25: if k = end then26: children[k] = permutation[i+1][2]27: end if28: if k 6= start and k 6= medium and k 6= end then29: children[k] = father1chromosome[k]30: end if31: end for32: temfitness = fitness(children)33: if temfitness ¿maxfitness then34: maxfitness = temfitness35: childrenfinal = children36: end if37: end for38: v.add(children1)39: return v

Page 54: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 39

A.2. Cruces

Algorithm 5 CyclicXOver Genera primer hijo

Require: father 1, father21: father1chromosome = father12: father2chromosome = father 23: children1[] = 04: children2[] = 05: aux1[] = 06: aux2[] = 07: children1[0] = father1chromosome[0]8: aux1[father1chromosome[0] -1] = 19: temp = 0

10: for j = 0 hasta tamano children1 do11: temp = search(children1[temp],father2chromosome)12: if father1chromosome[temp] != children1[0] then13: children1[temp] = father1chromosome[temp]14: aux1[children1[temp] - 1] = 115: else16: j = tamano children117: end if18: end for19: temp = 020: for j = 0 hasta tamano aux1 do21: tr = father2chromosome(j)22: if aux1[tr-1] = 0 then23: for i = temp hasta tamano children1 do24: if children1[i] = 0 then25: children1[i] = tr26: aux1[tr-1] = 127: temp = i + 128: i = tamano children129: end if30: end for31: end if32: end for33: v.add(children1)

Page 55: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 40

Algorithm 6 CyclicXOver Genera segundo hijo

Require: father 1, father21: children2[0] = father2chromosome[0]2: aux2[father2chromosome[0] -1] = 13: temp = 04: for j = 0 hasta tamano children2 do5: temp = search(children2[temp],father1chromosome)6: if father2chromosome[temp] != children2[0] then7: children2[temp] = father2chromosome[temp]8: aux2[children2[temp] - 1] = 19: else

10: j = tamano children211: end if12: end for13: temp = 014: for j = 0 hasta tamano aux2 do15: tr = father1chromosome(j)16: if aux2[tr-1] = 0 then17: for i = temp hasta tamano children2 do18: if children2[i] = 0 then19: children2[i] = tr20: aux2[tr-1] = 121: temp = i + 122: i = tamano children223: end if24: end for25: end if26: end for27: v.add(children2)28: return v

Page 56: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 41

Algorithm 7 OrderBasedXOver Genera primer hijo

Require: father 1, father21: father1chromosome = father12: father2chromosome = father23: children1[] = 04: children2[] = 05: aux1[] = 06: aux2[] = 07: boolean mask[]8: for i = 0 hasta tamano mask do9: mask[i] = random.nextboolean()

10: end for11: for j = hasta tamano father1chromosome do12: if mask[j] then13: tr = father1chromosome[j]14: children1[j] = tr15: aux1[tr-1] = 116: end if17: end for18: temp = 019: for j = 0 hasta tamano aux2 do20: tr = father1chromosome[j]21: if aux2[tr-1] = 0 then22: for i = temp hasta tamano children2 do23: if children2[i] = 0 then24: children2[i] = tr25: aux2 [tr-1] = 126: temp = i + 127: i = tamano children228: end if29: end for30: end if31: end for32: v.add(children1)

Page 57: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 42

Algorithm 8 OrderBasedXOver Genera segundo hijo

Require: father 1, father21: for j = hasta tamano father2chromosome do2: if mask[j] then3: tr = father2chromosome[j]4: children2[j] = tr5: aux2[tr-1] = 16: end if7: end for8: temp = 09: for j = 0 hasta tamano aux2 do

10: tr = father1chromosome[j]11: if aux2[tr-1] = 0 then12: for i = temp hasta tamano children2 do13: if children2[i] = 0 then14: children2[i] = tr15: aux2 [tr-1] = 116: temp = i + 117: i = tamano children218: end if19: end for20: end if21: end for22: v.add(children2)23: return v

Page 58: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 43

Algorithm 9 PartialMappedXOver Genera primer hijo

Require: father 1, father21: children1[] = 02: children2[] = 03: aux1[] = 04: aux2[] = 05: for i = point1 hasta point2 + 1 do6: children1[i] = father2chromosome[i]7: aux1[tr-1] = 18: end for9: for i = 0 hasta tamano point1 do

10: if aux1[tr-1] = 0 then11: children1[i] = father1chromosome[i]12: aux1[tr-1] = 113: end if14: end for15: for i = point2 hasta tamano children1 do16: if aux1[tr-1] = 0 then17: children1[i] = father1chromosome[i]18: aux1[tr-1] = 119: end if20: end for21: for i = 0 hasta point1 do22: if children1[i] = 0 then23: for j = 0 hasta tamano father2chromosome do24: if aux1[father2chromosome[j]-1] = 0 then25: children1[i] = father2chromosome[j]26: aux1[father2chromosome[j]-1] = 127: j = tamano father2chromosome28: end if29: end for30: end if31: end for32: for i = point2 hasta tamano children1 do33: if children1[i] = 0 then34: for j = 0 hasta tamano father2chromosome do35: if aux1[father2chromosome[j]-1] = 0 then36: children1[i] = father2chromosome[j]37: aux1[father2chromosome[j]-1] = 138: j = tamano father2chromosome39: end if40: end for41: end if42: end for43: v.add(children1)

Page 59: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

APENDICE A. ALGORITMOS 44

Algorithm 10 PartialMappedXOver Genera segundo hijo

Require: father 1, father21: children1[] = 02: children2[] = 03: aux1[] = 04: aux2[] = 05: for i = point1 hasta point2 + 1 do6: children1[i] = father2chromosome[i]7: aux1[tr-1] = 18: end for9: for i = 0 hasta tamano point1 do

10: if aux2[tr-1] = 0 then11: children2[i] = father2chromosome[i]12: aux2[tr-1] = 113: end if14: end for15: for i = point2 hasta tamano children2 do16: if aux2[tr-1] = 0 then17: children2[i] = father2chromosome[i]18: aux2[tr-1] = 119: end if20: end for21: for i = 0 hasta point1 do22: if children2[i] = 0 then23: for j = 0 hasta tamano father1chromosome do24: if aux2[father1chromosome[j]-1] = 0 then25: children2[i] = father1chromosome[j]26: aux2[father1chromosome[j]-1] = 127: j = tamano father1chromosome28: end if29: end for30: end if31: end for32: for i = point2 hasta tamano children2 do33: if children2[i] = 0 then34: for j = 0 hasta tamano father1chromosome do35: if aux2[father1chromosome[j]-1] = 0 then36: children2[i] = father1chromosome[j]37: aux2[father1chromosome[j]-1] = 138: j = tamano father1chromosome39: end if40: end for41: end if42: end for43: v.add(children2)

Page 60: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Conclusiones

• De acuerdo al analisis de los resultados obtenidos, el uso de un vector de numerosenteros que represente el orden de tareas a ejecutar en la linea de produccion esapropiado para solucionar problemas de tipo Flow-Shop con algoritmos evolutivos.Esta representacion facilita que mediante algoritmos evolutivos se llegue a buenassoluciones, particularmente usando HaEa donde la seleccion del operador que mejorse desempena contribuye a obtener buenos individuos.

• A la luz de la investigacion realizada, se encontraron operadores geneticos que per-mitıan solucionar problemas a traves de algoritmos evolutivos, como la mutacionde intercambio, mutacion de corrimiento, mutacion heurıstica, cruce cıclico, crucebasado en el orden y el cruce por emparejamiento parcial. A partir de esto se realizauna exploracion factorial con discretizacion en el espacio de combinaciones de estosoperadores para dar solucion a cada problema con sus caracterısticas particulareshaciendo uso de HaEa. Con la experimentacion realizada en el desarrollo de estetrabajo se evidencio que haciendo uso de un solo operador de mutacion se obtienenmejores resultados mediante la mutacion de corrimiento y estos resultados se pue-den mejorar si se adiciona el operador de cruce de emparejamiento parcial, ya queel cruce permite explorar el espacio de soluciones.

• La heurıstica NEH produce una muy buena solucion para problemas de permutacionlo cual permite que al ser utilizada para generar un individuo de la poblacion inicialde un algoritmo evolutivo, se obtengan mejores resultados que los obtenidos por cadauno de los algoritmos por separado.

• Utilizando el makespan de la secuenciacion de tareas en un problema Flow-Shop seobtiene una medida apropiada para definir el desempeno de una solucion obteni-da, entendiendo la solucion como el orden de las tareas. Al integrar esta medida dedesempeno en un algoritmo evolutivo se facilita la optimizacion de soluciones candi-datas, particularmente al usar HaEa donde la medida de desempeno de los individuosdefine la preferencia de seleccion de los operadores.

• A partir de las comparaciones realizadas entre el modelo computacional propuestoy las investigaciones de otros autores, se observa que se obtienen soluciones bastan-te cercanas a las cotas superiores que definen el punto mas optimo hallado en laliteratura. En particular, para problemas de alto nivel de complejidad, HaEa y losoperadores seleccionados obtienen soluciones muy buenas y en tiempos de computobajos.

45

Page 61: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

CONCLUSIONES 46

• De acuerdo a los resultados obtenidos en la investigacion se evidencia que el algo-ritmo evolutivo HaEa permite encontrar buenas soluciones para los problemas tipoFlow-Shop, haciendo uso de los operadores geneticos apropiados, generando una po-blacion inicial con buenos individuos por medio de la heurıstica NEH y seleccionandouna representacion adecuada al problema. El porcentaje de error de los resultadosobtenidos respecto a los encontrados en la literatura es muy bajo, lo que indica queel algoritmo propuesto obtiene resultados muy cercanos al optimo del problema.

• La literatura no facilita realizar comparaciones adecuadas de los resultados obteni-dos, ya que normalmente los autores no especifican la forma como desarrollan losexperimentos.

Page 62: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Trabajo futuro

Una vez concluido el desarrollo de esta tesis se identificaron diferentes areas que mere-cen la atencion en las cuales lo concluido aquı aportara y servira como base para nuevasinvestigaciones. Entre los trabajos futuros identificados estan:

• Utilizar el algoritmo evolutivo HaEa para resolver otros tipos de problemas de se-cuenciacion de tareas, tal como lo son Job-Shop, Open- Shop, entre otros. Lo in-teresante de este tipo de problemas es que aunque son problemas de permutacion,la forma de asignar las tareas a las maquinas y el comportamiento como tal de lasecuenciacion es distinta al Flow-Shop.

• Proponer mejoras a los operadores geneticos revisados en esta tesis con el fin demejorar su efectividad a la hora de explorar los espacios de busqueda y ası evitarcaer en optimos locales.

• Integrar procesos estocasticos para representar tiempos con distribuciones estocasti-cas y no tiempos determinısticos como se esta trabajando en este momento. Estocon el fin de obtener un modelo que se asemeje mas al comportamiento real.

47

Page 63: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

Bibliografıa

[1] Mircea Ancau, On solving flowshop scheduling problems, Proceedings of the RomanianAcademy 13 (2012), 71–79.

[2] V. Botta-Genoulaz, Hybrid flow shop scheduling with precedence constrains and timelegs to minimize maximum lateness, International Journal of Production Economics64 (2000), 101–111.

[3] Wojciech Bozejko, Jarosaw Pempera, and Czesaw Smutnicki, Parallel tabu searchalgorithm for the hybrid flow shop problem, Computers & Industrial Engineering 65(2013), 466–474.

[4] Miguel Cerrolaza and William Annicchiarico, Algoritmos de optimizacion estructuralbasados en simulacion genetica, Consejo de desarrollo Cientifico y Humanistico, 1996.

[5] Uday K. Chakraborty, Computacional intelligence in flow shop and job shop schedu-ling, 2009.

[6] Felix T.S. Chan, S.H. Chung, and P.L.Y. Chan, An adaptive genetic algorithm withdominated genes for distributed scheduling problems, Expert Systems with Applica-tions 29 (2005), 364–371.

[7] Chuen-Lung Chen, Venkateswara S. Vempati, and Nasser Aljaber, An application ofgenetic algorithms for flow shop problems, European Journal of Operational Research80 (1995), 389–396.

[8] Jen-Shiang Chen, Jason Chao-Hsien Pan, and Chien-Min Lin, A hybrid genetic algo-rithm for the re-entrant flow-shop scheduling problem, Expert Systems with Applica-tions 34 (2008), 570 –577.

[9] Jen-Shiang Chen, Jason Chao-Hsien Pan, and Chien-Kuang Wu, Hybrid tabu searchfor re-entrant permutation flow-shop scheduling problem, Expert Systems with Appli-cations 34 (2008), 1924–1930.

[10] Chie-Wun Chiou, Wen-Min Chen, Chin-Min Liu, and Muh-Cherng Wu, A geneticalgorithm for scheduling dual flow shops, Expert Systems with Applications 39 (2012),1306–1314.

[11] David de la Fuente Garcia, Ingenieria de organizacion en la empresa: Direccion deoperaciones, Ediciones de la Universidad de Oviedo, 2008.

48

Page 64: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

BIBLIOGRAFIA 49

[12] Francisco Escolano, Miguel Angel Cazorla, Maria Isabel Alfonso, Otto Colomina, andMiguel Angel Lozano, Inteligencia artificial: Modelos, tecnicas y areas de la aplicacion,2003.

[13] L. De Giovanni and F. Pezzella, An improved genetic algorithm for the distributedand flexible job-shop scheduling problem, European Journal of Operational Research200 (2010), 395–408.

[14] David E. Goldberg, Genetic algorithms in search, optimization, and machine learning,Addison-Wesley Longman Publishing Co, 1989.

[15] Jonatan Gomez, Self adaptation of operator rates in evolutionary algorithms, GECCO2004 LNCS 3102/3103 (2004), 1162–1173.

[16] J.F. Goncalves, J.J.M. Mendes, and M.G.C. Resende, A genetic algorithm for the re-source constrained multi-project scheduling problem, European Journal of OperationalResearch 189 (2008), 1171–1190.

[17] Jose Fernando Goncalves, Jorge Jose de Magalhes Mendesb, and Mauricio G.C. Re-sendec, A hybrid genetic algorithm for the job shop scheduling problem, EuropeanJournal of Operational Research 167 (2005), 77–95.

[18] R. Gupta, A. Bhunia, and S. Goyal, An application of genetic algorithm in a marketingoriented inventory model with interval valued inventory cost and three - componentdemand rate dependent on displayed stock level, Applied Mathematics and Compu-tation 192 (2007), 466 – 478.

[19] M. Haouari and R. Hallah, Heuristics algorithms for the two-stage hybrid flow shopproblem, Operation Research Letters, 21 (1997), 43–53.

[20] F. Hillier and G. Lieberman, Investigacion de operaciones, Mc Graw Hill, 2002.

[21] Chieh-Sen Huang, Yi-Chen Huang, and Peng-Jen Lai, Modifed genetic algorithmsfor solving fuzzy flow shop scheduling problems and their implementation with cuda,Expert Systems with Applications 39 (2012), 4999–5005.

[22] Johann Hurink and Sigrid Knust, Tabu search algorithms for job-shop problems with asingle transport robot, European Journal of Operational Research 162 (2005), 99–111.

[23] Hemanshu Kaul and Henry Martyn Mulder, Advances in interdisciplinary applieddiscrete mathematics, World Scientific Publishing Co. Pte. Ltd., 2011.

[24] G. J. Kyparisis and C. Koulamas, A note on weighted completion time minimizationin a flexible flow shop, Operation Research Letters 29 (2001), 5–11.

[25] M. Li, D. Chen, S. Cheng, F. Wang, Y. Li, Y. Zhou, and J. Lang, Optimizing emis-sion inventory for chemical transport models by using genetic algorithm, AtmosphericEnvironment 44 (2010), 3926 – 3934.

[26] J. Haddadnia M. Akhshabi and M. Akhshabi, Solving flow shop scheduling problemusing a parallel genetic algorithm, Procedia Technology 1 (2012), 351–355.

[27] Rafael Marti, Procedimientos metaheuristicos en optimizacion combinatoria, Mate-matiques 1 (2003), 3–62.

Page 65: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

BIBLIOGRAFIA 50

[28] David Alvarez Martinez, Eliana Mirledy Toro Ocampo, and Ramon Alfonso GallegoRendon, A computational study solving the flow shop problem with annealing-basedheuristics, Ingenieria & Desarrollo. Universidad del Norte 25 (2009), 154–179.

[29] Mohammad Mirabi, A hybrid genetic algorithm for the sequence dependent flow-shop scheduling problem, World Academy of Science, Engineering and Technology55 (2011), 527–533.

[30] Melanie Mitchell., An introduction to genetic algorithms, Bradford Book The MITPress, 1999.

[31] N. Moin, S. Salhi, and N. Aziz, An efficient hybrid genetic algorithm for the multi -product multi - period inventory routing problem, International Journal of ProductionsEconomics 133 (2010), 334 – 343.

[32] F. Musharavati and A.S.M. Hamouda, Modified genetic algorithms for manufacturingprocess planning in multiple parts manufacturing lines, Expert Systems with Appli-cations 38 (2011), 10770–10779.

[33] M Nawaz, Enscore Jr. E., and I. Ham, A heuristic algorithm for the machine, n-jobflow shop sequencing problem, OMEGA, The International Journal of ManagementScience 11 (1983), 91–95.

[34] Eugeniusz Nowicki and Czeslaw Smutnicki, The flow shop with parallel machines: Atabu search approach, European Journal of Operational Research 106 (1998), no. 2,226 – 253.

[35] I.M. Oliver, J. Smith, and J.R.C Holland, A study of permutation crossover operatorson the travelling salesman problem, Genetic algorithms and their applications (1987),224–230.

[36] Fatma A. Omara and Mona M. Arafa, Genetic algorithms for task scheduling problem,J. Parallel Distrib. Comput. 70 (2010), 13–22.

[37] G. Onwubolu and D. Davendra, Scheduling flow shops using diferential evolutionalgorithm, European Journal of Operational Research 171 (2006), 674–692.

[38] F. Pezzellaa, G. Morgantia, and G. Ciaschetti, A genetic algorithm for the flexible job-shop scheduling problem, Computers & Operations Research 35 (2008), 3202–3212.

[39] Marcos Gestal Pose, Introduccion a los algoritmos geneticos, Depto. Tecnologias dela Informacion y las comunicaciones. Universidad de Coruna (2006), 1–16.

[40] A. Escobar R. Gallego and E. Toro, Tecnicas metaheuristicas de optimizacion, Uni-versidad Tecnologica de Pereira,, 2008.

[41] Cesar Oswaldo Ramirez Rodriguez, Un algoritmo grasp con doble relajacion pararesolver el problema del flow shop scheduling, Master’s thesis, Pontificia UniversidadCatolica del Peru, 2006.

[42] Ruben Ruiz and Concepcion Maroto, A comprehensive review and evaluation of per-mutation flowshop heuristic, European Journal of Operational Research 165 (2005),479–494.

[43] Segio Sanchez, Computacion evolutiva y vida artificial, Master’s thesis, ., 2010.

Page 66: Soluci on de problemas tipo Flow-Shop mediante algoritmos ... · Soluci on de problemas tipo Flow-Shop mediante algoritmos evolutivos Tania Andrea Rodr guez Qui~nones Ingeniera de

BIBLIOGRAFIA 51

[44] D. F. Shiau, S. C. Cheng, and Y. M. Huang, Proportionate flexibe flow shop schedulingvia a hybrid constructive genetic algorithm, Expert Systems with Applications 34(2008), 1133–1143.

[45] Vijay Subramani, Rajkumar Kettimuthu, Srividya Srinivasan, and P. Sadayappan,Distributed job scheduling on computational grids using multiple simultaneous re-quests, High Performance Distributed Computing, (2002), 359–366.

[46] G. Syswerda, Schedule optimization using genetic algorithms, Handbook of GeneticAlgorithms (1991), 332–349.

[47] H. A. Taha, Operations research: An introduction, D. J. Clinton,, 2004.

[48] E. Taillard, Benchmarks for basic scheduling problems, European Journal of Opera-tional Research 64 (1993), 278–285.

[49] Wannaporn Teekeng and Arit Thammano, Modified genetic algorithm for flexible job-shop scheduling problems, Procedia Computer Science 12 (2012), 122–128.

[50] Eliana Mirledy Toro, Yov Steven Restrepo, and Mauricio Granada, Algoritmo ge-netico modificado aplicado al problema de secuenciamiento de tareas en sistemas deproduccion lineal - flow shop, Scientia et Technica 285 - 290 (2006), 12.

[51] Y. Tsujimura and M. Gen, Parts loading scheduling in a flexible forging machineusing an advanced genetic algorithm, Journal of Intelligent Manufacturing 10 (1999),149–159.

[52] Manuel Tupia and David Mauricio, Un algoritmo voraz para resolver el problema de laprogramacion de tareas dependientes en maquinas diferentes, Revista de investigacionsistemas de informacion 1 (2004), 9–18.

[53] M. C. Velez and J. A. Montoya, Metaheuristicos: Una alternativa para la solucion deproblemas combinatorios en administracion de operaciones, Revista EIA 8 (2007), 99– 115.

[54] Ling Wang, Liang Zhang, and Da-Zhong Zheng, An effective hybrid genetic algorithmfor flow shop scheduling with limited buffers, Computers & Operations Research 33(2006), 2960–2971.

[55] Shijin Wang and Ming Liu, A genetic algorithm for two-stage no-wait hybrid flowshop scheduling problem, Computers & Operations Research 40 (2013), 1064–1075.

[56] F. Wilcoxon, Individual comparisons by ranking methods, Biometrics 1 (1945), 80–83.

[57] I. Wood and T. Downs, Fast optimization by demon algorithms, Australian Conf.Neural Networks 9 (1998.).

[58] M. Wu and D.D. Gajski, Hypertool: A programming aid for message-passing systems,IEEE Trans. Parallel Distrib. Syst. 1 (1990), 381–422.

[59] H. Khademi Zare and M.B. Fakhrzad, Solving flexible flow-shop problem with a hybridgenetic algorithm and data mining: A fuzzy approach, Expert Systems with Applica-tions 38 (2011), 7609 – 7615.