Les vacances sont souvent pour moi propices à des dérives philosophiques. Après mon papier sur l’évolution, mes idées ont poursuivi leur lancée. J’ai repensé à Popper, à son principe selon lequel une théorie scientifique doit être falsifiable : nous devons être capables d’imaginer une expérience qui la réfuterait.
Mais est-il vraiment impossible de la falsifier ? Personne ne peut remonter dans le temps et reconstituer exactement l’évolution biologique. Comme elle avance pas à pas en marchant sur ses propres traces, elle les efface souvent. Cette absence d’histoire empêchera à jamais d’infirmer ou de confirmer les scénarios que nous imagineront. Ils resteront spéculatifs.
En revanche, les algorithmes génétiques ne laissent planer aucun doute sur la réalité de l’évolution comme technologie. Ils nous démontrent que les mécanismes évolutifs observés dans la nature sont opérants. Dans le monde biologique, nous les observons d’ailleurs à nôtre échelle de temps et à des échelles plus vastes grâce aux fossiles. Si l’évolution est une métaphysique, c’est donc une métaphysique pragmatique (certains diront la même chose de la psychanalyse, puisqu’elle soulage, même si je réfute cette analogie).
En fait, on se moque de savoir si une technologie est universellement opérante. On se moque même de savoir si nous la comprenons et la maîtrisons. D’une certaine manière, c’est même impossible avec la plupart des technologies avancées.
En électronique, nous sommes incapables de tester les circuits à 100 %. Il en va de même avec tous les programmes, bugués par principe. En fait, un programme ne peut pas se tester lui-même. Si on veut tester un programme, il faut un programme pour le tester, et un programme pour tester ce programme et ainsi de suite. Turing a de cette façon montré que l’informatique était un espace à jamais ouvert à l’incertitude. Voilà pourquoi je crois qu’elle est un art, tout comme les mathématiques, idée sans doute étrange pour ceux qui ne sont pas informaticien ou mathématicien.
Si un programme ne peut se tester lui-même, peut-il se faire évoluer lui-même. En d’autres mots, peut-on injecter en entrée d’un algorithme génétique l’algorithme lui-même ? Si c’est possible, l’évolution n’a besoin de personne d’autre qu’elle-même. Une fois qu’elle a commencé, elle ne s’arrête plus, conduisant sans cesse à plus de complexité tant qu’elle dispose des ressources pour se développer. Qui plus est, elle accélère exponentiellement puisqu’elle s’injecte elle-même en entrée de son propre processus.
Intuitivement, j’ai envie de me dire que cette auto-évolution est possible. La vie inventa l’ADN (sans doute il y a 4 milliard d’années), puis la sexualité (sans doute il y a 800 millions d’années), puis les hommes (il y a 250 000 ans), hommes maintenant capables d’inventer des algorithmes génétiques… Chacune des étapes représente une version différente de la technologie évolutive engendrée par la précédente.
Mais l’évolution en elle-même existe-t-elle ? Si c’était le cas, nous devrions être capables de la faire évoluer indépendamment de son objet, la vie par exemple. Est-ce possible ?
Un algorithme génétique dispose de deux modules. Un moteur de mutation et un test de survie des mutations engendrées. Un tel algorithme peut-il être défini dans l’absolu ? Peut-on définir une machine évolutive universelle ?
Il y a bien longtemps que j’ai perdu toute aptitude mathématique pour me lancer dans une telle démonstration. Je suis incapable d’imaginer une telle machine. Si elle existait, l’univers s’emballerait dans une espèce de cancer créatif.
En d’autres mots, je crois qu’il est impossible qu’un algorithme génétique se fasse évoluer lui-même de la même manière qu’un programme est incapable de se tester lui-même. Il doit être possible de montrer que ces deux problèmes sont identiques.
L’évolution en tant que telle n’existe pas, il n’existe que des évolutions particulières. Un algorithme génétique qui fait évoluer des mémoires peut lui-même se faire évoluer par un autre algorithme. Mais il n’existe sans doute pas d’algorithme génétique universel. Car comment concevoir un test de survie universel ? La survie n’est-elle pas toujours relative ?
En écrivant ce texte, en y pensant, en le tournant dans tous les sens, j’ai eu l’impression de frôler quelque chose de fondamental qui n’a cessé de m’échapper. Je publie cette réflexion non pour elle-même mais dans l’espoir qu’elle éveille en vous le trouble qu’elle a provoqué chez moi.
Un algorithme génétique universel serait un premier pas vers Dieu, vers une forme d’omnipotence. L’évolution est plutôt une simple technologie, faite de bric et de broc. Elle n’est ni scientifique, ni métaphysique, elle est tout simplement comme la roue ou l’ordinateur. Elle fonctionne tant bien que mal et prend différentes formes tout en s’attachant à différent objets. C’est une simple conséquence logique du fait que des choses existent et se rencontrent et se mêlent. Nous pouvons favoriser ces unions et les accélérer, c’est tout ce que nous pouvons faire.
L’évolution est ce que nous observons, un processus, et non une chose en soi.