Un programmeur écrit du code, l'exécute, voit l'erreur et corrige. Désormais, ce processus peut être confié au programme lui-même. L'apprentissage profond en imagerie médicale sait déjà améliorer des algorithmes, mais il exige généralement beaucoup de données et d'exemples prêts à l'emploi. Le nouvel outil MadEvolve agit autrement : il prend un programme fonctionnel et se met à le « muter » — il modifie aléatoirement des lignes de code, vérifie si c'est devenu meilleur et conserve les changements réussis. Ainsi, pas à pas, naît un algorithme qui accomplit la tâche nettement mieux que l'original.
Les auteurs ont testé MadEvolve sur trois problèmes de cosmologie. Dans le premier, il s'agissait de reconstituer, à partir de la disposition actuelle des galaxies, comment la matière était répartie dans l'Univers primordial. Dans le deuxième, il fallait nettoyer le signal de l'hydrogène à la fréquence de 21 cm des interférences terrestres. Dans le troisième, il fallait calculer plus rapidement et plus précisément comment la matière noire et le gaz interagissent dans un modèle informatique. Dans tous les cas, le code amélioré a donné un résultat plus précis que le code d'origine.
MadEvolve ne se contente pas de chercher de meilleurs paramètres, il modifie aussi la logique même des calculs. C'est comme si un mécanicien ne se contentait pas de régler le carburateur, mais démontait le moteur et essayait différentes pièces. Cette approche ouvre la voie à la recherche automatique d'algorithmes scientifiques — non seulement en cosmologie, mais aussi dans d'autres domaines où des calculs complexes sont nécessaires.
Le nom MadEvolve fait référence à la « mad science », la science folle. Mais en réalité, le programme agit méthodiquement : il essaie, compare, garde le meilleur.
Dans le « Voyage quatorzième » de Stanislas Lem, le héros rencontre des machines qui s'améliorent elles-mêmes au point de ne plus avoir besoin de leurs créateurs. MadEvolve est un modeste pas dans la même direction.