Précédent : Optimisation de formes en aérodynamique
Remonter : Résultats nouveaux Suivant :
Contrôle
actif
Participants : Jean-Antoine Désidéri, Stéphane Lanteri,
Bertrand Mantel (Dassault Aviation), Nathalie Marco, Jacques
Périaux (Dassault Aviation).
Dans le cas d'une optimisation de profil d'aile, les chromosomes représentent différents profils d'ailes. L'utilisation d'un AG comme algorithme d'optimisation en calcul optimal de formes aérodynamiques est caractérisée par des temps de simulation très importants, même pour des géométries bidimensionnelles. Il y a deux facteurs principaux qui conduisent à ce constat : il est nécessaire de réaliser un grand nombre d'itérations d'optimisation pour atteindre la solution optimale et chaque itération requiert Névaluations de la fonction d'adaptation (où N est la taille de la population, généralement de l'ordre de 20) chacune de ces évaluations conduisant au calcul d'un écoulement. Nous avons notamment observé que pour un problème d'optimisation directe de réduction de la traînée de choc sur un profil d'aile RAE2822, le temps passé à calculer les différents écoulements (résolution des équations d'Euler) représente environ 90% du temps total de l'optimisation. Différentes stratégies peuvent être envisagées pour améliorer cette situation.
L'adaptation des AG aux plateformes de calcul parallèles est une direction de recherche que nous avons considérée très tôt dans notre étude des AG. Pour les applications qui nous intéressent, l'écoulement est modélisé par le système des équations d'Euler. La méthode adoptée pour la résolution numérique de ces équations repose sur une formulation mixte éléments finis/volumes finis en maillage triangulaire couplée à un schéma d'intégration en temps du type implicite linéarisé. Ce schéma est bien adapté à la recherche de solutions stationnaires du système des équations d'Euler ce qui est le cadre de notre étude. Dans un premier temps, nous avons donc proposé et implémenté une stratégie de parallélisation à deux niveaux. Le premier niveau de parallélisation porte sur le calcul de l'écoulement et s'appuie sur des travaux effectués par le passé au projet [[6]] : on applique une stratégie de parallélisation qui combine des techniques de partitionnement de maillage et un modèle de programmation par échange de messages (utilisation du standard MPI). Le deuxième niveau de parallélisation concerne la boucle principale de l'algorithme génétique. Nous utilisons la notion de groupes de processus qui est l'une des principales caractéristiques de l'environnement MPI. À chaque génération, l'étape de sélection des individus fait appel à une procédure de tournoi à deux points, c'est-à-dire que les individus sont sélectionnés deux par deux. Les nouvelles valeurs d'adaptation associées aux deux individus candidats peuvent alors être évaluées en parallèle ; l'idée de base consiste à former deux groupes de processus et à allouer un calcul d'écoulement à chaque groupe. Le nombre de processus par groupe est fixé par le partitionnement du maillage sous-jacent. Cette stratégie a été mise en oeuvre et évaluée sur les architectures suivantes : SGI Origin 2000 équipée avec des processeurs Mips R1000/195 Mhz du centre Charles Hermite à Nancy, et une plateforme expérimentale comprenant 13 Pentium Pro ( P6/200 Mhz) interconnectés par une technologie FastEthernet 100 Mbit/s mise en place à l' INRIA Sophia Antipolis. Ce travail a fait l'objet de plusieurs présentations et publications [[45]]-[[28]]-[[38]].
Cette étude se poursuit dans le cadre du projet ESPRIT/HPCN DECISION avec l'étude d'algorithmes génétiques parallèles basés sur l'utilisation de modèles de sous-populations. Par ailleurs, une extension au cas de l'optimisation directe d'une voilure (cas tridimensionnel) a été réalisée et est en cours de validation.
Il s'agit là d'une seconde stratégie de réduction du coût global d'une optimisation par AG. Les techniques d'hybridation ont pour principe de mélanger de manière harmonieuse des algorithmes stochastiques et des algorithmes déterministes, tout en essayant de ne retenir que les caractéristiques les plus intéressantes de chacune des deux familles. Nous avons considéré dans un premier temps une solution simple, bien adaptée au cas où l'optimum recherché est inconnu, qui consiste à démarrer le processus d'optimisation par un certain nombre d'itérations d'un AG afin d'explorer tout l'espace de recherche potentiel. Les AG sont mieux armés pour éviter l'écueil des minimum locaux, cependant, lorsqu'un AG s'approche de la solution optimale, sa vitesse de convergence devient de plus en plus lente. C'est là que va intervenir l'algorithme déterministe (Newton, gradient, « stochastic hill-climbing »). Près de l'optimum, une telle méthode devient très efficace et va converger en quelques itérations. Ainsi, l'algorithme déterministe prend comme solution de départ le meilleur individu de l'AG, au bout d'un certains nombre de générations et s'attache à l'affiner aussi rapidement que possible. Nous avons appliqué des méthodes hybrides à l'optimisation de plusieurs fonctions analytiques dans le cadre du projet ESPRIT/HPCN DECISION.
Dans la vie de tous les jours, nous faisons face à des problèmes d'optimisation comme acheter un nouveau téléviseur performant, pas trop cher, ayant un joli design, c'est-à-dire des problèmes d'optimisation présentant plusieurs critères qui doivent être pris en compte simultanément. Dans une optimisation multi-critère, il n'y a pas une seule solution optimale pour tous les critères réunis, mais un ensemble de solutions optimales. Cet ensemble de solutions est appelé front optimal de Pareto. Les solutions se trouvant sur ce front ne sont pas comparables. Par contre, elles dominent toutes les autres solutions potentielles de l'espace de recherche, suivant un critère de non-dominance. Il y a deux façons différentes de résoudre un problème d'optimisation multicritère :
Nous nous proposons de résoudre un problème d'optimisation multicritère dans le domaine de l'optimisation de formes en aérodynamique. Le but est de trouver les différentes configurations de profils d'ailes existant entre deux régimes d'écoulement et deux incidences différentes. Pour chaque individu on résout deux écoulements (un à Mach = 0.2 et incidence = 10.8o, l'autre à Mach = 0.77 et incidence = 1o). Lorsque l'on fait face à un problème d'optimisation multicritère, les individus n'ont plus une valeur d'adaptation mais plusieurs critères. Pour les comparer entre eux, il faut donc leur assigner une valeur d'adaptation qu'on appellera « fausse valeur d'adaptation ». Pour ce faire, on introduit la notion de critère de non-dominance qui permet de classer par fronts les individus. Par exemple, dans le cas d'une minimisation, les meilleurs individus seront sur le front 1 et les plus mauvais sur le front N. La valeur d'adaptation des individus va alors dépendre du numéro de rang (v/nrang, où v est un réel positif). Il est à noter qu'en assignant une telle valeur d'adaptation à un individu, le problème devient alors un problème de maximisation. Le processus sélection-croisement-mutation de l'AG peut alors commencer. Pour réduire le coût d'une telle optimisation, nous employons la stratégie de parallélisation à deux niveaux décrite en 6.9.1.