Algoritmo Evolutivo Multi-Objetivo para Maximizar una Función de Dos Variables

Campos Y., Rahn A.
Resumen – Los algoritmos genéticos han demostrado ser un método útil de búsqueda de soluciones satisfactorias (calidad/tiempo), en problemas cuyo espacio de solución es difícil de tratar por otro métodos por su amplio rango. Tratar de maximizar una función de dos variables con este método heurística es atractivo debido a que existen muchas formas de abordarlo en la implementación; por ejemplo se puede variar el tipo de escalamiento, el GAP generacional, implementar diferentes tipos de cruce, etc. Estas posibilidades brindan la oportunidad de ajustar los parámetros de tal manera que la convergencia a la solución sea mucho eficiente en cuanto a la relación calidad/tiempo que los métodos exactos no pueden ofrecer. Palabras Claves – Algoritmos Evolutivos, Maximizar función, escalamiento, operadores genéticos. Mecanismo de trabajo de los AG A partir de una población de "cromosomas" (cadenas de 1 y 0, o bits) generados aleatoriamente se crea una nueva población usando un mecanismo de selección natural junto con los operadores genéticos de cruce, mutación e inversión. Cada cromosoma consiste de "genes" (bits), cada gen es una instancia de un particular "alelo", (0 o 1). Selección Escoge los cromosomas en la población que podrán reproducirse, y en promedio los cromosomas más aptos producen más descendientes que los menos aptos. Cruce Intercambia partes de dos cromosomas tratando de reproducir la recombinación biológica entre dos organismos monocromosómicos Mutación Cambia aleatoriamente los valores de alelo de algunas ubicaciones en el cromosoma [3] Aunque muchos aspectos están todavía por discernir, existen unos principios generales ampliamente aceptados por la comunidad científica. Algunos de estos son: La evolución opera en los cromosomas en lugar de en los individuos a los que representan. La selección natural es el proceso por el que los cromosomas con "buenas estructuras" se reproducen más a menudo que los demás. En el proceso de reproducción tiene lugar la evolución mediante la combinación de los cromosomas de los progenitores. Llamamos Recombinación a este proceso en el que se forma el cromosoma del descendiente. También son de tener en cuenta las mutaciones que pueden alterar dichos códigos. La evolución biológica no tiene memoria en el sentido de que en la formación de los cromosomas únicamente se considera la información del período anterior Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema y el conjunto de individuos de una población natural, codificando la información de cada solución en un string (vector binario) a modo de cromosoma. En palabras del propio Holland: "Se pueden encontrar soluciones aproximadas a problemas de gran complejidad computacional mediante un proceso de "evolución simulada", A tal efecto se introduce una función de evaluación de los cromosomas, que llamaremos calidad ("Función de Aptitud ") y que está basada en la función objetivo del problema. Igualmente se introduce un mecanismo de selección de manera que los cromosomas con mejor evaluación sean escogidos para "reproducirse" más a menudo que los que la tienen peor. Para llevar a la práctica el esquema anterior y concretarlo en un algoritmo, hay que especificar los siguientes elementos: · Una representación cromosómica · Una población inicial · Una medida de evaluación · Un criterio de selección / eliminación de cromosomas

I. Introducción
Los Algoritmos Genéticos (GA) fueron introducidos por John Holland en 1970 inspirándose en el proceso observado en la evolución natural de los seres vivo [2]. Los algoritmos genéticos (AG) proporcionan un método de aprendizaje basado en la analogía con la evolución de las especies. Los AG generan un conjunto de hipótesis mediante la mutación y recombinación de parte del conjunto de hipótesis conocido. En cada paso el conjunto de hipótesis conocido como “población actual” se renueva remplazando una proporción de esta población por los sucesores de las hipótesis más “adecuadas” (mediante el uso de una función de valuación). La popularidad de los AG se debe en parte a que la evolución es un método robusto y bien probado dentro de los sistemas biológicos naturales. Además son fácilmente paralelizables, lo que supone una ventaja gracias al abaratamiento actual de los costes en hardware. Por otra parte, los AG pueden realizar búsquedas en espacios de hipótesis que contienen complejas interacciones entre las distintas partes, donde el impacto de cada parte sobre la función de evaluación es difícil de especificar. Aunque no se garantice encontrar la solución óptima, los AG generalmente encuentran soluciones con un alto grado de acierto. Los algoritmos desarrollados por Holland inicialmente eran sencillos pero dieron buenos resultados en problemas considerados difíciles. Los algoritmos Genéticos están basados en integrar e implementar eficientemente dos ideas fundamentales: Las representaciones simples como strings binarios de las soluciones del problema y la realización de transformaciones simples para modificar y mejorar estas representaciones [1].

1. 2. 3.

4.

II. Bases Teóricas Fundamentos de AG
¿Qué son los algoritmos genéticos? Son algoritmos de búsqueda basados en la mecánica de la selección natural y de la genética natural. Estos combinan la supervivencia de los individuos más aptos entre las cadenas de estructuras con un intercambio de información aleatorio para formar un algoritmo de búsqueda.

• • • •

• •

• • • •

· Una o varias operaciones de recombinación · Una o varias operaciones de mutación A continuación pasamos a comentar y detallar todos estos elementos. La población inicial suele ser generada aleatoriamente. Sin embargo, últimamente se están utilizando métodos heurísticos para generar soluciones iniciales de buena calidad. En este caso, es importante garantizar la diversidad estructural de estas soluciones para tener una "representación" de la mayor parte de población posible o al menos evitar la convergencia prematura. Respecto a la evaluación de los cromosomas, se suele utilizar la calidad como medida de la bondad según el valor de la función objetivo en el que se puede añadir un factor de penalización para controlar la infactibilidad. Este factor puede ser estático o ajustarse dinámicamente, lo cual produciría un efecto similar al de la Oscilación Estratégica en Tabu Search: calidad = ValorObjetivoNormalizado - Penalización * MedidaInfactibilidad La selección de los padres viene dada habitualmente mediante probabilidades según su Función de Aptitud. Uno de los procedimientos más utilizado es el denominado de la rueda de la ruleta en donde cada individuo tiene una sección circular de una ruleta que es directamente proporcional a su calidad. Para realizar una selección se realizaría un lanzamiento de un número aleatorio que tiene asociado a un individuo. Los Operadores de Cruzamiento mas utilizados son: De un punto: Se elige aleatoriamente un punto de ruptura en los padres y se intercambian sus bits. De dos puntos: Se eligen dos puntos de ruptura al azar para intercambiar. Uniforme: En cada bit se elige al azar un padre para que contribuya con su bit al del hijo, mientras que el segundo hijo recibe el bit del otro padre. PMX, SEX: Son operadores más sofisticados fruto de mezclar y aleatorizar los anteriores. La operación de Mutación más sencilla, y una de la más utilizada consiste en reemplazar con cierta probabilidad el valor de un bit. Notar que el papel que juega la mutación es el de introducir un factor de diversificación ya que, en ocasiones, la convergencia del procedimiento a buenas soluciones puede ser prematura y quedarse atrapado en óptimos locales. Otra forma obvia de introducir nuevos elementos en una población es recombinar elementos tomados al azar sin considerar su Función de Aptitud. Convergencia del Algoritmo Dado que el algoritmo genético opera con una población en cada iteración, se espera que el método converja de modo que al final del proceso la población sea muy similar, y en el infinito se reduzca a un sólo individuo. Se ha desarrollado toda una teoría para estudiar la convergencia de estos algoritmos en el caso de strings binarios. Esta teoría se basa principalmente en considerar que un string es un representante de una clase de equivalencia o esquema, reinterpretando la búsqueda en lugar de entre strings, entre esquemas. De este modo se concluye lo que se conoce como paralelismo intrínseco: "En una población de m strings se están procesando implícitamente O(m^3) esquemas" A partir de este resultado el teorema de esquemas prueba que la población converge a unos esquemas que cada vez son más parecidos, y en el límite a un único string. Es importante citar que, a diferencia de otros metaheurísticos, los Algoritmos Genéticos han crecido de forma espectacular, hasta el punto de poder encontrar referencias sobre ellos en revista de

informática de carácter general. Además muchos de los investigadores de este campo están trabajando en desarrollar los aspectos teóricos de la materia incorporando algunas otras técnicas de búsqueda local en el esquema genético.

III. Problema
Se desea implementar un algoritmo genético para maximizar la siguiente función de dos variables: Max f (x, y) = 21.5+ x sen (4π x) + y sen (20π y) -3.0 ≤ x ≤ 12.1 4.1≤ y ≤ 5.8 La gráfica de la función se puede observar en la Fig. 1 y ofrece una información visual valiosa al momento de obtener los resultados. (Esta grafica fue realizada utilizando Maple).

Fig. 1. Gráfica de la función. “Buscar” el máximo con AG

IV. Implementación
Para la implementación del AG se utilizó el lenguaje de programación C++ Builder. Se presenta una interfaz grafica donde están predeterminado los parámetros de entrada del algoritmo, estos pueden se cambiados a conveniencia. Se asumió la implementación de cruce en un punto y para la selección se asumió implementar escalamiento de aptitud dinámico utilizando ventana de renormalización con un mínimo que se fijo en 15. Los requerimientos de hardware son: Un computador PC o compatible, 32MB de memoria, 10MB disponibles en disco duro, se recomienda una pantalla con resolución de 800x600 pixels. Los requerimientos de Software son: Microsoft windows 95 o superior

V. Conclusión
La implementación del GAP generacional evita que se pierdan las mejores soluciones (elitismo) esta es una ventaja que no posee los AG simples. El escalamiento de aptitud da oportunidad a todos los individuos de la población de ser seleccionados de esta manera se evita el

efecto de convergencia a un óptimo local por apariciones tempranas de “superindividuos”. Los parámetros de entrada del algoritmo que están predeterminados en la aplicación son los apropiados para una ejecución eficiente del programa. Sin embargo en los parámetros de entrada de la función si se desea una rápida convergencia y soluciones de más calidad; se puede reducir el espacio de búsqueda guiados por la gráfica y probar con cotas para x entre 11 y 12.1 y cota para y entre 5 y 5.8. En base a los resultados obtenidos podemos finalmente concluir que: AG es un método robusto Al comprender los AG la implementación no es complicada.

• • •

Modelo elitista GAP generacional conserva un valioso material genético AG y computación evolutiva pueden tener mucha aplicación El escalamiento de aptitud reduce de manera considerable las diferencias entre los superindividuos y los individuos mediocres dando paso a la diversidad y a una competencia más justa entre todos los individuos al momento de la selección. Los resultados del excelente desempeño del algoritmo se pueden observar en la Fig. 2 y la Fig. 3 donde se muestran los mejores valores para la función en cada generación.

VI. Referencias
[1] http://www.cinefantastico.com/nexus7/ia/ageneticos.htm [2] http://www.uv.es/~rmarti/genet.html [3] http://www.geocities.com/jarosero_ag.htm

• •

Fig. 2. Gráfica de convergencia del AG

Fig. 3. Gráfica de convergencia del AG