Optimizando Algoritmos Evolutivos - MAEB

700 views
657 views

Published on

Presentación del trabajo del CEDI sobre optimización de algoritmos evolutivos

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

  • Be the first to like this

No Downloads
Views
Total views
700
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • La imagen está tomada de http://www.flickr.com/photos/dahlstroms/4083220012/
  • Imagen obtenida de http://www.flickr.com/photos/sebilden/3429805384/
  • Devel::NYTProf, un profiler para Perl desarrollado inicialmente para trabajar en el NYTimes (de ahí el nombre) y liberado; actualmente disponible en CPAN; es la mejor herramienta y más detallada que hay ahora mismo en Perl, produciendo una salida en HTML.
  • Imagen CC obtenida de http://www.flickr.com/photos/rbanks/2292915/
  • En el repositorio se pueden ver como diferentes versiones del mismo programa todos los programas que se han usado en la serie, usando la herramienta de diferencia entre programas que da Launchpad.
  • No es la única mejora, se probaron también otros algoritmos como mergesort, y otros que no tuvieron tanto éxito. El comportamiento de los lenguajes de programación
  • Imagen obtenida de http://www.flickr.com/photos/viagallery/2292639593/ con licencia CC
  • Optimizando Algoritmos Evolutivos - MAEB

    1. 1. Optimizando la implementación de algoritmos evolutivos JJ Merelo, Pedro Castillo , Juan L. Jiménez Laredo, Maribel García Arenas GeNeura team: http://geneura.wordpress.com Departamento de Arquitectura y Tecnología de Computadores: http://atc.ugr.es Universidad d Granada: http://www.ugr.es
    2. 2. Se presta poca atención a la implementación de los algoritmos evolutivos Aunque permite diseñar mejores algoritmos y obtener mejoras sustanciales tanto algorítmicas como de tiempo de ejecución
    3. 3. Herramientas usadas <ul><li>Monitores </li><ul><li>Tiempo de ejecución, memoria usada, consumo de recursos </li></ul><li>Profilers </li><ul><li>Tiempo invertido y número de ejecuciones reales de fragmentos de código </li></ul></ul>
    4. 4. Ejemplo de uso de un profiler
    5. 5. Planteamiento del problema <ul><li>Fitness = MaxOnes
    6. 6. Algoritmo genético canónico, con élite = 2
    7. 7. Población y longitud variable
    8. 8. Software libre: http://bit.ly/bOk3z3 </li></ul>
    9. 9. Evolución de un programa evolutivo Eliminado Añadido
    10. 10. El tamaño siempre importa <ul><li>Caché para la función fitness
    11. 11. Uso de tr para cálculo del fitness </li></ul>
    12. 12. Cuantos más semos... más tardaremos <ul><li>Uso de un profiler para localización de cuello de botella: función sort
    13. 13. Cambio por Sort::Key </li><ul><li>Mejora del comportamiento peor caso. </li></ul></ul>
    14. 14. Conclusiones <ul><li>Mejoras de dos órdenes de magnitud (para algunos tamaños) del tiempo de ejecución de un programa mediante mejoras en la implementación.
    15. 15. Conviene aplicar técnicas de programación habituales y buenas prácticas.
    16. 16. Trabajo futuro: incorporación de técnicas en Algorithm::Evolutionary, librería de algoritmos evolutivos en Perl. </li></ul>
    17. 17. Muchas gracias por su atención ¿Alguna pregunta?
    18. 18. Mejorando los algoritmos evolutivos Se propone el uso de una metodología de prueba y evaluación seguida por la aplicación de técnicas de programación comunes

    ×