You are on page 1of 19

Algoritmos Genéticos

Una introducción a la computación evolutiva

Algoritmos Genéticos        ¿Qué son los algoritmos genéticos? ¿Cómo funcionan? Implementación de los AG Aplicaciones Uso del paradigma funcional Visión de futuro Conclusiones .

Son una clase particular de algoritmos evolutivos. .¿Qué es un AG?    Los AG son métodos de resolución de problemas de búsqueda y optimización. Su característica principal es que se basan en técnicas inspiradas en la evolución biológica.

La evolución comienza desde una población aleatoria. En cada generación.¿Qué es un AG?    Se aplican sobre una población representada de forma abstracta como cromosomas. la selección natural elegirá que individuos son aptos. modificandolos y mutándolos para la siguiente generación. que son la codificación de soluciones candidatas a un problema. .

– Medir la calidad de cada solución con respecto al problema a resolver.¿Cómo funcionan?  Para resolver un problema usando AG necesitamos: – Representar soluciones. .  Tradicionalmente una cadena de bits.  Se usa una función de selección.

. Repetimos hasta que se alcance el individuo óptimo o el número máximo de generaciones:     Asignar un valor de supervivencia a cada miembro de la población. Combinar la descendencia con la población actual para crear nueva población.¿Cómo funcionan?  Esquema de funcionamiento de un AG: – – Se crea una población inicial generando individuos aleatoriamente. Emparejar un grupo de padres para crear desdendencia. Seleccionar a un conjunto de individuos que actuarán como padres usando como criterio su probabilidad de supervivencia.

Implementación de los AG    Los AG se adaptan específicamente a los problemas que van a resolver. No hay un marco teórico genérico para aplicarlo a todos los problemas. . Si es muy específico. resulta trivial. no se puede adaptar a todos los problemas. – – Si es muy genérico. Es difícil establecer dicho marco.

La función de selección es el propio valor de f(x). El resultado se muta con una probabilidad dada.Aplicaciones  Optimización de una función simple. . – – – Los cromosomas son vectores numéricos que representan el rango de variación.

– – – Cada cromosoma es un vector con una permutación de todas las ciudades. La función de selección depende de los pesos de los distintos arcos del grafo.Aplicaciones  Problema del viajante. Se muta el vector (se intercambian algunos de sus elementos) con una probabilidad dada. . lo cual representa un camino para visitarlas todas.

El AG mismo es una función que toma una población inicial y una semilla aleatoria.   Las acciones que definen un AG (seleccionar. . emparejar y combinar) son funciones a definir.Uso del paradigma funcional  Ventajas – La definición de AG se adapta naturalmente al paradigma funcional. devolviendo un conjunto de poblaciones sucesivas que representan las distintas generaciones.

.Uso del paradigma funcional – Un lenguaje funcional como Haskell permite el uso de estructuras infinitas.  El AG puede generar una lista indefinida de descendientes y la función de recombinación sólo usará aquellos descendientes necesarios para construir la nueva población.

emparejar padres combinar pob hijos .Uso del paradigma funcional  Ejemplo de función de generación de población procrear :: Población -> Prob Población procrear pob = do padres <.seleccionar pob hijos <.

Prob mantiene varias listas infinitas de números aleatorios asociados con cada proceso estocástico. manteniéndolas ocultas al usuario. – Esto permite gran control sobre los factores que determinan el resultado de las ejecuciones del AG.Uso del paradigma funcional   Se usa la mónada Prob para tener control preciso sobre la generación de números aleatorios. .

. Proporcionar operadores genéticos como funciones predefinidas y permitir su selección y utilización mediante un interfaz de usuario.Visión de futuro   Desarrollar una marco de trabajo para AG. de manera que una misma estructura se pueda instanciar a distintos tipos de problemas.

Visión de futuro  Realización de una implementación más eficiente que sea capaz de manejar problemas de gran tamaño y complejidad. . – – Una posibilidad sería usar mónadas de estado (State Monads) para reutilizar el espacio. Explotar el paralelismo inherente a los AG adaptando el marco a arquitecturas distribuidas.

Asimismo.Conclusiones  Ventajas del uso de los AG – – Es poco sensible a los mínimos locales. debido a que se usa búsqueda estocástica y ésta hace al principio un gran número de intentos aleatorios. lo cual le confiere robustez. . no depende de las condiciones iniciales. en contraste con las redes neuronales clásicas.

Funciona de forma paralela.Conclusiones – – El tiempo de convergencia de los AG es predecible por la naturaleza paralela de la búsqueda estocástica. . por lo que pueden usarse en sistemas distribuidos para mejorar más la velocidad de búsqueda.

Si la población inicial es cercana a la solución óptima.Conclusiones  Inconvenientes del uso de los AG – – No hay un marco teórico genérico establecido. los GA tardarán más que las técnicas de resolución tradicionales. .  El GA perderá mucho tiempo comprobando soluciones sub-óptimas.

 La proximidad a la solución real dependerá de la aplicación en concreto. El usuario debe determinar cómo de cerca está la solución estimada de la solución real. pero no la calculan exactamente. .Conclusiones – – Hacen buenas estimaciones de la solución óptima.