Sei sulla pagina 1di 4

Algoritmo gentico simple: Los algoritmos genticos son mtodos sistemticos para la resolucin de problemas de bsqueda y optimizacin que

aplican a estos los mismos mtodos de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y mutacin. Los algoritmos genticos son mtodos de optimizacin, que tratan de resolver el mismo conjunto de problemas que se ha contemplado anteriormente, es decir, hallar (xi,...,xn) tales que F(xi,...,xn) sea mximo. En un algoritmo gentico, tras parametrizar el problema en una serie de variables, (xi,...,xn) se codifican en un cromosoma. Todas los operadores utilizados por un algoritmo gentico se aplicarn sobre estos cromosomas, o sobre poblaciones de ellos. En el algoritmo gentico va implcito el mtodo para resolver el problema; son solo parmetros de tal mtodo los que estn codificados, a diferencia de otros algoritmos evolutivos como la programacin gentica. Hay que tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo hace un algoritmo robusto, por ser til para cualquier problema, pero a la vez dbil, pues no est especializado en ninguno. Las soluciones codificadas en un cromosoma compiten para ver cul constituye la mejor solucin (aunque no necesariamente la mejor de todas las soluciones posibles). El ambiente, constituido por las otras camaradas soluciones, ejercer una presin selectiva sobre la poblacin, de forma que slo los mejor adaptados (aquellos que resuelvan mejor el problema) sobrevivan o leguen su material gentico a las siguientes generaciones, igual que en la evolucin de las especies. La diversidad gentica se introduce mediante mutaciones y reproduccin sexual. En la Naturaleza lo nico que hay que optimizar es la supervivencia, y eso significa a su vez maximizar diversos factores y minimizar otros. Un algoritmo gentico, sin embargo, se usar habitualmente para optimizar slo una funcin, no diversas funciones relacionadas entre s simultneamente. La optimizacin que busca diferentes objetivos simultneamente, denominada multimodal o multiobjetivo, tambin se suele abordar con un algoritmo gentico especializado. Por lo tanto, un algoritmo gentico consiste en lo siguiente: hallar de qu parmetros depende el problema, codificarlos en un cromosoma, y se aplican los mtodos de la evolucin: seleccin y reproduccin sexual con intercambio de informacin y alteraciones que generan diversidad.

Codificacin: Los algoritmos genticos requieren que el conjunto se codifique en un cromosoma. Cada cromosoma tiene varios genes, que corresponden a sendos parmetros del problema. Para poder trabajar con estos genes en el ordenador, es necesario codificarlos en una cadena, es decir, una ristra de smbolos (nmeros o letras) que generalmente va a estar compuesta de 0s y 1s. Por ejemplo, en esta cadena de bits, el valor del parmetro p1 ocupar las posiciones 0 a 2, el p2 las 3 a 5, etctera. El nmero de bits usado para cada parmetro depender de la precisin que se quiera en el mismo o del nmero de opciones posibles (alelos) que tenga ese parmetro. Por ejemplo, si se codifica una combinacin del Mastermind, cada gen tendr tantas opciones como colores halla, el nmero de bits elegido ser el log2(nmero de colores). Hay otras codificaciones posibles, usando alfabetos de diferente cardinalidad; sin embargo, uno de los resultados fundamentales en la teora de algoritmos genticos, el teorema de los esquemas, afirma que la codificacin ptima, es decir, aquella sobre la que los algoritmos genticos funcionan mejor, es aquella que tiene un alfabeto de cardinalidad 2. Aqu se est codificando cada parmetro como un nmero entero de n bits. En realidad, se puede utilizar cualquier otra representacin interna: bcd, cdigo Gray y codificacin en forma de nmeros reales, por ejemplo. La mayora de las veces, una codificacin correcta es la clave de una buena resolucin del problema. Generalmente, la regla heurstica que se utiliza es la llamada regla de los bloques de construccin, es decir, parmetros relacionados entre s deben de estar cercanos en el cromosoma. Por ejemplo, si queremos codificar los pesos de una red neuronal, una buena eleccin ser poner juntos todos los pesos que salgan de la misma neurona de la capa oculta (tambin llamada codificacin fregona), como se indica en la figura. En esta, todos los pesos sealados con trazo doble se codifican mediante grupos de bits o bytes sucesivos en el cromosoma. En todo caso, se puede ser bastante creativo con la codificacin del problema, teniendo siempre en cuenta la regla anterior. Esto puede llevar a usar cromosomas bidimensionales, o tridimensionales, o con relaciones entre genes que no sean puramente lineales de vecindad. En algunos casos, cuando no se conoce de antemano el nmero de variables del problema, caben dos opciones: codificar tambin el nmero de variables, fijando un nmero mximo, o bien, lo cual es mucho ms natural, crear un cromosoma que pueda variar de longitud. Para ello, claro est, se necesitan operadores genticos que alteren la longitud. Normalmente, la codificacin es esttica, pero en casos de optimizacin numrica, el nmero de bits dedicados a codificar un parmetro puede variar, o incluso lo que representen los bits dedicados a codificar cada parmetro. Algunos paquetes de algoritmos genticos adaptan automticamente la codificacin segn van convergiendo los bits menos significativos de una solucin.

A continuacin presentaremos un pequeo ejemplo de una poblacin de individuos binarios.

Cromosomas| Individuo 1 Individuo 2 Individuo 3 Individuo 4 Aplicaciones:

| | | |

0 1 1 0

| | | |

0 1 1 0

| | | |

1 0 1 0

| | | |

1 0 0 0

| | | |

1 | 1 | 1 | 1 |

0 0 0 1

| | |

0 | 1 | 1 | | 1 |

1 0 1 1

| | | |

0 0 0 1

| | | |

En la trayectoria de los algoritmos genticos desde su concepcin, se han ido encontrando mltiples aplicaciones, en donde a donde su principal funcin es la optimizacin. A continuacin se dar una lista de las reas en donde los AG han encontrado un espacio para su desarrollo. * Diseo automatizado de equipamiento industrial. * Diseo automatizado de sistemas de comercio en el sector financiero. * Construccin de rboles filogenticos. * Optimizacin de carga de contenedores. * Diseo de sistemas de distribucin de aguas. * Diseo de topologas de circuitos impresos. * Diseo de topologas de redes computacionales. * En Teora de juegos, resolucin de equilibrios. * Anlisis de expresin de genes. * Aprendizaje de comportamiento de robots. * Aprendizaje de reglas de Lgica difusa. * Infraestructura de redes de comunicaciones mviles. * Optimizacin de estructuras moleculares. * Aplicacin de Algoritmos Genticos al Dilema del Prisionero Iterado * Prediccin de Plegamiento de protenas. * Optimizacin de Layout. * Prediccin de estructura de RNA. * Seleccin ptima de modelos matemticos para la descripcin de sistemas biolgicos. * Construccin de horarios en grandes universidades, evitando conflictos de clases.

* Problema del viajante. * Hallazgo de errores en programas. * Optimizacin de produccin y distribucin de energa elctrica. * Diseo de redes geodsicas (Problemas de diseo). Como podemos observar, las aplicaciones son muy variadas, es justamente por eso que los AG estn tomando cada vez mas fuerza, eso nos conduce a deducir que en un futuro no muy lejano podremos ver la aplicacin de estos en un entorno ms cercano al nuestro, de una manera ms directa, en nuestros hogares.

Potrebbero piacerti anche