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).
! 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.
Cmo funcionan?
! Para resolver un problema usando AG necesitamos:
! Representar soluciones.
! Tradicionalmente una cadena de bits.
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.
procrear :: Poblacin -> Prob Poblacin procrear pob = do padres <- seleccionar pob hijos <- emparejar padres
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