Optimisation
Définir l'algorithme génétique
Lorsque nous avons discuté de la façon dont les cBots pouvaient être optimisés, nous avons mentionné que les cBots peuvent être affinés en utilisant la méthode de l'algorithme génétique. Dans ce guide, nous expliquons exactement ce que c'est et comment cela fonctionne.
La méthode de l'algorithme génétique est basée sur la théorie de la sélection naturelle. Cette théorie stipule que seuls les individus les plus aptes survivent pour une reproduction ultérieure.
Dans l'optimisation de cBot, chaque passe d'optimisation est considérée comme un individu. Pour évaluer les passes individuelles, l'algorithme génétique calcule un certain score de fitness pour chaque passe et compare ce score à toutes les autres passes.
Pour qu'il fonctionne, l'algorithme génétique a besoin d'une population initiale. Pour la générer, l'optimiseur exécutera plusieurs passes différentes avec des paramètres aléatoires. Après avoir créé sa population initiale, l'algorithme commencera le processus de recherche de la passe d'optimisation la plus apte. Ce processus se poursuit jusqu'à ce que les scores de fitness des passes enfants commencent à stagner et à converger. À ce stade, l'algorithme est arrêté.
Étapes de l'algorithme génétique
Tout algorithme génétique comporte les étapes suivantes.
graph TB
B([Sélection]) ==> C([Croisement]);
C ==> D([Mutation]);
D ==> B; Les étapes sont expliquées comme suit.
Sélection
Au cours de cette étape, l'algorithme trouve les deux passes d'optimisation les plus aptes en utilisant leurs scores de fitness respectifs.
Croisement
Après avoir trouvé les deux passes d'optimisation les plus aptes, l'algorithme les utilise pour créer de nouvelles passes enfants (ou descendantes) en utilisant des combinaisons des valeurs de paramètres des deux passes parentes.
Exemple
Si votre cBot a quatre paramètres différents pour l'optimisation, l'algorithme obtiendra les valeurs des premier et deuxième paramètres des passes descendantes d'un parent et les troisième et quatrième paramètres du deuxième parent.
Mutation
À ce stade, l'algorithme mute les passes descendantes en modifiant aléatoirement une ou plusieurs valeurs de paramètres.
Après l'étape de mutation, l'optimiseur exécutera une nouvelle passe d'optimisation descendante. Par la suite, il répétera toutes les étapes mais seulement si le score de fitness d'une passe descendante était supérieur à celui de la dernière passe d'optimisation la plus apte. Un tel résultat signifierait qu'il y a une marge d'amélioration, indiquant que l'optimisation devrait se poursuivre.
Sinon, l'algorithme augmentera son compteur de stagnation. Si le compteur de stagnation atteint la valeur du paramètre de période de stagnation de l'algorithme, le processus d'optimisation sera automatiquement arrêté.
Paramètres de l'algorithme génétique
L'algorithme génétique a plusieurs paramètres qu'il utilise pendant sa durée de vie. Ces paramètres ne peuvent pas être modifiés.
| Paramètre | Définition |
|---|---|
| Taille de la population | La taille maximale d'une population ou le nombre maximal de passes effectuées lors de chaque itération d'optimisation. |
| Nombre maximal d'itérations | Le nombre maximal d'itérations d'optimisation effectuées par l'algorithme. |
| Période de stagnation | La valeur maximale du compteur de stagnation. Si cette valeur est atteinte, l'algorithme est arrêté. |
| Pourcentage d'élite | Cette valeur est utilisée pour sélectionner un X% d'individus ayant les scores de fitness les plus élevés de l'itération actuelle de l'algorithme. Ces passes survivront à l'itération suivante. |
| Pourcentage de la taille du tournoi | Cette valeur est utilisée pour sélectionner un X% d'individus d'une itération pour trouver les itérations parentes. |
| Pourcentage de migrants | Cette valeur est utilisée pour ajouter un X% de passes créées de manière aléatoire lors de chaque nouvelle itération ou génération de population. |
| Pourcentage de mutation | Le pourcentage des paramètres des itérations descendantes à muter. |
| Pourcentage de probabilité de mutation | Le pourcentage d'itérations descendantes à muter. Les passes non incluses dans ce pourcentage ne passeront pas par l'étape de mutation. |