Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos Genéticos
Algoritmos Genéticos
En este documento se pretende analizar los algoritmos genticos descubriendo su funcionamiento y sus secretos.
1. INTRODUCCION
Cuando hablamos de algoritmos genticos, hay que hablar de John Holland que en 1962 asienta las bases para sus posteriores desarrollos hasta llegar a lo que se conoce hoy por algoritmos genticos. Un algoritmo gentico es un mtodo de bsqueda que imita la teora de la evolucin biolgica de Darwin para la resolucin de problemas. Para ello, se parte de una poblacin inicial de la cual se seleccionan los individuos ms capacitados para luego reproducirlos y mutarlos para finalmente obtener la siguiente generacin de individuos que estarn ms adaptados que la anterior generacin.
Cromosomas Codificacin Codificacin Soluciones 1100101010 1011101110 0011011001 1100110001 Seleccin Seleccin
110010 101110
1010 1110
Cruce Cruce
1100101110
Mutacin Mutacin
Evaluacin Evaluacin
1100101110 1100101110 1011101010 1011101010 0011001001 0011001001
Decodificacin Decodificacin
2. ESQUEMA BSICO
En la naturaleza todo el proceso de evolucin biolgica se hace de forma natural pero para aplicar el algoritmo gentico al campo de la resolucin de problemas habr que seguir una serie de pasos. Una premisa es conseguir que el tamao de la poblacin sea lo suficientemente grande para garantizar la diversidad de soluciones. Se aconseja que la poblacin sea generada de forma aleatoria para obtener dicha diversidad. En caso de que la poblacin no sea generada de forma aleatoria habr que tener en cuenta que se garantice una cierta diversidad en la poblacin generada. Los pasos bsicos de un algoritmo gentico son: Evaluar la puntuacin de cada uno de los cromosomas generados. Permitir la reproduccin de los cromosomas siendo los ms aptos los que tengan ms probabilidad de reproducirse. Con cierta probabilidad de mutacin, mutar un gen del nuevo individuo generado. Organizar la nueva poblacin.
Estos pasos se repetirn hasta que se de una condicin de terminacin. Se puede fijar un nmero mximo de iteraciones antes de finalizar el algoritmo gentico o detenerlo cuando no se produzcan ms cambios en la poblacin (convergencia del algoritmo). Esta ltima opcin suele ser la ms habitual. Veamos el esquema general de un algoritmo gentico simple:
significa que se produce una inversin en el cromosoma y no una mutacin por lo que la poblacin degenera muy rpidamente.
o valores sea mxima y que la suma de los pesos no supere el de la capacidad de la mochila.
4.2 Seleccin
Como ya hemos visto anteriormente es necesario hacer una seleccin con los individuos ms capacitados para que stos sean los que se reproduzcan con ms probabilidad de acuerdo con la teora de Darwin en la cual los ms capacitados son los que deben sobrevivir y crear una nueva descendencia ms facultada. Por lo tanto una vez evaluado cada cromosoma y obtenida su puntuacin, se tiene que crear la nueva poblacin teniendo en cuenta que los buenos rasgos de los mejores se transmitan a sta. Esta seleccin se puede realizar de varias formas como se ver a continuacin.
Figura 6. Caso de seleccin por ranking. Vemos como en este ltimo caso se va a producir una variedad gentica mucho ms rica que en el primer caso. El problema de esta seleccin es que la convergencia puede ser ms lenta ya que no existe tanta diferencia entre el mejor cromosoma y el resto como ocurra antes.
pierda la mejor solucin. Una variacin del elitismo es que el mejor cromosoma solo se copie a la siguiente generacin en caso de que tras una reproduccin/mutacin no se haya generado un cromosoma mejor.
de que ese cromosoma dominante presente algunos genes no deseados. Hay diferentes formas de realizar los cruces para cada codificacin siendo algunas tcnicas aplicables indistintamente a las distintas codificaciones como veremos a continuacin.
este nmero supera un cierto umbral se elegir un padre determinado y si no lo supera se elige al otro. Veamos algn ejemplo:
Figura 13. Crossover uniforme para codificacin por valor directo. Otra opcin es seleccionar una mscara. En caso de que el bit correspondiente a la mscara est a 1, se copia el gen de un progenitor y en caso de que est a 0 se copia el gen del otro progenitor. Veamos un ejemplo:
4.4 Mutacin
Tras el cruce, tiene lugar la mutacin. Si nos referimos en trminos de evolucin, la mutacin se manifiesta de forma extraordinaria, nada comn. Las mutaciones suelen en promedio ser beneficiosas pues contribuyen a la diversidad gentica de la especie. Adems previenen a las soluciones de la poblacin de verse limitadas por un ptimo local. Por lo tanto la mutacin consiste en modificar ciertos genes de forma aleatoria atendiendo a la probabilidad de mutacin establecida con anterioridad. La mutacin depende de la codificacin y de la reproduccin. Si se abusa de la mutacin podemos caer en el uso del algoritmo gentico como una simple bsqueda aleatoria. Por lo tanto antes de aumentar las mutaciones, conviene estudiar otras soluciones que aporten diversidad a la poblacin como podra ser el aumento del tamao de la poblacin o garantizar la aleatoriedad de la poblacin inicial. Para el caso de una codificacin binaria, la mutacin consiste simplemente en la inversin del gen mutado que corresponder con un bit. En el caso de una codificacin numrica, la mutacin podra consistir en sustituir un nmero por otro o intercambiar un nmero por otro que est en otra posicin del cromosoma. En el caso de codificacin por valor directo en el que por ejemplo usemos nmeros reales, la mutacin puede consistir simplemente en modificar el valor en unos decimales. Por ltimo, en una codificacin en rbol, la mutacin podra radicar en el cambio de operador, de un nmero o incluso en la mutacin de una rama entera. Veamos unos ejemplos para analizar el fenmeno de la mutacin:
5. OTROS OPERADORES
En algunos problemas se pueden utilizar otro tipo de operadores que buscan soluciones de forma ms ordenada o que actan en las ltimas fases para optimizar la solucin.
poblacin demasiado pronto, provocando que el algoritmo converja hacia el ptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el ptimo global. Esto es un problema especialmente comn en las poblaciones pequeas, donde incluso una variacin aleatoria en el ritmo de reproduccin puede provocar que un genotipo se haga dominante sobre los otros.
Dentro de los distintos problemas de optimizacin podemos encontrar unas reas de aplicacin:
Diseo por computadora de nuevos materiales que cumplan mltiples objetivos. Optimizacin del la carga de containers. Asignacin de procesos en topologas de redes con procesamiento distribuido. Ubicacin de archivos en sistemas de almacenamiento distribuido. Diseo de circuitos integrados. Optimizacin de la infraestructura de telefona celular. Ingeniera Aeroespacial. Juegos. Robtica
9. EJEMPLOS PRCTICOS
En el siguiente enlace, se puede apreciar de forma prctica los conocimientos expuestos en relacin a los algoritmos genticos. http://homepage.sunrise.ch/homepage/pglaus/gentore.htm#Applet En esta pgina se encuentra un applet de Java en el que se muestra un relieve de un determinado paisaje generado de forma aleatoria. Se puede elegir la poblacin inicial. Al ejecutar el programa, el algoritmo trata de buscar la mxima altura a la que podemos ascender.
Otro ejemplo de algoritmo gentico se puede encontrar en donde el http://www.rennard.org/alife/english/gavgb.html algoritmo trata de buscar una copia de una figura partiendo de otras generadas de forma aleatoria.
11. REFERENCIAS
[1] http://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico [2] http://www.redcientifica.com/doc/doc199904260011.html [3] http://geneura.ugr.es/~jmerelo/ie/ags.htm [4] http://www.lsi.upc.es/~iea/transpas/9_geneticos/index.htm [5] http://casa.ccp.servidores.net/genetico.html [6] http://homepage.sunrise.ch/homepage/pglaus/gentore.htm#A pplet [7] http://the-geek.org/docs/algen/ [8] http://www.alfredorahn.com/docs/AG_Clase_3.ppt [9] http://www.alfredorahn.com/docs/AG_Clase_4.ppt [10] http://www.fiec.espol.edu.ec/investigacion/topico/algoritmos geneticos.pdf [11] http://www.rennard.org/alife/english/gavgb.html
10. CONCLUSIONES
Como hemos podido ver a lo largo del documento los algoritmos genticos son actualmente una fuerte fuente de resolucin de problemas complejos al realizar su ejecucin en paralelo pudiendo as obtener diferentes soluciones al problema. Sin embargo, como se ha podido observar, no hay ninguna estrategia que sea siempre invencible, sino que hay un conjunto de estrategias que suelen dar buenos resultados. As pues, habr que ajustar los parmetros de accin en funcin de cada problema a modelar para obtener una solucin que se adapte mejor a unas determinadas condiciones. Sin embargo, en una situacin real puede suceder que no se conozcan los parmetros iniciales o que no se sepa la duracin del algoritmo. Por lo tanto habr que elegir con sumo cuidad los parmetros iniciales. Un crossover elevado es recomendable para la mayora de los problemas aunque hay situaciones en las que un crossover menor dar mejores resultados. La mutacin deber ser baja, entorno al 1%. Para una ptima resolucin, el resto de parmetros habr que determinarlos en funcin del problema. La poblacin a elegir debe atender a un valor ptimo (no por tener una poblacin mayor, se va a tener una solucin mejor), la codificacin depender del problema a resolver como se ha visto con anterioridad y por ltimo el mtodo de seleccin ms utilizado es el de seleccin por rueda de ruleta, aunque como se ha comentado, depender de la cuestin que nos trate. Por ltimo, se pretende que estos algoritmos se parezcan lo ms posible a lo que en realidad sucede en la naturaleza. Por ejemplo, cuando una poblacin queda aislada en la naturaleza, como sucede, por ejemplo, con los linces de Doana, se pierde diversidad al haber un grupo reducido que se reproduce entre si constantemente perdindose esa tan necesaria diversidad para sobrevivir. De hecho se ha comprobado que no evolucionan y que su adaptacin a las condiciones no mejora en funcin del cambio de stas. Por lo tanto hay que tener cuidado con la perdida de diversidad en nuestra poblacin, que se puede conseguir entre otras formas mediante la mutacin.