Bonjour à tous,
J'ai besoin d'aide pour paramétrer un algorithme que j'ai écrit pour simuler la transmission d'une évolution survenue aléatoirement à ses descendants. Je n'obtiens pas du tout les résultats attendus.
Je n'ai pas de problème d'algorithme, mais j'ai besoin de votre aide pour paramétrer correctement les paramètres, et là, c'est lié à la biologie. Si vous avez des notions sur les probabilités de transmission de caractère dans les populations...
Je suis parti d'un modèle extrêmement simple pour commencer, que j'aurais par la suite enrichi et affiné. Mais dès le départ, les résultats sont déjà très loin de la réalité, je dois me louper quelque part.
Voici le principe de l'algorithme :
D'après la théorie de l'évolution, l'apparition d'un caractère (oeil, sonar, circulation sanguine, corne, dard, etc...) se fait par petites évolutions successives, celles-ci conférant un avantage sélectif sur ses congénères. Pour simuler ça, j'incrémente une variable aléatoirement pour voir jusqu'où peut aller cette évolution, se transmettre, etc... au fil des générations.
Pour l'instant, ce sont des individus simples qui donnent chacun 3 enfants (sans accouplement). 1e génération : 3 individus, 2e génération : 9 individus, 3e génération : 27 individus, etc...
Aléatoirement, pour chacun des 3 descendants, je définis la transmission d'une "évolution" de la manière suivante (probabilités) :
3 / 7 : aucune transmission
1 / 7 : une petite évolution apparait et se transmet (on incrémente). A noter que la probabilité d'une "apparition" est en réalité bien plus faible dans la nature... Je "force" artificiellement en ce sens.
1 / 7 : si une évolution est apparue, elle se transmet au descendant telle quelle.
1 / 7 : si une évolution est là, on la décrémente, mais on ne passe pas en "négatif" : pour l'instant, je ne mets pas de maladies, déformations, etc... qui sont largement répandues dans la nature et bien plus probable que l'apparition de nouveauté. Car si une petite évolution apparait aléatoirement, elle peut aussi disparaitre, aléatoirement...
1/7 : pas de descendant
Pour l'instant toujours : je ne procède pas à la sélection naturelle, qui élimine les individus les moins adaptés. Je conserve les individus "non-adaptés" dans l'espoir que plus tard, leurs descendants puissent l'être.
Je ne fais également pas intervenir de catastrophe naturelle, d'extinction massive ou autre phénomène. Le but est d'obtenir, de manière peut-être un peu malhonnête, le plus d'individus "évolués" possible.
Et bien, j'ai tout l'inverse, c'est horrible.
Je compte le nombre d'individus ayant évolué d'au moins la moitié du nombre de générations.
Ainsi :
- Avec 3 descendants par individu, j'ai obtenu 4 442 827 descendants après 16 générations (potentiellement, on aurait pu obtenir 43 046 721 de descendants (3^16), mais d'après mes paramètres, 1/7 n'a pas de descendance)
Je n'ai que 15 (oui : 15) individus parmi les 4 millions qui présentent 8 petites évolutions successives (la moitié des générations). C'est 0.0003 %
Et seulement 2 présentent 9 petites évolutions successives.
- Avec 5 descendants par individu les résultats sont sensiblement mieux, mais toujours très très loin de ce qui est attendu.
Ainsi, j'ai obtenu 16 164 425 512 de descendants après 16 générations.
58151 descendants présentaient au moins 8 petites évolutions successives (0.0004 %)
9652 descendants présentent 9 petites évolutions successives (0.00006 %)
On a quand même 1933 individus présentant 10 évolutions (0,000011 %)
Et plus de 11 évolutions : quand même 430 individus (mais ça représente 0,000002%, soit 1 chance sur 37 millions).
Et enfin, avec 3 descendants par individu sur 20 générations, j'ai obtenu 170 777 023 descendants.
Ici aussi, les résultats ne reflètent pas la réalité : seulement 27 individus sur les 170 millions présentent au moins 10 petites évolutions successives (la moitié du nombre de générations).
5 individus présentent 11 petites évolutions successives, et seulement 1 en présente 12.
Je ne procède que sur 16 à 20 générations et j'obtiens ces résultats désastreux. Peut-être que les millions d'années vont arranger les choses ? Ca semble mal parti.
Ma question est : est-ce que je dois favoriser "encore plus" l'apparition de petites évolutions, en définissant d'autres probabilités sur la transmissibilité ?
Est-ce qu'il faut mettre plus de descendants par individu (ici j'ai testé avec 3 et 5) ?
Ou peut-être il y a-t-il un paramètre que je n'ai pas pris en compte et qui est capital dans le moteur de l'évolution ?
Je vous remercie pour votre aide.
-----