Mecanismos Adaptables sobre Castigos en Problemas de Calendarización de Actividades Utilizando Algoritmos Genéticos Edición Única
Texto completo
(2) INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY PROGRAMA DE GRADUADOS EN ELECTRÓNICA, COMPUTACIÓN, INFORMACIÓN Y COMUNICACIONES. TESIS. MAESTRO EN CIENCIAS EN SISTEMAS INTELIGENTES. Mecanismos Adaptables sobre Castigos en Problemas de Calendarización de Actividades Utilizando Algoritmos Genéticos por. Daniel Ángel Huerta Amante. Monterrey, N.L., Diciembre de 2003.
(3) © Daniel Ángel Huerta Amante, 2003.
(4)
(5) Mecanismos Adaptables sobre Castigos en Problemas de Calendarización de Actividades Utilizando Algoritmos Genéticos por. Ing. Daniel Ángel Huerta Amante. Tesis Presentada al Programa de Graduados en Electrónica. Computación, Información y Comunicaciones como requisito parcial para obtener el grado académico de. Maestro en Ciencias especialidad en Sistemas Inteligentes. Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Diciembre de 2003.
(6)
(7) Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey División de Electrónica, Computación, Información y Comunicaciones Programa de Graduados. Los miembros del comité de tesis recomendamos que la presente tesis de Daniel Ángel Huerta Amante sea aceptada como requisito parcial para obtener el grado académico de Maestro en Ciencias, especialidad en: Sistemas Inteligentes.
(8)
(9) Mecanismos Adaptables sobre Castigos en Problemas de Calendarización de Actividades Utilizando Algoritmos Genéticos. Daniel Ángel Huerta Amante, M.C. Instituto Tecnológico y de Estudios Superiores de Monterrey, 2003. Asesor de la tesis: Dr. Hugo Terashima Marín. Cuando un Algoritmo Genético es utilizado para resolver un problema que cuenta con restricciones, es necesario asignar un castigo a cada restricción y así, cuando un individuo viole una restricción, se le penaliza de acuerdo con el valor de castigo correspondiente. La aptitud de un individuo depende de dos factores: (1) El desempeño de la solución que representa el individuo ante el problema, el cual es dado por la función objetivo, y (2) la sumatoria de los castigos dado las restricciones que violó, calculado por la función de penalización. El Algoritmo Genético busca una solución que cumpla con la mayor cantidad de restricciones y que tenga mejor desempeño ante el problema. Tradicionalmente, los castigos permanecen estáticos a lo largo de las generaciones del Algoritmo Genético; en este trabajo se utilizan técnicas para variar estos castigos, cada cierto número de generaciones, utilizando una retroalimentación de generaciones anteriores; a estas técnicas se les conoce como técnicas de adaptación de castigos. Últimamente ha crecido el interés por la adaptación de castigos basándose en la premisa de que un Algoritmo Genético utiliza procesos dinámicos, por lo tanto es natural que todos sus parámetros sean dinámicos. Se utilizó un problema de calendarización de actividades para realizar los experimentos; la principal característica de este problema es que existen diferentes formas de delimitar el dominio de una variable i.e. tipos de restricciones, por lo tanto el grado de violación se mide de diferente manera. Otra característica de este tipo de problemas es que la función de penalización es, en sí, la función objetivo, i.e. una solución que no viole ninguna restricción es la óptima, aunque por las características y la naturaleza de este problema en especial, es poco común satisfacer todas las restricciones ya que algunas restricciones se empalman creando problemas imposibles; en estos casos la solución óptima varía dependiendo de.
(10) la instancia del problema. Los resultados obtenidos a lo largo de esta investigación se inclinan por la adaptación de castigos. Se propone también una serie de pasos a seguir para introducir adaptabilidad al problema de calendarización, los cuales pueden ser utilizados sobre otros problemas que cuenten con restricciones..
(11) A mis padres, como intento de respuesta a la pregunta: ¿Qué es lo que haces en esa maestría? En memoria de Ramón Ángel Amante Echeverría estoy orgulloso de llevar tu nombre..
(12) Xll.
(13) Agradecimientos Agradezco, primero, a mis padres, por todo el apoyo moral y económico que me brindaron; por la tranquilidad con la que tomaron mi decisión. Quiero agradecer al Centro de Sistemas Inteligentes por aceptarme como asistente de investigación, en especial al doctor Francisco Cantú y al doctor Rogelio Soto. A mi asesor, doctor Hugo Terashima, por la confianza que depositó en mi al asignarme este tema de tesis. A mis sinodales por sus valiosos consejos y correcciones. A la Ing. Sylvia Loedy Chapa por su gran ayuda con la logística de congresos. Quiero agradecer a la banda del CÍA por hacerme sentir como en casa, en especial a Ángel, Cesar, Chacho, Chava, Chema, Fernando, Frydman, Germán, Héctor, Hiram, Martín, Meade, Michel, Mike, Nelo, Ornar, Osear, Puruandiro y Scott, por darme todo su apoyo, escuchar todos los tropiezos en esta investigación y por ayudarme a poner los pies sobre la tierra. A Doris, Lety, Karla y Mane, quienes me hicieron muchos favores a lo largo de mi estancia en el centro, favores que espero regresar algún día. A todas las personas en Hermosillo que, cada vez que regresaba, me hacían sentir como que nunca me había ido. A esa persona que me apoyó ante todo y contra todo, que hizo mi decisión de irme más fácil y más difícil al mismo tiempo. A todas las personas que aquí en Monterrey me hacían reírme de los problemas de vivir solo. A todos los que creyeron en mí, por no querer defraudarlos; y a todos los que no, por querer demostrarles lo equivocados que estaban. ¡MUCHAS GRACIAS! No agradezco a mis maestros de redacción.. DANIEL ÁNGEL HUERTA AMANTE Instituto Tecnológico y de Estudios Superiores de Monterrey Diciembre 2003 xiii.
(14) xiv. AGRADECIMIENTOS.
(15) Contenido Resumen. ix. Agradecimientos. xiii. Lista de Figuras. xvii. Lista de Tablas. xix. 1 Introducción 1.1 Motivación 1.2 Definición del Problema 1.3 Objetivo 1.4 Hipótesis de Investigación 1.5 Contribuciones a la Investigación. 1 2 3 4 5 5. 1.6 Alcances 1.7 Estructura del Presente Trabajo. 6 6. 2 Antecedentes 2.1 Problema General de Calendarización 2.2 Algoritmos Genéticos 2.3 Operadores Genéticos para Problemas Basados en Permutaciones 2.3.1 Operadores de Cruce 2.3.2 Operadores de Mutación 2.4 Manejo de Castigos Dentro de un AG 2.4.1 Métodos Elitistas 2.4.2 Castigos Estáticos 2.4.3 Castigos Dinámicos 2.4.4 Castigos Adaptables 2.5. Resumen del Capítulo. .... 7 7 9 11 11 16 17 17 18 19 20 25. xv.
(16) xvi. CONTENIDO. 3 Modelación del Problema 3.1 Calendarización de Actividades de un Congreso 3.2 Generador de Problemas 3.3 Representación del Cromosoma 3.4 Función Objetivo 3.4.1 Evaluación de Restricción TIME 3.4.2 Evaluación de Restricción PRESET 3.4.3 Evaluación de Restricción ORDER 3.4.4 Evaluación de Restricción EXCLUDE 3.5 Parámetros Estáticos 3.6 Resumen del Capítulo. 4 Afinación de Parámetros del AG para el Modelo 4.1 4.2 4.3 4.4 4.5 4.6 4.7. Aspectos Iniciales para la Afinación Sintonización de Parámetros para Operador de Selección Sintonización de Parámetros para Operador de Cruce Sintonización de Parámetros para Operador de Muración Sintonización de Tamaño de Población Comparación de Algoritmos Resumen del Capítulo. 5 Experimentación sobre el Modelo Adaptable 5.1 5.2 5.3 5.4 5.5 5.6. Técnica de Adaptación Basada en el Error (AGCA2) Descripción de Parámetros de Adaptación Aspectos Iniciales de Adaptabilidad Experimentos con AGCA1 Experimentos con AGCA2 Discusión y resultados 5.6.1 Comparación de Algoritmos 5.6.2 Comportamiento de la Adaptación 5.6.3 Individuo Mejor Encontrado 5.7 Resumen del Capítulo. 27 27 28 31 36 36 36 38 38 39 40. Estático. 43 43 45 47 47 54 54 57. 59 60 62 68 72 82 91 91 93 98 99. 6 Conclusiones y Trabajo Futuro. 101. A Archivo de Entrada a AGCA. 105. B Red Neuronal para Predicción de Relajación. 111. Referencias. 113. Vita. 117.
(17) Lista de Figuras 1.1 Aptitud según el tipo de problema. 2. 2.1 2.2 2.3 2.4. Pasos que sigue el AG para obtener una nueva población Ejemplo de cromosoma binario y cromosoma basado en permutaciones. Tabla de adyacencias para cruce ERX Tabla de adyacencias para cruce ERX después del primer paso. 9 11 14 15. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9. La restricción PRESET causa problemas imposibles. Caso #1 La restricción PRESET causa problemas imposibles. Caso #2 Cuando dos restricciones EXCLUDE se hacen una sola Estructura del archivo de salida del generador de problemas Representación del cromosoma por parte de PGA para calendarización. Representación del cromosoma utilizada en este trabajo Una actividad calendarizada fuera de los límites del día X Representación del cromosoma por parte de AGC2 Dada una restricción PRESET se obliga a una actividad a ser calendarizada en donde la restricción lo requiere AGC3 no cumple con la restricción PRESET Grado de violación de TIME, ejemplo de 3 días Los dos casos de violación a la restricción PRESET Ejemplo restricción ORDER. Le faltan cinco actividades a ACT4 para estar antes de ACT7 Tres formas de violar la restricción EXCLUDE y como se castiga a cada una de ellas. 30 30 31 31 32 32 33 34. Comportamiento de castigo para tipo 1 de relajación Comportamiento de castigo para tipo 2 de relajación Comportamiento de castigo para tipo 3 de relajación Comportamiento de castigo para tipo 4 de relajación Comportamiento de cada restricción durante la búsqueda. La zona del caos se encuentra sombreada. 64 64 65 65. 3.10 3.11 3.12 3.13 3.14. 5.1 5.2 5.3 5.4 5.5. xvii. 35 35 37 37 38 39. 67.
(18) xviii. LISTA DE FIGURAS. 5.6 Varianza del comportamiento de cada restricción durante la búsqueda. La zona del caos se encuentra sombreada 5.7 Comportamiento de la variable a para la restricción TIME utilizando AGCAl 5.8 Comportamiento de la variable a para la restricción TIME utilizando AGCA2 5.9 Comportamiento de la variable a para la restricción PRESET utilizando AGCAl 5.10 Comportamiento de la variable a para la restricción FRESET utilizando AGCA2 5.11 Comportamiento de la variable a para la restricción ORDER utilizando AGCAl 5.12 Comportamiento de la variable a para la restricción ORDER utilizando AGCA2 5.13 Comportamiento de la variable a para la restricción EXCLUDE utilizando AGCAl 5.14 Comportamiento de la variable a para la restricción EXCLUDE utilizando AGCA2 5.15 Gráfica del mejor encontrado para 100 corridas del AG con castigos estáticos 5.16 Gráfica del mejor encontrado para 100 corridas del AG con castigos adaptables AGCAl 5.17 Gráfica del mejor encontrado para 100 corridas del AG con castigos adaptables AGCA2 B.l. 68 94 94 95 95 96 96 97 97 98 99 100. Entrenamiento de red neuronal de retropropagación durante 500 épocas. 112.
(19) Lista de Tablas 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12. Resultados de AGCl sobre técnicas de selección Resultados de AGC2 sobre técnicas de selección Resultados de AGC3 sobre técnicas de selección Resultados de AGCl sobre técnicas de cruce Resultados de AGC2 sobre técnicas de cruce Resultados de AGC3 sobre técnicas de cruce Combinación de técnicas de selección y cruce que presenta mejor desempeño para cada algoritmo Resultados de AGCl sobre operadores de mutación Resultados de AGC2 sobre operadores de mutación Resultados de AGC3 sobre operadores de mutación Combinación de técnicas de selección, cruce y mutación que presenta mejor desempeño para cada algoritmo Resultados de AGCl sobre diferente tamaño de población Resultados de AGC2 sobre diferente tamaño de población Resultados de AGC3 sobre diferente tamaño de población Combinación de parámetros ganadores para cada algoritmo. 45 46 46 48 49 50. Tabla de estados para fací — 1.1 Parámetros iniciales para AGCA1 Parámetros iniciales para AGCA2 Resultados sobre AG que utiliza los castigos propuestos en este trabajo y AG que utiliza castigos 1.0 para todas las restricciones Resultados de experimentación sobre AGC Afinación de parámetro lapso para restricción TIME (AGCA1) Afinación de parámetro relajación para restricción TIME (AGCAl). . . Afinación de parámetro fact para restricción TIME (AGCAl) Afinación de parámetro tMax para restricción TIME (AGCAl) Afinación de parámetro tRel para restricción TIME (AGCAl) Afinación de parámetro lapso para restricción PRESET ( A G C A l ) . . . . Afinación de parámetro relajación para restricción PRESET (AGCAl).. 61 69 69. xix. 51 51 52 53 54 55 55 56 56. 71 72 73 73 74 74 75 76 76.
(20) xx. LISTA DE TABLAS 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39. Afinación de parámetro fact para restricción PRESET (AGCAl). ... Afinación de parámetro tMax para restricción PRESET (AGCA1). . . Afinación de parámetro tRel para restricción PRES/CT (AGCA1). ... Comparación de algoritmos para adaptación TIME y PRESET (ACGAl). Afinación de parámetro tTarget para restricción EXCLUDE (AGCAl). Afinación de parámetro tTarget para restricción ORDER (AGCAl). . . Comparación entre adaptar (algoritmo 1) y no adaptar (algoritmo 2) el castigo de PRESET para ACGAl Afinación del parámetro de terminación tEnd (ACCAl) Parámetros afinados para algoritmo AGCAl Afinación de parámetro lapso para restricción TIME (AGCA2) Afinación de parámetro relajación para restricción TIME (AGCA2). . . Afinación de parámetro tTrain para restricción TIME (AGCA2) Afinación de parámetro tMax para restricción TIME (AGCA2) Afinación de parámetro tRel para restricción TIME (AGCA2) Afinación de parámetro lapso para restricción PRESE f ( A G C A 2 ) . . . . Afinación de parámetro relajación para restricción PPE3ET (AGCA2). Afinación de parámetro tTrain para restricción PRECET (AGCA2). . . Afinación de parámetro tMax para restricción PRESET (AGCA2). . . Afinación de parámetro tRel para restricción PRESET (AGCA2). ... Configuraciones para adaptación TIME y PRESET con ACGA2 Afinación de parámetro tTarget para restricción EXCLUDE (AGCA2). Afinación de parámetro tTarget para restricción ORDER (AGCA2). . . Afinación del parámetro de terminación tEnd (ACG/ 2) Parámetros afinados para algoritmo AGCA2 Tabla comparativa del comportamiento de los algoritmos AGC, AGCAl y AGCA2 Tabla comparativa del comportamiento de los algoritmos AGC, AGCAl y AGCA2 con 50 problemas Tabla comparativa, resultados divididos por días. 77 77 78 79 79 80 80 81 81 82 83 83 84 84 85 86 86 87 87 88 89 89 90 91 92 92 93..
(21) Capítulo 1 Introducción El Algoritmo Genético (AG) es una técnica de optimización, usualmente ciega, que ha demostrado dar buenos resultados en problemas no lineales. La búsqueda de la solución óptima es guiada por la forma en que se evalúa a cada solución del problema; se puede guiar la búsqueda por donde convenga si se logra manipular la evaluación de los individuos, dándole prioridad a algunos objetivos particulares a lo largo de la búsqueda. La rutina del AG que evalúa a una solución se le conoce como función objetivo y el resultado de dicha evaluación se le conoce como aptitud. La aptitud indica qué tan buena o mala es la solución que representa un individuo ante el problema. Un AG está adecuado a problemas sin restricciones, pero la mayoría de los problemas de la vida real contienen restricciones [Crossley 97] (horarios, lapsos de tiempo, salones, tiempo de espera, rangos de una variable, temperatura, fricción, universo conocido, etc). Cuando un AG resuelve problemas que contienen restricciones es común utilizar una función de penalización, la cual, en conjunto con la función objetivo, nos proporciona la aptitud del individuo, como se muestra en la figura 1.1. La función de penalización calcula el grado o fuerza con la que alguna solución viola una restricción; la solución es castigada de acuerdo al grado de violación. Un AG convencional que resuelve problemas con restricciones utiliza castigos estáticos, i.e. los castigos son dados al inicio de la búsqueda y no cambian durante la misma; el problema de utilizar castigos estáticos es, precisamente, asignar estos valores de castigo. En algunos casos, cada castigo es escogido en base a la importancia que tiene la correspondiente restricción en la solución final; otra alternativa, aunque más extensa, es realizar una serie de experimentos para encontrar los castigos adecuados que encuentran una mejor solución. Pero, ¿A qué se debe la dificultad de proponer castigos?, no necesariamente porque una restricción tenga mayor castigo significa que el resultado será dado a favor de esta restricción, existen casos en que precisamente darle un castigo pequeño a una restricción muy importante hace que ésta se comporte mejor, i.e. que la solución mejor encontrada la viole en menor grado. ¿Cómo es posible prever todos estos casos?. 1.
(22) Capítulo 1. Introducción. 2. Evaluación de un. Evaluación de un. individuo en un. individuo en un. problema sin restricciones. problema con restricciones individuo función de penatizaco.il. aptitud. ._J. FIGURA 1.1: Aptitud según el tipo de proble/aa.. Se han creado varias técnicas que dan un camino alterr.o al de castigos estáticos; entre éstas se encuentran las técnicas adaptativas, las cuales \tilizan información de generaciones anteriores del AG para modificar el castigo de las resecciones; la finalidad de utilizar técnicas de adaptación es variar el castigo de una restricción de acuerdo a la dificultad que representa ante el problema en ese momento de la búsqueda. Este trabajo pretende escoger una técnica de castigos adaptativc^, hacerle algunos ajustes, y utilizarla para resolver un problema que cuente con restricciones y, más importante aún, con diferentes tipos de restricciones. A continuación se presentará la motivación que nos llevó a realizar esta investigación, la definición del problema y los objetivos e hipótesis de ésta investigación. Por último explicaremos la contribución a la investigación, los alcances y la estructura de este trabajo.. 1.1. Motivación. El comportamiento de un AG es dinámico y contiene procesos adaptativos, no sería natural utilizar parámetros que permanecen constantes durante la evolución [Eiben 98). Varios artículos ([Hamda 00], [Hamida 00], [Michalewicz 94], |Joines 94], [Smith 93], [Coit 96], [Crossley 97], entre otros) presentan buenos resultados utilizando parámetros dinámicos (o adaptables) para problemas con restricciones. Al utilizar parámetros estáticos surgen dos problemas: 1. Si el problema tiene una gran cantidad de restricciones, es necesario encontrar el castigo adecuado para cada una de ellas. El encontrar los castigos para cada restricción es, a veces, tan difícil como resolver el problema mismo..
(23) 1.2. Definición del Problema. 3. 2. Existen algunos casos en los que se puede ver a un conjunto de restricciones como un solo tipo de restricción y, así, asignar el mismo castigo a todo ese conjunto de restricciones. Aquí es donde radica el problema; los individuos de cada conjunto de restricciones, aunque son similares entre si, presentan un comportamiento diferente mientras se lleva a cabo la búsqueda. El utilizar técnicas adaptables sobre estos castigos trata de resolver estos dos problemas de la siguiente manera: si las restricciones con las que cuenta un problema no guardan ninguna similitud entre ellas, de tal manera que no hay forma de crear grupos o tipos de restricciones, se podría, muy bien, utilizar un castigo inicial igual para todas las restricciones y dependiendo del comportamiento de cada una de las restricciones se irán sintonizando estos castigos, de tal manera que las restricciones más difíciles de satisfacer tendrán mayor castigo. En el caso de que las restricciones si permitieran la creación de tipos, tenemos la misma solución, darle a cada grupo el mismo castigo (ya es más fácil proporcionar el castigo inicial de cada uno de los tipos de restricciones) y la adaptación hará el resto. Es importante observar que lo que se pretende al introducir adaptabilidad no es obtener el castigo óptimo para cada restricción, sino ayudar al AG a encontrar una mejor solución, proporcionando a cada restricción el castigo que se merece dependiendo de que tan fácil o que tan difícil sea satisfacerla en ese momento de la búsqueda. La importancia de este trabajo radica en la siguiente idea: aunque se encuentren los castigos óptimos estáticos para cada restricción, es necesario modificarlos a medida que la búsqueda va satisfaciendo y violando restricciones, para así darle mayor fuerza a las restricciones que no se han satisfecho.. 1.2. Definición del Problema. Las restricciones, dependiendo de cómo limitan el dominio de la variable involucrada, pueden ser de dos tipos: (1) desigualdades e (2) igualdades. Las desigualdades son restricciones que son, por la naturaleza del problema, fáciles de resolver. Por ejemplo si se requiere que una variable x sea menor o igual que O, tomando en cuenta que x es una variable entera, entonces el dominio de x esta limitado por (—00, 0]. Una igualdad es más obligación, por ejemplo, si se requiere que la variable y sea igual a 5, donde y, al igual que x, toma solo valores enteros, el dominio de y queda limitado por {5}. Supongamos una restricción RI. Cuando una solución z cumple con la restricción /?i, se dice que z es factible respecto a R^ en el caso de que z viole, en cualquier grado, la restricción RI, se dice que z es infactible respecto a R^. Tomando el porcentaje de individuos factibles, para cada restricción, dentro de la población total del AG en una.
(24) Capítulo 1.. 4. Introducción. generación dada, podemos hacer lo siguiente:. 1. Detectar la dificultad de una restricción; entre menor sea su porcentaje de factibilidad, mayor es la dificultad de la restricción dentro del problema. Con esta información podríamos aumentar el castigo de dicha r-j^cricción para que el AG busque individuos que no la violen. 2. Mantener un porcentaje de individuos factibles para cada restricción, buscando así encontrar el óptimo por medio del operador de cruce del AG. Se sabe muy bien que en problemas no lineales, la solución óptima se encuentra rodeada de soluciones infactibles, o bien se encuentra en una frontera entre individuos factibles e individuos infactibles [Hamida 00] [Hamida 02]. Se requiere encontrar un método de adaptación que urJli ,e ambos o uno de los enfoques mencionados anteriormente para resolver un problema con restricciones, logrando mejorar los resultadcs que obtiene un AG que utiliza cascigos estáticos. Además proponer una serie de pasos para tomar en cuenta diferentes tipos de restricciones. Al hablar de tipos de restricciones, nos referimos a con.untos de restricciones de un problema que guardan similitud entre ellas. Todas las restricciones que pertenecen a un tipo deben (1) limitar el dominio de la variable involucrada de la misma forma (igualdad o desigualdad) y deben (2) tener la misma metodolc/ía para medir su grado de violación. La descripción del problema a resolver mediante un AG con castigos adaptables será explicada detalladamente en el capítulo 3.. 1.3. Objetivo. El objetivo general de este trabajo es diseñar un AG que introduzca la propiedad de adaptación a los castigos en un problema que cuenta con vanos tipos de restricciones. Los objetivos específicos son los siguientes: • Diseñar un AG que utilice castigos estáticos y encontrar los parámetros que obtengan mejores resultados utilizando un problema que contenga diferentes tipos de restricciones. • Investigar en la literatura una técnica que introduzca la propiedad de adaptación a los castigos y aplicarla a la función objetivo de un AG • Proponer una serie de pasos para asignar valores a los parámetros de adaptación de los diferentes tipos de restricciones..
(25) 1.4. Hipótesis de Investigación. 5. • Crear una técnica de adaptación de castigos que presente una mejora a la técnica original ante el problema utilizado.. 1.4. Hipótesis de Investigación. El modificar o adaptar los valores de castigo a lo largo de la optimización, dependiendo del comportamiento de las generaciones anteriores y del tipo de restricción a la que pertenece dicho castigo, guía al AG hacía una solución mejor que la obtenida utilizando los castigos de forma estática. Las preguntas de investigación son las siguientes: • ¿Cómo introducir una técnica de adaptación de castigos en un problema que cuenta con restricciones? • ¿Existe alguna diferencia importante entre las restricciones tipo igualdad y las restricciones tipo desigualdad? • La técnica de adaptación que utilizaremos no están diseñada para manejar restricciones tipo igualdad. ¿Cómo se puede introducir adaptabilidad a las restricciones tipo igualdad sin afectar la adaptabilidad de las restricciones tipo desigualdad? • ¿Existe alguna serie de reglas para asignarle valores a la gran cantidad parámetros de adaptación, con la finalidad de evitar la gran cantidad de experimentos realizados para afinar dichos parámetros? • ¿Qué ventajas se obtiene al introducir castigos adaptables sobre utilizar castigos estáticos? • ¿En verdad es necesario tratar por separado a los diferentes tipos de restricciones asignándole diferentes parámetros de adaptación a cada uno de ellos?. 1.5. Contribuciones a la Investigación. Una contribución menor de este trabajo a la investigación es la creación del problema de calendarizaeión de congresos el cual cuenta con características que lo hacen, en verdad, un problema difícil de resolver. Las contribuciones más importantes de este trabajo a la investigación se pueden resumir en tres puntos: (1) se introduce adaptabilidad a un problema altamente restringido y con diferentes tipos de restricciones, (2) se propone una técnica completa y detallada para lidiar con las restricciones tipo igualdad, y (3) se presenta un procedimiento para introducir adaptabilidad a un problema que maneja restricciones, además de algunas reglas para limitar los valores de los parámetros de adaptabilidad..
(26) Capítulo 1. Introducción. 6. 1.6. Alcances. La investigación realizada a lo largo de este documente fue materializada en un AG llamado Algoritmo Genético para Congresos con Adaptabilidad (AGCA) el cual es una modificación del paquete PGA (Parallel Genetic A'go.ithm) programado por Peter Ross y Emma Hart, este paquete se encuentra en http:/ ''uww.soc.napier.ac.uk/ ~peter/. Otro alcance de este trabajo es la creación de un generador de problemas (que será descrito en la sección 3.2) y un programa que serv-rá para introducir nuevos problemas y encargarse de hacer todas las llamadas necesarias a AGCA para resolver el problema. Toda la programación fue desarrollada en lenguaje C bajo sistema operativo Linux.. 1.7. Estructura del Presente Trabajo. A continuación, el capítulo 2 presenta la investigación realizada sobre los antecedentes de esta investigación. El capítulo 3 contiene todos los aspectos tomados en cuenta para representar el problema en un AG. El capítulo 4 muestra \or, experimentos sobre el AGC que utiliza castigos estáticos. En el capítulo 5 se incluyen los experimentos sobre el AGC que maneja adaptabilidad en sus castigos. Finalmente, en el capítulo 6 se concluye este trabajo y se presentan algunas ideas de trabajj futuro que se desprende de esta investigación..
(27) Capítulo 2 Antecedentes Para realizar el presente trabajo fue necesario realizar una investigación bibliográfica sobre algunos temas. A continuación se explica el problema general de calendarización, mejor conocido en la literatura como timetabling, una introducción a los AGs, los operadores genéticos disponibles para utilizar un cromosoma entero (permutaciones) dentro de un AG y las diferentes técnicas que la literatura ofrece para manejar castigos dentro de un AG.. 2.1. Problema General de Calendarización. Al problema de asignar eventos o actividades a recursos tales como el tiempo, el espacio y el personal de tal manera que satisfaga todas las restricciones se le conoce como calendarización [Lee 00]. El problema general de calendarización se puede explicar como un conjunto A de eventos o actividades, un conjunto D de espacios de tiempo, que comúnmente se le conoce como dominio, y un conjunto R de restricciones. La intención es acomodar todos los eventos en los espacios de tiempo de tal manera que ninguna restricción sea violada [Terashima 98]. De esta manera, la calendarización está dada por lo siguiente: • Un número finito de actividades A = 0,1,0.2,...,an. (2.1). Un conjunto de espacios de tiempo D = dl,d2,...,dm en donde se pueden colocar las actividades. 7. (2.2).
(28) Capítulo 2. Antecedentes. 8. • Un conjunto de restricciones fí = r i ,r 2 ,...,r f c. (2.3). Las restricciones, de acuerdo a la situación que representan ante la solución, se pueden clasificar en duras y suaves [Abbas 01]: 1. Restricciones duras. Son aquellas restricciones que n r pueden ser violadas ya que representan situaciones imposibles o una gran importancia dentro del problema general. Un ejemplo de este tipo de restricción es que ningún expositor en una conferencia se encargue de dos actividades al mismo oiempo.. 2. Restricciones suaves. Es aquella restricción que pueue ser violada y se sigue representando una solución posible. Un ejemplo de fste tipo de restricción se presenta cuando una persona debe exponer en un salón en especial ya que sus características pueden ser aprovechadas o que su activi la^ necesite elementos que sólo se encuentran en ese salón. Las restricciones suaves son las manejables pues es posible tener una solución sin satisfacer alguna. Para estos casos se les asigna un peso a cida restricción basándose en la experiencia, al violar alguna de esas restricciones este costo se le asigna a la solución así, al final, se tomará la solución con más bajo costo. En otros casos se busca maximizar entonces la función objetivo se rige por el siguiente ejemplo de ecuación: y(x] =. l + TtWigi). (2 4). '. donde: Wi es el peso de una restricción violada Ci es la cantidad de veces que se violó esta restricción n es la cantidad total de restricciones El hecho de que alguna restricción sea considerada dura a o significa que tenga mayor castigo que una restricción suave, sólo significa que una solución que no satisfaga esta restricción dura no es factible. Muchas técnicas juegan con ¿stas restricciones duras aumentando y disminuyendo su castigo al paso de las genera Iones para llegar a una solución óptima, esa variación del castigo depende del comportamiento del problema y de su espacio de búsqueda. El enfoque principal de los algoritmos de calendarización es encontrar una solución factible que satisfaga la mayo: cantidac de restricciones suaves [Lee 00]..
(29) 2.2. Algoritmos Genéticos. 2.2. 9. Algoritmos Genéticos. El AG [Goldberg 89] es una técnica de optimización ciega que simula procesos naturales para solucionar problemas reales. Es un método estocástico de búsqueda basado en la mecánica de la selección natural de la supervivencia del individuo con mayor aptitud de acuerdo con la idea darwiniana. Esta aptitud se da de acuerdo al valor de un cromosoma dado por la función objetivo. Un AG está conformado por una población de individuos que son modificados por operadores genéticos generación tras generación buscando llegar a una solución óptima. Existen tres operadores básicos dentro de un AG: selección, cruce y mutación. El trabajo de estos tres operadores es obtener una población con mejor aptitud para la siguiente generación; la figura 2.1 muestra los pasos que sigue un AG para obtener una nueva población. Cada individuo representa, normalmente, una solución completa del problema y esta codificado en forma de tiras, principalmente binarias, a las cuales se les llama cromosomas. | Población jMJT. i Selección. i. Cruce t. 4Mutación. Población f. f=í+1 FIGURA 2.1: Pasos que sigue el AG para obtener una nueva población.. La función objetivo representa la forma de probar cada individuo de la población y así conocer su aptitud ante el problema i.e. que tan buena o mala solución representa este individuo ante el problema. Formular una buena función objetivo es vital para solucionar un problema. En la primera generación del AG se genera la población de manera aleatoria, se obtiene su aptitud probando cada individuo en la función objetivo; aquí es donde entra el primer operador: Selección. Este operador simula el proceso de selección natural, se seleccionan los mejores individuos de la población de acuerdo a su aptitud,.
(30) 10. Capítulo 2. Antecedentes. ésto quiere decir que los individuos con mejor aptitud tiensn mayor probabilidad de contribuir con uno o más hijos en la próxima generación. Existen distintas técnicas de selección: La técnica de la ruleta se basa en la aptitud del '.ndividuo, de acuerdo a ésta se le asigna una probabilidad de elección, entre mayor sc<i la aptitud, mayor será la probabilidad de que contribuya con un hijo para la próxiaia generación (en el caso de que se éste maximizando); dentro de este trabajo se utilizará esta técnica bajo el nombre de fitness. Otra técnica es la llamada rank, también conocida por selección por posición, la cual acomoda los individuos de mayor a menor, terminada esta tarea el lugar que ocupa la solución ante la población es su probabilidad de elección, sin importar que existe poca diferencia entre, por ejemplo, el individuo en la posición 35 del que está en la 34; Bias es un parámetro que da mayor y robabilidad a los mejores individuos de ser seleccionados mientras aumenta de 1.0 a 2.0, cuando bias tiene valor de 1.0, la diferencia de probabilidades es lineal, cuando tiene ^alor de 2.0 la diferencia es cuadrática. Por último, la técnica de torneo se basa en m pequeños torneos entre m individuos. Esta técnica, antes de iniciar con los torneos, acomoda los individuos de manera aleatoria; se cree [Ross 01] que este proceso es una perdida de tiempo, es por ésto que una modificación a esta técnica utiliza en cada torneo individuos generados al azar. Los cromosomas seleccionados son enviados al pool de í parí amiento y quedan listos para el siguiente operador: Cruce. Este operador simula el proceso de apareamiento de dos individuos; el método más simple es tomar un punto ai azar entre 1 y (i -1), donde ( es la longitud del cromosoma, el primer hijo toma ; a información del primer padre hasta este punto y después del punto del segundo padre; el segundo hijo toma hasta el punto del segundo padre y después del punto del prim ¿r padre; a esta técnica se le conoce como cruce de un punto. Existen otras técnicas de cruce, entre ellas, cruce de dos puntos, cruce uniforme, cruce multipunto, cruce con máscara, entre otras. El tercer operador es Mutación, el cual simula la alteraron en el material genético de un ser vivo; cuando se utiliza un cromosoma binario la mut?ción consta en cambiar de 1 a O ó de O a 1 un bit del cromosoma dependiendo una probabilidad que generalmente es muy baja. Al bit de un cromosoma computacional se le conoce como gen. Una vez generado todos los nuevos individuos éstos reemplazan a la población anterior, a todo este ciclo se le llama generación. Existen casos -jn que no se reemplazan todos los individuos de la población, a este tipo de AG se le l'ama AG no generacional. Un cromosoma basado en permutaciones es aquel en el que el orden en que se encuentran los bits tiene mucha importancia, éstos cromosomas r o manejan información binaria si no que manejan, "onvencionalmente, números entre 1 y I , este tipo de cromosomas se utiliza en el problema del agente viajero, donde el valor cada gen significa la ciudad a visitar y el orden en que se encuentra dicho gen dentro del cromosoma representa el orden en que se visitará dicha ciudad. Cuando se utiliza un cromosoma basado en permutaciones los operadores genéticos necesitan ser modificados para que el.
(31) 2.3. Operadores Genéticos para Problemas Basados en Permutaciones. 11. cromosoma resultante de dicho operador cumpla con la propiedad de una permutación. La figura 2.2 muestra un ejemplo de un cromosoma binario y de una cromosoma basado en permutaciones.. 1|0|1 111011 [OIOIOI Cromosoma binario. l1 '. Cromosoma basado en permutaciones. FIGURA 2.2: Ejemplo de cromosoma binario y cromosoma basado en permutaciones.. 2.3. Operadores Genéticos para Problemas Basados en Permutaciones. Existen tres operadores genéticos dentro del AG: Selección, Cruce, y Mutación. De estos operadores, solo los últimos dos realizan cambios sobre el material del cromosoma, dado ésto se debe asegurar que el cromosoma generado después de esta modificación sea una permutación. A continuación se dará una pequeña explicación de las principales técnicas utilizadas para preservar un individuo como permutación al utilizar los operadores de cruce y mutación.. 2.3.1. Operadores de Cruce. Se cuenta con cuatro tipos de operador de cruce: PMX, OX, GOX y GPX, los cuales son operadores utilizados para problemas de permutaciones. A continuación se explica cada uno de ellos.. PMX (Cruce parcialmente mapeado). Este operador de cruce [Goldberg 89] fue diseñado por Goldberg y Lingle en 1985 para solucionar el problema del agente viajero ciego, este problema es una extensión del problema del agente viajero en el cual el viajero no tiene idea de las distancias que existen entre las ciudades que debe visitar. La técnica funciona de la siguiente manera: se escogen dos puntos al azar donde se realizará el cruce sobre los padres. Para ver ésto considere las siguientes cadenas:.
(32) 12. Capitulo 2. Antecedentes X=157|628|034 Y = 672 | 038 | 5 1 4. Al hacer el cruce se forman los siguientes dos individúes: X' = 1 5 7 O 3 8 | O 3 4 Y' = 6 7 2 6 2 8 1 5 1 4. En este caso, ninguno de los dos hijos son permutacione:, para hacer al hijo X' permutación se hace lo siguiente: se busca los números que se rtpiten, en este caso se repite el O y el 3; el O que ya estaba (el que se encuentra en la posición 7 de la cadena) se cambia por el valor por el cual fue cambiado el O en el cruce, en este caso 5; lo mismo para el caso del 3, el cual será cambiado por 2. Se hace lo ir.ismo con el hijo Y' y las nuevas cadenas quedan de la siguiente manera: X' = 1 5 7 | 0 3 8 | 6 2 4 Y'= 0 7 3 6 2 8 | 5 1 4 Este tipo de cruce hace una aproximación del operador del básico cruce de dos puntos utilizado para cromosomas que no son permutaciones.. OX (Cruce basado en orden) Esta técnica de cruce [Goldberg 89] comienza de la misma forma que el cruce PMX: X = 157 | 6 28 034 Y = 6 72 I 038 5 1 4. Al momento de hacer el cruce, el nuevo individuo X' tkne hoyos en la posición 7 y 8, marcados en la siguiente cadena con H's: X' = 1 5 7 | 6 2 8 | H H 4 Se recorre la cadena hasta que las H's entren en el cruce, la cadena queda de la siguiente manera: X' = 7 6 2 | 8 H H | 4 1 5 Se hace lo mismo con Y' y se realiza el cruce, los hijos resultantes son las siguientes.
(33) 2.3. Operadores Genéticos para Problemas Basados en Permutaciones. 13. cadenas: X' = 7 6 2 | 0 3 8 | 4 1 5 Y' = 7 0 3 6 2 8 1 5 1 4. GOX (Cruce generalizado basado en orden) Para explicar el funcionamiento de este cruce [Bierwirth 95] tomamos los dos padres utilizados para el cruce PMX: X=157628034 Y=672038514 Tomamos una parte del padre X:. X' = 2 8 O 3 Y la insertamos donde comienza el primer elemento de esta subcadena en el padre Y, en este caso donde se encuentra el valor 2. Y' = 6 7 2 8 0 3 5 1 4 En este caso no hay duplicados, pero en el caso de que los haya hay que removerlos. Este cruce solo genera un hijo.. GPX (Cruce generalizado basado en posición) Para explicar el cruce GPX [Mattfeld 96] utilizamos las mismas cadenas utilizadas para explicar los cruces anteriores: X=157628034 Y=672038514 Tomamos una parte del padre X.. X' = 2 8 O 3 Pero en lugar de insertarlo donde se encuentra el valor del primer elemento de la.
(34) 14. Capítulo 2. Antecedentes. subcadena, se inserta en la posición donde comenzaba esta suL cadena en el padre X. Y' = 6 7 2 0 2 8 0 3 4 Se remueven los duplicados Y' = 6 7 1 5 2 8 0 3 4 Este cruce solo genera un hijo.. Otra técnica de cruce: ERX (Cruce basado en recomb;nación de vecinos) El cruce ERX fue creado por D. Whitley en 1989, su finalidad es mantener unidos los vecinos o adyacencias que tienen los padres en cualquie- posición del cromosoma hijo. A continuación se muestra un ejemplo, tenemos los siguientes padres: X=157628034 Y=672038514 Se hace una tabla de cada uno de los vecinos que tiene un gen en los dos padres. La tabla inicial de vecinos para los padres X y Y se muestr?, er la figura 2.3.. 083 2. 15 4 26870 3048 4 3 16 5 178 6724 75 62 82 03 5. FIGURA 2.3: Tabla de adyacencias para cruce TLRX.. Se toma el gen que tenga menos adyacencias, éste será el i;rimer gen del hijo, en caso de empate se toma uno aleatoriamente, se borra de las ady? cencías a este gen; en el ejemplo el gen que tiene menos vecinos es 1. De las adyacencias de este gen se toma.
(35) 2.3. Operadores Genéticos para Problemas Basados en Permutaciones. 15. el que tenga, a su vez, menos vecinos; igual, si existe empate se toma uno al azar. La figura 2.4 muestra la tabla después del primer paso.. FIGURA 2.4: Tabla de adyacencias para cruce ERX después del primer paso.. Siguiendo el ejemplo, el gen que tiene menos adyacencias de los vecinos de 1 es 5 y 4, existe un empate, supongamos que al azar se tomó al gen 5. Se sigue el mismo procedimiento: se borra de la tabla y se toma al gen vecino de 5 que tenga menos vecinos. Este procedimiento se sigue hasta terminar con todos los genes. El cromosoma hijo (ERX solo produce un hijo) resultante de este cruce es:. X' - 1 5 7 6 4 3 8 O 2 La principal característica de este individuo es que todas sus adyacencias se encuentran, o en el cromosoma padre, o en el cromosoma madre. El orden que ocupan los genes no tiene importancia para este cruce, solamente las adyacencias, es por esto que este cruce es muy bueno para el problema del agente viajero, en el cual no importa el orden en que se visiten las ciudades sino qué ciudad va a ser visitada después de cuál. El cruce ERX fue programado para este trabajo y se hicieron varios experimentos. Constantemente el AG se esfuerza por mantener individuos buenos pero ERX los destruye; ésto se debe a que en el problema del agente viajero, el peso entre la ciudad A y B es el mismo que el peso entre la ciudad B y A; a los problemas que presentan esta característica se les conoce como Euclidianos. El problema de calendarización es no-euclidiano..
(36) 16. Capítulo 2. Antecedentes. 2.3.2. Operadores de Mutación. Se cuenta con tres técnicas de mutación utilizadas pare, permutaciones [Ross 01]: mutación de pantano, mutación basada en orden y mutación basada en posición. Se explicará el funcionamiento de cada uno de ellas.. Swamp-based mutation (Mutación de pantano) Se escoge un gen del cromosoma y se intercambia por mu de sus vecinos, el pantano, como lo dice su nombre, es la vecindad de este gen. E. comportamiento de esta técnica se muestra en el siguiente ejemplo: Dado el cromosoma: X = 15762 8034 Se obtiene: X' = 1 5 7 6 8 2 0 3 4. Order-based mutation (Mutación basada en orden) En esta técnica se toman dos genes del cromosoma e intercambian su orden, como lo muestra el siguiente ejemplo: Dado el cromosoma: X=157628034 Se obtiene: X' = 1 5 3 6 8 2 0 7 4. Position-based mutation (Mutación basada en posicicu) Esta técnica toma un gen del cromosoma y lo inserta en una posición aleatoria dentro del cromosoma causando que el orden de muchos d? los genes tengan que.
(37) 2.4. Manejo de Castigos Dentro de un AG. 17. moverse un espacio para dar entrada al nuevo gen, como lo muestra el siguiente ejemplo: Dado el cromosoma: X=157628034 Se obtiene: X' = 1 5 7 2 8 0 6 3 4. 2.4. Manejo de Castigos Dentro de un AG. Existen dos formas de tratar con restricciones en un AG según [Richardson 89]: (1) Métodos que modifican los operadores genéticos y (2) Métodos que utilizan castigos. Las técnicas que entran en el primer método tratan básicamente de modificar el cruce y la mutación además de introducir nuevos operadores con la finalidad de que los individuos resultantes después de cada generación sean factibles. Las técnicas que entran en el segundo método se basan en utilizar un castigo para cada restricción violada, así una solución que viole muchas restricciones tiende a desaparecer. Esta sección trata sobre el segundo tipo de técnicas. El utilizar castigos dentro de un AG tiene como finalidad diferenciar un cromosoma que representa una solución buena de un cromosoma que representa una mala. El valor del castigo que se le adjudica a una solución es proporcional a la distancia que existe entre el punto en el que se encuentra esta solución en el espacio de búsqueda y una región factible. Este castigo pretende disminuir (si se ésta maximizando) o aumentar (si se ésta minimizando) la aptitud del individuo dependiendo de las restricciones que haya quebrantado. Se han desarrollado muchas técnicas para manejar estos castigos, a continuación se presentará la corriente a la que pertenecen algunas técnicas, quién la desarrolló, en qué tipo de problemas fue utilizada y los resultados que se obtuvieron.. 2.4.1. Métodos Elitistas. Este tipo de métodos impiden hacer operaciones genéticas sobre individuos infalibles. Existen, entre otros, dos métodos que caben dentro de esta categoría:.
(38) 18. Capitulo 2. Antecedentes. Pena de muerte En esta técnica el castigo es de muerte, cuando se ha generado un nuevo individuo infactible, ya sea por mutación o por cruce, se puede imped'r que este individuo entre a la población matándolo inmediatamente. El hueco que deja v..ste individuo puede ser llenado con un nuevo individuo generado al azar (que cumpla 'a restricción de que sea factible) o manejar una población dinámica, i. e., que el número de individuos en la generación no sea fijo. La ventaja de esta técnica es mantener siempre un pool? ;ión factible, y así sólo centrarse en encontrar el individuo cuya aptitud sea la óptima. La desventaja es que puede tomar mucho tiempo en evaluar y rechazar a las solucionas infactibles [Joines 94]. En experimentos realizados por [Michalewicz 95] se puede oí servar que sólo sirve para una pequeña gama de problemas en los cuales la región factitie del espacio de búsqueda es muy grande.. Algoritmos de reparación Esta técnica no es una técnica basada en castigos, pero es importante porque puede ser tomada como una extensión del método de pena de muerte. La extensión radica en que en lugar de desechar a estos individuos infactibiee se crean algoritmos que reparan a este individuo, la dificultad que representa un individuo ante estos algoritmos es la diferencia que existe entre el punto en donde se encuadra este individuo en el espacio de búsqueda y una región factible. Se podría decir también que la dificultad de reparar un individuo infactible es similar al valor de castigo que se le daría a este mismo individuo en un método que si utiliza castigos . La ventaja que representa esta técnica es que, al igual rué el método anterior, se maneja una población factible, pero con la diferencia de L.ue la población es fija. Otra ventaja es que en algunos tipos de problemas, la solución óptima se encuentra rodeada de soluciones infactibles, de esta forma, cuando una solución infactible ha sido arreglada, el nuevo individuo puede representar la solución ópu'.na. La desventaja de este método es que, según Smith et al. [Smith 93] al momento de reparar a un individuo también se modifica el esquema adu.úrido de sus padres, y para que sus padres estuvieran ahí es por que eran factibles y, posiblemente, cercanos al óptimo.. 2.4.2. Castigos Estáticos. Un método que utiliza castigos estáticos fue introducido on [Homaifar 94] al proponer la construcción de una familia de niveles para cada tipo de restricción a la que.
(39) 2.4. Manejo de Castigos Dentro de un AG. 19. nos enfrentamos en un problema, donde los niveles equivalen al grado en el que se violó dicha restricción. La ventaja de esta técnica es que se tiene control sobre todos los niveles de violación de cada restricción, de esta forma el castigo es más justo. Existen tres desventajas en este método: (1) Es muy difícil proponer el castigo adecuado para todas las restricciones, (2) que para m restricciones se necesitan m(2£+l) parámetros; por cada una de las m restricciones se necesitan £ parámetros para representar las fronteras entre los niveles de violación y £ parámetros más para representar los coeficientes de éstos castigos, y (3) que los pesos son estáticos y desperdician información que se genera en la búsqueda.. 2.4.3. Castigos Dinámicos. Los métodos que manejan castigos dinámicos son aquellos que manipulan los castigos sin ninguna retroalimentación de la búsqueda, ya sea utilizando una variable que va cambiando con el tiempo o por medio de la generación en la que se encuentra. Se explicarán dos métodos:. Método de Joines y Houck. Joines y Houck [Joines 94] proponen una forma de modificar los castigos en un método que llamaron: castigos no estacionarios. Este método, que ésta diseñado para manejar restricciones no lineales, incrementa los castigos de acuerdo a la generación en la que va el AG de tal manera que entre más aumente el número de generaciones, más aumentarán los castigos. La idea de este método es forzax a. puntos infactibles hacia la región factible del espacio de búsqueda al momento de estar aumentando los castigos de forma gradual. La fórmula utilizada por este método es la siguiente: P(a,3) = pakxSVC(3,l(). (2.5). donde: a y (3 son constantes. p£ es la multiplicación entre la constante a y el número de generación actual k. SVC(B,X) siglas en inglés Sum of the violated constraints, que no es más que la suma de las restricciones violadas. La constante 3 agrega severidad aX..
(40) 20. Capítulo 2.. Antecedentes. Este método da oportunidad al AG de explorar el espacio de búsqueda antes de incrementar los castigos, ésto hace que tenga mayor probabilidad de encontrar el óptimo y no un óptimo local. Este método fue probado en cuatro casos que contenían restricciones lineales y no lineales, utilizando tres combinaciones diferentes de a y /?, P(l,l), P(l,2)y P(2,2). Dados los resultados se concluyó que este algoritmo se comporta mejor cuando a y (3 es igual a 1 (P(l,l)); éste método fue utilizado sobre problemas pequeños con dos o tres restricciones, los cuales contaban con jna región factible muy grande.. GENOCOP II GENOCOP II [Michalewicz 94] es un algoritmo que maneii de diferente manera la forma de hacer dinámicos los castigos. La idea principal es ^lunejar una variable temperatura la cual va cambiando durante la búsqueda. Los pasr3 que sigue este algoritmo son los siguientes: (1) Dividir las restricciones en cuatro conjuntos: ecuacicnf,, lineales, desigualdades lineales, ecuaciones no lineales y desigualdades no lineales. (2) Seleccionar un punto al azar como punto inicial, la población inicial se compone de puras copias de este individuo. Este punto debe satisfacer las restricciones lineales. (3) Inicializar la variable temperatura a TO. (4) Utilizar la formula eval(x,r) = f ( x ) + — Y^JLi ff(x] tín -a población. (5) Hasta que se cumpla r = r¡ hacer lo siguiente: -Decrementar la temperatura r. -Utilizar la mejor solución encontrada como punte inicial para la próxima iteración. La temperatura va disminuyendo en forma lineal durante la búsqueda, este valor de temperatura hace que esta técnica sea conocida como pa*te de las técnicas basadas en recocido simulado. Esta técnica obtiene buenos resultados eolo que al realizar el modelo del problema se topa con varios parámetros que se deben afinar.. 2.4.4. Castigos Adaptables. Este tipo de métodos se basan en la idea de que es pojibie incorporar una retroalimentación basada en pasadas búsquedas con la finalidad ch ajustar los castigos y obtener la ventaja de no proponer las castigos para cada restricción fMichalewicz 02]. Se explicarán cinco técnicas para adaptar los castigos:.
(41) 2.4. Manejo de Castigos Dentro de un AG. 21. Método de Smith La idea general de Smith et al. [Smith 93] es de que la aptitud de los individuos de la población no es importante ya que es sub-óptima. Se utiliza la aptitud sólo para llegar a un esquema (ver sección 2.2) que contenga a la solución óptima o casi-óptima. En problemas altamente restringidos la solución óptima se encuentra en la frontera entre la zona factible y la zona infactible, por lo tanto, la mayoría (si no es que todos) de los vecinos de la solución óptima son infactibles. La fórmula para sacar el castigo de un individuo es la siguiente: (2.6). donde: ri-j. es la cantidad de restricciones violadas.. Vfeas es la mejor aptitud factible. Van. es la mejor aptitud sin contar el valor de penalización.. k. es un parámetro que ajusta la severidad de la función de penalización.. La diferencia entre Vfeas y Vau le da el toque de adaptabilidad. Lo que hace ésta ecuación es cambiar la penalización a los individuos infactibles a medida que éstos y los individuos factibles van mejorando. Este método fue utilizado para el problema de layout de diferentes áreas, obteniendo muy buenos resultados y probando que el parámetro k debe ser igual a 1 para obtener mejores resultados.. Dos métodos propuestos por Crossley y Williams La estrategia utilizada por Crossley y Williams [Crossley 97] se basan en la idea de incrementar el coeficiente de castigo cuando la población es muy diferente, haciendo que la población se mueva hacia una zona factible del espacio de búsqueda (ya que cuando el castigo es muy grande los individuos infactibles mueren) y de disminuir este coeficiente cuando la población sea muy parecida, ésto hace que individuos infactibles puedan formarse y sobrevivir. Explican que la idea de dejar vivir a individuos infactibles es con la esperanza de que alguno de éstos individuos (que morirían si no fuera muy bajo el castigo) puedan tener el esquema en el que se encuentra la solución óptima. De esta forma encontraron dos parámetros con los cuales podrían conocer cuando la población es muy parecida y cuando es muy diferente: la desviación estándar y la varianza. Estos dos métodos compitieron contra otros cuatro: (1) c — 2 (valor constante), (2) c = n (valor dinámico, n es el número de la generación en la que se encuentran),.
(42) 22. Capítulo 2. Antecedentes. (3) c = n 2 (valor cuadrado dinámico) y (4) c = 2n (valor exponencial dinámico). El castigo de un individuo se obtiene mediante tres fórmulas (se hicieron pruebas con las tres): PÍ = d[l + 9i(x)]. (2.7). Pi = ci[max(0,gi(x))]*. (2.8). Pi = ci[max(Q,gi(x))]. (2.9). donde: Ci es el coeficiente adaptable. <7i es la suma de los castigos correspondientes a las restricciones violadas por un individuo. Todos los métodos fueron utilizados en un problema de una dimensión (ecuación 2.10) y en un problema de dos dimensiones (ecuación 2.11). min/(z) = x2. (2.10). sujeto a: x > 2 min</>(:r) = x\ + x\ + 25(sin2 Xi + sin2 .r2,. (2-11). sujeto a: x\ + x<2 > 2 Como resultado se obtuvo que el utilizar la desviación estándar da mejores resultados que la varianza, y que a su vez, el utilizar 2 como coefici inte da mejores resultados que utilizar la desviación estándar. Ésto nos dice que para este tipo de problemas no sirve de nada tener castigos adaptables.. Método de Harnda y Schoenauer. Hamda y Schoenauer [Hamda 00] intentan resolver el probbma mecánico, el cual consiste en encontrar la forma óptima de una estructura tal que el comportamiento mecánico de esta cumpla con varios requerimientos. El criterio máximo es el peso de la estructura; aunque se puede introducir otros criterios. LH función de penalización utilizada en este método es la siguiente:.
(43) 2.4. Manejo de Castigos Dentro de un AG. 23. Minimizar : peso + a(Dmax - Diim}+. (2.12). donde: peso es el peso de la estructura dmax es el desplazamiento máximo. dnm es el limite del desplazamiento. a esta variable contiene la propiedad de adaptación, se explicará a continuación.. a k+1. (3.ak = < (l/(3).ak ak. si QkfeasMe < Qinf si QkfeasMe > Qsup de otra manera. (2.13). donde: /3 valor mayor que uno. Qkfeasibie es la proporción que representa los individuos factibles en la generación k. p una proporción mayor y una menor (O¿n/ ^ QSUp). Los valores /?, G¿n/ y Qsup son dados por el usuario, en este caso se les dio estos valores: /? = 1.1, 6¿n/ = 0.4 y Qsup = 0.8. Esta técnica funcionó para problemas en los que el óptimo está cerca de la frontera entre soluciones factibles e infactibles.. Método de Hamida y Schoenauer Otro enfoque de métodos adaptables es el de Hamida y Schoenauer [Hamida 00] donde introduce un método que intenta mantener una proporción de la población con individuos factibles, ésto se logra pidiendo como parámetro una variable llamada Tt arget . La función de penalización es la siguiente: penal(x) = Sj=1a^+ La variable ctj (elemento adaptativo) sale de la siguiente ecuación: if (r¿ > Ttarget) at+1 = at/fact de otra manera at+í — at x fact. (2.14).
(44) Capftulo 2. Antecedentes. 24 donde fací > 1 y es definido por el usuario/programador. El valor inicial de a se saca con la siguiente formula:. donde u(x¿) es la suma de las restricciones violadas por x¿. En resumen se puede decir que la variable a aumenta c disminuye para mantener una población de elementos factibles parecido a Ttarget] se besan en la idea de que si se aumenta el castigo los individuos infactibles mueren y si se lisminuye el castigo los individuos infactibles sobreviven, así intentan mantener un orden. Ayudando a esta función de penalización se le introducen dos pasos más al AG. El primer paso es una selección estratégica que obliga a que un individuo factible c. sólo cruzarse con un individuo infactible con el fin de buscar en la frontera de factibilidad e infactibilidad; el segundo paso se activa cuando la cantidad de factibles hi disminuido tanto que es necesario mantenerlos vivos, así esta técnica toma una cantiaad de factibles ya sean padres o hijos y los mantiene vivos para la siguiente generacióii.. Método de Eiben para restricciones binarias Eiben [Eiben 98] desarrolló esta técnica para el problerra de coloreo de grafos, es por esto que es necesario convertir las restricciones en restricciones binarias. Una restricción binaria es aquella que concierne a dos variables únicamente. Se utiliza un AG asexual que no utiliza cruce y que tiene una población ae un sólo individuo. El tamaño del cromosoma es igual a la cantidad de nodos y se utiliza una representación entera de cero a tres (cada uno de los colores y cero representa no coloreado); para llenar el cromosoma se utiliza un algoritmo codicioso que colorea cada uno de los nodos con el mínimo color posible sin violar restricciones y d'.ja sin colorear cuando no quedan colores. De esta manera la función objetivo se basa en los nodos no en las restricciones violadas: f ( x } = Z?=0ul.X(x,i) donde u;¿ es el peso que se le asigna al nodo i y x(x, *) sin colorear, de lo contrario x(x, i) es igual a 0.. (2.17) es. i^ual a 1 si el nodo x¿ esta. Cada rp evaluaciones el mejor nodo en el cromosoma es coloreado y los castigos de sus nodos sin colorear se incrementan en Au>. Esto hace que el AG tenga que buscar.
(45) 2.5. Resumen del Capítulo. 25. en un panorama que cambia la aptitud dinámicamente.. 2.5. Resumen del Capítulo. Este capítulo presenta una idea general de los antecedentes de nuestra investigación al responder las siguientes preguntas: ¿Cuáles son las características generales de un problema de calendarización?, ¿Qué sabemos a cerca de los AGs?, ¿Que modificaciones requiere el AG para resolver nuestro problema?, ¿Qué diferentes operadores existen para manejar un cromosoma basado en permutaciones?, ¿Qué técnicas se han utilizado para adaptar castigos? y ¿Qué problemas se resolvieron con estas técnicas? Ahora estamos listos para modelar nuestro problema..
(46) 26. Capítulo 2. Antecedentes.
(47) Capítulo 3 Modelación del Problema A continuación se presentan los aspectos más importantes que se tomaron en cuenta para representar el problema de calendarización dentro de un AG. Para comenzar se dará la definición particular del problema: calendarización de actividades de un congreso, seguido por la generación de problemas de prueba, la representación del cromosoma, la función objetivo y los preceptos tomados en cuenta para establecer los castigos estáticos.. 3.1. Calendarización de Actividades de un Congreso. La intención de este trabajo es introducir mecanismos de adaptación a los castigos de las restricciones de un problema de calendarización. Dentro de todos los tipos de problemas de calendarización, se escogió el problema de calendarización de actividades de un congreso, en el cual las características del problema de calendarización (sección 2.1) se vuelven más particulares y algunas diferencias se dan a notar: • En la mayoría de los problemas de calendarización, se asume que las actividades tienen la misma duración. En nuestro problema, las actividades presentan diferencias entre ellas en su duración. • La característica anterior da entrada a una nueva restricción: el tiempo total del congreso. En otros problemas no se toma en cuenta el tiempo total como una restricción ya que todas las actividades tienen la misma duración y no hay posibilidad de que el tiempo final sea mayor que el tiempo dado, si se cumple que el tiempo dado es mayor o igual que la suma de la duración de todas las actividades involucradas en el problema. • Cada actividad tiene un valor único del dominio i.e. ninguna actividad ocupará el mismo espacio de tiempo que otra, por lo tanto se manejaran permutaciones en el cromosoma del AG. 27.
(48) 28. Capítulo 3. Modelación del Problema • El dominio no es un conjunto de lapsos de tiempo, sino todo los minutos con los cuales cuenta el congreso. • La idea es resolver el problema de calendarización tompuoo en cuenta los siguientes cuatro tipos de restricciones: - Preset(x,y). Se obliga a la actividad x a ser caleraarizada a las y horas. - Exclude(x,a). Se impide que la actividad x sea cale-idarizada dentro de los espacios de tiempo reunidos en el arreglo a. - Order(x,ií;). La actividad x debe estar calendariza^a antes de la actividad w. - Time(í). La suma de lo calendarizado no debe se: mayor a t.. 3.2. Generador de Problemas. Este generador fue diseñado con la finalidad de crear nuevos problemas con diferentes características para realizar los experimentos. Existen varios parámetros que hacen un problema diferente de otro, al escoger estos parámetn.s se intentó acercar las características generadas a las de un congreso real. Las características son las siguientes: • Cantidad de días: de 3 a 5 días. • Duración de cada día: de 450 a 675 minutos. • Cantidad de actividades por día: de 15 a 35 actividades. • Duración de cada actividad: de 1 a 90 minutos. • Porcentaje de actividades que contienen restricción: 80%. • Dado que una actividad cuente con una restricción, ¿que ^ipo de restricción es?: PRESET: 25%. EXCLUDE: 45%. ORDER: 30%.. La presencia de la restricción TIME dentro del problem?, es cantDias — 1, como ya se explicará en las siguientes secciones. Con estos parámetros podemos establecer el problema más chico con las siguientes características:.
(49) 3.2. Generador de Problemas. 29. • Días: 3. • Duración total: 1350 minutos (450 por cada día). • Actividades: 45 (15 por cada día). Asimismo podemos reconocer el problema con mayores dimensiones: • Días: 5. • Duración total: 3375 minutos (675 por cada día). • Actividades: 175 (35 por cada día). Es importante mencionar que la sumatoria de la duración de todas las actividades es igual a la sumatoria de la duración de todos los días. i<cantAct. ^ i=0. j<cantDias. a[i}.duración =. ^. d[j].duración. (3.1). j=0. donde la variable a contiene la información de cada actividad, así como d contiene la de los días; cantAct y cantDias representan la cantidad total de actividades y de días respectivamente. Las restricciones PRESET son las que presentan mayor dificultad al crear problemas por que pueden fácilmente hacer que un problema sea imposible de resolver, pero también es la restricción en la cual se detecta con mayor facilidad los casos cuando sucede ésto, los cuales son: • El obligar a una actividad a estar a una hora y que en su duración se obligue a otra actividad a ser calendarizada. En la figura 3.1 se puede observar como la act2 esta calendarizada a la misma hora a la que esta otra actividad. • Que la duración de la misma actividad cause violación a la restricción TIME al salirse de los límites de un día. En la figura 3.2 se puede observar como la actl esta calendarizada después de los límites del día X. Para resolver éste problema se llevó un control de cada restricción PRESET y así impedir la creación de nuevas restricciones que causen un problema imposible; ésto no nos da total certeza de que todas las restricciones PRESET se pueden cumplir ya que las demás restricciones pueden tener conflictos con ésta. Para las demás restricciones no se hizo este tipo de filtro ya que es muy difícil detectar los casos cuando hacen imposible un problema. Para la restricción EXCLUDE se requiere que la cantidad de minutos entre dos lapsos de tiempo sea mayor o igual que la duración de dicha actividad, en el caso de.
(50) Capítulo 3. Modelación del Problema. 30. PRESET ACT1 10:00 PRESET ACT2 10:30. DIAX. 10:00. 10:30. FIGURA 3.1: La restricción PRESET causa problemas imposibles. Caso. PRESET ACT1 19:00 DIAX. 19:00. FIGURA 3.2: La restricción PRESET causa problemas imposibles. Caso #2.. que no lo sea es mejor juntar estos dos lapsos en uno solo y tomarlo como una sola restricción. La figura 3.3 nos da un ejemplo en el cual la diferencia en tiempo entre las dos restricciones EXCLUDE son menores que la duración de la actividad ACT1, así que se unen en una sola restricción. Finalmente, el generador crea un archivo que es leído por el AG para evaluar a los individuos, las características de este archivo se pueden observar en la figura 3.4. La línea 1 contiene la cantidad de días con los que cuenta el congreso. En la línea 2 (en verdad es de la línea 2 hasta 2 + cantDias, lo mismo pasa con la línea 4 y 6) contiene la información de cada día: cantidad de minutos nc^os, hora de comienzo del día y hora en que termina el día. La línea 3 contiene la cantidad de actividades y en la línea 4 las características de cada actividad: nombre, duración, una bandera para saber si la actividad tiene restricción tipo PRESET y la cantidad de lapsos en los que no puede estar la actividad. La línea 5 contiene la cantidad de restricciones y en la 6.
(51) 31. 3.3. Representación del Cromosoma. EXCLUDE ACT1 10:30-11:00 EXCLUDE ACT1 11:45-12:30. EXCLUDE ACT1 10:30-12:30. DIAX. 10:30 11:00. 11:45. DIAX. 12:30. 10:30. 12:30. Si (11:45 - 11:00) < a[1].duración FIGURA 3.3: Cuando dos restricciones EXCLUDE se hacen una sola.. : : ? 4. días i=o -> días; minutos_netos[i] hora_comienzo[i] hora_final[i] actividades i=o -> actividades; nombre[i] duraciónfi] bpreset[i] lapsosfi] j=o -> lapsos[i]; hora[i][j]. í restricciones 6 i=o -> restricciones; tipo[i] minuto[i] afectaifi] afecta2[ij 7 nombre s duracion_total FIGURA 3.4: Estructura del archivo de salida del generador de problemas.. las características de cada una: tipo de restricción (1 para PRESET y 2 para ORDER, la restricción EXCLUDE se obtiene en la línea 4 en los lapsos de tiempo en los que no puede estar la actividad), minuto en que afecta, actividad a la que afecta y actividad a la que afecta si es una restricción ORDER. La línea 7 contiene el nombre del congreso y la línea, 8 la duración total del congreso en minutos. Al final de este documento, en el Apéndice A, se da un ejemplo de un archivo creado por este generador. Este generador fue programado utilizando el lenguaje de programación C en un ambiente Linux, aunque muy bien, con pocas modificaciones, puede ser compilado bajo plataforma Windows.. 3.3. Representación del Cromosoma. Se buscó la forma más simple pero completa de representar el cromosoma. PGA no representa los problemas de calendarizacion como permutaciones, el camaño del cromosoma es la cantidad de actividades y el valor de cada gen del cromosoma representa.
Figure
Documento similar
(...) la situación constitucional surgida tras la declaración del estado de emergencia es motivo de preocupación para la Comisión de Venecia. La declaración en sí misma no definió
Sabemos que, normalmente, las cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar; sin embargo existe la posibilidad de que un atacante
La primera opción como algoritmo de compresión para secuencias biológicas que sugirió la directora del proyecto fue la adaptación de los algoritmos de Lempel-Ziv al alfabeto formado
En esta sección se tratan las características que debe tener un compresor de secuencias biológicas para poder ser usado como herramienta en la construcción de los árboles de
En algunos trabajos de ecología (no-humana) se consideran los aspectos metodológicos (cualitativos) de la historia oral equivalente a las historias de vida o entrevistas
El diámetro de tallo, altura de planta, número total de frutos y contenido de azúcares en los frutos mostraron mayor heterosis positiva (27.32, 35.48, 43.10 y 34.76
Para la identificación de los materiales se utiliza las iniciales de la matriz polimérica, en nuestro caso la abreviatura de poliestireno PS, seguida de la
El Programa de Mecenazgo organiza un concurso para "Amigos del IAC" en el cual podrán realizar una propuesta de observación para un telescopio robótico 1. Aquellas que