• Aucun résultat trouvé

Résultats de convergence théorique des algorithmes génétiques

Résultats Résultats Résultats Paramètres initiaux Maître

Esclave 1 Esclave 2 Esclave n

Echange des meilleurs éléments

Population taille n

Population taille n Population taille n

FIG. 1.14 – Principe de fonctionnement du parallélisme par îlots

1.4.2 Parallélisation des calculs

Contrairement à la méthode qui vient d’être décrite, qui divise la population totale, on utilise ici des "démons" de calcul de fitness dont la seule fonction est de recevoir un individu et de retourner son adaptation. Pour utiliser la puissance de calcul parallèle offerte de manière optimale, il faut retarder au maximum les calculs pour les envoyer en blocs aux démons et faire en sorte qu’aucun ne reste inactif. Le principe se trouve résumé sur la figure 1.15 : le programme maître se charge de faire la sélection, les croisements, etc. . . : en d’autres termes, il fait évoluer la population, puis répartit les calculs dont il a besoin sur l’ensemble des démons. Enfin, dès qu’il a reçu tous les résultats, l’algorithme commence une nouvelle génération.

Il faut noter que ce mécanisme demande un grand nombre de communications pour transmettre les données et les évaluations. La méthode n’est donc intéressante que si le temps passé pour un calcul d’adaptation est grand devant le temps de communication, elle sera par conséquent utilisée pour des problèmes dont les évaluations de fitness prennent du temps, on pense essentiellement à des cas faisant appel à des réseaux de neurones, ou à de gros calculs matriciels.

1.4.3 Conclusion

La parallélisation est extrêmement efficace pour accélérer les temps de résolution des algorithmes génétiques. Il faut certes bien étudier le problème afin d’utiliser le bon mécanisme de parallélisme, mais les gains en temps sont alors importants.

1.5 Résultats de convergence théorique des algorithmes génétiques

Les résultats théoriques sur les algorithmes génétiques sont nombreux. Sont évoqués en annexe A, la théorie des schémas développée par Goldberg [Gol89a], et dont l’intérêt scientifique a été très

Envoi du résultat et de la donnée

Envoi d’une donnée à évaluer Maître

Démon 1 Démon 2 Démon n

Population taille n

FIG. 1.15 – Principe de fonctionnement de la parallélisation des calculs

largement mis en cause depuis. On trouvera également un résumé des travaux de Cerf [Cer94] réalisés au milieu années 90 et qui ont permis, grâce à une modélisation par chaîne de Markov, d’apporter des éléments de convergence théorique importants, mais sans réelle utilité pratique. Je citerais en guise de conclusion les No Free Lunch Theorems [WM97] qui montrent qu’il n’est pas possible de définir une modélisation, des opérateurs génétiques adaptés à tous types de problèmes. Nous nous intéressons, dans la partie suivante, à une classe de problèmes partiellement séparables pour laquelle un opérateur de croisement adapté permet d’accélerer considérablement la convergence de l’algorithme génétique.

Chapitre 2

Elaboration d’un croisement adapté aux

problèmes partiellement séparables

Introduction

Un algorithme génétique est d’autant plus efficace que les opérateurs de croisement et de mutation qu’il utilise favorisent la création d’enfants mieux adaptés que leurs parents. La gestion du trafic aé-rien fait apparaître de nombreux problèmes "partiellement séparables" pour lesquels on peut élaborer des opérateurs croisement plus performants que ceux décrits dans le chapitre précédent. Après une dé-finition rapide de la séparabilité partielle et de l’opérateur de croisement adapté, une étude théorique de convergence est proposée sur un exemple simple, validée ensuite expérimentalement. L’opérateur est ensuite testé sur plusieurs fonctions tests.

On traite dans ce chapitre de problèmes de minimisation pour lesquels le critère à optimiser est la somme de termes positifs ne faisant chacun intervenir qu’une partie des variables.

Griewank et Toint [GT82] furent les premiers à définir les fonctions partiellement séparables il y a une trentaine d’années pour développer des méthodes d’optmisation locale non-linéaires.

Les opérateurs de croisement classiques décrits dans la littérature [Gol89a, Mic92b, Hol75] gé-nèrent deux individus enfants à partir de deux individus parents, dans l’espoir que ces enfants "com-bineront les bonnes caractéristiques" de leurs parents, sans les détruire.

Les premiers opérateurs utilisés sur des chaînes de bits opéraient une coupure aléatoire en un point de la chaîne sur chacun des deux parents. Les schémas courts avaient de fait plus de chances de survie que les grands, ce qui donnait un rôle très important au codage des données. L’utilisation d’opéra-teurs de croisement multi-points, les codages de Gray pour les variables binaires, ou les croisements arithmétiques, ne permettent pas de reconnaître les "bons schémas" et de les favoriser.

De nombreux travaux de recherche ont été effectués pour favoriser les "bons" croisements et "bonnes mutations", à savoir ceux qui protègent les "bons schémas" [CW96]. On peut citer par exemple des méthodes d’apprentissage de règles [RSS95].

Lorsque la fonction à optimiser formule explicitement des liens privilégiés entre certaines va-riables, on peut en tenir compte pour influencer les opérations de croisement et de mutation afin qu’elles tiennent compte de cette structure particulière. C’est le cas pour les problèmes de séparation d’avions en vol ou sur une plate-forme aéroportuaire.

2.1 Séparabilité partielle

2.1.1 Définition

Les problèmes partiellement séparables traités dans la suite de ce chapitre ont les caractéristiques suivantes : la fonction F à minimiser dépend de n variables x1, x2, .., xn et est la somme de m fonctions positives Fi, qui ne dépendent chacune que d’un sous-ensemble de variables.

Ces fonctions peuvent s’exprimer :

F (x1, x2, .., xn) = m X i=1

Fi(xj1, xj2, .., xjni)

2.1.2 Opérateur de croisement adapté :

Aucun codage des données n’est requis pour mettre en oeuvre l’opérateur de croisement adapté. L’élément de population de l’algorithme génétique est représenté directement par ses variables, qui peuvent être réelles, entières ou de toute autre type.

L’idée intuitive est la suivante : pour un problème complètement séparable, le minimum global est obtenu lorsque l’on minimise la fonction sur chacune des variables séparément. La fonction à minimiser peut s’écrire :

F (x1, x2, .., xn) = n X

i=1 Fi(xi)

Il suffit de minimiser séparément chacune des fonctions Fi pour obtenir le minimum global de la fonction.

L’opérateur de croisement qui choisit, pour chaque variable xi, celle des deux parents qui minimise la fonction Fi, permet de construire un individu toujours meilleur (au sens large) que ses deux parents. On adapte cette stratégie aux fonctions partiellement séparables. Pour créer un individu enfant à partir de deux parents, l’idée est de choisir, pour chaque variable, celle qui minimise la somme des fonctions partielles Fidans laquelle elle intervient.

On définit pour cela tout d’abord une fonction d’adaptation locale ou fitness locale Gk(x1, x2, .., xn), associée à chaque variable xkcomme suit :

Gk(x1, x2, .., xn) = X i∈Sk

Fi(xj1, xj2, .., xjni) ni

où Sk est l’ensemble des indices i tels que xk est une variable de Fiet ni est le nombre de variables de Fi.

La fitness locale associée à une variable isole la contribution de cette variable dans la fitness globale.

On observe la propriété suivante sur les fitness locales : n

X k=1

Gk(x1, x2, .., xn) = F (x1, x2, .., xn)

Le principe de l’opérateur de croisement adapté est le suivant : Si