Anda di halaman 1dari 28

Algoritmos Genticos

Algoritmos Heursticos

Algoritmos Heursticos
! Se denomina heurstica al arte de inventar. ! En programacin se dice que un algoritmo es heurstico cuando la solucin no se determina en forma directa, sino mediante ensayos, pruebas y reensayos.

Algoritmos Heursticos
! El mtodo consiste en generar candidatos de soluciones posibles de acuerdo a un patrn dado; luego los candidatos son sometidos a pruebas de acuerdo a un criterio que caracteriza a la solucin.

Algoritmos Heursticos
! Si un candidato no es aceptado, se genera otro; y los pasos dados con el candidato anterior no se consideran. ! Es decir, existe inherentemente una vuelta atrs, para comenzar a generar un nuevo candidato; por esta razn, este tipo de algoritmo tambin se denomina "con vuelta atrs" (backtracking en ingls).

Algoritmos Genticos
! Qu son los algoritmos genticos? ! Cmo funcionan? ! Implementacin de los AG ! Aplicaciones ! Uso del paradigma funcional ! Visin de futuro ! Conclusiones

Qu es un AG?
! Los AG son mtodos de resolucin de problemas de bsqueda y optimizacin. ! Son una clase particular de algoritmos evolutivos. ! Su caracterstica principal es que se basan en tcnicas inspiradas en la evolucin biolgica.

Qu es un AG?
! Se aplican sobre una poblacin representada de forma abstracta como cromosomas, que son la codificacin de soluciones candidatas a un problema. ! La evolucin comienza desde una poblacin aleatoria. ! En cada generacin, la seleccin natural elegir que individuos son aptos, modificandolos y mutndolos para la siguiente generacin.

Qu es un AG? Robustez
! La robustez, balance entre eficiencia y eficacia necesario para sobrevivir en muchos ambientes diferentes, es el tema central de investigacin en algoritmos genticos.

Qu es un AG? Robustez
! Los AGs, terica y prcticamente han probado que proveen una bsqueda robusta en espacios complejos. Son simples computacionalmente y no estn limitados por su-posiciones restrictivas acerca del espacio de bsqueda (suposiciones acerca de continuidad, existencia de derivadas, unimodalidad y/u otras cuestiones).

Robustez de mtodos tradicionales de bsqueda


! Mtodos basados en clculo
! Son locales, en rea de influencia. Adems dependen de la existencia de derivadas. Pero... ! El mundo real de bsqueda est lleno de discontinuidades, multimodalidad y espacios de bsqueda con ruidos.

! Mtodos enumerativos
! Buscan valores de la funcin objetivo en cada punto en el espacio, uno por vez. Su principal falla es la falta de eficiencia.

Diferencias entre AGs y los mtodos tradicionales de bsqueda


! Trabajan con la codificacin del conjunto de parmetros, no con los parmetros. ! Buscan a partir de una poblacin de puntos, no un punto nico. ! Usan informacin de una funcin objetivo (o ms), no derivadas u otro conocimiento adicional. ! Usan reglas de transicin probabilsticas, no reglas determinsticas.

Cmo funcionan?
! Para resolver un problema usando AG necesitamos:
! Representar soluciones.
! Tradicionalmente una cadena de bits.

! Medir la calidad de cada solucin con respecto al problema a resolver.


! Se usa una funcin de seleccin.

Cmo funcionan?
! Esquema de funcionamiento de un AG:
! Se crea una poblacin inicial generando individuos aleatoriamente. ! Repetimos hasta que se alcance el individuo ptimo o el nmero mximo de generaciones:
! Asignar un valor de supervivencia a cada miembro de la poblacin. ! Seleccionar a un conjunto de individuos que actuarn como padres usando como criterio su probabilidad de supervivencia. ! Emparejar un grupo de padres para crear desdendencia. ! Combinar la descendencia con la poblacin actual para crear nueva poblacin.

Implementacin de los AG
! Los AG se adaptan especficamente a los problemas que van a resolver. ! No hay un marco terico genrico para aplicarlo a todos los problemas. ! Es difcil establecer dicho marco.
! Si es muy genrico, resulta trivial. ! Si es muy especfico, no se puede adaptar a todos los problemas.

Aplicaciones
! Optimizacin de una funcin simple.
! Los cromosomas son vectores numricos que representan el rango de variacin. ! La funcin de seleccin es el propio valor de f(x). ! El resultado se muta con una probabilidad dada.

Aplicaciones
! Problema del viajante.
! Cada cromosoma es un vector con una permutacin de todas las ciudades, lo cual representa un camino para visitarlas todas. ! La funcin de seleccin depende de los pesos de los distintos arcos del grafo. ! Se muta el vector (se intercambian algunos de sus elementos) con una probabilidad dada.

Uso del paradigma funcional


! Ventajas
! La definicin de AG se adapta naturalmente al paradigma funcional.
! Las acciones que definen un AG (seleccionar, emparejar y combinar) son funciones a definir. ! El AG mismo es una funcin que toma una poblacin inicial y una semilla aleatoria, 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 funcin de recombinacin slo usar aquellos descendientes necesarios para construir la nueva poblacin.

Uso del paradigma funcional


! Ejemplo de funcin de generacin de poblacin

procrear :: Poblacin -> Prob Poblacin procrear pob = do padres <- seleccionar pob hijos <- emparejar padres

combinar pob hijos

Uso del paradigma funcional


! Se usa la mnada Prob para tener control preciso sobre la generacin de nmeros aleatorios. ! Prob mantiene varias listas infinitas de nmeros aleatorios asociados con cada proceso estocstico, mantenindolas ocultas al usuario.
! Esto permite gran control sobre los factores que determinan el resultado de las ejecuciones del AG.

Visin de futuro
! Desarrollar una marco de trabajo para AG, de manera que una misma estructura se pueda instanciar a distintos tipos de problemas. ! Proporcionar operadores genticos como funciones predefinidas y permitir su seleccin y utilizacin mediante un interfaz de usuario.

Visin de futuro
! Realizacin de una implementacin ms eficiente que sea capaz de manejar problemas de gran tamao y complejidad.
! Una posibilidad sera usar mnadas de estado (State Monads) para reutilizar el espacio. ! Explotar el paralelismo inherente a los AG adaptando el marco a arquitecturas distribuidas.

Conclusiones
! Ventajas del uso de los AG
! Es poco sensible a los mnimos locales, lo cual le confiere robustez, en contraste con las redes neuronales clsicas. ! Asimismo, no depende de las condiciones iniciales, debido a que se usa bsqueda estocstica y sta hace al principio un gran nmero de intentos aleatorios.

Conclusiones
! El tiempo de convergencia de los AG es predecible por la naturaleza paralela de la bsqueda estocstica. ! Funciona de forma paralela, por lo que pueden usarse en sistemas distribuidos para mejorar ms la velocidad de bsqueda.

Conclusiones
! Inconvenientes del uso de los AG
! No hay un marco terico genrico establecido. ! Si la poblacin inicial es cercana a la solucin ptima, los GA tardarn ms que las tcnicas de resolucin tradicionales.
! El GA perder mucho tiempo comprobando soluciones sub-ptimas.

Conclusiones
! Hacen buenas estimaciones de la solucin ptima, pero no la calculan exactamente. ! El usuario debe determinar cmo de cerca est la solucin estimada de la solucin real.
! La proximidad a la solucin real depender de la aplicacin en concreto.

! Continuar

Anda mungkin juga menyukai