Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Optimizando Algoritmos Evolutivos - MAEB

775 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

×