Computación evolutiva no tradicional

download Computación evolutiva no tradicional

If you can't read please download the document

description

Una historia de probar cosas nuevas en computación evolutiva a lo largo de muchos años. Charla dada en la Complutense el 8 de septiembre de 2011

Transcript of Computación evolutiva no tradicional

  • 1. Computacin evolutiva en entornos no tradicionales JJ Merelo Universidad de Granada Http://facebook.com/jjmerelo

2. Entorno tradicional 3. Entornonotradicional 4. Por qu?

  • Buscar nuevos paradigmas bioinspirados. 5. Conseguir ciclos de computacin en desuso. 6. Entender la esencia de los algoritmos bioinspirados.

7. Qu vamos a ver? Diferentes formas de llevar a cabo EAs en entornos no tradicionales 8. Un ejemplo parsito para abrir boca $parcial =( $parcial ? "$parcial+" : "" ) . "log($i*$i*exp($i))+sqrt($i)" ; if ( $opt ) { print eval$parcial , " n " ; } else { my $s = uri_escape ( $parcial ); my $url = "http://google.com/search?q=$s & btnG=B % C3 % BAsqueda" ; my $response = $browser -> get ( $url ); die"Can't get $url -- " , $response -> status_lineunless $response -> is_success ; my ( $resultado )= ( $response -> decoded_content= ~ m {< b > . + ?= ( . + ? )}); $resultado = ~ s {(< font size =- 2 > )}{} g ; print"$i => Resultado es $resultado n " ; 9. Otro par de ejemplos secuenciales

  • Un algoritmo gentico en PowerPoint 97 10. Y tambin en unacmara Canon .

11. Las mulas no nadan

  • Pero pueden servir para computacin distribuida. 12. Las redes P2P (entre pares) reflejan la complejidad del mundo actual.. 13. Son redes dinmicas, ad-hoc, y superpuestas a las redes normales.

14. Topologa P2P Red superpuesta Red fsica 15. Modelo de capas para computacin evolutiva distribuida P2P PCs conectados a internet Red superpuesta P2P Sistema de agentes Computacin evolutiva 16. Agentes evolutivos: Cmo funcionan?

  • Basado en DREAM (Distributed Resource Evolutionary Algorithm Machine) 17. Algoritmo evolutivo estructurado espacialmente 18. Cada agente estructura un slo individuo 19. La vecindad se autoorganiza usando el protocoloNewscast
    • Cada nodo tiene conocimiento finito del resto de los nodos, e intercambia informacin con los que conoce
  • En la implementacin bsica: agente == hebra

20. Pero esto funciona? 21. Y porqu no en AJAX? function migrate ( pop ) { request= new XMLHttpRequest (); varpeticion_str= 'http://geneura.ugr.es/~jmerelo/proyectos/ga-js/cgi/get_guy.cgi?chromosome=' + pop [ 0 ]. chromosome+ "&fitness=" + pop [ 0 ]. fitness ; masca= null ; request . open ( 'GET' ,peticion_str, true ); request . onreadystatechange =add_to_population; request . send ( null ); } function add_to_population () { if (request . readyState== 4 ) { if (request . status== 200 ) { varjson=request . responseText ; eval ( "masca = " + json); document . getElementById ( 'ga-2' ). innerHTML =json ; if (masca [ 'generaciones' ] > 0 ) { run_ga (masca [ 'generaciones' ] ); } } } } 22. AJAX al rescate

  • Javascript slo no es suficiente para usar el navegador como entorno de computacin distribuida. 23. Hace falta un sistema de comunicacin asncrono 24. AJAX=Asynchronous Javascript & XML.

25. AJAX al alcance de todos

  • La mayora de los navegadores incluyen JavaScript. 26. El modelo de objetos tambin es compatible. 27. Requisito: objetoXMLHttpRequesten el navegador.

28. Venga, va, cmo funciona? 29. Por las vas pasa el tren

  • Ruby on Railses un entorno de desarrollo gil basado en el paradigma MVC, el lenguaje Ruby, AJAX y un gestor de bases de datos (MySQL, por ejemplo).

30. Qu es DCoR?

  • Un sistema de computacin distribuida que usa AJAX sobre Ruby on Rails para problemas, principalmente, de computacin evolutiva. 31. La distribucin se realiza entre cliente/servidor, y tambin podra hacerse entre diferentes servidores. 32. Las pruebas nos permitirn establecer su factibilidad, y el entorno ms favorable para la misma, as como una lnea base de prestaciones.

Se busca logo moln. Razn, aqu. 33. Los experimentos, en casa y con gaseosa

  • Problema Royal Road
    • Maximizar el nmero de unos de una cadena binaria por grupos.

=3 1 1 1 =0 1 0 1 34. Montaje experimental

  • Pruebas con cliente/servidor en el mismo ordenador (Linux) y en diferentes ordenadores (servidor:Linux, cliente:Windows).

35. Resultados distribucin carga 36. Vmonos de excursin

  • Problema de la mochila binaria
    • Maximizar elpesodel contenido de una mochila respetando restricciones.
  • Experimentos en una instalacin domstica

37. Escalado 38. Presentando AGAJAJ

  • Asynchronous Genetic Algorithm with JavaScript and JSON 39. Se trata, una vez ms, de usar el navegador para computacin distribuida masiva. 40. En este caso, todo el algoritmo evolutivo se ejecuta en el navegador

41. O volviendo a la carretera real 42. El efecto Microsiervos 43. Be fluid, my friend FluidDB is an openly writable shared database http://fluidinfo.com/about 44. FluidDB naci de la computacin evolutiva

  • La compaa la cre Terry Jones.
  • FluidDBes una sola maraa de cosas. 45. FluidDBpermite que los datos sean sociales. 46. Modelo de control nico pero potente 47. Reutilizacin simple de la informacin.

48. Cmo funciona? Thing fluiddb/about Another Thing http://wcci2010.org jjmerelo/likes dwcorne/stars 5 The sound of music 49. Fluidificando algoritmos evolutivos Thing fluiddb/about Another Thing 0100 1001 1100 1101 jjmerelo/exp-xyz/fitness dwcorne/exp-abc/fitness 33 22 0110 0001 1111 1101 jjmerelo/exp-xyz/current 50. Ejecutando un EA fluido 0010101100 001010000 0010101100 0010101100 1110101100 1101101100 0011101100 0010101100 0010101100 1011101100 0011101100 0010101100 51. Software libre

  • El software te lo puedes bajar dehttp://sl.ugr.es/001U 52. Implementado en Perl 53. 1600 evaluaciones 54. Poblacin = 2/32 55. Problema = MaxOnes (64 bits)

56. Nmero de reproducciones con xito 57. Por ahora va bien El fitness se incrementa de forma continua 58. Usar el pool calculado mejora los resultados Esta es la primera Segunda ejecucin 59. El tamao del lote es importante Esta es la primera Esta es la segunda 60. Tambin en Dropbox

  • Primero lo describimos 61. Cmo se implementa un algoritmo evolutivo distribuido en l. 62. Medidas de aceleracin sobre diferentes ordenadores 63. Diferencias entre modos de conexin. .

64. Dropbox 65. Nubes tormentosas experimentales

  • 1 a 4 ordenadores diferentes.. 66. Conexin Gigabit Ethernet o WiFi + WPA. 67. Dropbox actualizado a la ltima versin 68. Funciones de fitness: MMDP,P-Peaks yTrap.

69. Nuboso, con posibilidad de evolucin Individuo Evaluaciones/nodo 70. Atrapado en las nubes Ethernet WiFi 71. MMDP Ethernet WiFi 72. Resultados iniciales MMDP Computers Gens for Migration success(%) 1 100 83% 2 100 95% 4 100 100% 1 200 70% 2 200 88% 4 200 100% 1 400 80% 2 400 90% 4 400 100% 73. Resultados iniciales P-PEAKS Computers Gens for Migration success(%) 1 20 100% 2 20 100% 4 20 100% 1 40 100% 2 40 100% 4 40 100% 1 60 100% 2 60 100% 4 60 100%

  • No hay ninguna diferencia en la tasa de xito.

74. Resultados MMDP 75. Resultados de P-Peaks 76. Conclusiones

  • Dropboxse puede usar para distribuir algoritmos evolutivos 77. El equilibrado de carga es automtico. 78. La red importa. 79. Buen escalado. 80. Significar un algoritmo mejor?

S! 81. Eso no es todo

  • Algoritmos genticos en OSGi
    • Eleccin dinmica de servicios 82. Interactividad con el usuario
  • Otros servicios web: REST, SOAP
    • Optimizacin como servicio
  • Multicomputadora mvil
    • Algoritmos evolutivos sobre J2ME/BlueTooth
  • Algoritmos evolutivos en Erlang
    • Sistema de hebras sper eficiente

83. Hay alguna conclusin? No 84. Hay alguna conclusin? Perdn, s 85. Pero cul?

  • Tambin hay que explorar en computacin evolutiva, no slo explotar. 86. Cada nuevo paradigma ataca las suposiciones de una forma diferente.
    • Poblacin? Generacin? Entrecruzamiento?
  • Te ensea a buscar la forma ms eficiente de programar el algoritmo evolutivo
    • Sin perder la esencia del mismo.

87. Deja que la Naturaleza sea tu gua 88. Muchas gracias @jjmerelo http://geneura.wordpress.com Eso es todo