O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Optimizando Algoritmos Evolutivos - MAEB

785 visualizações

Publicada em

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

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×