Il y a de la soupe (primordiale) dans mon ordinateur…
John von Neumann est l’un des grands esprits du siècle dernier. Sa contribution aux domaines de la mécanique quantique, de la théorie des jeux, à la logique, à l’économie, à la stratégie, etc. est considérable. Il y a, toutefois, un petit article qui, parmi son immense production, prendra, peut-être, dans le futur, une importance inédite : celle de l’acte de naissance d’une nouvelle race, celle des machines… Voici un long extrait pris à la fin de cet article intitulé “Théorie générale et logique des automates”. Dans ce texte, John von Neumann a voulu et réussi à démontrer que des machines pouvaient se reproduire d’elles-mêmes à l’identique. La différence qu’il y a désormais entre la vie des créatures dites vivantes et l’imitation de la vie par les machines, n’est plus donc qu’une question subjective.

Définitions fondamentales.
Comme dans l’exemple précédent, il est de toute première importance de donner une définition rigoureuse de ce qu’est un automate dans le cadre de notre étude. Tout d’abord, nous devons dresser une liste exhaustive des composants élémentaires à utiliser. Cette liste ne doit pas comporter seulement une énumération complète, mais aussi une définition fonctionnelle complète de chaque composant. Il est relativement aisé de dresser cette liste, ce qui revient à écrire un catalogue de « pièces de machine » assez large pour permettre la construction de la grande variété de mécanismes dont nous avons besoin dans notre cas, et qui ait la rigueur axiomatique nécessaire dans ce type d’entreprise. La liste n’aura pas non plus besoin d’être très longue. On peut, bien sûr, décider qu’elle sera arbitrairement courte ou arbitrairement longue. On peut l’allonger en y inscrivant comme composants des objets qui peuvent être réalisés en combinant d’autres objets. On peut la réduire — en fait, jusqu’à ce qu’elle ne comporte plus qu’un seul élément — en dotant chaque composant d’une multiplicité d’attributs et de fonctions. Toute décision sur le nombre de composants nécessaires représentera donc un compromis de bon sens, dans lequel on n’attendra rien de trop compliqué de chaque composant, et où aucun composant n’aura à remplir plusieurs fonctions distinctes et visiblement indépendantes. Dans ce sens, on peut montrer qu’il suffit d’une douzaine de composants.
Le problème de l’autoreproduction peut alors être posé comme ceci : peut-on construire un ensemble à partir de ces éléments de telle manière que, si on le met dans un réservoir où tous ces éléments flottent en grand nombre, il commencera alors à construire d’autres ensembles qui tous finiront par être un autre automate exactement identique à l’original ? Cela est réalisable, et le principe de base est intimement lié au principe de Turing que nous avons vu plus haut.
Grandes lignes de la dérivation du théorème concernant l’autoreproduction.
Tout d’abord, il est possible de donner une description de tout ce qu’est un automate dans le sens où nous l’entendons. Cette description doit être vue comme générale ; elle contiendra encore des passages vides. Ces passages vides doivent être complétés par les fonctions qui décrivent la structure véritable de l’automate. Comme précédemment, la différence entre les passages vides et remplis est la différence entre la description d’un automate spécifique et celle d’un automate générique. La description des automates suivants ne pose pas de difficulté de principe.
(a) Un automate A, auquel on fournit la description de n’importe quel autre automate en termes de fonctions appropriées, et qui alors construit cette entité. Dans ce cas, la description ne doit pas être fournie sous la forme d’une bande marquée, comme dans le cas de Turing, parce que, normalement, ce n’est pas une bande que nous choisirons comme élément structurel. Il est cependant facile de décrire des combinaisons d’éléments structurels qui ont toutes les propriétés de la bande de Turing en ce qui concerne la notation, avec des champs qui peuvent être marqués. Une description prise dans ce sens s’appellera une instruction et sera notée I.
« Construire » se comprend dans le même sens qu’avant. On suppose que l’automate constructeur est placé dans un réservoir où tous les composants flottent en grand nombre, et il effectuera sa construction dans ce milieu. On n’a pas besoin de s’inquiéter de la façon dont un automate fixe de cette sorte peut produire d’autres automates plus gros et plus complexes que lui-même. Dans ce cas, la taille et la complexité supérieures seront reflétées dans la taille qu’on peut supposer supérieure des instructions I qu’il faudra fournir. Ces instructions, on l’a montré, devront être des ensembles de composants. Dans ce sens, il est certain qu’une entité sera engagée dans un processus dont la taille et la complexité sont déterminées par la taille et la complexité de l’objet à construire.
Dans ce qui suit, tous les automates pour la construction desquels on utilisera le dispositif A vont partager cette propriété avec A. Ils auront tous une place pour l’instruction I, c’est-à -dire un emplacement où on pourra insérer l’instruction I. Quand on décrit cet automate (par exemple au moyen d’une instruction appropriée), il est entendu que l’emplacement où doit être insérée l’instruction I est défini dans le cadre de cette description. Nous sommes donc autorisés à dire « insérer une instruction I donnée dans un automate donné » sans autre explication.
(b) Un automate B, qui peut faire une copie de n’importe quelle instruction I qui lui est fournie. I est un ensemble de composants dans le sens de (a), et remplaçant la bande. Ce dispositif sera utilisé quand I fournit une description d’un autre automate. Autrement dit, cet automate n’est rien de plus subtil qu’un « reproducteur » — une machine qui peut lire une bande perforée et produire une seconde bande perforée identique à la première. Remarquez que cet automate, lui aussi, est capable de produire des objets qui sont plus grands et plus complexes que lui-même. Remarquez aussi que cela n’a rien de surprenant. Puisqu’il ne peut que copier, il faudra lui fournir en entrée un objet de la taille et de la complexité exacte du résultat attendu.
Après ces préliminaires, nous pouvons passer à l’étape décisive.
(c) Combinons les automates A et B, et ajoutons un mécanisme de contrôle C. Nous fournissons à A une instruction I (toujours dans le sens de [a] et [b]). Alors C fera en sorte tout d’abord que A construise l’automate qui est décrit par l’instruction I. Puis C fera en sorte que B copie l’instruction I et l’insère dans l’automate qui vient d’être construit par A. Enfin, C séparera cette construction du système A + B + C et le « lâchera » comme entité indépendante.
(d) Appelons D l’ensemble A + B + C.
(e) Afin de fonctionner, l’ensemble D = A + B + C doit disposer d’une instruction I comme ci-dessus. Cette instruction, nous l’avons souligné, doit être insérée dans A. Formons maintenant une instruction I&D, qui décrit l’automate D, et insérons ID dans A à l’intérieur de D. Appelons l’ensemble résultant E.
Il est clair que E est autoreproducteur. Remarquez qu’il n’y a pas de cercle vicieux. L’étape décisive se situe dans E, quand l’instruction ID, décrivant D, est construite et incorporée à D. Quand la construction (la copie) de >em>ID se produit, D existe déjà , et n’est d’aucune manière modifié par la construction de ID. ID est simplement ajouté pour former E. D et ID doivent ainsi être formés dans un ordre chronologique et logique défini, et le processus est légitime et correct selon les règles de la logique.
Interprétations de ce résultat et de ses extensions immédiates.La description de l’automate E a d’autres avantages, que je ne développerai pas ici. Mais, par exemple, il est clair que l’instruction ID a, en gros, les fonctions d’un gène. Il est clair également que le mécanisme de duplication B effectue l’acte fondamental de la reproduction, la copie du matériau génétique, qui est l’opération fondamentale de la multiplication des cellules vivantes. De même, il est facile de voir comment des modifications arbitraires du système E, et en particulier de ID, peuvent avoir pour conséquence des traits caractéristiques qui apparaissent dans le cadre de mutations, fatales en règle générale, mais avec une possibilité exceptionnelle de continuation de la reproduction avec des traits modifiés. Bien sûr, on voit clairement aussi où s’arrête l’analogie. Le gène naturel ne contient probablement pas la description complète de l’objet dont il stimule la construction. Il ne contient probablement que des pointeurs généraux, des indicateurs. Dans le cadre général des considérations qui précèdent, je n’envisage pas cette simplification. Mais il est clair que cette simplification, et d’autres qui lui sont semblables, est d’une grande importance qualitative. Nous sommes bien loin de comprendre les processus naturels si nous n’essayons pas de pénétrer de tels principes simplificateurs.
De faibles variations du schéma précédent nous permettent aussi de construire des automates qui peuvent se reproduire et, en outre, peuvent en construire d’autres. (Un tel automate exécute plus spécifiquement ce qui est sans doute la fonction principale d’un gène : reproduction plus production, ou stimulation de production, de certaines enzymes spécifiques.) En réalité, il suffit de remplacer l’instruction ID par une instruction ID+F, qui décrit l’automate D plus un autre quelconque automate F. Appelons EF l’automate D avec ID+F inséré dans A. Cet automate EF a bien la propriété que nous venons d’évoquer : il se reproduit, et en outre il construit F.
Remarquez qu’une « mutation » de EF qui se produirait dans la partie F de ID+F dans EF ne serait pas fatale. Si elle remplaçait F par F’, elle changerait EF en EF’, ce qui veut dire que le « mutant » serait toujours autoreproducteur ; mais son sous-produit serait F’ au lieu de F. C’est le cas typique d’une mutation non fatale.
Cette étude constitue une avancée bien grossière dans la direction d’une théorie systématique des automates. Qui plus est, elle ne représente qu’une direction particulière, celle, comme je l’ai dit, de l’élaboration d’un concept rigoureux de ce que constitue la « complexité ». Elle illustre le fait due la « complexité ». à son niveau le plus bas, est probablement dégénérative, à savoir que tout automate capable d’en produire d’autres ne pourra produire que des automates moins complexes. Cependant, il y a un niveau minimum où cette dégénérescence cesse d’être universelle. C’est à ce point que des automates qui peuvent se reproduire, ou même construire des entités de niveau supérieur, deviennent possibles. Le fait que la complexité, comme l’organisation, soit dégénérative en dessous d’un certain seuil, mais devienne autosuffisante et même proliférante au-dessus de ce seuil, jouera certainement un rôle important dans toute future théorie de ce sujet.
Source : John von Neumann, Théorie générale et logique des automates, Paris, 1996 [New York, 1951 pour la première édition], pp. 100-104 (l’édition Champ Vallon a le canard de Vaucanson en couverture !).
Imprimer ce billet





19 août 2008 à 13:51[...] vidéo, en cinq parties, d’un documentaire de la BBC sur le sujet abordé dans un billet précédent où je citais longuement John von [...]