Int. a la Computación Evolutiva - Informe para cursada

1,383 views

Published on

Este es el informe que entregue para obetener la cursada de la materia optativa llamada Intruducción a la Computación Evolutiva de la Universidad Nacional del Centro de la Provincia de Buenos Aires.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,383
On SlideShare
0
From Embeds
0
Number of Embeds
116
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Int. a la Computación Evolutiva - Informe para cursada

  1. 1. Introducción a la Computación EvolutivaFacultad de Cs. Exactas, Universidad Nacional del Centro de la Pcia. de Buenos Aires Trabajo Práctico para Cursada 2010 - Profesora: Dra. Virginia YanibelliAlumno: Martín Ignacio Pacheco, L.U.: 245214, {mpacheco@alumnos.exa.unicen.edu.ar}
  2. 2. ContenidoResumen ................................................................................................................................. 21. Introducción.................................................................................................................... 22. Solución Algorítmica...................................................................................................... 4 2.1. Representación de las soluciones .......................................................................... 4 2.2. Función de fitness ................................................................................................... 6 2.3. Proceso de generación de la población inicial ...................................................... 7 2.4. Proceso de selección de los padres ........................................................................ 7 2.5. Operadores de cruce genético ................................................................................ 8 2.6. Operadores de mutación genética ......................................................................... 9 2.7. Proceso de reinserción ............................................................................................ 93. Conclusiones ................................................................................................................. 10Índice de figurasFigura 1 - Movimientos validos de la dama. ........................................................................ 2Figura 2 - Estructura general del algoritmo genético. ......................................................... 4Figura 3 – Ejemplo de la representación en un tablero de 4 x 4. ........................................ 5Figura 4 - Representación de los conceptos biológicos. ...................................................... 6Figura 5 - Esquema de selección. .......................................................................................... 7Figura 6 - Ejemplo de cruce genético. ................................................................................... 8Figura 7 - Ejemplo sin mutación. .......................................................................................... 9 1
  3. 3. ResumenEl presente es un trabajo práctico para la aprobación de la cursada de la materiaoptativa Introducción a la Computación Evolutiva. El objetivo del mismo consiste enpresentar una solución al problema de las n-reinas mediante el diseño de un algoritmoevolutivo.1. IntroducciónEl problema de las n-reinas propuesto en el siglo XIX se ha transformado en unestándar para probar algoritmos de resolución heurísticos.Este problema consiste en colocar n reinas de ajedrez en un tablero de n por n casillas,de tal manera que ninguna de ellas pueda atacar a otra usando los movimientos deljuego-ciencia provistos para esta pieza.Recordar que la reina se puede mover en el tablero en forma horizontal, vertical ydiagonal la cantidad de escaques deseados, como se observa en la figura 1. Figura 1 - Movimientos validos de la dama.Este tipo de problema es fácil de abordar con los algoritmos que se podrían denominarcomo “clásicos”. Un ejemplo son los recursivos o de tipo voraz (Greedy, Backtracking,etc), sin embargo hay otro tipo de problemas mucho mas complicados como los NPcompletos cuya complejidad crece con el tamaño del problema de forma exponencial(por ejemplo O (2n), O (n!), …).Debido a su elevada complejidad deben ser resueltos en una cantidad de tiemporazonable empleando métodos heurísticos. Los algoritmos evolutivos son métodos deeste estilo muy poderosos, capaces de realizar búsquedas en grandes espacios desoluciones de forma muy eficiente.El algoritmo evolutivo que se propone es un algoritmo genético, debido a que larepresentación de las soluciones candidatas es más favorable, ya que evita ciertosconflictos que se explicaran mas adelante. Además han demostrado tener una buena 2
  4. 4. heurística para problemas combinatorios. Como contrapartida es que no sondemasiado veloces.¿Qué es un algoritmo genético?Pueden verse como una familia de procedimientos de búsqueda adaptativos. Estánbasados en modelos de cambio genético en una población de individuos. Es decir, queun algoritmo genético es una técnica de programación que imita a la evoluciónbiológica como estrategia para resolver problemas.Esto es: Evolución Darwiniana: El éxito de los individuos en el ambiente depende de cuan bien se adaptan al ambiente (aptitud o fitness). Apareamiento o cruzamiento que produce descendientes en generaciones futuras. Operadores genéticos que determinan la configuración genética de los descendientes.Como entrada el algoritmo genético serán un conjunto de soluciones potenciales delproblema a resolver que estarán codificadas de alguna manera. Se tiene una función defitness que permite evaluar cada solución candidata y se obtiene un resultadocuantitativo de aptitud.Las soluciones mas aptas se conservan y se les permite reproducirse. Luego seproducen copias de ellas que no son perfectas, es decir que se les producen cambiosaleatorios durante este proceso de copia. Estas a su vez generaran una descendenciapara la próxima generación que serán sometidas a una evaluación de aptitud. Esteproceso se repite con cada generación.La idea es que la aptitud media (fitness medio) vaya mejorando a lo largo de lasgeneraciones en las cuales se pueden producir soluciones muy novedosas como laencontrada a las estructuras de los satélites para sostener las antenas de transmisión.Esto parece anti intuitivo, pero los algoritmos genéticos han demostrado ser unaestrategia muy poderosa y exitosa para resolver problemas y también encontrarsoluciones muy peculiares. 3
  5. 5. 2. Solución AlgorítmicaEl esquema general de ejecución del algoritmo genético a usar se puede observar en lafigura 2. Inicializar Población Inicialización Seleccionar Padres Selección Crear Hijos Cruce Mutar Hijos Mutación Generación n + 1 Insertar Hijos en la Población Inserción No ¿Condición Si Devolver el mejor de Corte? individuo Figura 2 - Estructura general del algoritmo genético.En un principio se inicializa el algoritmo con una población con diversas soluciones(validas o no) creadas aleatoriamente lo que permite tener una diversidad deindividuos.Después se seleccionan algunos padres que tendrán hijos. A su vez los hijos podrántener o no pequeñas mutaciones permitiendo explorar nuevos lugares en el espacio desoluciones.La nueva generación de individuos estará conformada por hijos y padres (abuelos apartir de la tercera iteración) y se volverá a repetir este mecanismo evolutivo hasta quese cumpla una cierta condición de aptitud o cantidad de generaciones limite.A continuación se explicaran más detalladamente las funciones que le competen a cadaetapa del algoritmo.2.1. Representación de las soluciones 4
  6. 6. Como cada reina debe estar en una columna o fila diferente se puede asumir que cadareina se colocara en una columna distinta. Es decir, que la reina i se situara en lacolumna i. Con esto se evita que no se ataquen por las columnas.Ahora para evitar que se ataquen vía alguna fila cada una deberá estar en una filadistinta. Por lo tanto la mejor forma de representar esto en con una estructura deventores de tamaño n. Cada posición del vector se corresponderá a cada columnamientras que el valor que contiene dicha posición es la fila correspondiente en dondese posiciona la dama dentro de esa columna. En la figura 3 se pueden observar comoes el mapeo de esta idea con un par de ejemplos en un tablero de 4 por 4. Tablero 1 Tablero 2 [1, 4, 2, 3] [3, 1, 4, 2] Figura 3 – Ejemplo de la representación en un tablero de 4 x 4.Entonces teniendo en cuenta esta representación, el espacio de soluciones, en donde elconflicto sobre las filas y las columnas se ha eliminado, debe ser encontrado para podereliminar los conflictos que surgen producto de las diagonales. Serán solucionesincorrectas aquellas en donde las reinas se ataquen diagonalmente unas con otras.Cada vector de solución se compone de una permutación de números enteros que vandesde 1 a n. En el ejemplo de la figura 3 serian permutaciones de los números enteros 1,2, 3 y 4.Aquí podemos decir que el espacio fenotípico queda definido por el tablero con lasdamas y el espacio genotípico esta definido por el vector. Este vector conforma elcromosoma de una solución que a su vez esta compuesta como una combinación degenes cuya combinación es única y que podría verse como el ADN de cada individuo.Para esto ultimo teniendo en cuenta que no se generan vectores repetidos. El valor delgen podríamos verlo como alelo.Tener un cromosoma aislado no brinda mucha información por ello es necesario unproceso de decodificación, ya que primero se codifica el cromosoma del individuo. Esdecir, biológicamente lo trato como cromosoma en el algoritmo, pero si lo quiero verdebo decodificarlo para llevarlo a espacio fenotípico. 5
  7. 7. Esta analogía entre conceptos biológicos y conceptos computacionales se resume mejoren la figura 4. Espacio Genotípico Espacio Fenotípico Codificación Decodificación 1 4 2 3 Alelo Gen Cromosoma Figura 4 - Representación de los conceptos biológicos.2.2. Función de fitnessCon la representación explicada previamente se eliminaron conflictos en las filas ycolumnas. Por tanto las soluciones incorrectas serán aquellas en las cuales seproduzcan amenazas entre las damas en las diagonales.De esta manera una función de aptitud de los individuos podría ser la cantidad deconflictos de este contiene. Lo ideal es que se tengan cero conflictos entonces cuantomas cercano a cero sea menos incorrecta será la aptitud.De acuerdo a la representación planteada en el punto anterior y considerando envector genotípico [R1, R2,…, Ri, Ri+1,..., Rj,…, Rn] la reina (también llamada dama en lajerga ajedrecística) en la posición i y la reina de la posición j compartirán una diagonalsi: oLo que se reduce a considerar:De esta manera se pude ver si ocurre o no un conflicto entre la dama en Ri y la dama enRj. 6
  8. 8. Entonces el fitness a considerar será el fitness medio de cada generación.2.3. Proceso de generación de la población inicialPara la creación de la población inicial se utiliza una matriz cuyo tamaño será de lacantidad de reinas por la cantidad de individuos iniciales con el que se desean partirdesde un principio.Para la generación de los cromosomas se usaran números aleatorios enteros dentro delrango establecido al número de reinas. En este paso no se contemplaran númerosrepetidos en los cromosomas.2.4. Proceso de selección de los padresEL proceso de selección de padres se decidió utilizar la selección por torneo. En esta seeligen subgrupos de individuos de la población, y los miembros de cada subgrupocompiten entre ellos. Luego se elige a un solo individuo de cada subgrupo para lareproducción.Se cree más apto este mecanismo de selección porque brinda más diversidad en lapoblación lo que permite a su vez los máximos locales en lo que seria la superficieadaptativa. Para este problema de las n-reinas seria una línea adaptativa si se puedellamar de esta manera.Entonces se elige un 80 % de la población actual para seleccionar a los padres. Despuésse generas subgrupos de cromosomas de dos individuos (torneo de tamaño 2) de loscuales solo quedara el más apto, es decir, el que tiene mayor nivel de fitness. De cadatorneo se elegirá un solo cromosoma por grupo para realizar el cruce.En la figura 5 se puede observar un esquema del mecanismo de selección. 1 4 1 4 4 10 5 32 10 9 5 9 4 1ro 7 6 7 2do3 6 9 8 9 Población actual Selección del 80 % Torneo de 2 Ganó el concursantes individuo 4 Figura 5 - Esquema de selección. 7
  9. 9. 2.5. Operadores de cruce genéticoEsta parte consiste en el intercambio de material genético entre dos cromosomas.En el caso de emparejar dos individuos de los mismos padres no sucedería nada; estogarantizaría que se propaguen individuos con buena aptitud. Sin embargo, si estosucede muy a menudo puede crear problemas. Puede suceder que toda una generaciónde descendientes quede dominada por algún gen, que además puede tenercaracterísticas no deseadas o que van en contra del objetivo que se desea alcanzar.El intercambio genético se llevara a cabo por cruce en un punto. Este punto se elegiráen forma aleatoria. Posteriormente se intercambian entre ambos cromosomas elmaterial genético a la derecha de dicho punto.Adicionalmente se tiene otro parámetro probabilístico que indica con que frecuencia seva a aplicar el cruce genético. La frecuencia de este operador deberá estar en funcióndel problema.En general la frecuencia del operador no varia durante la ejecución del algoritmo, sinembargo hay que tener presente que cada uno de los operadores en más efectivo en unmomento determinado de la ejecución.Para este problema se propone una probabilidad de cruce de 0,8 ya que este operadores mas predominante en la evolución. En la figura 6 se puede ver un ejemplo demutación con un punto de cruce. Tener en cuenta que el cromosoma generado no esvalido, sino que es a modo de ejemplo del funcionamiento del cruce. [1, 4, 2, 3] [3, 1, 4, 2] [1, 4, 4, 2] Figura 6 - Ejemplo de cruce genético. 8
  10. 10. 2.6. Operadores de mutación genéticaEn la teoría de la evolución la mutación es un suceso poco común. Suele suceder unade cada mil replicaciones. Es verdad, que una mutación puede resultar fatal, pero comocontra partida provoca diversidad genética sin ser letal. La mutación actúa sobre unúnico cromosoma produciendo una modificación valida.La diversidad puede venir bien cuando el algoritmo genético tiende a estancarse (verejemplo de la figura 7), pero también reduciría al algoritmo genético a una búsquedaaleatoria.Otras formas de evitar, si se desea, la mutación es aumentar el tamaño de la poblacióno garantizar aleatoriedad en la población inicial; donde esto último es lo que sepropuso.Por las características mencionadas hasta aquí sobre la mutación y teniendo en cuentael problema en particular, se cree que es mejor usar la variante de mutación que realizael intercambio de dos genes aleatorios. De esta manera se evita aumentar laprobabilidad de que surjan duplicados. Esto con una probabilidad pequeña del 0,2puesto que las mutación surgen muy pocas con respecto al cruce. Sin mutación no se llegaría a una solución Individuo 1 Individuo 2 Individuo 3 Individuo n Figura 7 - Ejemplo sin mutación.2.7. Proceso de reinserciónCuando arranca el algoritmo se tiene una población inicial definida de ante mano.Luego de aplicar los operadores genéticos anteriores la población crece en númerodado que se cruzaron, es decir, hay más cantidad de cromosomas.Para realizar la re inserción se realiza un ranking por fitness de los mejores individuosy se seleccionan los n mejores individuos, con n igual al tamaño de población definidainicialmente. 9
  11. 11. 3. ConclusionesHe podido observar que la principal ventaja de los algoritmos genéticos radica en susencillez. Se requiere poca información sobre el espacio de búsqueda ya que se trabajasobre un conjunto de soluciones o parámetros codificados. Una de las desventajaspuede ser que se necesite mucho ensayo de prueba y error para adquirir experiencia;también en lograr un buen diseño de la función de fitness.Se busca una solución por aproximación de la población, en lugar de una aproximaciónpunto a punto. Con un control adecuado se puede mejorar la aptitud media de lapoblación, obteniendo nuevos y mejores individuos y por ende mejores soluciones.Otro aspecto interesante de los algoritmos es la relación que hay entre la eficiencia y laeficacia. Ya que manipulando los parámetros y operadores del algoritmo permitebalancear el equilibrio que hay en esta relación.Principalmente lo que mas me motivo de la materia es que contiene temas que nuncahabía tratado (computacionalmente hablando) ya que los problemas se encaran desdeuna postura distinta a los que se ven a lo largo de las cursadas obligatorias donde seven algoritmos mas clásicos. 10

×