Primer acercamiento a los Algoritmos Genéticos

Fecha: May 31st, 2010 | Categoría: Informatica | 1 Comment »

El año pasado, el Dr. Pablo Coll me mostró la página de competencias de programación de Al Zimmermann. Se trata de problemas que son muy difíciles computacionalmente, y ganan los que aproximen las mejores soluciones. Un problema del que ya terminó el período para mandar soluciones es uno de Point Packaging: ubicar N puntos en coordenadas enteras de manera tal que no se repitan las distancias; y minimizar el área de la circunferencia que los contiene.

Para resolverlo, implementé un algoritmo genético. Un algoritmo genético lo que hace es tomar individuos en un grupo llamado generación y elegir los individuos de cada generación más aptos mediante una función de "aptitud" (fitness), para concebir quiénes serán los individuos de una nueva generación. Este proceso se repite hasta que se tiene una generación donde los individuos son más o menos los mismos.

Mis individuos eran colecciones de puntos, y su aptitud era evaluada de acuerdo al radio de la circunferencia que los contiene y a la cantidad de repeticiones de distancias entre puntos. Las repeticiones de distancias pesaba mucho, con esto podía tener individuos incorrectos pero con mucha aptitud, con colisiones de distancias que se irían solucionando a medida que prosigue el algoritmo.

Este es un video en youtube que armé con gráficas de los individuos más aptos de cada generación:

Al final, me fijé en la página del concurso y mi solución era pésima (el radio era el doble de la mejor solución entregada). Y además, me di cuenta que después de unos cuántos cientos de generaciones, todos los individuos eran casi iguales excepto por los que habían mutado en la última generación. Declaré mi aplicación de algoritmos genéticos a este problema como un fracaso, pero estuvo bueno el intento y tener cosas para plotear (me estoy volviendo cada vez más fanático de los plots).

genetic.tar.gz


  • http://Website aasd

    Perdon por poner este comentario aqui, pero no se muy bien donde hacerlo.

    He visto la herramienta que has hecho para bajar los subtitulos de tedtalk en formato srt.

    http://tedtalksubtitledownload.appspot.com

    Lo primero de todo, muchas gracias. Y lo segundo, seria una gran aportacion para todos los que quisieramos bajarnos todos los subtitulos hasta la fecha en un determinado idioma ir un paso mas alla y colgarlos transformados en algun sitio.

    O hacer algo para poder bajarlos, ya transformados en un unico fichero comprimido, o con un metalink como el que aparece aqui para bajar los videos,

    http://metated.petarmaric.com

    En cualqueir caso, muchas gracias por tu util conversor. Creo que puede ser de gran ayuda para la difusion de las ideas que aparecen en las tedtalks en los paises de habla no inglesa y con bajos anchos de banda.

    Y en general, para todo el mundo que, por una u otra razon, quiera verlos offline e incluso como ayuda para aprender idiomas.