D o u b l e     Z o o m

Les Mutations

Définition

Une mutation, comme son nom l'indique, et comme vous l'avez sûrement deviné, est un changement (inexpliqué, sans raison) d'un gène.
Dans un algorithme génétique, les mutations empêchent une convergence précoce vers un extremum local de la population, en créant de nouveaux individus différents mais cependant basés sur les individus déjà existants.

Implémentation

Afin d'implémenter cet opérateur dans un programme, il faut d'abord définir un taux de mutation . Ce nombre est généralement très faible, de l'ordre du 1/100 ou de 1/1000. Puis, lorsque vous générez les descendances de vos populations, pour chaque gène de chaque individu, il y a le "taux de mutation" chances que ce gène mute.

Si chacun de vos gène est un bit binaire, alors le 1 devient 0 et le 0 devient 1.
S'il s'agit plutôt de nombre réels, il exsite deux types de mutation : Les mutations uniformes aléatoires, où un nombre complètement aléatoire vient prendre la place du précédent, et la mutation gaussienne, où le gène muté est modifié selon une courbe gaussienne (il changera alors moins).

Quel taux de mutation choisir ?

Il n'y a pas de réponse exacte à cette question, tout dépend de votre projet.

Pour vous donner une idée, voila ce que je conseillerai :
-Pour l'évolution d'une intelligence artificielle, ce taux de mutation doit être plus faible (1/1000), car rien qu'un changement de signe peut provoquer des catastrophes. (l'IA joue alors là où il ne faut pas :)) -Pour l'évolution d'un réseau de neurones, le taux se doit d'être d'environ 1/(le nombre total de poids additioné pour tous les neurones), on a ainsi en moyenne 1 mutation par individu.

Mon conseil serait de faire plusieurs tests avec des valeurs différentes du taux de mutation pour voir lequel mène à une convergence plus rapide.