Un programador escribe código, lo ejecuta, ve el error y lo corrige. Ahora, ese proceso se puede delegar en el propio programa. El aprendizaje profundo en imagenología médica ya sabe mejorar algoritmos, pero normalmente requiere muchos datos y ejemplos preparados. La nueva herramienta MadEvolve actúa de otra manera: toma un programa que funciona y empieza a 'mutarlo': cambia líneas de código al azar, comprueba si ha mejorado y conserva los cambios acertados. Así, paso a paso, nace un algoritmo que resuelve la tarea notablemente mejor que el original.
Los autores probaron MadEvolve en tres problemas de cosmología. En el primero, había que reconstruir, a partir de la distribución actual de las galaxias, cómo estaba distribuida la materia en el Universo temprano. En el segundo, limpiar la señal del hidrógeno a 21 cm de las interferencias terrestres. En el tercero, calcular más rápido y con más precisión cómo interactúan la materia oscura y el gas en un modelo computacional. En todos los casos, el código mejorado dio un resultado más exacto que el original.
MadEvolve no se limita a buscar mejores parámetros, sino que modifica la propia lógica de los cálculos. Es como si un mecánico no solo ajustara el carburador, sino que desmontara el motor y probara piezas diferentes. Este enfoque abre el camino a la búsqueda automática de algoritmos científicos, no solo en cosmología, sino también en otras áreas que requieren cálculos complejos.
El nombre MadEvolve hace referencia a la 'mad science', la ciencia loca. Pero en realidad el programa actúa con método: prueba, compara y se queda con lo mejor.
En el 'Viaje decimocuarto' de Stanisław Lem, el protagonista se encuentra con máquinas que se perfeccionan a sí mismas hasta tal punto que dejan de necesitar a sus creadores. MadEvolve es un paso modesto en esa misma dirección.