• Aucun résultat trouvé

Sources de parallélisation des algorithmes évolutionnaires

3.6 Modèles parallèles des algorithmes évolutionnaires

3.6.1 Sources de parallélisation des algorithmes évolutionnaires

D’une part, les problèmes d’optimisation sont de plus en plus complexes et leurs besoins en ressources augmentent sans cesse. Les problèmes d’optimisation de la vie réelle sont souvent NP-hard en matière de consommation de ressources CPU et/ou mémoire. Bien que l’utilisation des méta-heuristiques permette de réduire considérablement la complexité de calcul du processus de recherche, ce dernier reste consommateur de temps pour de nombreux problèmes dans divers domaines d’application, où la fonction objective et les contraintes associées au problème sont des ressources (p. ex., CPU, mémoire) intensives et la taille de l’espace de recherche est très élevée [180].

D’un point de vue algorithmique, la principale source de parallélisme pour les AEs est l’exécution concurrente de leurs itérations de boucles intérieures. Malheureusement, c’est souvent la seule source facilement accessible dans les AEs, la plupart des autres étapes étant dépendantes du temps et nécessitant le calcul des étapes précédentes pour être achevées. Même lorsque le parallélisme est disponible, la synchronisation dépendant du temps des étapes de l’AE donne des latences importantes, ce qui rend le calcul parallèle non pertinent [27].

Un AE contient plusieurs étapes qui peuvent être indépendantes ou non. Pour commen- cer, l’initialisation de la population est intrinsèquement parallèle, car tous les individus sont créés de façon indépendante (généralement avec des valeurs aléatoires).

Ensuite, tous les individus nouvellement créés doivent être évalués. Mais, comme ils sont tous évalués de manière indépendante en utilisant la fonction de fitness, l’évalua- tion peut également être faite en parallèle. Il est intéressant de noter que dans les AEs, l’évaluation des individus est généralement l’étape la plus consommatrice de l’AE.

Une fois la population parente obtenue (par évaluation de tous les individus de la population initiale), il est nécessaire de créer une nouvelle population de descendants. Afin de créer un descendant, il est nécessaire de sélectionner quelques parents sur lesquels seront appliqués les opérateurs de variation. Dans les AEs, la sélection des parents est aussi parallélisée parce qu’un parent peut être sélectionné plusieurs fois, ce qui signifie que les sélecteurs indépendants peuvent choisir ce qu’ils veulent, sans aucune restriction. La création d’un descendant hors des parents sélectionnés est également une étape totalement indépendante : un opérateur de croisement doit être appliqué sur les parents, suivi par un opérateur de mutation sur le descendant créé.

Ainsi, on peut constater que jusque-là, toutes les étapes de la boucle évolutionnaire sont intrinsèquement parallèles, sauf pour mais pour la dernière, le remplacement. Afin de préserver la diversité dans les générations successives, la génération (N+1)eme est créée

en sélectionnant l’un des meilleurs individus de la population des enfants des parents + la population des enfants de la Neme génération. Cependant, si un individu est autorisé

à apparaître plusieurs fois dans la nouvelle génération, il pourrait rapidement devenir prééminent dans la population, induisant ainsi une perte de diversité qui aura pour consé- quence de réduire la puissance d’exploration de l’algorithme [127].

Par conséquent, les AEs imposent que tous les individus de la nouvelle génération soient différents. C’est une véritable restriction sur le parallélisme, puisque cela signifie que la sélection des N survivants ne peut être faite de façon indépendante, sinon un même individu peut être sélectionné à plusieurs reprises par plusieurs sélecteurs indépendants.

3.6. MODÈLES PARALLÈLES DES ALGORITHMES ÉVOLUTIONNAIRES

du problème à résoudre ou dans l’espace de recherche correspondant. En effet, il n’y a pas de dépendances de données entre le coût ou les fonctions d’évaluation de solutions différentes et, par conséquent, elles peuvent être calculées en parallèle. De plus, théorique- ment, le parallélisme dans la solution ou l’espace de recherche est aussi grand que l’espace lui-même. Il y a des limites considérables à une exploitation efficace de ce parallélisme, cependant. Pour des raisons évidentes, attribuer un processeur pour chaque évaluation de la solution ne présente aucun intérêt. L’espace de solutions ou de recherche doit donc être partagé entre les processeurs, donc, une sérialisation de l’évaluation de solutions affectées au même processeur doit prendre place. Les partitions résultantes sont généralement en- core trop grandes pour une énumération explicite et, par conséquent, une méthode exacte ou heuristique de recherche est toujours nécessaire pour l’explorer implicitement. Le par- titionnement pose alors deux questions à l’égard de la stratégie globale de la recherche méta-heuristique [27] : le contrôle d’une recherche globale menée séparément sur plusieurs partitions de l’espace original et l’exhaustivité de la solution finalement atteinte. L’al- location des ressources informatiques doit mener à une exploration efficace évitant, par exemple, la recherche des régions avec des solutions de mauvaise qualité. Finalement, on pourrait se demander si plusieurs générations pourraient évoluer en parallèle, le fait que la génération (N+1) est basée sur la génération N infirme cette idée.

Le calcul parallèle et distribué peut être utilisé dans la conception et la mise en oeuvre de méta-heuristiques et par la suite les AEs pour les raisons suivantes [121] :

– Accélération de la recherche : Ceci est un aspect crucial pour la classe de problèmes où il y a des exigences précises sur le temps de recherche. Un des principaux objec- tifs de la parallélisation d’une méta-heuristique est de réduire le temps de recherche. Ceci aide à une conception interactive en temps réel des méthodes d’optimisation. – Amélioration de la qualité des solutions obtenues : certains modèles parallèles pour

les méta-heuristiques permettent d’améliorer la qualité de la recherche. En effet, l’échange d’informations entre les méta-heuristiques coopératives va modifier leur comportement en termes de recherche dans l’espace de recherche associé au pro- blème. L’objectif principal d’une coopération parallèle entre les méta-heuristiques est d’améliorer la qualité des solutions.

– Amélioration de la robustesse : Une méta-heuristique parallèle peut être plus ro- buste en termes de résolution de différents problèmes d’optimisation et différentes instances d’un problème donné avec une manière efficace.

– Résolution de problèmes à grande échelle : les méta-heuristiques parallèles per- mettent de résoudre des instances à grande échelle pour des problèmes d’optimi- sation complexes. Un enjeu est de résoudre de très grandes instances qui ne peuvent être résolues par une machine séquentielle. Un autre défi similaire est de résoudre des modèles mathématiques plus précis associés aux différents problèmes d’optimi- sation.

3.6. MODÈLES PARALLÈLES DES ALGORITHMES ÉVOLUTIONNAIRES