GA|PM Sommaire Algorithmes génétiques …………………………………..3 Introduction……………………………………………….3 Définition …………………………………………………3 Rapport biologique vs informatique ………...………….3 Principe de base ……………...…………………………..3 Les opérateurs génétiques ……………………………….4 1. 2. 3. 4. 5. L’opérateur d’initialisation ……………………….4 L’opérateur de sélection …………..………………4 L’opérateur de croisement (crossover) ……….….5 L’opérateur de mutation ………………………….5 Remplacement ……………………………………..5 Exemple ……..……………………………………………5 Domaines …………………………………...…………….6 Avantages et inconvénients..…….………………………6 GA|MP…………………………………………………….7 Principe ……………………………………….………….8 Domaine ……………………………………….…………9 Conclusion ……………………………………………….9 Référencées ……………………………………………..10 -2- GA|PM Algorithmes génétiques Introduction : Il existe de nombreux algorithmes évolutionnaires et nous ne pouvons pas parler des algorithmes génétiques sans mentionner les méthodes de programmation évolutionnaire développée par Fogel [1966] et les stratégies évolutionnaires développées indépendamment par Rechenberg [1973] et Schwefel [1981]. Ils ont contribué énormément à l’intérêt porté aux algorithmes évolutionnaires. Définition : Les algorithmes génétiques sont des méthodes basées sur les mécanismes biologiques tels que les lois de Mendel et sur le principe fondamental (sélection) de Charles Darwin [1859]. Holland exposa les principes de ces algorithmes pour permettre aux ordinateurs "d’imiter les êtres vivants en évoluant" pour rechercher la solution à un problème. Il expliqua d’abord comment ajouter de l’intelligence dans un programme informatique avec les croisements (échange du matériel génétique) et la mutation (source de la diversité génétique). Plus récemment, Goldberg enrichit la théorie des algorithmes génétiques en s’appuyant sur le parallèle suivant [1989] : – un individu est lié à un environnement par son code d’ADN, – une solution est liée à un problème par son indice de qualité, – une "bonne" solution à un problème donné peut être vue comme un individu susceptible de survivre dans un environnement donné.[1] Rapport biologique vs informatique : Au siècle dernier, Charles Darwin observa les phénomènes naturels et fit les constatations suivantes [1859] : – L’évolution n’agit pas directement sur les êtres vivants ; elle opère en réalité sur les chromosomes contenus dans leur ADN. – L’évolution a deux composantes : la sélection et la reproduction. La sélection garantit une reproduction plus fréquente des chromosomes des êtres vivants les plus robustes. – La reproduction est la phase durant laquelle s’effectue l’évolution. La terminologie employée est empruntée à la génétique : – Les chromosomes sont les éléments à partir desquels sont élaborées les solutions (individus). – La population est l’ensemble des chromosomes. – La reproduction est l’étape de combinaison des chromosomes. La mutation et le croisement génétiques sont des méthodes de reproduction. D’autres notions sont propres au domaine des algorithmes génétiques. [1] Principe de base : Les algorithmes génétiques simulent le processus d’évolution d’une population. A partir d’une population de N solutions du problème représentant des individus, on applique des opérateurs simulant les interventions sur le génome tel que le croisement (cross-over) ou la mutation pour arriver à une population de solutions de mieux en mieux adaptée au problème. Cette adaptation est évaluée grâce à une fonction coût. -3- GA|PM Les opérateurs génétiques : 1. L’opérateur d’initialisation : Cet opérateur est utilisé pour générer la population initiale de l’algorithme génétique. La population initiale doit contenir des chromosomes qui soient bien répartis dans l’espace des solutions pour fournir à l’algorithme génétique un matériel génétique varié. La façon la plus simple est de générer aléatoirement les chromosomes. 2. L’opérateur de sélection : La sélection tend à augmenter l’importance des bonnes solutions par rapport aux mauvaises. C’est une heuristique utilisée par l’algorithme génétique : les bonnes solutions sont supposées être les plus prometteuses pour la génération de descendants. Il existe plusieurs méthodes de sélection. Les plus connues sont la sélection proportionnelle à la fonction fitness, la sélection sur le rang et la sélection en tournoi. L’indice de qualité (fitness), aussi appelé indice de performance, est une mesure abstraite permettant de classer les chromosomes. -4- GA|PM 3. L’opérateur de croisement (crossover) : L’opérateur de croisement combine le matériel de un ou plusieurs parents pour obtenir un ou plusieurs enfants. Il existe différents types de croisement, nous allons brièvement présenter les trois principaux : Le croisement un point détermine aléatoirement un point de coupure et échange la deuxième partie des deux parents. Le croisement deux points (qui peut être étendu à points) possède 2 points (ou ) de coupures qui sont déterminés aléatoirement. Enfin le crossover uniforme échange chaque bit avec une probabilité fixé à ½. 4. L’opérateur de mutation : Le rôle de la mutation consiste à faire apparaître de nouveaux gènes. Cet opérateur introduit une diversité nécessaire à l’exploration de l’espace de recherche en permettant de générer des points dans des régions a priori sans intérêt .La mutation la plus simple sur un chromosome change un bit de façon aléatoire. Un chromosome a une probabilité de mutation d’un taux . 5. Remplacement : Cette dernière étape du processus itératif consiste en l’incorporation des nouvelles solutions dans la population courante. Les nouvelles solutions sont ajoutées à la population courante en remplacement (total ou partiel) des anciennes solutions. Généralement, les meilleures solutions remplacent les plus mauvaises ; il en résulte une amélioration de la population. Lorsque la nouvelle population n’est constituée que de nouvelles solutions, on parle d’algorithme génétique générationnel. Exemple : Problème : On cherche à optimiser (Max) la fonction = sur l’intervalle [0.31]. Taille de la population entre 0 et 30 en codage binaire sur 5 bits (00000 à 11111). La population initiale constituée de 4 individus choisis arbitrairement : 13 de code 01101 24 de code 11000 8 de code 01000 19 de code 10011 Fonction de performance pour chaque individu : correspond à = . On en déduit la fonction fitness qui est une répartition par pourcentage de ces performances. Ventes 13=>169 24=>576 8=>64 14% 31% 49% 6% -5- 19=>361 GA|PM On tire au hasard 4 nouvelles chaînes parmi les existantes en tenant compte de la valeur de répartition. On obtient, par exemple : 13, 24, 24 et 19. On prend les individus 2 par 2. On coupe les chromosomes à une position aléatoire et on croise les parties coupées : 13 :0110||1 24 :1100||0 01100=12 11001=21 24 :11||000 19 :10||011 11011=27 10111=16 On opère par tirage aléatoire à partir d’une probabilité de mutation définie initialement. On prend ici 0,05 donc sur les 20 bits des 4 chromosomes, on suppose qu’un seul allèle a été sélectionné et mute.12 :01100 => 01000 =8 8, 21, 27, 16. Si on somme les performances, on obtient 1490 au lieu de 1170 à la génération précédente. Domaines : Les algorithmes génétiques ont été largement utilisés dans le cadre de l’extraction de connaissances. On les retrouve dans toutes les tâches principales. Leur application en sélection d’attributs a surtout été réalisée en optimisation mono-objectif à l’aide de méthodes enveloppantes notamment avec le classifier K-Nearest-Neighbor, avec un réseau de neurones ou avec des tables de décisions euclidiennes. En optimisation multi-objectif, les travaux sont plus rares. Leur application à la sélection d’attributs pour le clustering est relativement peu fréquente. Les algorithmes génétiques sont régulièrement utilisés pour réaliser une tâche de clustering. Les Différents algorithmes proposés diffèrent aussi bien par l’approche de clustering utilisée que par leur application à des données réelles. Ainsi il existe des travaux ayant comme approche la méthode des médusoïdes, la méthode des Kmeans , ou une approche hiérarchique. Les applications sont diversifiées : données spatiales, données d’expression génique et de données de biopuces. Avantages et inconvénients : D’abord, les algorithmes génétiques sont coûteux en temps de calcul, puisqu’ils manipulent plusieurs solutions simultanément. C’est le calcul de la fonction de performance qui est le plus pénalisant, et on optimise généralement l’algorithme de façon à éviter d’évaluer trop souvent cette fonction. Ensuite, l’ajustement d’un algorithme génétique est délicat. L’un des problèmes les plus caractéristiques est celui de la dérive génétique, qui fait qu’un bon individu se met, en l’espace de quelques générations, à envahir toute la population. On parle dans ce cas de convergence prématurée, qui revient à lancer à une recherche locale autour d’un minimum… qui n’est pas forcément l’optimum attendu. Les méthodes de sélection proportionnelle peuvent en particulier favoriser ce genre de dérive. Un autre problème surgit lorsque les différents individus se mettent à avoir des performances similaires : les bons éléments ne sont alors plus sélectionnés, et l’algorithme ne progresse plus. Le choix d’une représentation « intelligente » pour permettre un remplacement générationnel efficace est un autre aspect de la question, et l’efficacité d’un algorithme génétique dépend beaucoup de la façon dont on opère le croisement des individus. Ainsi, dans le cas du problème du voyageur de commerce, on peut envisager d’apparier selon la méthode des coupures, telles que nous l’avons vu plus haut. Considérons les deux tournées suivantes, et opérons une coupure entre la troisième et la quatrième ville, puis inversons les gènes : -6- GA|PM Parent 1 : Parent 2 : A–F–B–C–E–D C–B–A–F–D–E On obtient alors les successeurs : Enfant 1 : Enfant 2 : A–F–B–C–D–E C–B–A–F–E–D Ici, des trajets initiaux, on n’a gardé que les trois premières villes (A – F – B), et on a placé dans l’enfant 1 les villes qui ne sont pas présentes dans la première partie (C – D – E), dans l'ordre où elles apparaissent dans le parent 2. On a fait le contraire pour l’enfant 2. Mais on pourrait également recomposer en fonction du nombre d’adjacences de villes communes entre les deux parents. Si deux tournées possèdent des villes adjacentes en commun, il peut être intéressant que les trajets « enfant » les contiennent aussi. Des méthodes spécifiques de remplacement générationnel ont ainsi été élaborées, comme le « edge-3 » de Mathias et Whitley, qui ont montré leur grande efficacité. Mais il faut du temps pour se consacrer à l’étude et à la mise en place de bons opérateurs génétiques, face à un problème donné, et un algorithme génétique est sans doute plus délicat à faire fonctionner du premier coup qu’un algorithme du recuit simulé. Le grand avantage des algorithmes génétiques est qu’ils parviennent à trouver de bonnes solutions sur des problèmes très complexes, et trop éloignés des problèmes combinatoires classiques pour qu’on puisse tirer profit de certaines propriétés connues. Ils doivent simplement déterminer entre deux solutions quelle est la meilleure, afin d’opérer leurs sélections. On les emploie dans les domaines où un grand nombre de paramètres entrent en jeu, et où l’on a besoin d’obtenir de bonnes solutions en quelques itérations seulement – dans les systèmes de régulation de transport en temps réel par exemple. Par ailleurs, les algorithmes génétiques se prêtent bien, du fait de leur traitement simultané de solutions, à la recherche d’optimum multiples : en créant une fonction de coût partagée, dont la valeur dépend partiellement de la distance entre les individus, on voit se former graduellement des sous-populations d’individus, qui se stabilisent autour des différents pics de la fonction objectif. C’est la technique du nichage par la méthode du partage. Des versions plus récentes des algorithmes génétiques introduisent des compléments dans la méthode visant à la rendre plus performante. C'est le cas de la version hybride introduisant une recherche locale (algorithme mémétique) (Moscato, 1989; Moscato et Cotta, 2003), ou de la forme plus évoluée utilisant une mesure de distance afin d'apporter une certaine diversité dans les chromosomes-parents avec l'algorithme génétique avec gestion de la population (Memetic Algorithm with Management of the Population, MAjPM) (Sörensen et Sevaux, 2003). Ces versions hybrides permettent de combler l'écart entre les performances des GA et des TS (Tabu Search, TS).[1’] -7- GA|PM Il est clair que sans l'aide des recherches locales les méthodes à population n'arrivent pas à fournir des solutions très satisfaisantes. De même, sans la gestion efficace d'une population de solutions, il est difficile pour une recherche locale de parcourir efficacement l'espace des solutions souvent très vaste. Une autre des caractéristiques importantes est de pouvoir limiter la taille de la population. C'est le cas du .scatter search de Glover [42] et du nouvel algorithme GA|PM initialement proposé par Sorensen [121]. L’idée principale de cette technique est de rendre plus agressif un algorithme génétique par l'ajout d'une recherche locale en plus de la mutation. Principe : Le fonctionnement général du GA|PM est basé sur un algorithme génétique mais se différencie des versions classiques par trois principaux éléments : 1. Une amélioration des solutions par une recherche locale (Memetic Algorithm - MA); 2. Une technique de gestion de la population par une mesure de distance (Population Management - PM); 3. Une petite population P de solutions de bonne qualité. Le PM signifie qu'une nouvelle solution T ne peut intégrer la population courante que si sa distance à la population courante P est telle que avec un seuil donné.[2’] Le fonctionnement est assez simple et est basé sur un algorithme génétique. Nous supposons que nous savons comparer deux individus entre eux et mesurer leur dissemblance. Nous pouvons donc mesurer la similarité entre un individu et la population existante. Au départ, on génère une population initiale de petite taille et on choisit un paramètre fixant le niveau de dissemblance des solutions entre elles. Ensuite, on procède comme dans un algorithme génétique, on choisit deux individus que l'on croise pour obtenir deux enfants. Pour chacun on applique une recherche locale de façon à obtenir des optima locaux. S'ils ne répondent pas au critère de diversité, on applique un opérateur de mutation sur ces individus jusqu'à satisfaction de ce critère. Ensuite sous condition, on les insère dans la population a la place d'un autre individu. A chaque itération le paramètre gérant la diversité est mise à jour.[1’] Algorithme GA|PM : 1: initialise population P 2: placer le parameter de diversité de la population 3: repeat 4: select : p1 and p2 from P 5: crossover : p1 p2 c1, c2 6: local search : on c1 and c2 7: for chaq enfant c do 8: while do 9: mutate c 10: end while 11: if c satisfies des conditions d’ addition then 12: enlever la solution : P P\b 13: ajouter la solution : P P c -8- GA|PM 14: end if 15: end for 16: mise a jour du parameter de 17: until arrêter le critère satisfait diversité Domaine : – – – Applications de la littérature. Ordonnancement a une machine. Tournées de véhicules sur arcs. Conclusion : Les performances du MA|PM ont déjà été testées sur le problème de tournées sur arcs avec capacités. Les résultats témoignent du fait que la méthode est très prometteuse. En effet, sur ces problèmes, MA|PM a montré qu'il convergeait plus rapidement qu'un algorithme mémétique conventionnel, alors que sa structure générale est bien plus simple que les autres métaheuristiques basées sur une population avec mesure de distance, telles que les méthodes de type recherche dispersée (SS) ou path relinking. De plus, il est très facile de modifier un algorithme mémétique existant en MA|PM. -9- GA|PM Références : [1] : Dr J.LAETITIA . MÉTAHEURISTIQUES POUR L’EXTRACTION DE CONNAISSANCES :APPLICATION À LA GÉNOMIQUE,. THÈSE de doctorat Univ ustl de lile,France,2003. [1’] : Caroline PRODHON, LE PROBLÈME DE LOCALISATION-ROUTAGE , Laboratoire : Institut Charles Daulaunay, UNIVERSITÉ DE TECHNOLOGIE DE TROYES, Année :2006. [2’] : Marc Sevaux, Metaheuristiques Stratégies pour l'optimisation de la production de biens et de services, Soutenue Juillet 2004 - 10 -