Un algorithme génétique est tout type de logiciel qui utilise la variation et la sélection pour produire une sortie adaptée à l’évolution. Cette sortie peut être un programme, une valeur ou même une image. L’algorithme génétique a besoin d’un processus pour générer de nouvelles variantes et rétroactions, ou critères de fitness, afin de déterminer les variantes à éliminer et celles à utiliser.
Par exemple, imaginez un algorithme génétique conçu pour créer des images d’insectes fictifs. La sortie initiale est simplement un méli-mélo de lignes connectées au hasard. Sur la base des commentaires des opérateurs humains, les images qui ne ressemblent en rien à des insectes sont éliminées et les variations futures ont tendance à ressembler de plus en plus à des insectes. Au fur et à mesure que les sorties deviennent plus finement réglées, elles commencent finalement à ressembler à des insectes.
L’algorithme génétique est souvent évoqué à propos d’Alife, ou vie artificielle, qui est l’étude d’organismes virtuels créés dans un ordinateur. Ces organismes virtuels vivent généralement sur une grille virtuelle, et parfois même se reproduisent les uns avec les autres et consomment des nutriments virtuels. Ces simulations Alife sont parfois utilisées pour étudier des formes de vie réelles ou pour faire évoluer des comportements partagés avec des formes de vie réelles. En créant nos propres environnements évolutifs artificiels à l’aide d’algorithmes génétiques, nous pouvons voir des types de vie qui n’existaient auparavant que dans l’imagination.
Dans une simulation Alife, les « organismes » ne sont que des pixels éclairés, qui influencent les pixels qui les entourent selon que les pixels adjacents sont éclairés ou non. Étonnamment, les interactions entre ces organismes peuvent créer des effets complexes de haut niveau que personne n’aurait pu prédire en examinant les composants de bas niveau.
Parce que les algorithmes génétiques peuvent explorer de grandes parties de l’espace de recherche pour un problème particulier, ils peuvent donner des solutions que les opérateurs humains n’auraient jamais imaginées. L’inconvénient de ces programmes est que pour les problèmes avec un très grand espace de recherche, le nombre de solutions possibles peut être énorme. Par conséquent, le système peut être gourmand en calculs. En unissant la puissance de la pensée humaine au caractère aléatoire de recherche et de test brut des algorithmes génétiques, nous pouvons créer de nouvelles solutions uniques aux problèmes de la biologie, de l’ingénierie, des mathématiques et d’autres domaines.