top of page
  • Photo du rédacteurHarmonie Science et foi

Quelle est la complexité de l’autoreproduction?

Dernière mise à jour : 11 oct. 2021

*ATTENTION : Cet article explique le dessein intelligent du point de vue de la programmation informatique. Pour ceux ne connaissant pas Python, je tente au mieux d’expliquer les concepts, mais cette lecture peut être difficile pour les non-programmeurs. Au besoin, contactez-nous et nous aurons le plaisir de répondre à vos questions. Cet article suppose que vous avez déjà visionné L'origine de la vie: un phénomène purement aléatoire? – Déduction statistique du dessein intelligent - YouTube.*


L’hypothèse majoritaire des évolutionnistes au sujet de l’apparition de la vie sur Terre se résume encore de nos jours à l’agencement aléatoire d’acides aminés afin de former la première cellule. Les évolutionnistes ont tendance à normaliser ce miracle en insistant sur la simplicité de cette cellule. Or, cette fameuse cellule a une capacité extraordinaire : l’autoreproduction. Sans cette capacité, impossible que cette cellule puisse se reproduire, impossible d’avoir plusieurs individus et au revoir Évolution. La question devient donc, quelle est la complexité de cette autoreproduction?



L’une des discussions perpétuelles concernant cette question est la discussion de la complexité des lois physiques de l’Univers. En effet, les lois physiques de notre Univers, particulièrement au niveau quantique (très petit, au niveau des atomes), nous sont relativement inconnues. A quel point ces lois fondamentales ont-elles favorisé l’apparition de la vie? Cette hypothèse de l’apparition de la vie en passant par la métaphysique, avec comme chef de file Stephen Wolfram, même si elle est minoritaire, me semble plus robuste que l’opinion majoritaire et gagne tranquillement en popularité. Je m’y attarde donc dans cet article.


Revenons à la base métaphysique de la matière. Si les lois physiques de l’Univers consistaient uniquement en une suite éternelle d’additions et de soustractions, la vie y serait impossible au sens strict. À l’opposé, si les lois physiques de l’Univers dictaient l’apparition de 100 licornes multicolores à chaque milliseconde, la vie y serait non seulement possible, mais obligatoire. Il est donc clair que la complexité des lois physiques de notre Univers se situe quelque part entre ces deux extrêmes.


Supposons que les lois scientifiques d'un univers fictictif correspondent aux lois de la langue de programmation Python. Python est de nos jours connu comme la langue de programmation la plus puissante, utilisant très peu de caractères pour représenter des concepts extrêmement complexes. Nous sommes donc dans un monde magique où énoncer n’importe quelle commande Python fait naturellement apparaitre le résultat de cette commande. Il est évident que les lois physiques universelles ne sont pas aussi conviviales à la vie que la langue Python, une langue faite par les humains pour les humains. À quelle point la génération spontanée est-elle probable dans cet univers magique qui favorise clairement la vie? Comment faire une telle commande capable de se reproduire elle-même?


Une commande capable d’autoreproduction s’appelle un quine. Voice l’un des quines les plus courts de Python :

x='x=%s%s%s;print(x%%(chr(39),x,chr(39)))';print(x%(chr(39),x,chr(39)))

Pour simplifier l’interprétation, j’ai coloré les 2 commandes du quine. Pour faire un quine de ces deux commandes, on les sépare avec un point-virgule. La partie en vert est la première commande, en bleu la deuxième commande.

x='x=%s%s%s;print(x%%(chr(39),x,chr(39)))';

Dans ­Python, n’importe quelle lettre de l’alphabet peux servir de variable, comme une boite qu’on nomme et qui peux contenir n’importe quelle information. C’est le cas de la variable x. Le signe d’égalité range quelque chose dans x (x=2 implique que x a maintenant la valeur 2). Dans notre cas, la valeur de x est la suite énigmatique de caractères 'x=%s%s%s;print(x%%(chr(39),x,chr(39)))'.

print(x%(chr(39),x,chr(39)))

« print » est une fonction qui permet d’envoyer à une console (dans notre monde magique, matérialiser) n’importe quelle suite de caractères. Le symbole % a un statut spécial dans cette fonction : il permet l’insertion de plusieurs caractères à chaque « %s ». Par exemple,

Si

A = 'p'

Alors

print('pa%sillon'%(A))

va afficher le mot papillon, en remplaçant le %s par la valeur de A, « p ».

Revenons à notre commande print(x%(chr(39),x,chr(39))). x contient trois fois %s (souligné), et entre parenthèses dans notre commande nous avons trois parties (soulignés) : chr(39) deux fois, et x. chr(39) correspond au symbole « ' » et x correspond a 'x=%s%s%s;print(x%%(chr(39),x,chr(39)))'. On remplace donc les %s par les éléments correspondants, à l’intérieur de x :

1. print('x=

%s%s%s

;print(x%%(chr(39),x,chr(39)))')

2. print('x=

( 1:' ) ( 2:x=%s%s%s;print(x%%(chr(39),x,chr(39))) ) (3:') ;print(x%(chr(39),x,chr(39)))')

Donc, nous obtenons la phrase initiale :

x='x=%s%s%s;print(x%%(chr(39),x,chr(39)))';print(x%(chr(39),x,chr(39)))

J’espère avoir démontrer suffisamment clairement à quel point même en théorie l’autoreproduction est un processus complexe et nécessite ce genre de détails. Mais quelle est la complexité mathématique de ce quine? Ce quine a 71 caractères visibles.


Nous devons aussi compter le caractère invisible de début de commande, pour signaler le début de la commande et pareillement pour le caractère de fin de commande. C’est donc une commande de 73 caractères. En utilisant le nombre de caractères le plus limité en programmation (ASCII), nous considérons qu’il existe en tout un total de 128 caractères possibles pour chaque espace dans une commande.


Enfin, la variable x pourrait être n’importe quelle lettre de l’alphabet, majuscule ou minuscule. Donc, pour la première lettre, nous avons 26*2/128 chances de tomber sur une lettre. Quelle sont donc nos chances de formuler ce quine ou son équivalent aléatoirement?

Ce qui est une complexité supérieure à celle du test universel de William A. Demski. Il est donc statistiquement impossible que ce quine soit formé aléatoirement, même si l’Univers entier intégrait Python au complet comme lois physiques fondamentales, lois intuitivement propices à la vie. Autrement dit, même si toutes les interactions atomiques de toute la matière de tous les temps cherchaient à générer aléatoirement cette commande, elle demeure incroyablement improbable et statistiquement impossible.

Ceci démontre à quel point il est facile d’obtenir une complexité supérieure à celle de notre Univers, et, par conséquent, pourquoi, d’un point de vue informatique, l’apparition de la vie par un phénomène aléatoire est absurde.


Par Marc Vicuna

Groupe Harmonie Science et Foi


38 vues0 commentaire
bottom of page