Resumen: E-024 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Validación de la implementación de la Función de Aptitud de un Algoritmo Genético aplicado a la sectorizacion Herrmann, Castor F. - Monzón, Ricardo - Mariño, Sonia I. - Bogado, Verónica Departamento de Informática. Facultad de Ciencias Exactas y Naturales y Agrimensura. UNNE. 9 de Julio 1449. 3400 Corrientes. Argentina [email protected], [email protected], [email protected], [email protected] 1. Introducción Los Algoritmos Genéticos (AGs) son una herramienta relativamente nueva, perteneciente al campo de la Inteligencia Artificial, se basan en los procesos naturales que permiten la evolución de las especies en las poblaciones. El principal fundamento es la Teoría de la Evolución de Darwin, complementado con otros conceptos y teorías más recientes de la Genética. Formalmente, los Algoritmos Genéticos se pueden definir como métodos sistemáticos para la resolución de problemas de búsqueda y optimización que aplican a éstos los mismos métodos de la evolución biológica: selección basada en la población, reproducción sexual y mutación [MER]. La implementación de un AG requiere el planteo de un conjunto de elementos (operadores, parámetros y criterios), siendo los más importantes: la Función de Aptitud (Fitness), la representación de las soluciones (definición de los individuos), el esquema de reemplazo (determina en cierto modo el tipo de AG), los operadores (selección, cruce y recombinación, mutación, etc.), los parámetros (tasa cruce, tasa de mutación, número generaciones, etc) y ciertos criterios (de reemplazo, de inicialización, de parada, etc). La Función de Aptitud es la función objetivo en los problemas de optimización. Ésta, se debe maximizar y/o minimizar, encontrando valores para los diferentes parámetros que resulten óptimos al ser reemplazados en la función objetivo. La función objetivo debe reflejar los aspectos más relevantes del problema; estableciéndose las condiciones que restringen los resultados proporcionados por el algoritmo. El valor de la Función de Aptitud representa la calidad de la solución o el fitness de cada individuo [BEA]. Los Algoritmos Genéticos pueden ser utilizados como métodos de optimización o búsqueda, resolviendo problemas de la clase NP-Completos. Un problema que puede ser resuelto adecuadamente mediante la aplicación de Algoritmos Genéticos es el problema de sectorización. La sectorización consiste en agrupar un conjunto de puntos definidos en un espacio determinado de una forma óptima, cumpliendo con la condición de que un punto puede pertenecer solo a un sector y cada uno de los puntos definidos en el espacio debe estar contenido en alguno de los sectores conformados. Los sectores óptimos son aquellos que agrupan a todos los puntos del espacio de la manera más conveniente a la distribución que presentan los mismos. Esta forma óptima de sectorizar implica que la distancia entre los puntos de cada sector sea mínima y la distancia entre los centros de los distintos sectores sea lo suficientemente lejana. La sectorización, descripta como problema general, puede aplicarse a problemas puntuales. Un problema específico es el agrupamiento de puntos de recogida de residuos, en los cuales se encuentran uno o más contenedores. En este caso particular, además de las consideraciones mencionadas para el caso general, se debe tener en cuenta la cantidad de contenedores por punto, la capacidad de los mismos, la capacidad de los camiones y los enlaces entre los puntos. El propósito del presente trabajo es estudiar las características del sistema informático descrito por Peláez Sánchez [PEL], con el fin de investigar el AG, especialmente la Función de Aptitud para resolver un problema de sectorización específico. Se presentan y analizan los resultados obtenidos con la implementación del AG y su comportamiento ante las modificaciones de ciertos parámetros. 2. Materiales y métodos La metodología adoptada en este trabajo se basa en los pasos definidos para el desarrollo de herramientas que incorporan Algoritmos Genéticos, siendo éstos: 1º) Análisis y definición del problema 2º) Representación y codificación de las soluciones a. Especificación de genes, cromosomas, individuos, población 3º) Definición de la Función de Aptitud a. Diseño de la Función de Aptitud. b. Implementación de la Función de Aptitud c. Análisis del comportamiento de la Función de Aptitud 4º) Definición del proceso completo del AG 5º) Definición de los parámetros 6º) Modificación del AG específico aplicado a la sectorización: (función de adaptación) 7º) Evaluación de los resultados Resumen: E-024 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 El desempeño del algoritmo depende, en gran medida, del equipo empleado, por lo tanto los resultados proporcionados por el mismo (tiempos de ejecución) tienen una relación directa con él. Las herramientas de mayor importancia para el cumplimiento de los objetivos planteados son: i) El Algoritmo Genético, objeto de estudio del trabajo, está diseñado especialmente para sectorizar los puntos de recogida de residuos urbanos, ubicados en un área determinada. El mismo se encuentra incorporado como un módulo del SADRSRU [PEL], Sistema de Apoyo a la Decisión para la Recogida Selectiva de Residuos Urbanos. ii) Lenguajes de programación. Entre otras herramientas, se utilizaron Delphi y C++ (Borland Delphi 6 y Borland C++ Builder). Este último para realizar las modificaciones necesarias en el AG. iii) Hardware de la Implementación. Para la validación del AG, se empleó una PC con las siguientes características: Procesador AMD K6-2 de 500 MHz Memoria RAM 128 MB, dos DIMM de 64 MB. Disco Rígido de 5 GB. Placa madre con un bus de 100 MHz. Sistema Operativo: Ms-Windows 98 2da Edición Resultados El comportamiento del AG en las pruebas depende de diversos factores, los cuales condicionan la calidad de las soluciones brindadas por el mismo y el tiempo empleado para alcanzar tales soluciones. Si bien, el AG estudiado se aplica para resolver el problema de sectorización, se debe tener presente que soluciona una aplicación particular del mismo, donde los puntos en el espacio simbolizan puntos de recogida de residuo. Por lo tanto, existen dos grupos de parámetros, que influyen de diferentes formas sobre el desempeño del AG, los propios del problema de sectorización y los propios de un AG, a su vez dentro del primer grupo se encuentran los específicos de este problema de sectorización. Los parámetros considerados relevantes del primer grupo citado, para el análisis del AG particular, son: la cantidad de puntos definidos en el espacio y las distancias entre los puntos. Algunos de los propios de este problema de sectorización son: el número de enlaces realizados entre los puntos (entre puntos que sean adyacentes), cantidad de contenedores, capacidad de los contenedores, capacidad de los camiones. Entre los más destacados del segundo grupo se encuentran el número de iteraciones, la tasa de mutación, la composición de los individuos (cantidad de genes y cromosomas). Los parámetros empleados por la Función de Aptitud (para mayores detalles ver [PEL] y [HER]) en la resolución del problema planteado son: las distancias entre los puntos (respecto a un centro de gravedad) y ubicación de los puntos en el espacio (coordenadas de cada punto), indirectamente influye también la cantidad de puntos definidos. Éstos se utilizan para obtener un conjunto de valores resúmenes que reflejan la calidad de cada solución, posible configuración de los sectores respecto de una distribución dada de los puntos. Muchos de los parámetros pueden ser manipulados mediante la interfase del sistema, sin embargo algunos de ellos no están disponibles a modificaciones de usuarios. En este caso con el único objetivo de estudiar la sensibilidad del comportamiento del AG ante cambios en sus operadores o parámetros se consideró necesario algunas reformas en la implementación del mismo. Con el fin de validar el comportamiento de la Función de Aptitud se realizaron distintas ejecuciones del AG, donde en cada caso se cambiaron los valores de algunos de los parámetros mencionados y se mantuvieron constantes otros, combinándolos según corresponda. Si bien, el número de pruebas concretadas formalmente en el trabajo fueron 37, se realizaron un sin número de pruebas “pilotos” para corroborar el buen funcionamiento del AG estudiado, las cuales por razones de tiempo y espacio (tamaño del documento) fueron excluidas. Para el presente trabajo se seleccionaron aquellas que mejor destacan los valores de la Función de Aptitud respecto de las distancias entre los puntos. A modo de ilustrar el trabajo se muestran dos casos de estudio. Estas pruebas se realizaron con 25 puntos en el espacio condiciones similares, diferenciándose en dos casos particulares. En cada uno de ellos, la cantidad de enlaces y la distribución de los puntos en el espacio es diferente. Para ambos casos la cantidad de camiones es 1 y su capacidad de 27.000 litros, la cantidad de contenedores es de 25 con una capacidad de 1.100 litros, la cantidad de puntos de recogida es 25 donde existe un solo contenedor en cada punto. La evolución se realizó mediante 50 generaciones hasta un total de 400. El valor del parámetro de mutación varió entre 0 y 5, según corresponda. Ejemplo 1.En las pruebas realizadas para este caso de estudio, las diferentes variables asumen los valores establecidos anteriormente. Por otro lado la distribución de los 25 puntos en el espacio es muy concentrada, en una zona particular del plano, siendo las distancias entre los puntos muy pequeñas. Además, la cantidad de enlaces es 30. En la tabla 1 se muestran los resultados obtenidos con la ejecución del AG con estos valores de parámetros. En la figura 1 se muestran los sectores obtenidos (solución): Sector 1, Sector 2. Tabla 1: Valores de la Función de Aptitud del ejemplo 1 Cant. Fitness Generaciones (calidad mejor solución) 80,3354110717773 50 80,2975692749023 100 80,2975692749023 150 80,2975692749023 200 80,2975692749023 250 80,2975692749023 300 80,2975692749023 350 Tiempo Ejecución por c/50 gener. 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto Resumen: E-024 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Cant. Fitness Generaciones (calidad mejor solución) 80,2975692749023 400 Tiempo Ejecución por c/50 gener. 1 minuto 8 minutos = 480 seg Luego de realizarse las 400 generaciones, se obtuvo como mejor solución la siguiente. Cantidad de sectores: 2 Sector 1: 10-16-19-9-4-1-8-18-6-7-14-2-12-17-15-11-3-13-5 Carga del sector 1: 20.900 Sector2: 20-21-22-24-23-25 Carga del sector 2: 6.600 Figura 1: Sectores obtenidos en el ejemplo 1 Ejemplo 2. En las pruebas realizadas para este caso de estudio, las diferentes variables asumen los valores establecidos anteriormente para pruebas con 25 puntos en el espacio. La distribución de los puntos en el espacio para estas pruebas hace que éstos se encuentren muy dispersos unos de otros, siendo las distancias entre los puntos muy grande en comparación con en el ejemplo 1. Además, la cantidad de enlaces es de 36. En la tabla 2 se muestran los valores de la Función de Aptitud obtenidos con esta ejecución. La figura 2 ilustra los sectores obtenidos (solución): Sector 1, Sector 2 Tabla 2: Valores de la Función de Aptitud del ejemplo 2 Cant. Generaciones 50 100 150 200 250 300 350 400 Aptitud o Fitness (calidad mejor solución) 644,462646484375 644,462646484375 638,92578125 638,913452148438 638,913452148438 638,913452148438 638,913452148438 638,913452148438 Tiempo Ejecución (por c/50 gener.) 50 segundos 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto 1 minuto 7,833 minutos = 470 seg Luego de realizarse las 400 generaciones, se obtuvo como mejor solución la siguiente. Cantidad de sectores: 2 Sector 1: 18-10-17-11-12-1-13-14-15-16-9-19-20-5-7-8-3-4-6 Carga del sector 1: 20.900 Sector 2: 21-22-23-24-2-25 Carga del sector 2: 6.600 Resumen: E-024 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Figura 2: sectores obtenidos en el ejemplo 2 Establecidos como parámetros igual número de puntos e igual número de contenedores, igual carga de contenedores e igual carga de camiones, el análisis de los resultados obtenidos, permite establecer que: i) Cuanto mayor es la distancia entre los puntos mayor es el valor de la Función de Aptitud, ii) Cuanto menor es la distancia entre los puntos menor es el valor de la Función de Aptitud (Ejemplos 1 y 2). Pero, resulta importante tener presente otro factor, el cual afecta directamente el resultado y es el número de generaciones (iteraciones del AG). Para este último se puede observar que: i) Si aumenta la cantidad de generaciones el valor de la Función de Aptitud tiende a disminuir, ii) Si disminuye la cantidad de generaciones el valor de la Función de Aptitud tiende a aumentar. Los resultados expuestos permitieron comprobar el correcto funcionamiento de la Función de Aptitud como parte del AG analizado en este trabajo. Esta afirmación se debe a que en un problema de sectorización el parámetro más importante es la distancia entre los puntos, por lo cual esta parte de la función tiene mayor peso. Conclusiones Este AG particular incluye operadores especializados, información propia del problema de sectorización que resuelve. Sin embargo, se pueden extraer conclusiones generales sobre la calidad de las soluciones y comportamiento del AG con esta Función de Aptitud, que sirvan para investigaciones futuras. En la mayoría de las pruebas realizadas, los valores de la Función de Aptitud de las soluciones y los tiempos empleados para alcanzar las mismas, fueron buenos demostrando que el AG posee un buen desempeño y que ésta técnica de la IA es una herramienta útil para solucionar problemas de sectorización en general. También, resulta interesante destacar que la Función de Aptitud es lo suficientemente genérica, lo cual permite que sea aprovechada en otros Algoritmos Genéticos que se apliquen en la resolución de problemas similares. Para finalizar, se propone en trabajos futuros generalizar el código del AG, manteniendo la Función de Aptitud, con el propósito de aplicarlo en la resolución de problemas de sectorización en la región. Referencias [BEA] Beasley, D.; Bull, D. R.; Martin, R. R. 1993. “An Overview of Genetic Algorithms: Part 1, fundamentals” En: http://delta.cs.cinvestav.mx/~ccoello/bibgen.htm, http: //delta.cs.cinvestav.mx/~ccoello/ga_overview1.zip [HER] Herrmann, C., Monzón, R., Mariño, S. y Bogado, V. 2005. “Resolución de Problemas de Optimización con Algoritmos Genéticos”. XVI Escuela de perfeccionamiento en investigación operativa. [MER] Merelo Guervós, J. J. 1997. "Tutorial de Informática Evolutiva". En: http://geneura.ugr.es/~jmerelo/ie/ [PEL] Peláez Sánchez, J. I.; Toledo Rubiales, L.; Sierra Jiménez, J. C. 2002. “SADRSRU: Sistema de Apoyo a la Decisión para la Recogida Selectiva de Residuos Urbanos”. Universidad de Málaga, España.