Uc3

458 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
458
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Uc3

  1. 1. 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
  2. 2. Líneas de Investigación <ul><li>Distribución de cargas en una esfera mediante estrategias evolutivas. </li></ul><ul><li>Predicciones de la marea mediante algoritmos genéticos. </li></ul><ul><li>Búsqueda de funciones HASH mediante programación genética. </li></ul>
  3. 3. Distribución de cargas en una esfera
  4. 4. Introducción: <ul><li>Problema: distribuir N cargas iguales en la superficie de una esfera. </li></ul><ul><li>Las cargas tienden a repelerse hasta quedar en una posición de equilibrio. </li></ul><ul><li>El problema se conoce en física como “el problema de Thomson”. </li></ul>
  5. 5. Ejemplos
  6. 6. Métodos para el cálculo: <ul><li>Clásico: descenso del gradiente. </li></ul><ul><li>Simulated annealing. </li></ul><ul><li>Algoritmos genéticos. </li></ul><ul><li>El descenso de gradiente puede quedar atrapado en mínimos locales. </li></ul>
  7. 7. Aplicaciones <ul><li>Este problema clásico tiene aplicaciones en física, química y biología. </li></ul><ul><li>Cristalización de iones o &quot;bubblons&quot; cerca de la superficie de un aglomerado de helio líquido. </li></ul><ul><li>Cristalización de electrones en el contorno de un punto semiconductor esférico. </li></ul><ul><li>Cálculo de poliedros regulares. </li></ul><ul><li>Búsqueda de moleculas estables. </li></ul><ul><li>Analisis del entrelazado de los granos de polen y las cadenas de ADN . </li></ul>
  8. 8. Dificultades del problema <ul><li>Numerosos mínimos locales. </li></ul><ul><li>El número de mínimos locales aumenta exponencialmente con el número de electrones. </li></ul><ul><li>Para N ~ 200 electrones hay alrededor de 8000 mínimos locales. </li></ul>
  9. 9. Preliminares <ul><li>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. </li></ul>
  10. 10. Preliminares <ul><li>La función fitness será el potencial electrostático: </li></ul><ul><ul><ul><ul><ul><li>f(N)=  i<j 1/d(x i ,x j ) </li></ul></ul></ul></ul></ul><ul><li>Esquema estándar: </li></ul>
  11. 11. Preliminares <ul><li>inicializar() da los valores iniciales. </li></ul><ul><li>engendrar() produce los  hijos a partir de los  padres mediante mutación. </li></ul><ul><li>evaluar() selecciona los  mejores individuos de la población de padres e hijos. </li></ul><ul><li>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. </li></ul>
  12. 12. Método I <ul><li>Para la primera implementación los padres portan las coordenadas de los electrones en polares: </li></ul>
  13. 13. Método I <ul><li>Declaramos un vector de  elementos de tipo Tpadre. </li></ul><ul><li>El tipo real puede ser tanto double , como long double, dependiendo de la precisión que queramos. </li></ul><ul><li>La constante n_e es el número de electrones. </li></ul><ul><li>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). </li></ul>
  14. 14. Método I <ul><li>Así pues la mutación (observemos que no sólo mutan las coordenadas polares, también mutan las varianzas) seguirá las siguientes distribuciones normales: </li></ul>
  15. 17. Método II <ul><li>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. </li></ul>
  16. 18. Método II <ul><li>Ahora el tipo Tpadre ocuparía la mitad de lo que ocupaba anteriormente. </li></ul><ul><li>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 </li></ul><ul><li>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. </li></ul>
  17. 19. Método III <ul><li>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 (  ,  ). </li></ul>
  18. 20. Método III <ul><li>La nueva implementación será: </li></ul>
  19. 21. Método III <ul><li>Al igual que en el caso anterior, seguimos manteniendo una sola varianza para todos los electrones del mismo padre. </li></ul><ul><li>El proceso de mutación usado es: </li></ul>
  20. 24. Método III <ul><li>Tras llevar a cabo algunas pruebas, se comprobó que, efectivamente, esta nueva implementación era más rápida. </li></ul><ul><li>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. </li></ul>
  21. 25. Método III <ul><li>Para cada electrón debe evaluar N 2 /2 distancias : </li></ul>
  22. 26. Método IV <ul><li>Para la nueva implementación los padres mantienen la información sobre la inversa de las distancias entre los electrones. </li></ul><ul><li>Muta un solo electrón de cada padre en el hijo. </li></ul><ul><li>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. </li></ul><ul><li>Ahora sólo hay que evaluar N-1 distancias en vez de N 2 /2. </li></ul>
  23. 27. Método IV <ul><li>La nueva implementación será: </li></ul>
  24. 28. Método IV <ul><li>En la tabla inv_d[n_e][n_e] guarda las inversas de las distancias de los electrones. </li></ul>
  25. 29. Método IV <ul><li>El indicador ind señala cual es el electrón que muta. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  26. 30. Método IV <ul><li>La ventaja de este método es su velocidad, siendo mucho más rápido que todos los anteriores. </li></ul><ul><li>La desventaja es que tiene más posibilidades de quedar atascado en un mínimo local. </li></ul>
  27. 34. Nuevo Enfoque <ul><li>Posteriormente se trató de afrontar el problema con una estrategia (1+1). </li></ul><ul><li>1 padre produce 1 único hijo. </li></ul><ul><li>Dicho padre se sustituye sólo si el hijo mejora el fitness del padre. </li></ul>
  28. 35. Método V <ul><li>Se siguieron las los postulados de Rechenberg: la regla de 1/5: </li></ul><ul><li>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. </li></ul>
  29. 36. Método V <ul><li>Sea n el número de variables de la función: </li></ul><ul><li>La varianza se mantiene fija durante n generaciones </li></ul><ul><li>observamos la proporción de sustituciones del padre que se han producido en las últimas 10n generaciones </li></ul><ul><li>Si esta proporción es mayor que 1/5, la varianza se multiplica por una constante de incremento c i =1/0.82 </li></ul><ul><li>si es menor que 1/5 la varianza se multiplica por una constante de decremento c d = 0.82 </li></ul>
  30. 37. Método VI <ul><li>Este último método es mucho más sencillo. </li></ul><ul><li>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. </li></ul>
  31. 38. Resultados <ul><li>El método VI presenta una convergencia más rápida. </li></ul>
  32. 42. Bibliografía <ul><li>L. T. Wille, “Searching potential energy surfaces by simulated annealing”, Nature v 324 n 6 (1984), p 46-48. </li></ul><ul><li>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. </li></ul><ul><li>A. B. J. Kuijlaars and E. B. Saff, “Asymptotics for minimal discrete energy on the sphere”, Trans. Amer. Math. Soc., to appear. </li></ul><ul><li>E. B. Saff, A. B. J. Kuijlaars, “Distributing many points on a sphere”, Mathematical Intelligencer, v19 n1 (1997), p 5-11. </li></ul><ul><li>T. Erber, G. M. Hockney, “Equilibrium configurations of n equal charges on a sphere”, J Phys A: Math, 1991 </li></ul><ul><li>U. Depczynski and J. Stockler, “A differential geometric approach to equidistribution on compact manifolds”, Approximation theory IX, Volume 1: Theorical aspects 1998. </li></ul>
  33. 43. Investigadores <ul><li>Pedro Isasi </li></ul><ul><li>Cristóbal Luque </li></ul><ul><li>Julio César Hernández </li></ul>
  34. 44. Resultados <ul><li>Página web para el proyecto TRACER http://tracer.lcc.uma.es/problems/thomson/thomson.html </li></ul><ul><li>Informe técnico. </li></ul><ul><li>Artículo aceptado para una conferencia en la CAEPIA 2003. </li></ul>
  35. 45. Predicciones de series temporales (mareas de Venecia) mediante algoritmos genéticos.
  36. 46. Objetivo <ul><li>Dada una muestra consecutiva de horas predecir la evolución de la marea. </li></ul><ul><li>Clásicamente se han usado RRNN para la predicción de series temporales. </li></ul><ul><li>Nosotros hemos usado técnicas de algoritmos genéticos. </li></ul>
  37. 47. Objetivo <ul><li>Datos de entrada: 24 horas consecutivas </li></ul><ul><li>x 1 , …, x 24 </li></ul><ul><li>Salida: predicción para la hora siguiente (X 25 ) </li></ul>
  38. 48. Algoritmo <ul><li>Nuestros individuos serán vectores de 50 elementos: </li></ul><ul><li>( c_sup 1 , c_inf 1 ,…, c_sup 24 , c_inf 24 , predicción, error ) </li></ul><ul><li>Este patrón nos indica que para una muestra de 24 horas consecutivas ( h 1 , …, h 24 ) si para todo i se cumple que c_inf i <h i < c_sup i entonces la hora siguiente será predicción con un error aproximado de error . </li></ul>
  39. 52. Algoritmo <ul><li>Seleccionamos una gran cantidad de valores consecutivos de medidas de la marea (30.000). </li></ul><ul><li>El fitness de un individuo dependerá de: </li></ul><ul><li>El número de veces que 24 horas consecutivas cumplen sus cotas ( aciertos ). </li></ul><ul><li>La varianza de las medidas de la hora 25. </li></ul>
  40. 53. Algoritmo: Fitness <ul><li>Función fitness: ( aciertos*10) - varianza </li></ul><ul><li>Objetivos: </li></ul><ul><li>Maximizar los aciertos. </li></ul><ul><li>Minimizar la varianza. </li></ul>
  41. 54. Algoritmo <ul><li>Reproducción sexual. </li></ul><ul><li>Intercambio de la información. </li></ul><ul><li>Selección de los individuos por torneos de tres rondas. </li></ul>
  42. 55. Algoritmo: Descendencia <ul><li>Un gen de un individuo es un par de cota superior y cota inferior para una misma hora. </li></ul><ul><li>Para cada hora, el hijo hereda el gen correspondiente a esa hora de uno de los padres con una probabilidad del 50%. </li></ul>
  43. 56. Algoritmo: Descendencia <ul><li>Padre 1: </li></ul><ul><li>( c_sup 1 , c_inf 1 , c_sup 2 , c_inf 2 ,…,c_sup 24 , c_inf 24 ) </li></ul><ul><li>Padre 2: </li></ul><ul><li>( c_sup 1 , c_inf 1 , c_sup 2 , c_inf 2 ,…,c_sup 24 , c_inf 24 ) </li></ul><ul><li>Hijo: </li></ul><ul><li>( c_sup 1 , c_inf 1 , c_sup 2 , c_inf 2 ,…, c_sup 24 , c_inf 24 ) </li></ul>
  44. 57. Algoritmo: Selección <ul><li>No queremos un único individuo óptimo, buscamos una población y que cada individuo nos haga una predicción distinta. </li></ul><ul><li>Steady-Stay: Un nuevo individuo sustituye al más cercano en distancia fenotípica, es decir, al que haga una predicción parecida. </li></ul><ul><li>Sólo sustituye si mejora el fitness del más cercano en distancia fenotípica </li></ul>
  45. 58. Resultados <ul><li>Tras cada ejecución se guardan los individuos en un fichero. </li></ul><ul><li>Resultado final: 3500 individuos que predicen sobre 30.000 datos de test (es decir, la población de individuos no ha sido entrenada con ellos) en el 99% de los casos con un error medio de 5 cm sobre el nivel de la marea (entre -50 y 150 cm) </li></ul>
  46. 59. Investigadores <ul><li>Pedro Isasi </li></ul><ul><li>Cristóbal Luque </li></ul><ul><li>Julio César Hernández </li></ul><ul><li>José María valls </li></ul>
  47. 60. Resultados <ul><li>Página web para el proyecto TRACER http://tracer.lcc.uma.es/problems/tide/tide.html </li></ul>
  48. 61. Búsqueda de funciones HASH mediante programación genética
  49. 62. Objetivo <ul><li>Efecto Avalancha: ¿Cuánto cambia la salida cuando cambiamos un bit de la entrada? </li></ul><ul><li>Crearemos funciones HASH mediante Programación Genética y comprobaremos su robustez mediante el efecto Avalancha. </li></ul>
  50. 63. Algoritmo <ul><li>Nuestros individuos serán árboles. </li></ul><ul><li>En cada nodo habrá una operación de la lista. </li></ul><ul><li>El fitness del individuo se calculará generando 1024 vectores aleatorios de 64 bits. A continuación se permuta un bit del vector y se calcula su distancia de Hamming entre la salida del vector original y la salida del permutado, y luego se calcula la media. </li></ul>
  51. 64. Operaciones <ul><li>rotd (rotar a la derecha) </li></ul><ul><li>roti (rotar a la izquierda) </li></ul><ul><li>xor (suma mod 2) </li></ul><ul><li>or (bit or) </li></ul><ul><li>not (bit not) </li></ul><ul><li>and (bit and) </li></ul><ul><li>sum (suma mod 2 32 ) </li></ul><ul><li>mult (multiplicación mod 2 32 ) </li></ul><ul><li>kte = 0x9e377969 </li></ul>
  52. 65. Ejemplo de individuo <ul><li>Profundidad del árbol: 5 </li></ul><ul><li>fitness: 11.2148 </li></ul><ul><li>Entradas: a0, a1 </li></ul><ul><li>  (mult (kte (rotd a0))        (rotd (sum (roti (xor a0 a1))                   (xor a0 a1)))) </li></ul>
  53. 66. Investigadores <ul><li>Julio César Hernández </li></ul><ul><li>Pedro Isasi </li></ul><ul><li>Cristóbal Luque </li></ul>
  54. 67. Resultados <ul><li>Página web para el proyecto TRACER http://tracer.lcc.uma.es/problems/avalanche/avalanche.html </li></ul><ul><li>Artículo aceptado para KES 2003, que tuvo lugar en Oxford. </li></ul><ul><li>Aceptado en el CEC 2003, en Camberra, y que será publicado en la revista Computational Intelligence de Junio de 2004. </li></ul>

×