PROGRAMACIÓN DE TALLERES DE PRODUCCIÓN SERIALES HÍBRIDOS (FLEXIBLES) CON MÚLTIPLES OBJETIVOS MEDIANTE METAHEURÍSTICAS: COLONIAS DE HORMIGAS ELYN LIZETH SOLANO CHARRIS UNIVERSIDAD DEL NORTE DIVISIÓN DE INGENIERÍAS MAESTRIA EN INGENIERÍA INDUSTRIAL BARRANQUILLA 2008 1 PROGRAMACIÓN DE TALLERES DE PRODUCCIÓN SERIALES HÍBRIDOS (FLEXIBLES) CON MÚLTIPLES OBJETIVOS MEDIANTE METAHEURÍSTICAS: COLONIAS DE HORMIGAS ELYN LIZETH SOLANO CHARRIS MONOGRAFÍA DE GRADO Presentado como requisito para optar al título de Magíster en Ingeniería Industrial Director Ph. D Ing. Carlos D. Paternita Arboleda UNIVERSIDAD DEL NORTE DIVISIÓN DE INGENIERIAS MAESTRIA EN INGENIERIA INDUSTRIAL BARRANQUILLA 2008 2 Nota de Aceptación: ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ Ph. D. Ing. Carlos D. Paternina Arboleda Director del Proyecto ____________________________________ Ph. D. Ing. Ángel León González Coordinador Programa Maestría Ingeniería Industrial ____________________________________ Ph.D., Mat. Agustín Barrios Profesor Departamento de Matemáticas Jurado ____________________________________ M.Sc. Carlos Ardila Profesor, Departamento Ing. de Sistemas Jurado 3 “A mis padres y a mi hermana, por brindarme el apoyo necesario para salir adelante y cumplir mis propósitos profesionales, gracias por acompañarme en este viaje lleno de tropiezos y alegrías donde ustedes han sido la principal fuente de inspiración para mi lucha”. 4 AGRADECIMIENTOS Con el presente proyecto de tesis, quiero agradecer a mi Director Ph. D Ing. Carlos D. Paternina Arboleda por sus sugerencias para trabajar en esta temática, su apoyo, y paciencia. A mi amigo Ingeniero de Sistemas Alfredo José Pérez Martínez, por su invaluable colaboración y apoyo incondicional. Y a todos aquellos que hicieron participe de esta tesis por sus sugerencias y motivación. 5 RESUMEN En el presente proyecto se desarrolló una aplicación computacional de colonias de hormiga para la solución del problema HFK, (PM(l))lk=1 || Fl(Cmax, C ), definido como un flowshop flexible con K estaciones, M(l) máquinas idénticas, por cada estación (etapa) l. El programa optimiza a través de Metaheurísticas dos objetivos en producción: minimiza el lapso (Cmax) de producción y la suma de tiempos de terminación ( C ). De acuerdo a lo anterior, los modelos de apoyo para la Toma de Decisiones (Decision Support Models, DSM) sirven de soporte para la programación de operaciones en empresas con sistemas de producción flexibles en serie y múltiples objetivos de programación. 6 TABLA DE CONTENIDO Pág. 1. INTRODUCCIÓN 11 1.1 FORMULACIÓN DEL PROBLEMA 11 1.1.1 Planteamiento del Problema 11 1.2 OBJETIVOS 13 1.2.1 Objetivo General 13 1.2.2 Objetivos Específicos 13 1.3 ALCANCES Y LIMITACIONES 13 1.3.1 Alcances 13 1.3.2 Limitaciones 14 1.4 MARCO DE REFERENCIA 14 1.4.1 Marco Teórico 14 1.4.1.1 Programación De Operaciones En Planta 17 1.4.1.2 Optimización Multi-objetivo 20 1.4.1.2.1 Función Objetivo 20 1.4.1.2.2 Restricciones 20 1.4.1.2.3 Vector objetivo 21 1.4.1.2.4 Soluciones no comparables 21 1.4.1.2.5 Mínimo Global 21 1.4.1.2.6 Mínimo Local 21 1.4.1.2.7 Máximo Global 22 1.4.1.2.8 Máximo Local 22 1.4.1.2.9 Dominancia de Pareto 22 1.4.1.2.10 Conjunto Pareto 22 1.4.1.2.11 Frente de Pareto 22 1.4.1.3 Heurísticas y Metaheurísticas 22 1.4.1.3.1 Algoritmos Evolutivos 24 1.4.1.3.1.1 Inicialización de la población 27 1.4.1.3.1.2 Función de Evaluación (Fitness) 28 1.4.1.3.1.3 Selección 28 7 1.4.1.3.1.4 Cruce (Crossover) 29 1.4.1.3.1.5 Mutación 30 1.4.1.3.2 Strenght Pareto Evolutionary Algoritm 2 31 1.4.1.3.3 Meta-Heurísticas De Colonias De Hormiga 32 1.5 METODOLOGIA 35 1.5.1 Tipo de estudio 35 1.5.2 Método de Investigación 35 1.5.3 Fuentes y Técnicas 36 1.5.4 Tratamiento de la información 36 2. SUPUESTOS BÁSICOS Y DISEÑO DEL ALGORITMO HÍBRIDO ANT- COLONY 37 2.1 SUPUESTOS BÁSICOS 37 2.2 DISEÑO DEL ALGORITMO HÍBRIDO ANT- COLONY 38 2.2.1 Construir_solucion 39 2.2.2 Evaluar_solucion 39 2.2.3 Actualizar_Frente_Pareto 39 2.2.4 Actualizar_Feromonas 39 2.2.5 Reiniciar_ feromonas 40 3. EXPERIMENTACIÓN Y ANÁLISIS DE RESULTADOS 41 3.1 DESCRIPCIÓN DEL LOS ARCHIVOS DE ENTRADA 41 3.2 CARACTERÍSTICAS DEL EXPERIMENTO 42 3.3 CONFIGURACIÓN DE PARÁMETROS 42 3.4 RESULTADOS OBTENIDOS 43 3.5 COMPARACIÓN DE RESULTADOS 50 3.6 ANÁLISIS DE LOS RESULTADOS 62 4. CONCLUSIÓN Y TRABAJOS FUTUROS 66 4.1 CONCLUSIONES 66 4.2 TRABAJOS FUTUROS 66 ANEXOS 67 BIBLIOGRAFÍA 98 8 LISTA DE TABLAS Pág. Tabla 1. Escenario Flowshop Flexible 41 Tabla 2. Resultados iteración 1-5 44 Tabla 3. Resultados iteración 6-10 45 Tabla 4. Resultados iteración 11-15 46 Tabla 5. Resultados iteración 16-20 47 Tabla 6. Resultados iteración 20-25 48 Tabla 7. Resultados iteración 26-30 49 Tabla 8. Porcentajes diferenciales iteración 1-5 53 Tabla 9. Porcentajes diferenciales iteración 6-10 54 Tabla 10. Porcentajes diferenciales iteración 11-15 55 Tabla 11. Porcentajes diferenciales iteración 16-20 57 Tabla 12. Porcentajes diferenciales iteración 21-25 58 Tabla 13. Porcentajes diferenciales iteración 26-30 60 Tabla 14. Coordenadas del Frente de Pareto obtenido con la herramienta MHFACO 65 9 LISTA DE FIGURAS Pág. Figura 1. Sistema Flowshop Flexible 18 Figura 2. Representación de un Algoritmo Genético 26 Figura 3. Esquema de un Algoritmo Genético 27 Figura 4. Ejemplo de ejecución de un algoritmo genético 27 Figura 5. Las hormigas y el camino más corto 33 Figura 6. Imagen “Parámetros para la ejecución del Algoritmo” 43 Figura 7. Resultados del Cmax presentados por el LEKIN ® 51 Figura 8. Resultados del C presentados por el LEKIN ® 52 Figura 9. Frente de Pareto obtenido con la herramienta MHFACO 64 10 1. INTRODUCCIÓN 1.1 FORMULACIÓN DEL PROBLEMA 1.1.1 Planteamiento del Problema La mayoría de problemas de optimización del mundo real tienen varios objetivos que deben satisfacerse de manera simultánea, los cuales se encuentran sujetos a ciertas restricciones propias de su entorno. Ante la presencia de problemas de optimización con varios objetivos, la perspectiva o concepción de lo que significa un óptimo, cambia con respecto a los problemas de optimización que presentan un solo objetivo, ya que en la optimización mono-objetivo la solución del problema es única, mientras en los problemas multi-objetivo la solución no es necesariamente única, sino que, podría ser un conjunto de soluciones. Para evidenciar este hecho, se toma como caso de implementación el siguiente problema de programación de operaciones1: Datos: n, Número de trabajos k, Número de estaciones M (l ) , l =1, …, k, Número de máquinas por estación pi(l ) , i =1, …, n, l =1, …, k el tiempo de procesamiento de el trabajo Ji en la estación l , =0, …, 1, peso Variables: X i , j ,u ,v , i, j = 1, …,n, u=1, …, M (v ) , v =1, …k, variable binaria, igual a 1 si el trabajo Ji es procesado en la posición j en la máquina M u en la estación v, 0 de otra forma C i(l ) , i = 1, …, n, l =1, …, k, tiempo de terminación del trabajo Ji en la estación l C max , Makespan 1 T’kind, Billaut. “Multicriteria scheduling theory, models and algorithms” 11 C , suma de los tiempos de terminación de los trabajos Objetivo: Minimizar C (1 )C max Restricciones: M( v) n X m 1 l 1 i ,l , m , v n X i 1 i ,l , m , v u 1, i 1,..., n, v 1,..., k 1, m 1,..., M ( v ) , v 1,..., k , l 1,..., n (A) (B) n Ci( v ) ( X j ,l ,m,v p (jv ) ( X i ,u ,m,v 1) HV ), m 1,..., M (v), v 1,..., k , i 1,..., n, u 1,...n (C) Civ Civ 1 piv , i 1,..., n, v 1,..., k (D) Cmax Ci( k ) , i 1,..., n (E) l 1 j 1 n C C i( k ) (F) i 1 El programa optimiza el siguiente problema HFK, (PM(l))lk=1 || Fl(Cmax, C ), definido como un flowshop flexible con k estaciones, M(l) máquinas idénticas, por cada estación (etapa) l; donde los dos objetivos en producción son: minimizar el lapso (Cmax) de producción y la suma de tiempos de terminación ( C ). La restricción (A) expresa el hecho de que todos los trabajos deben ser procesados en cada estación. La restricción (B) implica el hecho que debe haber un trabajo en la posición l en cada máquina. La restricción (C) y (D) permiten calcular los tiempos de terminación en cada estación. Finalmente, la restricción (E) y (F) definen los criterios Cmax y C que serán minimizados. De acuerdo a lo anterior, el modelo planteado surge de la necesidad de dar solución al problema mencionado y, para esto, se plantea una alternativa de solución a través de Metaheurísticas: Colonias de Hormiga de concepción Multi-objetivo, que permita optimizar la programación de operaciones en empresas con sistemas de producción flexibles en serie y múltiples objetivos de programación. 12 1.2 OBJETIVOS 1.2.3 Objetivo General Resolver el problema de programación de operaciones en empresas con sistemas de producción flexibles en serie y múltiples objetivos de programación mediante la aplicación de la metaheurística Ant Colony. 1.2.4 Objetivos Específicos Diseñar e implementar sistemas de apoyo para la Toma de Decisiones (Decision Support System, DSM) que sirvan de soporte para la programación de operaciones en empresas con sistemas de producción flexibles en serie y múltiples objetivos de programación. Implementar una herramienta computacional que cumpla la función de facilitar la aplicación de los DSM diseñados, y realizar de manera efectiva la actividad de programación de operaciones en planta. Comparar los resultados obtenidos por la herramienta propuesta, con los resultados obtenidos con la herramienta de dominio público LEKIN ®. 1.3 ALCANCES Y LIMITACIONES 1.3.1 Alcances El proyecto de la presente propuesta cumple con los siguientes objetivos específicos: El desarrollo de una aplicación de colonias de hormigas para minimizar el lapso (Cmax) de producción y la suma de tiempos de terminación ( C ) en entornos de producción flexibles en serie y con múltiples objetivos de programación. 13 Diseño e implementación del sistema DSM, el cual implica el desarrollo de los siguientes aspectos: 1. Modelos de optimización necesarios para realizar en forma optimizada la programación de operaciones. 2. Herramientas de programación de operaciones. 3. Entrega de resultados y documentación relacionada con los modelos desarrollados. Adicionalmente, el conjunto de modelos implementado permitirá la aplicación de la herramienta en empresas que cumplan con el entorno de producción en estudio, esto a su vez facilitará la elaboración de planes gruesos de contingencia con relación a su sistema productivo. 1.3.2 Limitaciones El proyecto se encuentra limitado al desarrollo de algoritmos para la programación de operaciones en empresas con entornos de producción flexibles en serie. No se tendrán en cuenta en principio para este problema restricciones sobre el taller de producción o sobre órdenes de producción, tiempos de liberación de las órdenes de producción, y tiempos de alistamiento. 1.4 MARCO DE REFERENCIA 1.4.1 Marco Teórico Gran parte de los problemas del mundo real implican la optimización simultánea de varios objetivos que generalmente presentan conflictos entre ellos; es decir, la mejora en uno conduce a un deterioro en el otro. La presencia de tales tipos de problemas es tan significativa, que consume gran parte de nuestro tiempo cotidiano de decisión. Se trata, por ejemplo, de escoger el medio ideal para llegar al trabajo, establecer el orden de nuestras tareas, elegir el restaurante para el almuerzo, hacer las compras en el supermercado, preparar la cena y la distribución de actividades en el tiempo de ocio restante. También es el mismo tipo de problemas que enfrentan los ingenieros y técnicos a la hora de diseñar e implementar sistemas de todo tipo: existen múltiples objetivos a cumplir y se espera lograrlos todos en la medida de lo posible. 14 Aunque la mayoría de los problemas de decisión involucran este tipo de situaciones, las propuestas computacionales que se han presentado para resolverlos habitualmente se limitan a convertir el problema de objetivos múltiples en uno con objetivo único. Esta reducción es debida a los modelos matemáticos empleados y puede realizarse de varias maneras, por ejemplo se prioriza uno de los objetivos y los demás se colocan como restricciones, o también se genera un objetivo compuesto otorgando pesos a los objetivos en juego y armando una suma ponderada de los mismos. De todos modos, ninguna de estas reducciones refleja fielmente al problema y, por tanto, tampoco otorga soluciones completamente satisfactorias. Se pone como ejemplo el problema de la compra de un automóvil. El comprador desea un automóvil óptimo y por tanto no puede preocuparse solamente en minimizar el precio del auto, ya que también le interesan otros factores. Si se tratase de un problema de objetivo único, se conformaría con llamar a todos los distribuidores y hacer una lista de precios (sin considerar marcas, modelos, tamaño, confort, etc.) y escogería el automóvil de menor precio sin mayores complicaciones. Sin dudas, el modelo matemático que está empleando en su búsqueda ¡no es el más apropiado!. Por ende, los resultados tampoco son satisfactorios, y por ahorrarse unos pesos inicialmente, el comprador acaba gastando todos sus ahorros en combustible y costos de mantenimiento. Sin embargo, el estado actual de la ciencia podría generar mejores resultados ya que existen modelos matemáticos que se ajustan mejor a la naturaleza de éstos problemas. Tales modelos provienen de un área de la Investigación de Operaciones conocida como optimización con objetivos múltiples o multiobjetivo. En los problemas de optimización de un solo objetivo (SOPs, del inglés Single Objective Problem) el resultado óptimo deseado está claramente definido. Partiendo del ejemplo anterior el objetivo sería minimizar precio del automóvil, y el resultado sería el automóvil con menor precio. Sin embargo, esta condición no se cumple para los problemas de optimización multiobjetivo (MOPs, por sus siglas en inglés: Multiobjective Optimization Problem) donde, en vez de un único óptimo, contamos con todo un conjunto de soluciones de compromiso. 15 Para evidenciar este hecho se vuelve al ejemplo del problema de la compra de un automóvil. El comprador tiene varios objetivos que desearía alcanzar, pero también múltiples restricciones. En cuanto a objetivos podríamos mencionar: minimizar el costo del automóvil, la cantidad de combustible consumida en una distancia dada, los gastos de mantenimiento implicados, etc. Además, deseará maximizar el confort, el espacio, la confiabilidad, la seguridad, tiempo transcurrido entre mantenimientos, costos de reventa, etc. Cuando se plantean las restricciones descubrimos que este comprador cuenta con un presupuesto limitado, desea un vehículo fabricado en la región y confía más en algunas marcas que en otras. Los conflictos que surgen entre los objetivos mencionados son obvios e inmediatamente –considerando la propia experiencia– surgen posibles soluciones. Así tenemos el automóvil que tiene el menor precio, pero está bastante alejado de los objetivos relacionados al confort, la seguridad y la confiabilidad. También tenemos el de costo superior a los demás pero con óptimas características, aunque amplio consumo de combustible. Así podemos citar numerosos ejemplos. Entre éstos se encuentran los automóviles promedio, que cumplen con las restricciones dadas y que implican una solución de compromiso entre todos los factores en juego. Entre ellos no se puede decir que alguno sea mejor, ya que al alterar un factor para mejorarlo, estamos empeorando otro. Así, en un problema de optimización multiobjetivo cotidiano, resulta evidente la existencia de múltiples soluciones y la imposibilidad de decidir cuál de ellas es mejor si se consideran todos los objetivos al mismo tiempo. En el caso del comprador, para realizar su elección deberá necesariamente contar con algún criterio, posiblemente de índole subjetiva, que le permita optar por una u otra alternativa. Se dice que las soluciones de un problema con objetivos múltiples son óptimas porque ninguna otra solución, en todo el espacio de búsqueda, es superior a ellas cuando se tienen en cuenta todos los objetivos al mismo tiempo, i.e. ningún objetivo puede mejorarse sin degradar a los demás. Al conjunto de estas soluciones óptimas se conoce como soluciones Pareto óptimas. Su nombre les fue dado en honor al ingeniero y economista Wilfredo Pareto, quien fue el primero en definir un nuevo criterio de optimalidad para los problemas en que existen múltiples objetivos a cumplir, y persisten conflictos al realizar la optimización simultánea de los mismos. A partir de este concepto se establece, como requisito para 16 afirmar que una situación es mejor que otra, el que en ella no se disminuya a nadie, pero se mejore a alguno; es decir que una situación será mejor que otra sólo si en la nueva es posible compensar las pérdidas de todos los perjudicados... y aún queda un sobrante. En todo otro caso, según Pareto, para decidir se requiere un juicio de valor y la ciencia no puede guiarnos. El presente capítulo presente las definiciones necesarias que fundamentan teóricamente el presente proyecto. 1.4.1.1 Programación De Operaciones En Planta La programación de la producción ha sido uno de los temas de investigación más recurrentes en el área de administración de operaciones durante la última mitad de siglo XX. Debido a la cada vez más fuerte competencia en los mercados, para muchas empresas se ha hecho necesarios amplias su portafolio de productos, buscando de esta manera satisfacer a más clientes potenciales. Este cambio aparentemente trae consigo grandes problemas de planeación y el control de los sistemas productivos: Un número amplio de referencias implica mayores niveles de inventario o mayores exigencias en cuanto a capacidad instalada, lo que a su vez implica mayores costos operacionales. Si a estos problemas se le suma una pobre programación de la producción, estos se pueden ver multiplicados. Debido a estas razones y a la gran complejidad que implica encontrar una solución al problema de la programación de la producción, éste ha sido el tema de muchos proyectos de investigación durante los últimos cuarenta años. Programar es el proceso de organizar, elegir y dar tiempos al uso de recursos para llevar a cabo todas las actividades necesarias, para producir las salidas deseadas en los tiempos deseados, satisfaciendo a la vez un gran número de restricciones de tiempo y relaciones entre las actividades y los recursos. La enorme cantidad de combinaciones existentes en un sistema productivo, hacen imposible la evaluación de todos los posibles programas para la determinación de el programa de operaciones optimo, incluso implementando el mas poderoso sistema de 17 computo que pueda ser adquirido en la actualidad. Lo anterior impulsó el desarrollo de técnicas inteligentes de optimización, las cuales no están diseñadas bajo la premisa de obtener la solución óptima de un problema, sino en cambio, sacrificar un pequeño margen de exactitud en beneficio de no requerir una desmesurada potencia de cómputo. Un importante grupo de técnicas de optimización inteligentes son las denominadas heurísticas y metaheurísticas. Los países industrialmente desarrollados, poseen cerca de 30 años de investigación y desarrollo en esta área, gran parte de estos desarrollos se gestan en las universidades. Los países industrializados, son productores y distribuidores de esta tecnología. Colombia se encuentra en una posición de consumidor, pero solo un pequeño grupo de empresas, localizado en el sector de los grandes contribuyentes posee capacidad de adquisición. En esta investigación se estudia y se propone una nueva metodología para resolver el problema de secuenciar apropiadamente n actividades independientes y disponibles simultáneamente en N estaciones ó etapas con mj maquinas en paralelo. Esto es la solución al sistema productivo flowshop flexible. Figura 1. Sistema Flowshop Flexible. Cada trabajo será procesado en cada etapa una sola vez. Además, todos los trabajos serán procesados en la primera estación, luego en la segunda estación hasta completar la secuencia. El tiempo de procesamiento para cada producto en cada estación estará compuesto el tiempo de alistamiento de la máquina, el tiempo en que la máquina transforma al producto, es decir lo procesa y el tiempo para retirar el producto de la máquina, antes de colocar el siguiente. 18 La función Objetivo de interés es minimizar makespan Cmax y la suma de los tiempos de terminación de los trabajos simultáneamente. También es ampliamente conocido como lapso. Definido de otra forma, es el tiempo en donde la última actividad deja al sistema. A pesar que el problema flowshop flexible con múltiples maquinas ha sido estudiado en otras investigaciones, a la fecha no se encontraron instancias publicadas para este tipo de problemas. Sin embargo, durante la investigación se generaron varias instancias que pueden ser utilizadas por otros investigadores para sus futuros análisis. Incluyendo medidas desempeño de la heurística y el valor óptimo para cada conjunto de datos. Una de las principales limitaciones para comparar la heurística con el óptimo es lo extenso del espacio de posibles secuencias para el problema en estudio. De allí que para n productos, N estaciones y Mj maquinas por estación (con n > mj; para todo j tal que j = 1, 2,.. N). El numero total de soluciones o secuencias viene dada por la ecuación: (n 1)!(n)! j 1 (n m j )!(m j 1)!(m j )! N Observemos que para una de las instancias de la investigación: problema con 7 productos, 5 estaciones y 3, 4, 3, 2 y 2 maquinas en cada estación respectivamente, el problema esta sujeto a un espacio de 1.52 x 1020 posibles secuencias. Si se cuenta con un equipo de computo que pueda procesar un billón de secuencias por segundo, dicho equipo finalizará su labor en 4 años y 10 meses. El problema de estudio es aún un problema abierto en la literatura. La mayor cantidad de información asume trabajos no idénticos y máquinas paralelas idénticas (ver por ejemplo los trabajos de Guinet y Solomon, Gupta, Gupta y Tung , Lee y Vairaktarakis. Desouki et al. Propone un procedure O(n log n) basado en la regla LST para resolver un problema más sencillo mono-objetivo: F1(Q1) | rj, pj = 1, | Cmax. T´kindt y Billaut presentan una propuesta más cercana al problema de interés de esta investigación, pero sólo introducen el modelo matemático de programación entera binaria con ponderación de objetivos. 19 1.4.1.2 Optimización Multi-objetivo La optimización multi-objetivo puede ser definida como el problema de encontrar un vector de variables de decisión que satisfacen restricciones y optimiza un vector de funciones cuyos elementos representan las funciones objetivo. Estas definiciones aparecen en los trabajos de Coello y Deb. Se desea encontrar un vector de decisión: T x x1 , x 2 ,..., x n con x R n , que deberá satisfacer restricciones de desigualdad: g i ( x ) 0 i 1,2,..., w y optimizar el vector de funciones T f ( x ) f1 ( x ), f 2 ( x ),..., f b ( x ) que generalmente cumple con f ( x ) R b . El conjunto de todas las soluciones que satisfacen la condición es conocido como dominio de soluciones factibles, y se representa como , en general R n . El correspondiente conjunto imagen o se define como: o f ( x ) Rb x 1.4.1.2.1 Función Objetivo: Denotada con f, función objetivo convierte los vectores de decisión en un espacio K-dimensional llamado Espacio Objetivo, Z R k ( R , el conjunto de los números reales). f es un conjunto de funciones f ( f1 , f 2 ,..., f k )T . 1.4.1.2.2 Restricciones: En todo problema de optimización con restricciones, el entorno, la disponibilidad de recursos o las características inherentes al problema, 20 imponen sobre éste un conjunto de restricciones, que deben ser satisfechas al solucionar el problema, con el fin de tener soluciones factibles. Las restricciones están dadas en términos de las variables de decisión y de los operadores de(<, , , > y 0) . Una posible forma de enunciar restricciones sería: ri(x) >=0; i=1, 2, …, m si(x) <=0; i=1, 2, …, p gi(x) =0; i=1, 2, ..., k donde m+p+k debe ser menor que el número de variables de decisión n, para que puedan existir grados de libertad a optimizar. 1.4.1.2.3 Vector objetivo: (vector de criterio, punto): Denotado con z representa la imagen en el espacio objetivo de un vector de decisión a través de f. Z f ( x) ( z1 , z 2 ,... z k ) ( f1 ( x1 ), f 2 ( x2 ),... f k ( xk ))T 1.4.1.2.4 Soluciones no comparables: Dados u, v, si u v ni v u, se dice que son soluciones no comparables, lo que se denota como u ~ v. 1.4.1.2.5 Mínimo Global: Dada la función f, supongamos que θ el conjunto de soluciones factibles es diferente de vacío, entonces x*, es llamado un mínimo global si para toda x θ, se tiene que: f(x*) f(x) 1.4.1.2.6 Mínimo local: Dada la función f, supongamos que θ el conjunto de soluciones factibles es diferente de vacío, entonces x*, es llamado un mínimo local si para toda x I θ, se tiene que: f(x*) f(x) 21 1.4.1.2.7 Máximo Global: Dada la función f, supongamos que θ el conjunto de soluciones factibles es diferente de vacío, entonces x*, es llamado un mínimo global si para toda x θ, se tiene que: f(x*) (x) 1.4.1.2.8 Máximo local: Dada la función f, supongamos que θ el conjunto de soluciones factibles es diferente de vacío, entonces x*, es llamado un mínimo local si para toda x θ, se tiene que: f(x*) f(x) 1.4.1.2.9 Dominancia de Pareto: Sean dos soluciones u , v . Se dice que u domina a v (denotado como u v) si es mejor o igual que v en cada uno de los objetivos y estrictamente mejor en al menos un objetivo. Como ejemplo, en un contexto de minimización u v si y solo si: f i (u ) f i (v)i 1,2,..., b j 1,2,... f j (u ) < f j (v) 1.4.1.2.10 Conjunto Pareto: El conjunto de todas las soluciones x no dominadas en se denomina Conjunto Pareto, lo que se denota como CP. Las soluciones x que pertenecen a CP se denotarán como x*. 1.4.1.2.11 Frente de Pareto: La imagen del Conjunto Pareto a través de la función f se denomina Frente Pareto, denotado por Y. 1.4.1.3 Heurísticas y Metaheurísticas En general existe una gran cantidad de problemas que se consideran difíciles de resolver. La dificultad de los problemas está caracterizada por la teoría de complejidad computacional. 22 Se sabe que muchos problemas son NP-duros, esto es, el tiempo que requieren para resolver una instancia de ese problema crece en el peor de los casos de manera exponencial con respecto al tamaño de la instancia. Por lo mismo, muchas veces se tienen que solucionar usando métodos de solución aproximados, que regresan buenas soluciones (inclusive a veces óptimas) a bajo costo computacional. Las heurísticas proviene de la palabra griega eureka, utilizada por Arquímedes, y ha sido utilizado para agrupar un conjunto de algoritmos de búsqueda basados en estructuras repetitivas, con los cuales se dirigen procesos de decisión2. En términos generales, una heurística es el procedimiento repetitivo que identifica una solución factible, con la cual se espera acercarse a la solución óptima. Muchas de las estrategias de búsqueda podrían usarse, aunque algunas pueden resultar ser demasiado costosas o quedar atrapadas en mínimos locales. Las metaheurísticas se proponen como métodos, determinísticos o estocásticos para salir de mínimos locales, es decir, son estrategias maestras que permiten resolver de manera inteligente un problema3. El término metaheurísticas se obtiene de anteponer a heurística el sujeto meta, que significa más allá o a un nivel superior, lo que concuerda con la descripción que Crainic y Toulouse (2003) hacen de estas técnicas al afirmar que modifican otras heurísticas para producir mejores soluciones que las encontradas de la manera clásica. Algunas de las propiedades deseables para una metahuerística son: Simplicidad: debe de ser simple y basada en un principio claro que pueda ser aplicable en general. Precisión: debe de estar formulada en términos matemáticos precisos. 2 Burke, E., Kendall, G., Newall, J., Hart, E., Ross, P. and Schulenburg, S., Hyper-heuristics: an emerging direction in modern search technology., En: Glover, F. y Kochenberger, G. (Eds.). Handbook of metaheuristics. Kluwer academic publisher, 2003. 2 Melián, B., Moreno, J. y Moreno, M., Metaheurísticas: una visión global. Inteligencia Artificial., Revista Iberoamericana de Inteligencia Artificial, No.19, 2003, pp. 7-28 23 Coherencia: todos los pasos deben de seguir en forma natural los principios de la metaheurística. Eficiencia: debe de tomar un tiempo razonable de tiempo. Efectividad: debe de encontrar las soluciones óptimas para la mayoría de los problemas de prueba en donde se conoce su solución. Robustes: debe de ser consistente en una amplia variedad de instancias. Amigable: debe de ser claramente expresada, fácil de entender y fácil de usar, y con la menor cantidad de parámetros posibles. Innovación: debe de poder atacar nuevos tipos de aplicaciones. La mayoría de la metaherísticas cumplen con solo algunas de las propiedades arriba mencionadas. 1.4.1.3.1 Algoritmos Evolutivos Los algoritmos genéticos (en adelante AGs) son métodos adaptativos que se emplean principalmente para la resolución de problemas de búsqueda y optimización. Se enmarcan dentro de la rama de Inteligencia Artificial conocida como Computación Evolutiva o Algoritmos Evolutivos. Esta rama trata el estudio de los fundamentos y aplicaciones de técnicas heurísticas de búsqueda que emplean los principios de la evolución natural. Existen otras técnicas que junto con los AGs pertenecen a esta rama, las más importantes son; Programación Evolutiva, Estrategias Evolutivas, Programación Genética y Sistemas Clasificadores. Las diferencias entre estas técnicas se basan principalmente en los diferentes operadores que emplean y en las distintas técnicas de selección y reproducción de los individuos de la población. Los AGs son muy potentes y efectivos sobre todo para aquellos problemas con un gran espacio de búsqueda y para los que no existe una técnica específica para resolverlo. Podemos aprovecharnos de los AGs para realizar tareas muy complejas que de otra forma sería muy difícil, o imposible, llevarlas a cabo con un enfoque más determinista; problemas basados en variables con interdependencias muy complejas, en ingeniería para optimizaciones numéricas de algunos problemas no lineales que resultan muy difíciles de resolver por métodos analíticos, son muy eficientes para el control de robots, e incluso resultan muy útiles para el ajuste de los pesos de las conexiones de redes neuronales, etc. 24 Cuando se va a aplicar un Algoritmo Genético (AG) para resolver un problema, el primer movimiento que se debe hacer es codificar dicho problema en un cromosoma artificial. Los cromosomas artificiales pueden ser cadenas de unos y ceros, listas de parámetros o hasta códigos complejos, pero la clave que debemos tener en mente es que la maquinaria genética manipulará una representación finita de soluciones, no las soluciones por sí mismas. Otro componente que se debe tener en cuenta cuando intentamos resolver un problema es el procedimiento o los medios para discriminar las soluciones buenas de las malas. La idea es que algo debe determinar la aptitud hacia el propósito de una solución. Esa determinación la logra la función de evaluación o función de Fitness, que será usada por el AG para guiar la evolución de las generaciones futuras. Una vez codificado el problema de manera cromosómica y teniendo los medios para discriminar las buenas soluciones de las malas, se está en condiciones de evolucionar soluciones para nuestro problema mediante la creación de una población inicial de soluciones posibles. Esta población puede ser creada aleatoriamente o utilizando algún conocimiento previo de buenas soluciones posibles, pero la idea principal es que se partirá la búsqueda desde una población y no desde un punto. Con la población en su lugar, los operadores genéticos pueden procesar la población iterativamente para crear una secuencia de poblaciones que esperanzadamente contendrán más y mejores soluciones para el problema en cuestión. Existe una amplia variedad de operadores utilizados en un AG, pero en general son selección, recombinación (o crossover) y mutación. El operador de selección aporta mayor supervivencia a los mejores individuos, en términos del problema. Es el mecanismo conocido como “supervivencia del más apto”. Su idea principal es la de seleccionar preferentemente las mejores soluciones. Por supuesto, si solo se eligieran las mejores soluciones en forma repetida de la población inicial, se esperaría hacer un poco más que simplemente ocupar la población con los mejores de la primera generación. Por lo tanto, la mera selección de los mejores no es suficiente, y deben hallarse los medios para crear nuevos y posiblemente mejores individuos. Es aquí cuando aparecen la recombinación y la mutación. La Recombinación es un operador genético que combina bits y partes de soluciones padres para formar nuevos y posiblemente mejores descendientes. De nuevo, existen 25 muchos caminos para lograrla, y alcanzar una performance competente depende de su aplicación apropiada. Mientras la recombinación crea un nuevo individuo mediante la cruza de material genético, la mutación actúa simplemente modificándolo. Existen muchas variaciones para la mutación, pero la idea principal es que un descendiente sea idéntico a su progenitor excepto en uno o más cambios en sus genes. De esta manera, la mutación representa un movimiento al azar en los alrededores de una solución particular. Figura 2. Representación de un Algoritmo Genético Fuente: CASTRO VENTURA, Yanina Katherine; CERNA ALVARADO, Rolando Carlos; ZUTTA MALAGA, Nelly Jasmín. Algoritmos Genéticos. Esquema de un Algoritmo Genético: Paso 1: t=0; generar una población aleatoria P={x1,...,xn} Paso 2: calcular f(x1),...,f(xn) Paso 3: t=t+1; aplicar los procedimientos de - selección - cruce - mutación generando una nueva población P’={x’1,...,x’n} Paso 4: reemplazar P por P’ Paso 5: si no se cumple un criterio de optimalidad ir al paso 3 26 Figura 3. Esquema de un Algoritmo Genético Fuente: CASTRO VENTURA, Yanina Katherine; CERNA ALVARADO, Rolando Carlos; ZUTTA MALAGA, Nelly Jasmín. Algoritmos Genéticos. La idea de los AG consiste en aplicar estas ideas sobre conjuntos de soluciones de un problema matemático, logrando nuevas y mejores soluciones. Figura 4. Ejemplo de ejecución de un algoritmo genético Fuente: CASTRO VENTURA, Yanina Katherine; CERNA ALVARADO, Rolando Carlos; ZUTTA MALAGA, Nelly Jasmín. Algoritmos Genéticos. 1.4.1.3.1.1 Inicialización de la población. La inicialización de la población determina el proceso de creación de los individuos para el primer ciclo del algoritmo. Normalmente, la población inicial se forma a partir de individuos creados aleatoriamente. Se puede crear también utilizando alguna técnica heurística pero los 27 pocos estudios que existen sobre este tema indican que el AG tenderá a converger más rápidamente pero con el riesgo de que el algoritmo converja hacia un óptimo local. 4 Las poblaciones iniciales creadas aleatoriamente pueden ser sembradas con cromosomas buenos para conseguir una evolución más rápida, si se conocen a priori, el valor de estas “semillas” buenas. 1.4.1.3.1.2 Función de Evaluación (Fitness). La evaluación es la unión entre el GA y el mundo externo. La evaluación se realiza a través de una función que representa de forma adecuada el problema y tiene como objetivo suministrar una medida de aptitud de cada individuo en la población actual. La función de evaluación es para un GA lo que el medio ambiente es para los seres humanos. Las funciones de evaluación son específicas de cada problema. En el ejemplo, la función matemática f(x)=x2 mide la aptitud de cada individuo. C1 es un individuo más apto que C2. 5 Un buen diseño de la función de evaluación (también conocida como función objetivo o función de adaptación) resulta extremadamente importante para el correcto funcionamiento de un AG. Esta función determina el grado de adaptación o aproximación de cada individuo al problema y por lo tanto permite distinguir a los mejores individuos de los peores. A esta puntuación en función de su proximidad a la mejor solución del problema se le denomina fitness. 1.4.1.3.1.3 Selección. Este operador es una versión artificial del concepto de selección natural (Darwin). La función objetivo está asociada al beneficio, utilidad o bondad que desea optimizarse La selección es el mecanismo por el cual soluciones más próximas al óptimo (individuos mejor adaptados ) tienen mayor probabilidad de sobrevivir y ser elegidos (seleccionados) para reproducirse. Supongamos que, en una determinada iteración del algoritmo, tenemos un conjunto de soluciones, que denominaremos población: 4 4 http://www.ica.ele.puc-rio.br/publicacoes/download/cnf_0111.pdf Ibid 3 28 P x1 , x2 ,..., xr , x j S Z y que cada una de ellas (que denominamos individuos) tiene un valor de la función objetivo f ( x1 ), f ( x2 ),..., f ( xr ) La selección supone que cuanto mayor sea f ( xi ) , mayor sea la probabilidad p i de que 6 x i sea elegido y se reproduzca. Una manera sencilla de hacer esto es tomar: pi f ( xi ) r f (x j 1 j ) Se debe garantizar que los mejores individuos tienen una mayor posibilidad de ser padres (reproducirse) frente a los individuos menos buenos. De tal forma, hay que ser cuidadosos para dar una oportunidad de reproducirse a los individuos menos buenos. Éstos pueden incluir material genético útil en el proceso de reproducción. Esta idea nos define la presión selectiva que determina en qué grado la reproducción está dirigida por los mejores individuos. 7 1.4.1.3.1.4 Cruce (Crossover). Se denomina técnica de cruce a la forma de calcular el genoma del nuevo individuo en función del genoma del padre y de la madre. El operador de cruce es fuertemente responsable de las propiedades del algoritmo genético, y determinará en gran medida la evolución de la población.8 Después de seleccionar a los individuos que engendrarán a la siguiente generación, llega el momento de cruzarlos (crossover) entre ellos, y al igual que en la naturaleza, el proceso consiste en crear a los descendientes a partir del intercambio de material genético de sus padres. Existen dos técnicas principales; intercambio a partir de un solo 6 7 8 http://lfc.uah.es/olmeda/CNeuronal/Tema4A.pdf , Computación Neuronal http://sci2s.ugr.es/docencia/bioinformatica/Bioinformatica-Tema_10.pdf, Bioinformatica http://www.orcero.org/irbis/disertacion/node1.html , Varios 29 punto de cruce y a partir de dos puntos de cruce. En ambas técnicas se obtienen dos descendientes fruto del cruce. Para ciertos problemas es necesario emplear una técnica de cruzamiento especializada que controle el proceso de intercambio genético evitando que se codifiquen en él soluciones inválidas. Independientemente de la técnica de cruce que se emplee, se suele implementar la reproducción en un AG como un valor porcentual que indica la frecuencia con la que se deben realizar los cruces, y los que no se crucen pasarán como réplicas de si mismos a la siguiente generación (hay que tener también en cuenta que existe la posibilidad de que se produzca una mutación durante la replicación del código). Esto nos lleva a una técnica muy importante desarrollada hace unos cuantos años conocida como elitismo. Consiste en que el mejor individuo de la población permanece inalterable generación tras generación (ni siquiera se le aplica ningún tipo de mutación) hasta que aparece un individuo con un fitness mejor que lo sustituye. Su importancia reside en que de esta forma nunca se pierde la mejor solución encontrada hasta el momento.9 1.4.1.3.1.5 Mutación. Da la posibilidad de recuperar material "genético" perdido en el continuo proceso de reproducción y crossover. Durante la fase de cruce se aplica el operador de mutación; aleatoriamente se modifican uno o más genes de los individuos descendientes de la anterior generación. Esto se realiza para aumentar la diversidad genética que favorece la aparición de individuos con un código genético distinto con la posibilidad de que sea mejor, es especialmente importante la mutación cuando la población, después de un cierto número de generaciones, tiende a converger hacia un óptimo local. No es conveniente abusar del operador de mutación si no queremos que el AG se convierta en un algoritmo de búsqueda al azar. 9 www.texelfactory.com/extras/Genetic_Algorithms_1.pdf , Javier Ventoso 30 Igual que sucede en la fase de cruce (reproducción), el proceso de mutación suele implementarse como un valor porcentual y se ha comprobado que el ajuste correcto del porcentaje de mutación es de vital importancia para el correcto funcionamiento del AG. 1.4.1.3.2 Strength Pareto Evolutionary Algorithm 2 El SPEA 2 es un algoritmo genético evolutivo utilizado para Optimización Multiobjetivo creado por Zitzler, Laumanns y Thiele10 en el año 2001. Este algoritmo mejora al algoritmo SPEA propuesto por Zitzler, Laumanns en 1999. SPEA 2 mantiene una población elitista en la que guarda los mejores elementos de la población en cada generación. Los elementos de la población elitista pueden estar conformados por elementos no dominados exclusivamente, o por la combinación de elementos no dominados y los mejores elementos no dominados, esto se debe a que en el SPEA 2 la población elitista es de tamaño fijo. Las principales diferencias entre el SPEA y el SPEA2 son las siguientes: Un esquema mejorado de asignación de Fitness que toma en cuenta a cuántos individuos domina un individuo y por cuántos individuos es dominado ese individuo. Una técnica de estimación de densidad del vecino más cercano. Un nuevo método de truncamiento en la población elitista que garantiza la preservación de soluciones en el Frente Pareto. A continuación, se muestra el esquema del SPEA 2. Entrada: N (Tamaño de la Población) N (Tamaño del archivo) T (Número máximo de Generaciones) 10 ZITZLER, Eckart; LAUMANNS, Marco and THIELE Lotear. SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Zurich: Swiss Federal Institute of Tecnology (ETH), 2000. Computer Engineering and Networks Laboratory (TIK) Report No. 31 Salida: A (Conjunto de no dominado) Paso 1. Inicialización: Generar la población inicial Po y crear el archivo vacío (Conjunto Externo) P o Φ. Colocar t=0 Paso 2. Asignación del Fitness: Calcular los valores de fitness de los individuos en Pt y P t Paso 3. Selección Ambiental: Copiar todos los individuos no dominados de Pt y P t a P t 1 . Si el tamaño de P t 1 excede a N , reducir P t 1 mediante el operador de truncamiento, de lo contrario, si el tamaño de P t 1 < N , entonces llenar con individuos dominados de Pt y P t . Paso 4. Terminación: Si t T o se satisface otro criterio de paro entonces retorne el conjunto A de soluciones no dominadas tomadas de P t 1 . Paso 5. Selección: Realizar torneo binario con reemplazo en P t 1 para llenar el conjunto de apareamiento. Paso 6. Cruzamiento: Aplicar los operadores de recombinación y cruzamiento al conjunto de apareamiento y construir Pt 1 . Incrementar t=t+1 e ir al paso 2. 1.4.1.3.3 Metaheurísticas De Colonias De Hormiga El proyecto MOSCA (dirigido por Luca Gambardella, director del IDSIA en Suiza) es una herramienta integrada de planificación, programación y control de sistemas de producción y distribución que brinda soporte a procesos de desarrollo sostenible. MOSCA se basa en colonias de hormiga como herramienta principal de optimización por sus características particulares de complejidad computacional y calidad de soluciones encontradas. A continuación se presenta una breve introducción a la metaheurística de colonias de hormiga. 32 Originalmente propuesto por Dorigo y Gambardella, las Colonias de Hormigas es una propuesta de fines de los ochenta. Esta técnica es una metaheurística destinada originalmente a problemas de optimización combinatoria y basada en la teoría de optimización mediante procedimientos de aprendizaje reforzado. El algoritmo principal es realmente un sistema multiagentes en el que las interacciones de bajo nivel entre agentes simples (llamados "hormigas") producen, en su conjunto, un comportamiento mucho más complejo, correspondiente a toda la colonia de hormigas. La idea se inspiró en colonias reales de hormigas. Las hormigas reales son capaces de encontrar el camino más corto entre una fuente de comida y su nido - por ejemplo - sin usar mecanismos visuales, sino sólo explotando el rastro de Feromona. Una forma en que las hormigas explotan la feromona para encontrar el camino más corto entre dos puntos es el que se muestra en la figura 5. Figura 5. Las hormigas y el camino más corto En a) las hormigas llegan a un punto en el cual deben decidirse por uno de los dos caminos a seguir. En b) se realiza una elección de camino, la que puede ser aleatoria, al haber bajos niveles de feromona, o guiada, al haber una diferencia notable entre la cantidad de feromona depositada en cada camino. En c), dado que la velocidad de una hormiga se considera aproximadamente constante, es claro sostener que las hormigas que eligieron el camino más corto se demorarán menos que las otras en llegar hasta el otro extremo, lo cual genera una mayor acumulación de feromona en el camino más 33 circulado. En d), la feromona acumulada en mayor cantidad en el camino más corto y más circulado guía a las hormigas a la fuente de alimento de la forma más rápida. Desde la perspectiva de la Inteligencia Artificial, las colonias de hormigas son realmente técnicas de búsqueda local con registro histórico (como la búsqueda tabú) de las rutas recorridas más y/o menos promisorias. Combinada con algoritmos evolutivos y con aprendizaje mediante reforzamiento, esta técnica ha sido aplicada recientemente con gran éxito a problemas de diseño en ingeniería, a optimización combinatoria y a optimización no lineal en general. El pseudo-codigo de las Metaheurísticas Colonias de Hormigas Genérico11 se muestra a continuación: Procedimiento Inicializar_Parametros ( ) While not condicion_parada ( ) Generacion= Generacion + 1 for ant = 1 to m //m es la cantidad de hormigas Construir_solucion ( ) Evaluar_solucion ( ) Actualizar_Frente_Pareto Actualizar_Feromonas ( ) Actualizar_Conjunto_Pareto ( ) End for End While End 11 PACIELLO CORONEL, Julio Manuel; MARTÍNEZ SANTACRUZ, Héctor Daniel; LEZCANO RÍOS, Christian Gerardo; BARÁN CEGLA, Benjamín. Algoritmos de Optimización Multi-Objetivos basados en Colonias De Hormigas. 34 Procedimiento Construir_solucion Sol= While existen_estados_no_visitados ( ) siguiente= seleccionar_siguiente_estado ( ) sol= sol siguiente marcar_como_visitado siguiente if (actualización_paso_a_paso) actualizar_feromonas_paso_a_paso ( ) End While End 1.5 METODOLOGIA 1.5.1 Tipo de estudio El tipo de estudio enmarcado en el proyecto se considera de tipo descriptivo, aplicativo, ya que dentro de la investigación, es necesario llegar a los factores o variables que desencadenan el problema, así mismo, se plantea como solución factible la aplicación e implementación del algoritmo propuesto para dar solución al problema de programación de operaciones en empresas con sistemas de producción flexibles en serie y múltiples objetivos de programación, procediendo a la descripción última de su utilización y los beneficios que surgen de la aplicación del sistema. 1.5.2 Método de Investigación El método de investigación principal utilizado en la realización del proyecto es el método analítico, el cual se basa en la identificación de las variables del problema. En este caso, se hace necesario el análisis de los componentes del sistema. 35 1.5.3 Fuentes y Técnicas La información requerida para el proyecto se toma de fuentes secundarias diversas como textos, prensa, documentos, revistas e Internet y de fuentes primarias como entrevistas con las personas con conocimientos en el área manejada. 1.5.4 Tratamiento de la información La información, materia prima principal de la investigación, se clasifica teniendo en cuenta la que esté relacionada con el DSM utilizado en algunos escenarios del problema planteado. 36 2. SUPUESTOS BÁSICOS Y DISEÑO DEL ALGORITMO HÍBRIDO ANT- COLONY 2.1 SUPUESTOS BÁSICOS Los supuestos básicos de los que parten la mayor parte de soluciones propuestas son las siguientes (Sipper, 1997): Los tiempos de operación son conocidos con certidumbre. Los tiempos de cambio de referencias son conocidos e independientes del orden de procesamiento. Todos los trabajos que se van a procesar están disponibles en tiempo cero. Sólo se consideran restricciones de precedencia entre las operaciones de un mismo trabajo. Una vez que el trabajo está montado en una máquina, éste no puede ser interrumpido. Aunque en algunos casos, estos supuestos no se ajustan mucho a la realidad, tratar de relajarlos implicaría una complejidad aún mayor en el ya bastante complejo problema. Adicionalmente existen en la realidad condiciones frecuentes tales como: Operaciones que se realizan fuera del taller (recubrimientos superficiales, tratamientos térmicos, etc.) Restricciones de recursos: Las herramientas y/o dispositivos y operarios son recursos limitados que suelen ser compartidos por máquinas de una estación o estaciones diferentes. Lotes de transporte: Cuando un trabajo está conformado por K piezas idénticas, la cantidad de piezas que se producen después de cada setup en cada máquina la denominaremos Lote, y la cantidad de piezas que se transportan entre máquinas la denominaremos Lote de transporte, el cual no necesariamente es igual al Lote, 37 por el contrario, el desempeño del sistema aumenta cuando el tamaño del lote de transporte se aproxima a la unidad. 2.2 DISEÑO DEL ALGORITMO HÍBRIDO ANT- COLONY La metaheurística para diseñar algoritmos de optimización basados en colonias de hormigas no fue concebida para tratar problemas multiobjetivo, por lo tanto se tiene que proponer una modificación que permita resolver el modelo propuesto en este trabajo. A continuación se presenta la adaptación del algoritmo: Procedimiento Inicializar_Parametros ( ) While not condicion_parada ( ) Generacion= Generacion + 1 repeat para cada hormiga k Construir_solucion ( ) Evaluar_solucion ( ) End repeat Actualizar_Frente_Pareto Actualizar_Feromonas ( ) If (no_cambio (CP, K') //sin cambios en K' generaciones Reiniciar_ feromonas ( ) End While End Para resolver el modelo planteado con anterioridad, se utilizará el grafo de construcción AQ(r, s) que tiene componentes AQ = r (nodos de la red) y s (enlaces entre los nodos). A cada enlace lij L se le asocia un vector feromona ijsf R 2 donde f F y 0< s 2 , esto quiere decir que para cada flujos maneja un vector de feromonas independiente. 38 Las soluciones candidatas S son conjuntos de árboles que representa a una secuencia de f F . Cada uno de lo árboles serán conjuntos de caminos que inician en una fuente sf y finalizan en un destino t f T f . 2.2.1 Construir_solucion. problema. En este procedimiento se construyen soluciones del Para construir una solución factible al modelo planteado, se necesita, inicialmente, construir un conjunto de árboles factibles, los cuales son un conjunto de caminos factibles que tomaría desde el nodo fuente sf hacia los destinos t f T f . La construcción de una solución, es un proceso iterativo que construye árboles para cada flujo. Igualmente, los árboles se construyen iterativamente, a partir del nodo fuente y de los destinos de un flujo se construyen los caminos. Así, cuando se tiene una solución completa factible, se agrega en la lista de soluciones.12 2.2.2 Evaluar_solucion. La evaluación de la solución consiste en revisar la optimalidad de las soluciones construidas por las hormigas con referencia a los objetivos planteados en el problema a resolver. 2.2.3 Actualizar_Frente_Pareto. Es el método mediante el cual, en cada iteración i, a partir de los elementos en la lista de soluciones y del frente de Pareto encontrado hasta el momento, encuentra todos los elementos no dominados actualizando la lista del Frente Pareto. 2.2.4 Actualizar_Feromonas. En este procedimiento la actualización se puede hacer de varias formas, una es como hace el Ant System. La actualización y evaporación de feromonas se realiza según la ecuación: i , j (1 ) i , j 12 ARDILA HERNÁNDEZ, Carlos J. Diseño y análisis comparativo del algoritmo híbrido Ant ColonyEvolutivos con respecto al algoritmo Ant Colony en la solución de un problema de optimización Multiobjetivo en Redes ópticas. 2006. 39 donde representa el coeficiente de evaporación, y se calcula como: 1 f k (x) con k 1,2,..., b en el caso de realizar una actualización basada en un solo objetivo. Para el caso de actualización considerando los b objetivos al mismo tiempo, se calcula: 1 b f k 1 k ( x) Ahora bien, la que minimiza la función por consiguiente aporta más feromona. Este esquema extendido a varias matrices de feromonas, una por cada objetivo debido a su forma de actualización llega un momento en el que no mejora porque no se le están haciendo presión a las soluciones para que se muevan, es decir, el algoritmos aunque evoluciona, llega un punto en que no evoluciona más, por lo cual, se hizo necesario utilizar otra metodología para realizar la actualización de la feromona, en este caso, el esquema con el que trabaja SPEA 2. En esta caso, SPEA 2 clasifica las soluciones por frentes, una vez que eso pasa entonces SPEA 2 selecciona las k mejores soluciones de la clasificación, teóricamente esas soluciones son las del Frente de Pareto, pero si no hay soluciones en el frente, SPEA 2 llena los restantes espacios del frente con las siguientes soluciones, entonces, las k soluciones son las que actualizan las feromonas. 2.2.5 Reiniciar_ feromonas. Es un mecanismo de control de convergencia al algoritmo, que consiste en reiniciar la tabla de feromonas si durante K' generaciones, con K' definido a priori, no se encontraron soluciones no dominadas. De esta manera, se favorece la exploración de nuevos caminos. Este mecanismo ayuda a continuar la búsqueda ante situaciones de convergencia como óptimos locales. En la nueva propuesta, se reinicializa la tabla de feromonas de manera a continuar la ejecución. 40 3. EXPERIMENTACIÓN Y ANÁLISIS DE RESULTADOS Para la ejecución del algoritmo se adaptaron dos problemas que cumplieran con las características esenciales para ser resueltos, y se ejecutó 30 veces el algoritmo. Las soluciones óptimas en cada iteración y la mejor encontrada por el algoritmo propuesto son conocidas. En esta instancia el tiempo de procesamiento de los trabajos en cada máquina por estación esta dado en minutos. Se asume que no hay tiempo de alistamiento entre máquinas por estación, fechas de liberación de órdenes de trabajo y fechas de entrega. A continuación se presentan brevemente la descripción de los archivos de entrada, las características del experimento, la configuración de los parámetros, los resultados obtenidos, la comparación de los resultados obtenidos y por último el análisis de los resultados. 3.1 DESCRIPCIÓN DE LOS ARCHIVOS DE ENTRADA Para la realización del experimento se tomó como prueba un escenario flowshop flexible, estableciendo un archivo de entrada con el siguiente formato: Número de Estaciones Número de Trabajos Número de máquinas por estación Tiempos de procesamiento de cada trabajo en cada máquina A continuación se muestran la tabla que describen los datos de entrada del escenario de flowshop planteado: Tabla 1. Escenario Flowshop Flexible # de Estaciones 2 # de Trabajos 16 # de máquinas en la estación k T. p. del trabajo i en la máquina 1 de la estación 1 T. p. del trabajo i en la máquina 2 de la estación 2 T. p. del trabajo i en la máquina 3 de la estación 2 1 2 5 9 3 5 3 2 9 3 7 5 3 2 4 4 9 7 9 2 7 8 5 3 5 5 3 3 4 9 7 5 8 2 9 2 7 8 5 3 5 5 3 3 4 9 7 5 8 2 41 3.2 CARACTERÍSTICAS DEL EXPERIMENTO El experimento toma las características establecidas, y se analiza el comportamiento de los resultados luego de haber definido las parámetros para la ejecución del algoritmo: Número de Hormigas. Es un número natural que indica cuantas soluciones se van a construir en cada iteración del algoritmo. Número de Generaciones. Es el número de iteraciones de las medidas de aptitud y la creación de una nueva población. Soluciones en el Frente Elitista. Es un número natural. Como es sabido SPEA 2 mantiene un frente elitista de cierto número de soluciones que pueden ser todas no dominadas entre si, o pueden ser no dominadas con las mejores dominadas. Este número no es necesariamente el número de soluciones que va a dar como resultado el algoritmo propuesto, pero si es el máximo de soluciones si todas las soluciones que encuentre son no dominadas. Tipo de Dominancia (Fuerte o Débil). De acuerdo a los objetivos que se pretenden optimizar, esta opción permite escoger el tipo de dominancia a utilizar al momento de evaluar dos o más soluciones. 3.3 CONFIGURACIÓN DE PARÁMETROS En este tipo de técnicas de optimización, la configuración de parámetros es definitivamente un aspecto de mucha incidencia sobre los resultados. El anterior numeral lista algunos de los parámetros configurables del algoritmo propuesto, respectivamente. A excepción del tipo de dominancia, el cual siempre será utilizado con dominancia fuerte. Estos son: Número de hormigas. Se verificó con = 50,10, 200; encontrando en general mejores soluciones con = 100. 42 Número de Generaciones. Se verificó con = 30, 50, 100; encontrando en general mejores soluciones con = 50. Soluciones en el Frente Elitista. Se verificó con = 10, 30, 50, 70; encontrando en general mejore soluciones con = 10. Figura 6. Imagen “Parámetros para la ejecución del Algoritmo” 3.4 RESULTADOS OBTENIDOS Las Tablas 2, 3, 4, 5, 6, 7 resumen los resultados de las 30 corridas con algoritmo MHFACO (Hybrid Multiobjective Flowhop using Ant Colony) propuesto al ser aplicado en el escenario planteado de un flowshop flexible: 43 Tabla 2. Resultados iteración 1-5 Iteración 1 2 3 4 5 Cmax (f1) TotalCompletion (f2) 94 819 93 929 82 962 87 940 94 819 85 84 83 85 806 879 970 806 86 986 87 913 93 902 99 864 86 986 85 959 86 834 85 959 83 974 85 864 83 974 44 Tabla 3. Resultados iteración 6-10 Iteración Cmax (f1) TotalCompletion (f2) 6 82 84 85 82 976 958 829 976 96 873 83 981 84 975 85 918 87 913 89 907 96 873 82 919 89 855 82 919 7 8 9 10 88 887 84 1020 87 951 86 954 85 1008 88 887 96 859 86 894 83 908 96 859 45 Tabla 4. Resultados iteración 11-15 Iteración 11 12 13 14 15 Cmax (f1) TotalCompletion (f2) 87 895 88 891 82 920 91 794 87 895 84 976 85 911 91 890 95 885 84 976 98 97 87 86 85 98 882 899 901 977 987 882 82 909 85 828 82 909 82 909 85 828 82 909 93 911 91 920 97 907 82 952 46 Tabla 5. Resultados iteración 16-20 Iteración 16 17 18 19 20 Cmax (f1) TotalCompletion (f2) 90 847 86 867 85 894 85 948 82 955 90 847 83 956 87 890 90 863 83 956 87 82 87 822 943 822 82 913 86 904 88 899 93 885 82 913 82 913 86 904 88 899 93 885 82 913 47 Tabla 6. Resultados iteración 21-25 Iteración 21 22 23 24 25 Cmax (f1) TotalCompletion (f2) 91 864 84 919 85 881 91 864 86 965 87 933 83 986 88 915 90 880 86 965 89 870 85 971 92 856 89 870 83 84 87 83 935 889 869 935 95 836 93 849 82 866 81 940 95 836 48 Tabla 7. Resultados iteración 26-30 Iteración 26 27 28 29 30 Cmax (f1) TotalCompletion (f2) 85 983 96 897 84 984 92 913 86 924 88 922 89 919 85 983 85 1053 92 896 87 903 85 1053 89 839 93 821 85 933 89 839 90 887 89 926 82 965 90 887 85 952 86 935 95 890 88 933 89 922 109 887 85 952 49 3.5 COMPARACIÓN DE RESULTADOS La aplicación computacional de colonias de hormiga propuesta para la optimización de los dos objetivos en producción mencionados en el desarrollo del documento: minimización del lapso (Cmax) de producción y la suma de los tiempos de terminación (C), en un entorno flowshop flexible, no ha sido implementado con anterioridad. En esta sección se compara los resultados obtenidos mediante la herramienta propuesta, con los resultados obtenidos con el software de dominio público LEKIN ® diseñando en Stern School of business, de la Universidad de New Cork en un proyecto dirigido por el profesor Michael L. Pinedo y el profesor asociado Xiuli Chao, para la resolución de problemas de scheduling con un solo objetivo a optimizar. El análisis comparativo se hizo con base al problema planteado, hallando el % diferencial entre los resultados obtenidos para el makespan entre los dos métodos, y de igual forma con la suma de los tiempos de terminación. El porcentaje diferencial se calculó de la siguiente manera: Primer Paso: Obtener el porcentual del resultado obtenido con el algoritmo propuesto Vs. resultado obtenido con el LEKIN®. Porcentual _ C max _ Pr opuesto_ Vs. _ Lekin Porcentual _ C _ Pr opuesto_ Vs. _ Lekin C max propuesto *100% C max lekin C propuesto *100% Clekin 50 Segundo Paso: Obtener la diferencia porcentual entre los resultados obtenidos con las herramientas mencionadas. Diferencia_ porcentual_ Cmax _ Pr opuesto_ Vs. _ Lekin Valor_ Porcentual_ Lekin Valor_ Porcentual_ Pr opuesto Diferencia_ porcentual_ C _ Pr opuesto_ Vs. _ Lekin Valor_ Porcentual_ Lekin Valor_ Porcentual_ Pr opuesto Los resultados presentado por el LEKIN ® se presentan en las figuras 7 y 8 para cada uno de los objetivos a optimizar C max , C Figura 7. Resultados del Cmax presentados por el LEKIN ® 51 Figura 8. Resultados del C presentados por el LEKIN ® A partir de los resultados obtenidos con el LEKIN ® a continuación se presentan en las Tablas 8, 9, 10, 11, 12, 13, los porcentajes diferenciales con referencia a los resultados de las 30 corridas con el algoritmo MHFACO. 52 Tabla 8. Porcentajes diferenciales iteración 1-5 Iteración 1 2 3 4 5 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 94 115 -15 819 137 -37 93 113 -13 929 156 -56 82 100 0 962 161 -61 87 106 -6 940 157 -57 94 115 -15 819 137 -37 85 84 83 85 104 102 101 104 -4 -2 -1 -4 806 879 970 806 135 147 162 135 -35 -47 -62 -35 86 105 -5 986 165 -65 87 106 -6 913 153 -53 93 113 -13 902 151 -51 99 121 -21 864 145 -45 86 105 -5 986 165 -65 85 104 -4 959 161 -61 86 105 -5 834 140 -40 85 104 -4 959 161 -61 83 101 -1 974 163 -63 85 104 -4 864 145 -45 83 101 -1 974 163 -63 53 Tabla 9. Porcentajes diferenciales iteración 6-10 Iteración Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 6 82 84 85 82 100 102 104 100 0 -2 -4 0 976 958 829 976 163 160 139 163 -63 -60 -39 -63 96 117 -17 873 146 -46 83 101 -1 981 164 -64 84 102 -2 975 163 -63 85 104 -4 918 154 -54 87 106 -6 913 153 -53 89 109 -9 907 152 -52 96 117 -17 873 146 -46 82 100 0 919 154 -54 89 109 -9 855 143 -43 82 100 0 919 154 -54 88 107 -7 887 149 -49 84 102 -2 1020 171 -71 87 106 -6 951 159 -59 86 105 -5 954 160 -60 85 104 -4 1008 169 -69 88 107 -7 887 149 -49 96 117 -17 859 144 -44 86 105 -5 894 150 -50 83 101 -1 908 152 -52 96 117 -17 859 144 -44 7 8 9 10 54 Tabla 10. Porcentajes diferenciales iteración 11-15 Iteración 11 12 13 14 15 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 87 106 -6 895 150 -50 88 107 -7 891 149 -49 82 100 0 920 154 -54 91 111 -11 794 133 -33 87 106 -6 895 150 -50 84 102 -2 976 163 -63 85 104 -4 911 153 -53 91 111 -11 890 149 -49 95 116 -16 885 148 -48 84 102 -2 976 163 -63 98 97 87 86 85 98 120 118 106 105 104 120 -20 -18 -6 -5 -4 -20 882 899 901 977 987 882 148 151 151 164 165 148 -48 -51 -51 -64 -65 -48 82 100 0 909 152 -52 85 104 -4 828 139 -39 82 100 0 909 152 -52 82 100 0 952 159 -52 86 105 -5 937 157 -39 89 109 -9 935 157 -52 93 113 -13 911 153 -53 55 91 111 -11 920 154 -54 97 118 -18 907 152 -52 82 100 0 952 159 -59 56 Tabla 11. Porcentajes diferenciales iteración 16-20 Iteración 16 17 18 19 20 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 90 110 -10 847 142 -42 86 105 -5 867 145 -45 85 104 -4 894 150 -50 85 104 -4 948 159 -59 82 100 0 955 160 -60 90 110 -10 847 142 -42 83 101 -1 956 160 -60 87 106 -6 890 149 -49 90 110 -10 863 145 -45 83 101 -1 956 160 -60 87 82 87 106 100 106 -6 0 -6 822 943 822 138 158 138 -38 -58 -38 82 100 0 913 153 -53 86 105 -5 904 151 -51 88 107 -7 899 151 -51 93 113 -13 885 148 -48 82 100 0 913 153 -53 91 111 -11 864 145 -45 84 102 -2 919 154 -54 85 104 -4 881 148 -48 91 111 -11 864 145 -45 57 Tabla 12. Porcentajes diferenciales iteración 21-25 Iteración 21 22 23 24 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 91 111 -11 864 145 -45 84 102 -2 919 154 -54 85 104 -4 881 148 -48 91 111 -11 864 145 -45 86 105 -5 965 162 -62 87 106 -6 933 156 -56 83 101 -1 986 165 -65 88 107 -7 915 153 -53 90 110 -10 880 147 -47 86 105 -5 965 162 -62 89 109 -9 870 146 -46 85 104 -4 971 163 -63 92 112 -12 856 143 -43 89 109 -9 870 146 -46 83 84 87 83 101 102 106 101 -1 -2 -6 -1 935 889 869 935 157 149 146 157 -57 -49 -46 -57 58 Iteración 25 Cmax (f1) Porcentual Propuesto Vs. Lekin Porcentual Propuesto Vs. Lekin Diferencia % 95 116 -16 836 140 -40 93 113 -13 849 142 -42 82 100 0 866 145 -45 81 99 1 940 157 -57 95 116 -16 836 140 -40 Diferencia % TotalCompletion (f2) 59 Tabla 13. Porcentajes diferenciales iteración 26-30 Iteración 26 27 28 29 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia TotalCompletion (f2) % Porcentual Propuesto Vs. Lekin 85 104 -4 983 165 96 117 -17 897 150 -50 84 102 -2 984 165 -65 92 112 -12 913 153 -53 86 105 -5 924 155 -55 88 107 -7 922 154 -54 89 109 -9 919 154 -54 85 104 -4 983 165 -65 85 104 -4 1053 176 -76 92 112 -12 896 150 -50 87 106 -6 903 151 -51 85 104 -4 1053 176 -76 89 109 -9 839 141 -41 93 113 -13 821 138 -38 85 104 -4 933 156 -56 89 109 -9 839 141 -41 90 110 -10 887 149 -49 89 109 -9 926 155 -55 82 100 0 965 162 -62 90 110 -10 887 149 -49 Diferencia % 60 Iteración 30 Cmax (f1) Porcentual Propuesto Vs. Lekin Diferencia % TotalCompletion (f2) Porcentual Propuesto Vs. Lekin Diferencia % 85 104 -4 952 159 -59 86 105 -5 935 157 -57 95 116 -16 890 149 -49 88 107 -7 933 156 -56 89 109 -9 922 154 -54 109 133 -33 887 149 -49 85 104 -4 952 159 -59 61 3.6 ANÁLISIS DE LOS RESULTADOS De acuerdo con los resultados obtenidos, en los que se muestra el comportamiento del algoritmo propuesto al ser probado, se optimizan las dos funciones objetivos mencionadas con anterioridad y cuya solución se ve alcanzada con metaheurísticas. Para esto se propone la integración de procedimientos evolutivos del algoritmo SPEA2 en el Ant Colony, creando un algoritmo híbrido denominado MHFACO. Partiendo de la premisa de que los modelos de optimización Ant-Colony, son realmente un sistema multi-agente destinado originalmente a problemas de optimización combinatoria y basada en la teoría de optimización mediante procedimientos de aprendizaje reforzado, este algoritmo presenta muy buenas soluciones en la optimización de problemas combinatorios tipo NP-hard. Debido a lo anteriormente mencionado, la aplicación de modelos de optimización AntColony en la programación de operaciones de un entorno flowshop flexible parece razonable y promisorio como se puede observar en la comparación de los resultados presentados por la herramienta propuesta Vs. Resultado del LEKIN ® en las Tablas 8, 9, 10, 11, 12, 13. Ahora bien, tomando como referencia las tablas donde se encuentra la comparación de los resultados en las diferentes iteraciones, el algoritmo propuesto para el problema resuelto, presenta una buena aproximación al resultado obtenido por el LEKIN®, en donde se encuentra una diferencia porcentual para f1 que varía desde el 0% como la mejor aproximación ( C max 82 ), hasta un -21% para la solución más alejada ( C max 99 ) al resultado obtenido por la herramienta utilizada como punto de comparación; y para el caso de f2, la diferencia porcentual varía entre -35% y -65%, tomando como la mejor solución la que nos da como diferencia porcentual el valor de -35% ( C 806 ) y como la solución más alejada la que nos da como diferencia porcentual el valor de -65% ( C 986 ). De igual forma se analizaron los resultados presentados en las iteraciones 6-30 en donde se encuentra una diferencia porcentual para f1 que varía desde el 0% como la mejor 62 aproximación ( C max 82 ), hasta un -33% para la solución más alejada ( C max 109 ) al resultado obtenido por la herramienta utilizada como punto de comparación; y para el caso de f2, la diferencia porcentual varía entre -33% y -65%, tomando como la mejor solución la que nos da como diferencia porcentual el valor de -35% ( C 794 ) y como la solución más alejada la que nos da como diferencia porcentual el valor de -65% ( C 986 ). En estos resultados, se observa para cada modelo, que los resultados obtenidos de los promedios de las 30 iteraciones durante la ejecución del algoritmo MHFACO, dominan en algunos casos débilmente y en otros más fuertemente a los resultados producidos por la herramienta LEKIN ®. El hecho anterior nos da bases para afirmar que el algoritmo MHFACO esta convergiendo a buenas soluciones, determinando en ellas mejores resultados con respecto al primer objetivo ( C max ) a optimizar que con respecto al segundo ( C ), lo cual teóricamente es sustentable debido a que en las soluciones de un problema con objetivos múltiples se tienen en cuenta todos los objetivos al mismo tiempo, por lo cual, ningún objetivo puede mejorarse sin degradar a los demás. Luego se establece como para afirmar que una situación o solución es mejor que otra, el que en ella no se disminuya a nadie, pero se mejore a alguno; es decir que una situación será mejor que otra sólo si en la nueva es posible compensar las pérdidas de todos los perjudicados y aún queda un sobrante. El hecho anterior nos da bases para afirmar que el algoritmo MHFACO esta convergiendo a la solución verdadera, aunque desconocida, con mejor aproximación y esto confirmará mediante al análisis funcional de las soluciones obtenidas a través de la siguiente métrica: el Spacing (S), donde el frente de Pareto real este será asociado con el frente de Pareto producido por el algoritmo propuesto. A continuación se presenta la definición de la métrica nombrada: SPACING (S) La métrica S, nos indica qué tan bien están distribuidas las soluciones sobre el frente de Pareto. 63 S Donde 1 N 1 N (d di) 2 i 1 i di min j f1i ( x) f1 j ( x) f 2i ( x) f 2j ( x) f31 ( x) f3j ( x) ; i, j 1,2,..., N ; d es la media de todos los di y N es el número de vectores en Yknown. A continuación se presenta el resultado obtenido por la herramienta MHFACO, el cual se evaluará mediante la métrica de desempeño “Spacing”: Figura 9. Frente de Pareto obtenido con la herramienta MHFACO 64 Tabla 14. Coordenadas del Frente de Pareto obtenido con la herramienta MHFACO CMax TotalCompletion 83 84 87 83 935 889 869 935 Teniendo en cuenta la formulación matemática del Spacing, las distancias de cada punto en le frente exceptuando el último punto por ser igual al primero, y la distancia promedio se presentan a continuación: d A 20 d B 20 dC 20 d 20 Luego S sería: S 1 (20 20 2 20 20 2 20 20 2 ) 0 3 1 Por lo tanto, como el valor del Spacing evaluado da como resultado un valor de cero, esto nos estaría asegurando un buena distribución de los elementos del Yknown , que para esta métrica un valor de 0 significa que todos los elementos de debido a Yknown están equidistantemente espaciados. 65 4. CONCLUSIÓN Y TRABAJOS FUTUROS 4.1 CONCLUSIONES En la presente investigación se desarrolló una herramienta computacional para la programación de operaciones en empresas con sistemas de producción flexibles en serie, optimizando en ellos 2 objetivos. En producción se minimiza el lapso (Cmax) de producción y la suma de tiempos de terminación ( C ), cuya solución se alcanza a través de una propuesta de integración de procedimientos evolutivos del algoritmo SPEA2 en el Ant Colony, creando un algoritmo hibrido denominado MHFACO. Para la implementación de esta herramienta, durante la investigación, se generaron varias instancias que pueden ser utilizadas por otros investigadores para sus futuros análisis. De acuerdo con los resultados discutidos en la referencia 3, en los que se muestra el comportamiento del algoritmo propuesto Vs. El resultado obtenido con la herramienta LEKIN ®, se puede concluir: El algoritmo MHFACO tuvo muy buenos resultados, al aplicar la métrica de desempeño: Spacing, donde presenta soluciones distribuidas y espaciadas uniformemente. Los resultados obtenidos de los promedios de las 30 iteraciones durante la ejecución del algoritmo MHFACO, esta convergiendo a buenas soluciones, determinando en ellas mejores resultados con respecto al primer objetivo ( C max ) a optimizar que con respecto al segundo ( C ). 4.2 TRABAJOS FUTUROS Implementar el algoritmo MHFACO, en entorno sistemas de producción flexibles con máquinas con diferentes velocidades. Introducir tiempos de alistamiento dependientes de la secuencia Introducir limitación de buffers al flujo de producto Preparar módulos para flujo re-entrante de órdenes de producción en el taller 66 ANEXOS 67 ANEXO 1. FRENTE PARETO ITERACIÓN 1 CMax TotalCompletion 94 93 82 87 94 819 929 962 940 819 68 ANEXO 2. FRENTE PARETO ITERACIÓN 2 CMax TotalCompletion 85 84 83 85 806 879 970 806 69 ANEXO 3. FRENTE PARETO ITERACIÓN 3 CMax TotalCompletion 86 87 93 99 86 986 913 902 864 986 70 ANEXO 4. FRENTE PARETO ITERACIÓN 4 CMax TotalCompletion 85 86 85 959 834 959 71 ANEXO 5. FRENTE PARETO ITERACIÓN 5 CMax TotalCompletion 83 85 83 974 864 974 72 ANEXO 6. FRENTE PARETO ITERACIÓN 6 CMax TotalCompletion 82 84 85 82 976 958 829 976 73 ANEXO 7. FRENTE PARETO ITERACIÓN 7 CMax TotalCompletion 96 83 84 85 87 89 96 873 981 975 918 913 907 873 74 ANEXO 8. FRENTE PARETO ITERACIÓN 8 CMax TotalCompletion 82 89 82 919 855 919 75 ANEXO 9. FRENTE PARETO ITERACIÓN 9 CMax TotalCompletion 88 84 87 86 85 88 887 1020 951 954 1008 887 76 ANEXO 10. FRENTE PARETO ITERACIÓN 10 CMax TotalCompletion 96 86 83 96 859 894 908 859 77 ANEXO 11. FRENTE PARETO ITERACIÓN 11 CMax TotalCompletion 87 88 82 91 87 895 891 920 794 895 78 ANEXO 12. FRENTE PARETO ITERACIÓN 12 CMax TotalCompletion 84 85 91 95 84 976 911 890 885 976 79 ANEXO 13. FRENTE PARETO ITERACIÓN 13 CMax TotalCompletion 98 97 87 86 85 98 882 899 901 977 987 882 80 ANEXO 14. FRENTE PARETO ITERACIÓN 14 CMax TotalCompletion 82 85 82 909 828 909 81 ANEXO 15. FRENTE PARETO ITERACIÓN 15 CMax TotalCompletion 82 86 89 93 91 97 82 952 937 935 911 920 907 952 82 ANEXO 16. FRENTE PARETO ITERACIÓN 16 CMax TotalCompletion 90 86 85 85 82 847 867 894 948 955 90 847 83 ANEXO 17. FRENTE PARETO ITERACIÓN 17 CMax TotalCompletion 83 87 90 83 956 890 863 956 84 ANEXO 18. FRENTE PARETO ITERACIÓN 18 CMax TotalCompletion 87 82 87 822 943 822 85 ANEXO 19. FRENTE PARETO ITERACIÓN 19 CMax TotalCompletion 82 86 88 93 82 913 904 899 885 913 86 ANEXO 20. FRENTE PARETO ITERACIÓN 20 CMax TotalCompletion 91 84 85 91 864 919 881 864 87 ANEXO 21. FRENTE PARETO ITERACIÓN 21 CMax TotalCompletion 86 87 83 88 90 86 965 933 986 915 880 965 88 ANEXO 22. FRENTE PARETO ITERACIÓN 22 CMax TotalCompletion 89 85 92 89 870 971 856 870 89 ANEXO 23. FRENTE PARETO ITERACIÓN 23 CMax TotalCompletion 83 84 87 83 935 889 869 935 90 ANEXO 24. FRENTE PARETO ITERACIÓN 24 CMax TotalCompletion 95 93 82 81 95 836 849 866 940 836 91 ANEXO 25. FRENTE PARETO ITERACIÓN 25 CMax TotalCompletion 85 96 84 92 86 983 897 984 913 924 88 89 85 922 919 983 92 ANEXO 26. FRENTE PARETO ITERACIÓN 26 CMax TotalCompletion 85 92 87 85 1053 896 903 1053 93 ANEXO 27. FRENTE PARETO ITERACIÓN 27 CMax TotalCompletion 89 93 85 89 839 821 933 839 94 ANEXO 28. FRENTE PARETO ITERACIÓN 28 CMax TotalCompletion 90 89 82 90 887 926 965 887 95 ANEXO 29. FRENTE PARETO ITERACIÓN 29 CMax TotalCompletion 85 86 95 88 89 109 85 952 935 890 933 922 887 952 96 ANEXO 30. FRENTE PARETO ITERACIÓN 30 CMax TotalCompletion 83 88 87 105 83 932 856 869 855 932 97 BIBLIOGRAFÍA Fábregas, Aldo, Rodrigo Wadnipar, Carlos D. Paternina-Arboleda y Alfonso Mancilla. Simulación de Sistemas Productivos. Ediciones Uninorte. 2004. OPERATION SCHEDULING, WITH APLICATIONS IN MANUFACTURING AND SERVICES. Pinedo-Chao. Irwin-Mc Graw Hill. 1999. FORMULATING THE SINGLE MACHINE SEQUENCING PROBLEM WITH RELEASE DATES AS A MIXED INTEGER PROGRAM. Martin E. DYER. Department of Computer Studies, University of Leeds, Leeds, LS29JT, UK. SCHEDULING WITH RELEASE DATES ON A SINGLE MACHINE TO MINIMIZE TOTAL WEIGHTED COMPLETION TIME. H. Belouadah. Faculty of Mathematical Studies, University of Southampton, UK. IEOR E4406: Facilities Layout and Planning. Lecture 8. Planar Single Faciliy Location. IEOR E4406: Facilities Layout and Planning. Lecture 11. Planar Multi Faciliy Location. INTELIGENT DYNAMIC CONTROLS POLICIES FOR SERIAL PRODUCTIO LINES. Carlos D. Paternina A., Tapas K. Das, Industrial and Management System Enginneering Department. University of South Florida. Tampa, FL 33620. SCHEDULING TO MINIMIZE AVERAGE COMPLETION TIME: OFF-LINE AND ON-LINE APPROXIMATION ALGORITHMS. Leslie A. Hall, Andres S. Schulz, David B. Shmoys, Joel Wein. Matehmatics of operations research. Vol 22, No 3, August 1997. A COMPARISON BETWEEN BASIC CYCLIC SCHEDULING AND VRIABLE CYCLIC SCHEDULING IN A TWO-STAGE HYBRID FLOW SHOP. Hitoshi Tsubone, Masahito Susuki. Tokyo Metropolitan Institute of Tecnology, 6-6 Asahigaota, Hino, Tokyo, 191-0065, Japan. 98 LOCAL SEARCH ALGORITHMS FOR THE MULTIPROCESOR FLOW SHOP SHEDULING PROBLEM. Ebbe G. Negenman. Deparment of Technology Management, Eindhoven University of Technology, The Netherlands. SYNOPSE: A MODEL-BSED DECISION SUPORT SYSTEM FOR THE EVALUATION OF FLIGHT SCHEDULES FOR CARGO AIRLINES. J. Antes, L. Campen, U. Derings, C. Titze, G.D:Wolle. Winford, University of Cologne, Germany. A TABU SEARCH HEURISTIC FOR THE UNDIRECTED SELECTIVE TRAVELING SALESMAN PROBLEM. Michael Gendreau, Gilbert Laporte, Fréderic Sement. Center de Recherche sur les Transport. University of Montreal. Montreal, Canada. INTELLIGENT DYNAMIC CONTROL POLICIES FOR SERIAL PRODUCTION LINES. Carlos D. Paternina A. Tapas K. Das. Industrial and Management Systems Engineering Department. University of south Florida, Tampa, FL. A GENETIC ALGORITHM BASED PROCEDURE FOR MORE REALISTIC JOB SHOP SCHEDULING PROBLEMS. M. A. B. Candido, S. K. Khator, R. M. Barcia. Deparment or Informatics, Pontificial Catholic University of Parana, Curitiba, Brazil. SCHEDULING IN AN AUTOMATED FLOW SHOP TO MINIMIZE COST: BACKWARD-META SCHEDULING METHOD. Ruengsak Kawtummachai, Yoshinari Yanagawa, Kasumasa Ohashi. Engineering Mathematics, Faculty of Engeniering. Okayama University, Japan. DYNAMIC JOB SHOP SCHEDULING USING REINFORCEMENT LEARNING AGENTS. M. Emin Aydin, Ercan Oztemel. Department of Industrial Ingineering, Sakarya University. Adapazari, Turkey. ASIGNACION Y SECUENCIACION DE TAREAS SOBRE MAQUINAS, POR MEDIO DE HEURISTICAS DE ENFRIAMIENTO SIMULADO. Fidel torres, Andres Troncoso, Pascal Blanc. Universidad de los Andes, Departamento de Ingeniería Industrial. Santa Fe de Bogota, Colombia. PINEDO Michael. SCHEDULING Theory, algorithms, and Systems, second edition. Prentice Hall, 2002. 99 ASKIN Ronald G, STANDRIDGE Charles R. modeling and analisis of manufacturing systems. 1993. PINEDO Michael, CHAO Xiuli. operation scheduling with applications in manufacturing and services. Irwin-McGrawHill, 1999. NARDUCCI Francesco, Software genérico de programación de operaciones, con base en algoritmos heurísticos. Proyecto de grado, titulo Ing. Industrial. Universidad del Norte 2002. SCRICH Cintya, ARMENTADO Vinicius, LAGUNA manuel. Tardiness minimzation in a flexible job shop; A tabu search approach. CHAMBERS Jhon B, BARNES J. Weley. Reactive search for flexible job shop scheduling. CHAMBERS Jhon B, BARNES J. Weley. Flexible job shop scheduling by tabu search. BONDORFER, Ralf, Martin Grotschel, Andreas Lobel. “Optimization of transportation systems”. BRUNNER, Daniel. (1998). “Towar increased use of simulation in transportation”. DE LA CRUZ, Jair J. and Carlos D. Paternina-Arboleda. An Ant Colony System approach for heterogeneous vehicle routing problems with time windows and multiple products. III Colombian congress and 1st international Andean conference on Operational Research. Cartagena, Colombia, 2004. DE LA CRUZ, Jair J. and Carlos D. Paternina-Arboleda. A Two-Pheromone Trail ACS Approach for Heterogeneous VRPTW and Multiple Products. Under review. European Journal of Operational Research. DE LA CRUZ, Jair J., Adriana Mendoza, Astrid Del Castillo y Carlos D. Paternina-Arboleda. Análisis comparativo de las aproximaciones heurísticas Ant-Q, recocido simulado y búsqueda tabu en la solución del problema del agente viajero. Revista Ingeniería & Desarrollo, (14) Universidad del Norte, 2004. DE WEERDT, M. M.. (1999). “Towards algorithms for scheduling of transport processes”. 100 DONOSO, Yezid. Multi-Objective Optimization Algorithm for Multicast Routing with Traffic Engineering. Telecommunication Systems Journal. Kluwer Publisher. 2004. DONOSO, Yezid. Multi-Objective Optimization Algorithm for Multicast Routing with Traffic Engineering, IEEE 3rd International Conference on Networking ICN'04, Guadeloupe, French Caribbean, February 29 – March 4, 2004 GAYLE, Steve B (2003). “Looking at transportation planning with an operations perspective”. HOGHIEMSTRA, Jurjen S. and Maurice J. G. Teunisse. The use of simulation in the planning of the dutch railway services. Proceedings of the 1998 Winter Simulation Conference. JONSON, Ellis, Renato Montero. “Transport dynamics, Inc.: Development of planning system for the transportation industry” PATERNINA-Arboleda Carlos D. y Tapas K. Das. Intelligent Dynamic Control Policies for Serial Production Lines. IIE Transactions 33 (1), 2001. PATERNINA-Arboleda Carlos D. y Tapas K. Das. A Multi-Agent Reinforcement Learning Approach to Obtaining Dynamic Control Policies for Stochastic Lot Scheduling Problem. In press, Simulation Modelling Practice and Theory. 2005. POMPEU Fabra, Helena, Jose P. Paixao, Rita Portugal. “Multiobjetive Metaheuristic for the bus-driver scheduling problem” POWELL, Warren B., Huseyin Topaloglu. “Stochastic programing in transportation and logistic”. RAO, K.V. Krishna, S. Muralidhar, S.L. Dhingra. “Public trasnport routing and scheduling using genetic algorithms”. REGO, Cesar, Catherine Roucairol. “Using Tabu search for solving a dynamic multi-terminal truck dispatching problem”. ROJAS S., Miguel, Carlos D. Paternina-Arboleda y Jairo R. Montoya-Torres. Jobshop scheduling using hybrid meta-heuristic approaches. III Colombian 101 congress and 1st international Andean conference on Operational Research. Cartagena, Colombia, 2004. RUNDNICKI, Andrzej. “Investigation by computer simulation some aspect of transportation service reliability in urban public transport” SILVA, Gustavo P., Nicolaud D. F. Gualda, Raymond S. K. Kwan. “Bus scheduling base don an arc generation _ network flow approach”. XIONG Y., Schneider J.B. (1992). “Transportation network design using a cumulative genetic algorithm and neural network” T´KINDT Vincent., Billaut Jean Charles. “Multicriteria Scheduling – Theory, Models and Algorithms” (2004) G. P. Guinet and M. M. Solomon, “Scheduling hybrid ßowshops to minimize maximum tardiness or maximum completion-times”, 1996. J. N. D. Gupta, “Two stage hybrid ßowshop scheduling problem”, 1988. J. N. D. Gupta and E. A. Tunc, “Scheduling a 2-stage hybrid ßowshop with separable setup and removal times”, 1994. M. I. Dessouky, B. Lageweg, J. K. Lenstra and S. L. van de Velde, “Scheduling identical jobs on uniform parallel machines”, Statistica Neerlandica, 1990. M. M. Dessouky, M. I. Dessouky and S. Verma, “Flowshop scheduling with identical jobs and uniform parallel machines”, 1997. Y. Lee and G. L. Vairaktarakis, “Minimizing makespan in hybrid ßowshops”, 1994. www.inforg.uniovi.es/ia/Archivos/Apuntes%20y%20t/AlgoritmosGeneticos.pdf http://w3.mor.itesm.mx/~logica/log2000_01/articulos_sat/GA_3-SAT.doc. www.texelfactory.com/extras/Genetic_Algorithms_2.pdf http://ttt.upv.es/ccarrasc/extdoc/Tema-3_4_algoritmos%20geneticos.pdf http://pub.ufasta.edu.ar/ohcop/aGEsoullier.pdf http://sci2s.ugr.es/docencia/bioinformatica/BioinformaticaTema_10.pdf,BIoinformatica http://www.ica.ele.puc-rio.br/publicacoes/download/cnf_0111.pdf http://cs.uns.edu.ar/~grs/InteligenciaArtificial/Algoritmos%20GeneticosB&W.p df, Inteligencia Artificial 102 http://www.alfredorahn.com/docs/AG_Clase_1.ppt, Alfredo Rahn http://ants.dif.um.es/staff/juanbot/ml/files/20022003/geneticosI.pdf , Algoritmos Geneticos, Juan Botia Blaya www.inforg.uniovi.es/ia/Archivos/Apuntes%20y%20t/AlgoritmosGeneticos.pdf, Los Algoritmos Geneticos www.texelfactory.com/extras/Genetic_Algorithms_1.pdf, Javier Ventoso http://lfc.uah.es/olmeda/CNeuronal/Tema4A.pdf, Computación Neuronal 459Algoritmos geneticos http://geneura.ugr.es/~jmerelo/ie/ags.htm, Juan Merelo http://torio.unileon.es/~dierfd/DOCT/genetic_UNEX/AlgGenetics-2.ppt http://cipres.cec.uchile.cl/~em753/pdf/optimizacion.pdf , Pablo Estévez Valencia http://www.orcero.org/irbis/disertacion/node1.html, Varios http://mit.ocw.universia.net/15.053/s02/pdf/s02-lec24.pdf http://www.orcero.org/irbis/disertacion/node193.html www.redcientifica.com/gaia/ce/agsp_c.htm Crainic, T. and Toulouse, M., Parallel strategies for meta-heuristics., En: Glover, F. y Kochenberger, G. (Eds.), Handbook of metaheuristics, Kluwer academic publisher, 2003. C. Coello. “An updated Survey of Evolutionary Multiobjective Optimization Techniques, state of the art and future trends”. In Congress on Evolutionary Computation. Piscataway, N. J. IEEE Service Center. 3–13. 1999. Deb. “Evolutionary Algorithms for Multi-Criterion Optimization in Engineering Design”. In Proceedings of Evolutionary Algorithms in Engineering and Computer Science EUROGEN’99. 1999. M. Dorigo y G. Di Caro. “The Ant Colony Optimization Meta-Heuristic”. In D. Corne, M. Dorigo, and F. Glover (Eds.), New Ideas in Optimization, McGraw Hill, London, UK, 11-32. 1999. Sipper, D. y Bulfin, R.(1997). Production, Planning, Control and Integration. Mc Graw Hill. 103