C’est en 1859 que le célèbre naturaliste anglais Charles Darwin énonce publiquement pour la première fois sa théorie de l’évolution des espèces. D’abord accueillie avec scepticisme et incrédulité, l’importance et la pertinence de cette théorie sont aujourd’hui telles qu’elle est connue même en dehors des cercles scientifiques. Si sa renommée en biologie n’est donc plus à faire, beaucoup de gens ignorent les répercussions qu’elle a entraînées dans d’autres sciences. En particulier, elle a aujourd’hui des implications dans deux domaines que Darwin n’aurait certainement pas soupçonnés à l’époque : l’informatique et l’exploration spatiale.
Marc-André Gardner
La théorie de l’évolution se base sur deux mécanismes primordiaux : la capacité d’un organisme à transmettre ses caractéristiques à ses descendants et l’existence d’un phénomène de sélection des individus. Dans le cas de l’évolution des espèces, ce sont respectivement l’ADN et la sélection naturelle qui jouent ces rôles, cette dernière impliquant simplement que les individus les plus adaptés à leur milieu ont le plus de chances de survivre, et donc de se reproduire et de transmettre leurs gènes.
Des pins produisant des cônes capables de résister aux feux ravageant périodiquement leurs forêts aux animaux à la fourrure changeant de couleur au gré des saisons, l’évolution naturelle a ainsi permis la création d’organismes parfaitement adaptés à leur écosystème. Toutefois, la théorie de l’évolution ne se limite pas à la biologie. L’évolution n’est en fait qu’un moyen de résoudre un problème donné, aussi difficile soit-il. C’est précisément de cette constatation qu’est issue l’idée de l’appliquer à des problèmes autres que biologiques. De là sont nés, entre autres, les algorithmes évolutionnaires.
Un algorithme évolutionnaire fonctionne de manière analogue à l’évolution biologique, mais virtuellement, dans un ordinateur. Un programme crée d’abord des organismes numériques aléatoires. Ceux-ci ne sont qu’une suite d’octets stockés en mémoire et constituent différentes façons de résoudre un problème donné. L’ordinateur donne alors une note à chaque organisme, selon sa capacité à résoudre le problème. Puis, par un procédé similaire à la sélection naturelle, une partie des organismes sont éliminés, la probabilité de survie d’un organisme étant proportionnelle à
sa note. Par la suite, les « survivants » sont croisés pour se reproduire et former une nouvelle génération d’organismes. Ces nouveaux arrivants seront à leur tour évalués et sélectionnés, et ainsi de suite. Au fil des générations artificielles, les organismes numériques produits se révèlent ainsi de plus en plus aptes à résoudre le problème initial.
Le grand intérêt des algorithmes évolutionnaires réside dans le fait que, contrairement à la programmation classique, ils ne nécessitent aucun raisonnement externe. À l’instar de l’évolution biologique, le hasard des croisements et la sélection des organismes permettent à eux seuls de résoudre le problème. À la limite, même le programmeur ayant codé les caractéristiques du problème peut ne pas le comprendre ! Ces algorithmes sont donc particulièrement utiles dans le cas de problèmes dont la solution est soit trop longue à calculer, soit carrément inconnue. De plus, de par leur caractère aléatoire, les algorithmes évolutionnaires ne sont pas limités à une approche particulière, contrairement à un humain qui utilisera généralement une approche similaire à celles qu’il connaît. Deux exemples concrets impliquant l’exploration spatiale montrent bien ce que peuvent apporter ces algorithmes.
Dans les années 2000, la NASA lança le processus de conception de trois micro-satellites. Leur petit format constituait un défi en soi, puisqu’il commandait une réduction importante de la taille de tous les appareils embarqués à bord. En particulier, la conception des antennes de communication posait problème, puisqu’elles devaient être très petites et demander peu de puissance tout en offrant des capacités de réception et d’émission suffisantes. Des chercheurs eurent alors l’idée d’utiliser des algorithmes évolutionnaires afin de faire, littéralement, évoluer des antennes. Le résultat obtenu fut assez déroutant au premier abord : les antennes produites, aux formes étranges et biscornues, semblaient sortir de l’esprit d’un sculpteur abstrait en manque d’inspiration. Toutefois, les tests révélèrent rapidement que ces antennes étaient au contraire extrêmement intéressantes. Meilleures performances, conception plus simple et puissance requise plus faible que les antennes conventionnelles, tout y était. Ces antennes à la forme bizarre qu’aucun ingénieur n’aurait pensé à créer se révélèrent donc supérieures en tout point et furent finalement incluses avec succès dans la mission ST5 de la NASA lancée en 2006.
Plus récemment, en 2012, le Jet Propulsion Laboratory ( JPL ) de la NASA lança un concours dans le but de trouver la trajectoire optimale pour une éventuelle sonde visitant les principaux satellites de Jupiter. Il fallait ainsi maximiser la surface visitée, tout en minimisant la durée de la mission et la quantité de carburant utilisée – dans l’espace, tout changement de direction ou de vitesse, même un ralentissement, demande du carburant. Une équipe de l’Agence Spatiale Européenne ( ESA ) décida de sortir des sentiers battus en utilisant un algorithme évolutionnaire et, encore une fois, les résultats furent impressionnants. Non seulement la solution obtenue par l’ESA était-elle en mesure de battre celles obtenues par des méthodes classiques, mais elle se paya même le luxe d’être supérieure au maximum jugé atteignable par les chercheurs de la NASA ! Par ailleurs, l’analyse de cette solution montra qu’elle impliquait des stratégies orbitales encore mal connues des spécialistes du domaine et d’un grand intérêt pour les missions subséquentes.
« Thinking outside the box ». L’expression américaine bien connue reflète parfaitement ce que les algorithmes évolutionnaires sont en mesure d’accomplir. Les exemples évoqués dans cet article ne forment qu’une parcelle des nombreuses applications fructueuses de cette technique. De par sa capacité d’adaptation et son apprentissage autonome, l’approche évolutionniste constitue une des voies d’avenir de ce que l’on appelle l’intelligence artificielle. Au fond, l’intelligence n’est-elle pas justement cette faculté de résoudre par soi-même
les problèmes auxquels nous sommes confrontés ?