680 likes | 904 Views
Investigaciones del proyecto TRACER. Universidad Carlos III de Madrid Investigadores: Pedro Isasi Viñuela Julio César Hernández Cristóbal Luque del Arco-Calderón José María Valls. Líneas de Investigación. Distribución de cargas en una esfera mediante estrategias evolutivas.
E N D
Investigaciones del proyecto TRACER Universidad Carlos III de Madrid Investigadores: Pedro Isasi Viñuela Julio César Hernández Cristóbal Luque del Arco-Calderón José María Valls
Líneas de Investigación • Distribución de cargas en una esfera mediante estrategias evolutivas. • Predicciones de la marea mediante algoritmos genéticos. • Búsqueda de funciones HASH mediante programación genética.
Introducción: • Problema: distribuir N cargas iguales en la superficie de una esfera. • Las cargas tienden a repelerse hasta quedar en una posición de equilibrio. • El problema se conoce en física como “el problema de Thomson”.
Métodos para el cálculo: • Clásico: descenso del gradiente. • Simulated annealing. • Algoritmos genéticos. • El descenso de gradiente puede quedar atrapado en mínimos locales.
Aplicaciones • Este problema clásico tiene aplicaciones en física, química y biología. • Cristalización de iones o "bubblons" cerca de la superficie de un aglomerado de helio líquido. • Cristalización de electrones en el contorno de un punto semiconductor esférico. • Cálculo de poliedros regulares. • Búsqueda de moleculas estables. • Analisis del entrelazado de los granos de polen y las cadenas de ADN .
Dificultades del problema • Numerosos mínimos locales. • El número de mínimos locales aumenta exponencialmente con el número de electrones. • Para N ~ 200 electrones hay alrededor de 8000 mínimos locales.
Preliminares • Usaremos estrategias evolutivas de tipo (+), es decir, padres producen hijos, y entre la población total de + individuos se seleccionan los mejores, que pasan a ser los padres de la siguiente generación.
Preliminares • La función fitness será el potencial electrostático: • f(N)= i<j 1/d(xi,xj) • Esquema estándar:
Preliminares • inicializar() da los valores iniciales. • engendrar() produce los hijos a partir de los padres mediante mutación. • evaluar() selecciona los mejores individuos de la población de padres e hijos. • La condición de parada puede ser, o bien un número determinado de generaciones, o bien que la función fitness no haya variado en las últimas 5000 generaciones.
Método I • Para la primera implementación los padres portan las coordenadas de los electrones en polares:
Método I • Declaramos un vector de elementos de tipo Tpadre. • El tipo real puede ser tanto double, como long double, dependiendo de la precisión que queramos. • La constante n_e es el número de electrones. • Cada electrón lleva su posición en coordenadas polares (x,y), además de las varianzas de la mutación (ex para la coordenada x, ey para la coordenada y).
Método I • Así pues la mutación (observemos que no sólo mutan las coordenadas polares, también mutan las varianzas) seguirá las siguientes distribuciones normales:
Método II • Para hacer el algoritmo más eficiente se pensó en reducir la cantidad de memoria que ocupaba cada padre, y para ello se extrajeron las varianzas de cada electrón para hacer una única común a todos los electrones de cada padre.
Método II • Ahora el tipo Tpadre ocuparía la mitad de lo que ocupaba anteriormente. • El algoritmo saldría perjudicado en cuanto a que, teóricamente, un electrón bien colocado en una generación podría no estarlo en la siguiente por ser la varianza igual para todos; así pues no distingue entre los mejor colocados para la configuración mínima • Sin embargo según los resultados al final de la memoria podemos ver que el segundo método produce mejores resultados, en contra de lo que la intuición nos dice.
Método III • Para la posición del electrón, en este método trabajaremos con las tres coordenadas cartesianas (x,y,z), en vez de las dos polares (,).
Método III • La nueva implementación será:
Método III • Al igual que en el caso anterior, seguimos manteniendo una sola varianza para todos los electrones del mismo padre. • El proceso de mutación usado es:
Método III • Tras llevar a cabo algunas pruebas, se comprobó que, efectivamente, esta nueva implementación era más rápida. • Aunque el algoritmo había ganado cierta rapidez seguía siendo lento para casos de mas de 50 electrones, y ello era debido a que la función fitness dependía al cuadrado del numero de electrones.
Método III • Para cada electrón debe evaluar N2/2 distancias:
Método IV • Para la nueva implementación los padres mantienen la información sobre la inversa de las distancias entre los electrones. • Muta un solo electrón de cada padre en el hijo. • A la hora de calcular el fitness del hijo sólo tendríemos que recalcular las inversas de las distancias del electrón mutado con los demás, permaneciendo sin variar las inversas de las distancias entre los electrones no mutados. • Ahora sólo hay que evaluar N-1 distancias en vez de N2/2.
Método IV • La nueva implementación será:
Método IV • En la tabla inv_d[n_e][n_e] guarda las inversas de las distancias de los electrones.
Método IV • El indicador ind señala cual es el electrón que muta. • Este indicador pasa sin variar al hijo con una probabilidad del 90%; el 10% restante muta y pasa a señalar a otro electrón aleatoriamente. • Así, por una parte busca la mejor posición para ese electrón, y aleatoriamente pasa a buscar otro que colocar mejor, en vez de seguir explotando esa solución.
Método IV • La ventaja de este método es su velocidad, siendo mucho más rápido que todos los anteriores. • La desventaja es que tiene más posibilidades de quedar atascado en un mínimo local.
Nuevo Enfoque • Posteriormente se trató de afrontar el problema con una estrategia (1+1). • 1 padre produce 1 único hijo. • Dicho padre se sustituye sólo si el hijo mejora el fitness del padre.
Método V • Se siguieron las los postulados de Rechenberg: la regla de 1/5: En una estrategia (1+1) la proporción de descendientes que sustituyen al padre debe ser 1/5. Si es mayor que 1/5 debemos incrementar la varianza, y si es menor decrementarla.
Método V • Sea n el número de variables de la función: • La varianza se mantiene fija durante n generaciones • observamos la proporción de sustituciones del padre que se han producido en las últimas 10n generaciones • Si esta proporción es mayor que 1/5, la varianza se multiplica por una constante de incremento ci=1/0.82 • si es menor que 1/5 la varianza se multiplica por una constante de decremento cd = 0.82
Método VI • Este último método es mucho más sencillo. • Simplemente, cada generación decrementa la varianza del padre multiplicándola por 0’95, y la del hijo se aumenta multiplicándola por 1’25.
Resultados • El método VI presenta una convergencia más rápida.
Bibliografía • L. T. Wille, “Searching potential energy surfaces by simulated annealing”, Nature v 324 n 6 (1984), p 46-48. • J. R. Morris, D. M. Deaven and K. M. Ho. “Genetic-algorithm energy minimization for point charges on a sphere”. Physical Review B, 53(4): 1740--1743, 1996. • A. B. J. Kuijlaars and E. B. Saff, “Asymptotics for minimal discrete energy on the sphere”, Trans. Amer. Math. Soc., to appear. • E. B. Saff, A. B. J. Kuijlaars, “Distributing many points on a sphere”, Mathematical Intelligencer, v19 n1 (1997), p 5-11. • T. Erber, G. M. Hockney, “Equilibrium configurations of n equal charges on a sphere”, J Phys A: Math, 1991 • U. Depczynski and J. Stockler, “A differential geometric approach to equidistribution on compact manifolds”, Approximation theory IX, Volume 1: Theorical aspects 1998.
Investigadores • Pedro Isasi • Cristóbal Luque • Julio César Hernández
Resultados • Página web para el proyecto TRACER http://tracer.lcc.uma.es/problems/thomson/thomson.html • Informe técnico. • Artículo aceptado para una conferencia en la CAEPIA 2003.
Predicciones de series temporales (mareas de Venecia) mediante algoritmos genéticos.
Objetivo • Dada una muestra consecutiva de horas predecir la evolución de la marea. • Clásicamente se han usado RRNN para la predicción de series temporales. • Nosotros hemos usado técnicas de algoritmos genéticos.
Objetivo • Datos de entrada: 24 horas consecutivas x1, …, x24 • Salida: predicción para la hora siguiente (X25)
Algoritmo • Nuestros individuos serán vectores de 50 elementos: ( c_sup1, c_inf1,…, c_sup24, c_inf24, predicción, error ) • Este patrón nos indica que para una muestra de 24 horas consecutivas ( h1, …, h24 ) si para todo i se cumple que c_infi <hi< c_supi entonces la hora siguiente será predicción con un error aproximado de error.