Programmation de l'évolution pour l'algorithme génétique

L’objectif de l’algorithme de programmation évolutive est de maximiser l’adéquation d’une collection de solutions candidates dans le contexte d’une fonction objective du domaine. Cet objectif est poursuivi en utilisant un modèle adaptatif avec substituts des processus d’évolution, notamment héréditaire (reproduction avec variation) en compétition. La représentation utilisée pour les solutions candidates est directement évaluable par une fonction de coût ou d’objectif du domaine.

La représentation des solutions candidates doit être spécifique au domaine, comme les nombres réels pour l’optimisation continue des fonctions. La taille de l’échantillon (BoutSize) pour la sélection des tournois pendant la compétition se situe généralement entre 5% et 10% de la taille de la population. La programmation évolutive utilise traditionnellement uniquement l’opérateur de mutation pour créer de nouvelles solutions candidates à partir de solutions candidates existantes. L’opérateur de croisement utilisé dans certains autres algorithmes évolutionnaires n’est pas utilisé dans la programmation évolutionnaire. La programmation évolutive s’intéresse au lien entre les solutions candidates parents et enfants et ne s’intéresse pas aux substituts des mécanismes génétiques.

L’optimisation des fonctions continues est une application populaire pour cette approche, où des représentations à valeur réelle sont utilisées avec un opérateur de mutation basé sur la gaussienne. Les paramètres spécifiques à la mutation utilisés dans l’application de l’algorithme à l’optimisation continue des fonctions peuvent être adaptés de concert avec les solutions candidates.