el programador ciego

En Hack a Day han salido un par de posteos acerca de programas evolutivos, estos es, programas que logran una tarea iterando variaciones sobre la versión más exitosa de la generación anterior.

manhattan-newlife-thumb.jpg
En el primer posteo se mencionaba un programa que diseñaba un auto a partir de algunas reglas simples: dos ruedas (azules), dos pasajeros (rojos) que no pueden tocar el piso en ningún momento, el auto más exitoso de cada generación es el que llegue más lejos en un terreno accidentado dentro de un período de tiempo.

El programa del auto sigue estando en proceso (por suerte!) y es de esperar que cuando esté terminado no tenga un límite de tiempo, que hace que todo el asunto del perfeccionamiento de generación en generación pierda un poco el sentido (esa es la razón de que la curva del gráfico de la derecha siempre termine plana).

Más interesante, quizás, son los programas que tratan de generar una foto a partir de colecciones de polígonos semitransparentes. Ojo con este, eso sí: aunque iba bien y tenía planes de dejarlo corriendo durante la noche, hizo que Firefox se taimara tras aproximadamente 850 pasos.

monalisa-thumb.jpg

Por supuesto, qué es lo que define “más exitoso” en cada programa y el tipo de mutaciones que puede haber es lo que hace que el programa sea interesante de hacer. Pero al margen del hacer, hay algo extrañamente hipnótico en estos programas, que hace que verlos trabajar sea peligrosamente absorbente.

Leave a Reply