Algorithme génétique de tri non dominé

L’objectif de l’algorithme NSGA est d’améliorer l’ajustement adaptatif d’une population de solutions candidates à un front de Pareto contraint par un ensemble de fonctions objectives. L’algorithme utilise un processus évolutif avec des substituts pour les opérateurs évolutifs, y compris la sélection, le croisement génétique et la mutation génétique. La population est classée dans une hiérarchie de sous-populations basée sur l’ordre de la domination de Pareto. La similitude entre les membres de chaque sous-groupe est évaluée sur le front de Pareto, et les groupes résultants et les mesures de similitude sont utilisés pour promouvoir un front diversifié de solutions non dominées.

La fonction SortByRankAndDistance classe la population dans une hiérarchie de fronts de Pareto non dominés. Le CrowdingDistance-Assignment calcule la distance moyenne entre les membres de chaque front sur le front lui-même. La fonction Crossover-AndMutation exécute les opérateurs génétiques de croisement et de mutation classiques de l’algorithme génétique. Les fonctions SelectParentsBy-RankAndDistance et SortByRankAndDistance discriminent d’abord les membres de la population par leur rang (ordre de priorité dominé du front auquel appartient la solution) puis par la distance à l’intérieur du front (calculée par CrowdingDistanceAssignment).

NSGA a été conçu et adapté aux instances de problèmes d’optimisation à objectifs multiples à fonction continue. Une représentation binaire peut être utilisée conjointement avec des opérateurs génétiques classiques tels que le croisement à un point et la mutation ponctuelle. Une représentation à valeur réelle est recommandée pour les problèmes d’optimisation de fonction continue, nécessitant à son tour des opérateurs génétiques spécifiques à la représentation tels que le crossover binaire simulé (SBX) et la mutation polynomiale