La programmation évolutive est l'un des quatre principaux paradigmes de l'algorithme évolutionnaire . Elle est similaire à la programmation génétique , mais la structure du programme à optimiser est fixe, tandis que ses paramètres numériques sont susceptibles d'évoluer.
Elle a été utilisée pour la première fois par Lawrence J. Fogel aux États-Unis en 1960 afin d'utiliser l'évolution simulée comme processus d'apprentissage visant à générer de l'intelligence artificielle . Fogel a utilisé des machines à états finis comme prédicteurs et les a fait évoluer. Actuellement, la programmation évolutionniste est un vaste dialecte informatique évolutionniste sans structure fixe ou ( représentation ), contrairement à certains autres dialectes. Il est devenu plus difficile de la distinguer des stratégies évolutionnistes .
Son principal opérateur de variation est la mutation ; les membres de la population sont considérés comme faisant partie d'une espèce spécifique plutôt que comme des membres de la même espèce, donc chaque parent génère une progéniture, en utilisant une sélection de survivants (μ + μ) . Dans la stratégie de sélection (μ + μ), le processus consiste à générer une progéniture μ à partir de μ parents. La génération suivante est ensuite formée en sélectionnant les meilleurs individus μ à partir du pool combiné de μ parents et de μ progéniture.