4

Je suis en train de mettre en œuvre un algorithme génétique à l'état stable pour effectuer une régression symbolique. Mes questions portent sur la relation entre les opérateurs de mutation et de croisement.Application de la mutation dans l'algorithme génétique à l'état stable

Je consulte toujours une probabilité de mutation (Pm) avant d'appliquer une mutation et une sélection de tournoi pour choisir les parents en fonction de leur erreur.

  • Première question:

Mutation doit être appliquée uniquement aux enfants obtenus après croisement (ou un autre opérateur génétique) ou peut être appliqué directement à un parent 1 pour générer un nouvel individu?

  • Deuxième question:

enfants obtenus après une opération de croisement doit toujours essayer une mutation (bien sûr avec Pm)?

Merci d'avance.

Répondre

0

Dans chaque cas, vous pouvez le faire. Différents schémas de croisement et de mutation peuvent bien fonctionner pour différents problèmes; essayez une variété de choses pour votre problème et voyez comment ils fonctionnent. (Mais bien sûr si vous (1) dites que la mutation est seulement appliquée aux enfants après le crossover et (2) dites que les enfants après le crossover ne muter pas, alors le résultat est que vous n'avez pas de mutation :-), donc cette combinaison est

4

Habituellement, le processus d'accouplement inclut le croisement et la mutation, donc pour répondre à votre question, une façon standard d'y arriver est de prendre les parents, d'appliquer le cross-over et ensuite seulement de muter le résultat final (avant de l'appeler un enfant). La raison en est que si vous appliquez une mutation aux parents, il y a fondamentalement trop de mutation (en supposant que le taux de mutation est le même, vous doublez le risque de brouillage). Même si je ne l'ai jamais vu faire comme ça, bien sûr, vous pouvez le faire mais vous devrez "remanier" la mutation pour qu'elle ne perturbe pas le processus d'évolution (trop de mutation -> marche aléatoire).

Tous les taux d'évolution standard que j'ai jamais utilisés comme référence sont donnés sur l'enfant, donc c'est une autre raison d'aller avec ça.

0

Comme cela a été mentionné dans d'autres réponses, l'une ou l'autre approche est utilisable et j'ai vu les deux mises en œuvre en pratique. C'est un choix de conception. Mais, ayant dit cela, je voudrais vous persuader qu'il est préférable d'effectuer seulement une opération génétique à la fois.

La propriété de haute «localité» est souhaitable pour les opérateurs génétiques la plupart du temps. La localité fait référence à la façon dont l'effet d'un opérateur sur un individu est localisé - le modifie-t-il radicalement ou fait-il seulement un petit ajustement, poussant l'individu vers un emplacement adjacent dans l'espace de recherche? Un opérateur qui a une faible localité crée de grands sauts sans rapport dans l'espace de recherche, ce qui rend difficile la progression progressive, au lieu de compter sur des coups de chance. Si vous devez appliquer un croisement et une mutation en une seule étape, les modifications sont effectivement combinées, créant ainsi une opération de localité inférieure à celle qui est appliquée individuellement.

Il y a des moments où vous pourriez vouloir ceci par choix, mais normalement seulement dans des circonstances où le paysage de forme physique est si robuste que les algorithmes évolutionnistes sont probablement la mauvaise approche.

Questions connexes