jueves, 7 de mayo de 2015

Mi camino hacia el aprendizaje de Algoritmos Genéticos

Hace tres días tenía una ligera idea de lo que eran los algoritmos genéticos. Me sonaba remotamente de oídas. Hoy he hecho mi primer programa aplicando dicho algoritmo.



Durante estos días, y en el momento en que me decidí a hacer un programa sobre ello, he ido anotando a modo de experimento, mi recorrido hacia llegar a ese tanto por ciento de aprendizaje que me ha dado la capacidad de elaborar una aplicación informática sobre ello. 

Día 1
  • Todo surgió de un comentario sobre el tema de una persona a la que denominaré experto. Me contó algunas nociones básicas muy por encima. Sembró la semilla de la curiosidad en mi e hizo que recordara lo poco que sabía sobre el tema.
Día 2
  • Parece que el tema estuvo en proceso de incubación en mi cabeza. Se me ocurrió una aplicación de ese algoritmo para tratar un problema de optimización que teníamos entre manos en ese momento en el trabajo.
  • Para ello necesitaría aprender más sobre el tema. No bastaba con los comentarios introductorios que me había dado el experto el día anterior.
  • Lo primero era buscar documentación sobre el tema. Busqué en Scribd documentos gratuitos de más de 100 páginas. Suelen ser libros. Encontré cosas pero era demasiada información, demasiado denso.
  • Opté por el camino opuesto. Documentos gratuitos de menos hasta 3 páginas. Supuse que vendrían resúmenes muy breves con lo esencial.
  • Todo lo encontrado lo volqué en mi tablet y aproveché el trayecto de vuelta a casa para estudiarlo. El tiempo de que dura ese trayecto siempre lo intento aprovechar, es un "rincón del tiempo" que no hay que dejar escapar.
  • Logré entender el funcionamiento básico, aunque vi que había más variantes sobretodo en una de las partes del algoritmo, el de recombinación.
  • Busqué otros tipos de contenido que me pudieran ayudar. No hay que limitarse al texto. En Youtube existen un sin fin de explicaciones muy buenas sobre pizarra de cualquier tema. También recurrí  a podcast. Ivoox es una gran fuente de conocimiento del que puedes beber casi en cualquier momento (mientras haces deporte, mientras viajas en el autobus, mientras conduces, etc...)
Día 3
  • Plantee el problema sobre el papel, mediante el uso de esquemas y gráficos. Si se puede dibujar se entiende todo mucho mejor.
  • Empecé a codificar el programa en Python (un lenguaje tremendamente sencillo y potente del que ya os hablaré en otra entrada)
  • Me surgieron algunas dudas sobre una de las partes, el de la creación de la nueva generación.
  • Fui de "caza" por internet buscando información sobre esa duda en concreto. Busqué ejemplos concretos.
  • Pregunté al experto. Con su respuesta y lo encontrado reordené mis ideas y continué avanzando en el desarrollo.
  • Finalicé el desarrollo.  

Este ha sido mi camino hasta llegar a implementar mi primera aplicación basada en este tipo de algoritmos. Esta claro que no ha hecho que me convierta en un experto en el tema, pero si he adquirido un buen porcentaje de conocimientos que hacen que me defendienda bien.


2 comentarios:

  1. Parece que te lo has currado mucho. ¿Y la aplicación? ¿Se puede ver?

    ResponderEliminar
  2. Gracias! Haré otra, aplicada a otro tema que no sea de trabajo y ya os la enseñaré ;-)

    ResponderEliminar