SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Optimizando la implementación de
      algoritmos evolutivos


         J.J. Merelo, Pedro Cast illo,
Juan L. Jiménez Laredo, Maribel García Arenas


      GeNeura team: http://geneura.wordpress.com
  Depto. de Arquitectura y Tecnología de Computadores:
                     http://atc.ugr.es
        Universidad d Granada: http://www.ugr.es
Mejorando los algoritmos evolutivos
 Usar una metodología de prueba y evaluación
   seguida por la aplicación de técnicas de
           programación comunes
Prestar atención a la optimización
         de las aplicaciones

 El hardware cada vez es más potente y rápido,
aún así, se deben optimizar las implementaciones
En cuanto a la implementación de
    los algoritmos evolutivos

Se pueden diseñar mejores algoritmos y obtener
mejoras sustanciales tanto algorítmicas como de
             tiempo de ejecución
Herramientas que nos ayudarán
                Monitores
                  Tiempo de ejecución,
                  memoria usada,
                  consumo de recursos
                Profilers
                  Tiempo invertido y
                  número de
                  ejecuciones reales de
                  fragmentos de código
En este trabajo...
Partir de la implementación de un AE sencillo
Programado en Perl con
Algorithm::Evolutionary
Analizar el programa con las herramientas
Aplicar cambios para optimizar la
implementación
Estudiar las mejoras
Ejemplo de uso de un profiler




                       Tiempo en cada
                      llamada a función
Planteamiento del problema
Fitness = MaxOnes
Algoritmo genético
canónico, con élite
Población y longitud
variable

Software libre:
http://bit.ly/bOk3z3
Evolución de un programa evolutivo
                       Salida de la
                   herramienta Launchpad
Evolución de un programa evolutivo
                        Eliminado




                           Añadido
Posibles mejoras al programa
Mejoras en el cálculo del fitness:
  Usar una caché
  Cambio del cálculo del fitness


Detección de cuellos de botella:
  Usar un profiler para detectarlos
  Cambio de la función de ordenación
El tamaño siempre importa
Caché para la
función fitness                 básica

                                caché




                                usar tr
Uso de la
función de Perl
tr para cálculo
del fitness
Cuantos más semos... más
       tardaremos
                      Uso de un profiler
           básica     para localización de
                      cuello de botella:
                      función sort
         mergesort


          Sort::Key
                      Cambio por
                      Sort::Key
                      (mejora del comportamiento
                       peor caso)
Conclusiones
Mejoras del tiempo de ejecución de un
programa mediante mejoras en la
implementación.


Conviene aplicar técnicas de programación
habituales y buenas prácticas.


Trabajo futuro: incorporación de técnicas en
Algorithm::Evolutionary, librería de algoritmos
evolutivos en Perl.
Muchas gracias



¿Alguna pregunta?
             J.J. Merelo
            jmerelo@geneura.ugr.es

Contenu connexe

Similaire à Optimizando EAs

Similaire à Optimizando EAs (20)

xp
xpxp
xp
 
2 pdf.pdf
2 pdf.pdf2 pdf.pdf
2 pdf.pdf
 
Xp
XpXp
Xp
 
Faces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XPFaces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XP
 
Metodologia XP fases y subfases
Metodologia  XP fases y subfasesMetodologia  XP fases y subfases
Metodologia XP fases y subfases
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del software
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extrema
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodos
 
Metodologia XP
Metodologia XPMetodologia XP
Metodologia XP
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de software
 
prueva
pruevaprueva
prueva
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-Fases
 
Metodologiaxp
MetodologiaxpMetodologiaxp
Metodologiaxp
 
Metodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De SistemasMetodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De Sistemas
 
El Proceso De Desarrollo De Software
El Proceso De Desarrollo De SoftwareEl Proceso De Desarrollo De Software
El Proceso De Desarrollo De Software
 
optimizacion de sistemas
optimizacion de sistemasoptimizacion de sistemas
optimizacion de sistemas
 
Deber2
Deber2Deber2
Deber2
 
Programación Extrema - XP
Programación Extrema - XPProgramación Extrema - XP
Programación Extrema - XP
 
Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)
 

Plus de pacvslideshare

Aplicaciones de comunicación e interacción con los estudiantes (Telegram)
Aplicaciones de comunicación e interacción con los estudiantes (Telegram)Aplicaciones de comunicación e interacción con los estudiantes (Telegram)
Aplicaciones de comunicación e interacción con los estudiantes (Telegram)pacvslideshare
 
Finding self-organized criticality in collaborative work via repository mining
Finding self-organized criticality in collaborative work via repository miningFinding self-organized criticality in collaborative work via repository mining
Finding self-organized criticality in collaborative work via repository mining pacvslideshare
 
Servidores web de altas prestaciones. Tema 7
Servidores web de altas prestaciones. Tema 7Servidores web de altas prestaciones. Tema 7
Servidores web de altas prestaciones. Tema 7pacvslideshare
 
Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6pacvslideshare
 
Servidores web de altas prestaciones. Tema 5
Servidores web de altas prestaciones. Tema 5Servidores web de altas prestaciones. Tema 5
Servidores web de altas prestaciones. Tema 5pacvslideshare
 
Servidores web de altas prestaciones. Tema 4
Servidores web de altas prestaciones. Tema 4Servidores web de altas prestaciones. Tema 4
Servidores web de altas prestaciones. Tema 4pacvslideshare
 
Servidores web de altas prestaciones. Tema 3
Servidores web de altas prestaciones. Tema 3Servidores web de altas prestaciones. Tema 3
Servidores web de altas prestaciones. Tema 3pacvslideshare
 
Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2pacvslideshare
 
Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1pacvslideshare
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentaciónpacvslideshare
 
Herramientas tic en docencia (2016)
Herramientas tic en docencia (2016)Herramientas tic en docencia (2016)
Herramientas tic en docencia (2016)pacvslideshare
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedorespacvslideshare
 
Cloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. VagrantCloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. Vagrantpacvslideshare
 
Cloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. AnsibleCloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. Ansiblepacvslideshare
 
Cloud Computing. Gestión de configuraciones
Cloud Computing. Gestión de configuracionesCloud Computing. Gestión de configuraciones
Cloud Computing. Gestión de configuracionespacvslideshare
 
Cloud Computing. Virtualización. IBM Bluemix
Cloud Computing. Virtualización. IBM BluemixCloud Computing. Virtualización. IBM Bluemix
Cloud Computing. Virtualización. IBM Bluemixpacvslideshare
 
Cloud Computing. Virtualización. Azure
Cloud Computing. Virtualización. AzureCloud Computing. Virtualización. Azure
Cloud Computing. Virtualización. Azurepacvslideshare
 
Cloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemuCloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemupacvslideshare
 
Cloud Computing. Virtualización
Cloud Computing. VirtualizaciónCloud Computing. Virtualización
Cloud Computing. Virtualizaciónpacvslideshare
 
Cloud Computing. Presentación general
Cloud Computing. Presentación generalCloud Computing. Presentación general
Cloud Computing. Presentación generalpacvslideshare
 

Plus de pacvslideshare (20)

Aplicaciones de comunicación e interacción con los estudiantes (Telegram)
Aplicaciones de comunicación e interacción con los estudiantes (Telegram)Aplicaciones de comunicación e interacción con los estudiantes (Telegram)
Aplicaciones de comunicación e interacción con los estudiantes (Telegram)
 
Finding self-organized criticality in collaborative work via repository mining
Finding self-organized criticality in collaborative work via repository miningFinding self-organized criticality in collaborative work via repository mining
Finding self-organized criticality in collaborative work via repository mining
 
Servidores web de altas prestaciones. Tema 7
Servidores web de altas prestaciones. Tema 7Servidores web de altas prestaciones. Tema 7
Servidores web de altas prestaciones. Tema 7
 
Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6
 
Servidores web de altas prestaciones. Tema 5
Servidores web de altas prestaciones. Tema 5Servidores web de altas prestaciones. Tema 5
Servidores web de altas prestaciones. Tema 5
 
Servidores web de altas prestaciones. Tema 4
Servidores web de altas prestaciones. Tema 4Servidores web de altas prestaciones. Tema 4
Servidores web de altas prestaciones. Tema 4
 
Servidores web de altas prestaciones. Tema 3
Servidores web de altas prestaciones. Tema 3Servidores web de altas prestaciones. Tema 3
Servidores web de altas prestaciones. Tema 3
 
Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2
 
Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentación
 
Herramientas tic en docencia (2016)
Herramientas tic en docencia (2016)Herramientas tic en docencia (2016)
Herramientas tic en docencia (2016)
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedores
 
Cloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. VagrantCloud Computing. Gestión de configuraciones. Vagrant
Cloud Computing. Gestión de configuraciones. Vagrant
 
Cloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. AnsibleCloud Computing. Gestión de configuraciones. Ansible
Cloud Computing. Gestión de configuraciones. Ansible
 
Cloud Computing. Gestión de configuraciones
Cloud Computing. Gestión de configuracionesCloud Computing. Gestión de configuraciones
Cloud Computing. Gestión de configuraciones
 
Cloud Computing. Virtualización. IBM Bluemix
Cloud Computing. Virtualización. IBM BluemixCloud Computing. Virtualización. IBM Bluemix
Cloud Computing. Virtualización. IBM Bluemix
 
Cloud Computing. Virtualización. Azure
Cloud Computing. Virtualización. AzureCloud Computing. Virtualización. Azure
Cloud Computing. Virtualización. Azure
 
Cloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemuCloud Computing. Virtualización. qemu
Cloud Computing. Virtualización. qemu
 
Cloud Computing. Virtualización
Cloud Computing. VirtualizaciónCloud Computing. Virtualización
Cloud Computing. Virtualización
 
Cloud Computing. Presentación general
Cloud Computing. Presentación generalCloud Computing. Presentación general
Cloud Computing. Presentación general
 

Optimizando EAs

  • 1. Optimizando la implementación de algoritmos evolutivos J.J. Merelo, Pedro Cast illo, Juan L. Jiménez Laredo, Maribel García Arenas GeNeura team: http://geneura.wordpress.com Depto. de Arquitectura y Tecnología de Computadores: http://atc.ugr.es Universidad d Granada: http://www.ugr.es
  • 2. Mejorando los algoritmos evolutivos Usar una metodología de prueba y evaluación seguida por la aplicación de técnicas de programación comunes
  • 3. Prestar atención a la optimización de las aplicaciones El hardware cada vez es más potente y rápido, aún así, se deben optimizar las implementaciones
  • 4. En cuanto a la implementación de los algoritmos evolutivos Se pueden diseñar mejores algoritmos y obtener mejoras sustanciales tanto algorítmicas como de tiempo de ejecución
  • 5. Herramientas que nos ayudarán Monitores Tiempo de ejecución, memoria usada, consumo de recursos Profilers Tiempo invertido y número de ejecuciones reales de fragmentos de código
  • 6. En este trabajo... Partir de la implementación de un AE sencillo Programado en Perl con Algorithm::Evolutionary Analizar el programa con las herramientas Aplicar cambios para optimizar la implementación Estudiar las mejoras
  • 7. Ejemplo de uso de un profiler Tiempo en cada llamada a función
  • 8. Planteamiento del problema Fitness = MaxOnes Algoritmo genético canónico, con élite Población y longitud variable Software libre: http://bit.ly/bOk3z3
  • 9. Evolución de un programa evolutivo Salida de la herramienta Launchpad
  • 10. Evolución de un programa evolutivo Eliminado Añadido
  • 11. Posibles mejoras al programa Mejoras en el cálculo del fitness: Usar una caché Cambio del cálculo del fitness Detección de cuellos de botella: Usar un profiler para detectarlos Cambio de la función de ordenación
  • 12. El tamaño siempre importa Caché para la función fitness básica caché usar tr Uso de la función de Perl tr para cálculo del fitness
  • 13. Cuantos más semos... más tardaremos Uso de un profiler básica para localización de cuello de botella: función sort mergesort Sort::Key Cambio por Sort::Key (mejora del comportamiento peor caso)
  • 14. Conclusiones Mejoras del tiempo de ejecución de un programa mediante mejoras en la implementación. Conviene aplicar técnicas de programación habituales y buenas prácticas. Trabajo futuro: incorporación de técnicas en Algorithm::Evolutionary, librería de algoritmos evolutivos en Perl.
  • 15. Muchas gracias ¿Alguna pregunta? J.J. Merelo jmerelo@geneura.ugr.es