1. Intitulé :
[Algorithmes génétiques]
Domaine : Mathématiques-Informatique
Filière : Informatique
Spécialité :GADM.
Préparé par : boushmal akrem et Derbale Abdnnacer
Encadré par : PROFESSEUR AZIZI NABIHA
UNIVERSITÉ BADJI MOKHTAR - ANNABA
FACULTÉ DES SCIENCES DE LA TECHNOLOGIE
DÉPARTEMENT D’INFORMATIQUE
Année : 2017-2018
2. Table des matières
1. Introduction aux algorithmes génétiques....................................................................................................... 3
2. Historique ...................................................................................................................................................... 4
3. principes.............................................................................................................. Erreur ! Signet non défini.
3.1 But......................................................................................................................................... 6
3.2 Codage d'une population....................................................................................................... 6
3.3 Fonction d'évaluation et fonction fitness .............................................................................. 7
3.4 L'hybridation (ou crossover)................................................................................................. 7
3.5 La mutation ........................................................................................................................... 8
3.6 Itération ................................................................................................................................. 8
3.7 Schéma récapitulatif.............................................................................................................. 8
4. Les différentes méthodes de sélection ......................................................................................................... 10
4.1 Sélection par roulette (Wheel)............................................................................................. 10
4.2 Sélection par rang................................................................................................................ 10
4.3 Sélection steady-state.......................................................................................................... 11
4.4 Sélection par tournoi ........................................................................................................... 11
4.5 Élitisme ............................................................................................................................... 11
5. Application .................................................................................................................................................. 14
5.1 Une instance du problème................................................................................................... 15
5.2 L'espace de recherche.......................................................................................................... 15
5.3 Codage des points de l'espace de recherche........................................................................ 15
5.4 La fonction d'évaluation...................................................................................................... 16
5.5 Opérateurs génétiques classiques........................................................................................ 16
Sélection................................................................................................................................ 16
Hybridation............................................................................................................................ 17
Mutation................................................................................................................................ 17
Diversification........................................................................................................................ 18
6. CONCLUSION............................................................................................................................................ 19
7. Bibliographies.............................................................................................................................................. 20
3. 1.Introduction aux algorithmes génétiques
Il arrive très souvent que les sciences et les techniques imitent les mécanismes de la
nature. Par exemple, le sonar ou le radar sont inspirés des techniques d'écholocation des
dauphins ou des chauve-souris, la texture de la peau de requin a été imitée pour fabriquer
des matériaux hydrodynamiques... Les algorithmes génétiques (AG) proposent de
reproduire les mécanismes d'évolution et d'adaptation génétique de la vie pour optimiser
des problèmes complexes dont les données peuvent varier au cours du temps. La vie a
besoin en permanence de s'adapter : un nouvel environnement, un nouveau prédateur, ou
de nouvelles proies. Le vocabulaire et les intuitions des algorithmes génétiques
appartiennent en partie au vocabulaire et aux intuitions de la biologie. Ces algorithmes
fabriquent des chromosomes qui codent chacun une solution potentielle à un problème
donné. À chaque étape (appelée génération), ces chromosomes se combinent, mutent, et
sont sélectionnés en fonction de leur qualité à répondre au problème. De même, dans la
nature, selon la thèse darwinienne, seule la succession de croisements et de mutations
aléatoires suffisent à expliquer l'adaptation des êtres vivants à leur milieu naturel
(problème qui serait trop complexe à comprendre dans son ensemble). Dans les AG, la
succession des croisements et des mutations permet d'arriver à une solution, qui sans être
nécessairement optimale, peut être très satisfaisante. On obtient alors certains
phénomènes que rencontre l'évolution biologique, comme la convergence de l'évolution, la
stagnation, l'influence de la pression sélective...
4. 2.Historique
L'utilisation d'algorithmes génétiques, dans la résolution de problèmes, est à l'origine le
fruit des recherches de John Holland et de ses collègues et élèves de l'Université du
Michigan qui ont, dès 1960, travaillé sur ce sujet. La nouveauté introduite par ce groupe
de chercheurs a été la prise en compte de l'opérateur d'enjambement en complément des
mutations. Et c'est cet opérateur qui permet le plus souvent de se rapprocher de l'optimum
d'une fonction en combinant les gènes contenus dans les différents individus de la
population. Le premier aboutissement de ces recherches a été la publication en 1975 de :
Adaptation in Natural and Artificial System.
La popularisation des algorithmes génétiques sera l'œuvre de David Goldberg à travers
son livre Genetic Algorithms in Search, Optimization, and Machine Learning1 (1989). Ce
livre est encore édité aujourd'hui. En Europe, la première conférence sur ce type de sujet
fut l'European Conference on Artificial Life en 1991 (elle a fêté ses 20 ans en 20112),
coorganisée par Francisco Varela et Paul Bourgine. Un des premiers ouvrages à
présenter en Français les algorithmes génétiques sera le livre3 Intelligence Artificielle et
Informatique Théorique qui lui consacrera un chapitre dès 1993. La première conférence
francophone avec actes4 sur le sujet sera organisée en 1994 par Jean-Marc Alliot (IRIT),
Evelyne Lutton (INRIA), Marc Schoenauer (INRIA) et Edmund Ronald.
5. 3.Algorithme génétique
Les algorithmes génétiques appartiennent à la famille des algorithmes évolutionnistes.
Leur but est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il
n'existe pas de méthode exacte (ou que la solution est inconnue) pour le résoudre en un
temps raisonnable. Les algorithmes génétiques utilisent la notion de sélection naturelle et
l'appliquent à une population de solutions potentielles au problème donné. La solution est
approchée par « bonds » successifs, comme dans une procédure de séparation et
évaluation, à ceci près que ce sont des formules qui sont recherchées et non plus
directement des valeurs.
4.Analogie avec la biologie
a) Terminologie commune aux deux disciplines
Les algorithmes génétiques étant basés sur des phénomènes biologiques, il convient de
rappeler au préalable quelques termes de génétique.
Les organismes vivants sont constitués de cellules, dont les noyaux comportent des
chromosomes qui sont des chaînes d'ADN. L'élément de base de ces chaînes est un
nucléotide, identifié par sa base azotée (A, T, C ou G). Sur chacun de ces chromosomes,
une suite de nucléotides constitue une chaîne qui code les fonctionnalités de l'organisme
(la couleur des yeux par exemple). Ainsi, un gène est une phrase fonctionnelle le long de
la chaîne. La position d'un gène sur le chromosome est son locus. L'ensemble des gènes
d'un individu est son génotype et l'ensemble du patrimoine génétique d'une espèce est le
génome. Les différentes versions d'un même gène sont appelées allèles.
On utilise aussi, dans les algorithmes génétiques, une analogie avec la théorie de
l'évolution qui propose qu'au fil du temps, les gènes conservés au sein d'une population
donnée sont ceux qui sont le plus adaptés aux besoins de l'espèce vis-à-vis de son
environnement.
b) Outils bio inspirés (issus de la biologie)
La génétique a mis en évidence l'existence de processus importants au sein d'un groupe
d'organismes d'une même espèce (ou d'espèces proches chez les bactéries) donnant lieu au
6. brassage génétique. Ces processus interviennent lors de la phase de reproduction lorsque
les chromosomes de deux organismes fusionnent en créant un nouvel organisme.
Ces opérations sont « imitées » par les algorithmes génétiques afin de faire évoluer les
populations de solutions de manière progressive.
5.Principes
a. But
Le but des AG est de déterminer les extrêmes d'une fonction f : X ⟼ℝ , où est un
ensemble quelconque appelé espace de recherche et $f$ est appelée fonction d'adaptation
ou fonction d'évaluation ou encore fonction fitness. La fonction agit comme une « boite
noire » pour l'AG. Aussi des problèmes très complexes peuvent être approchés par
programmation génétique sans avoir de compréhension particulière du problème.
b. Codage d'une population
Le premier pas dans l'implantation des algorithmes génétiques est de créer une population
d'individus initiaux. En effet, les algorithmes génétiques agissent sur une population
d'individus, et non pas sur un individu isolé. Par analogie avec la biologie, chaque
individu de la population est codé par un chromosome ou génotype (Holland, 1975). Une
population est donc un ensemble de chromosomes. Chaque chromosome code un point de
l'espace de recherche. L'efficacité de l'algorithme génétique va donc dépendre du choix du
codage d'un chromosome.
Dans l'algorithme canonique de Holland (AGC), un chromosome était représenté sous
forme de chaînes de bits contenant toute l'information nécessaire à la description d'un
point dans l'espace ce qui permettait des opérateurs de mutations et de croisements
simples. L'inconvénient, c'est que deux individus voisins en terme de distance de Hamming
ne codent pas nécessairement des éléments proches dans l'espace de recherche. La
solution est d'utiliser un code de Gray.
Pour le PVC, un chromosome représente un élément de l'espace de recherche, c'est-à-dire
un chemin possible pour le commis voyageur. Une population est donc un ensemble de
chemin. Chaque ville est représentée par un point de l'espace physique et porte un numéro
7. d'identité différent. Un chemin étant une suite de villes, un chromosome est une suite de
nombres.
c. Fonction d'évaluation et fonction fitness
Pour calculer le coût d'un point de l'espace de recherche, on utilise une fonction
d'évaluation. L'évaluation d'un individu ne dépendant pas de celle des autres individus, le
résultat fournit par la fonction d'évaluation va permettre de sélectionner ou de refuser un
individu pour ne garder que les individus ayant le meilleur coût en fonction de la
population courante : c'est le rôle de la fonction fitness. Cette méthode permet de s'assurer
que les individus performants seront conservés, alors que les individus peu adaptés seront
progressivement éliminés de la population.
Par exemple, pour le PVC, la fonction d'évaluation utilisée calcule la distance parcourue
par le commis voyageur pour un chemin donné.
d. L'hybridation (ou crossover)
À partir de deux individus, on obtient deux nouveaux individus (enfants) qui héritent de
certaines caractéristiques de leurs parents. L'hybridation sélectionné des gènes parmi
deux individus appelés parents. À partir de ces gènes sont générés les enfants. La
probabilité d'hybridation représente la fréquence à laquelle les hybridations sont
appliquées.
S'il n'y a pas d'hybridation, les fils sont l'exacte copie des parents.
S'il y a hybridation, les fils sont composés d'une partie de chacun de leur parent.
Si la probabilité est de 0%, la nouvelle génération est la copie de la précédente.
Si la probabilité est fixée à 100%, tous les descendants sont générés par hybridation.
L'hybridation est mise en place pour que les nouveaux chromosomes gardent la meilleure
partie des chromosomes anciens. Ceci dans le but d'obtenir, peut-être, de meilleurs
chromosomes. Néanmoins, il est quand même important qu'une partie de la population
survive à la nouvelle génération
8. e. La mutation
La mutation génère des « erreurs » de recopie, afin de créer un nouvel individu qui
n'existait pas auparavant. Le but est d'éviter à l'AG de converger vers des extrema locaux
de la fonction et de permettre de créer des éléments originaux. Si elle génère un individu
plus faible l'individu est éliminé. La probabilité de mutation représente la fréquence à
laquelle les gènes d'un chromosome sont mutés.
S'il n'y a pas de mutation, le fils est inséré dans la nouvelle population sans changement.
Si la mutation est appliquée, une partie du chromosome est changée.
La mutation est prévue pour éviter au AG de s'enliser dans des optima locaux. Mais si elle
est trop fréquente, le AG est orienté vers une recherche aléatoire de la bonne solution.
f. Itération
À partir d'une population initiale de $m$ individus, l'AG sélectionne une population
intermédiaire de $m$ individus en faisant une sélection sur la population initiale (un
même individu peut être sélectionné plusieurs fois ou peut ne pas être sélectionné du tout,
en fonction de la valeur de sa fonction d'évaluation). Les $m$ individus de la population
se croisent deux à deux (les couples se forment aléatoirement) pour construire $m$
nouveaux individus. Ces individus passent par un opérateur de mutation (qui agit
aléatoirement avec une possibilité faible 2-3% de bits) pour former une nouvelle
population. On réitère ensuite le procédé à partir de cette population jusqu'à obtenir une
solution que l'on juge satisfaisante.
1. Schéma récapitulatif
2. Population de base générée aléatoirement
n chaînes de caractères ou de bits.
1 caractère correspond à 1 chromosome.
9. 3. Évaluation
À chaque chaîne, une note correspondant à son adaptation au problème.
4. Sélection
Tirage au sort de n/2 couples de chaînes sur une roue biaisée.
Chaque chaîne a une probabilité d’être tirée proportionnelle à son adaptation au
problème.
Optimisation possible : si l’individu le plus adapté n’a pas été sélectionné, il est
copié d’office dans la génération intermédiaire à la place d’un individu choisi
aléatoirement.
5. Croisement et mutation
Chaque couple donne 2 chaînes filles.
Enjambement. Probabilité : 70 %. Emplacement de l'enjambement choisi
aléatoirement.
Exemple :
Chaînes parents : A : 00110100 ; B : 01010010
Chaînes filles : A’ : 00010010 ; B’ : 01110100
Croisement en 2 points plus efficace.
Mutations des chaînes filles. Probabilité : de
0,1 à 1 %.
Inversion d’un bit au hasard ou
remplacement au hasard d’un
caractère par un autre.
Probabilité fixe ou évolutive
(auto- adaptation).
On peut prendre probabilité = 1/nombre
de bits.
Figure 12
10. 6.Les différentes méthodes de sélection
a. Sélection par roulette (Wheel)
Les parents sont sélectionnés en fonction de leur performance. Meilleur est le
résultat codé par un chromosome, plus grandes sont ses chances d'être sélectionné.
Il faut imaginer une sorte de roulette de casino sur laquelle sont placés tous les
chromosomes de la population, la place accordée à chacun des chromosomes étant
en relation avec sa valeur d'adaptation
Ensuite, la bille est lancée et s'arrête sur un chromosome. Les meilleurs chromosomes
peuvent ainsi être tirés plusieurs fois et les plus mauvais ne jamais être sélectionnés. Cela
peut être simulé par l'algorithme suivant :
1. On calcule la somme de toutes les fonctions d'évaluation d'une population.
2. On génère un nombre entre et .
3. On calcule ensuite une somme des évaluations en s'arrêtant dès que est
dépassé.
4. Le dernier chromosome dont la fonction d'évaluation vient d'être ajoutée est
sélectionné.
b. Sélection par rang
La sélection précédente rencontre des problèmes lorsque la valeur d'adaptation des
chromosomes varie énormément. Si la meilleure fonction d'évaluation d'un chromosome
représente 90% de la roulette alors les autres chromosomes auront très peu de chance
d'être sélectionnés et on arriverait à une stagnation de l'évolution.
La sélection par rang trie d'abord la population par fitness. Ensuite, chaque chromosome
se voit associé un rang en fonction de sa position. Ainsi le plus mauvais chromosome aura
Figure 34
11. le rang 1, le suivant 2, et ainsi de suite jusqu'au meilleur chromosome qui aura le rang N
(pour une population de N chromosomes). La sélection par rang d'un chromosome est la
même que par roulette, mais les proportions sont en relation avec le rang plutôt qu'avec la
valeur de l'évaluation. Le tableau suivant fournit un exemple de sélection par rang. Avec
cette méthode de sélection, tous les chromosomes ont une chance d'être sélectionnés.
Cependant, elle conduit à une convergence plus lente vers la bonne solution. Ceci est dû
au fait que les meilleurs chromosomes ne diffèrent pas énormément des plus mauvais.
c. Sélection steady-state
Ce n'est pas une méthode particulière de sélection des chromosomes parents. L'idée
principale est qu'une grande partie de la population puisse survivre à la prochaine
génération. L'algorithme génétique marche alors de la manière suivante. À chaque
génération sont sélectionnés quelques chromosomes (parmi ceux qui ont le meilleur coût)
pour créer des chromosomes fils. Ensuite les chromosomes les plus mauvais sont retirés et
remplacés par les nouveaux. Le reste de la population survie à la nouvelle génération.
d. Sélection par tournoi
Sur une population de chromosomes, on forme paires de chromosomes. Dans les
paramètres de l'AG, on détermine une probabilité de victoire du plus fort. Cette
probabilité représente la chance qu'a le meilleur chromosome de chaque paire d'être
sélectionné. Cette probabilité doit être grande (entre 70% et 100%). À partir des
paires, on détermine ainsi individus pour la reproduction.
e. Élitisme
A la création d'une nouvelle population, il y a de grandes chances que les meilleurs
chromosomes soient perdus après les opérations d'hybridation et de mutation. Pour éviter
12. cela, on utilise la méthode d'élitisme. Elle consiste à copier un ou plusieurs des meilleurs
chromosomes dans la nouvelle génération. Ensuite, on génère le reste de la population
selon l'algorithme de reproduction usuel. Cette méthode améliore considérablement les
algorithmes génétiques, car elle permet de ne pas perdre les meilleures solutions.
6.Codage d'un algorithme génétique
Le choix du type de codage ne peut pas être effectué de manière sûre dans l'état actuel
des connaissances. Selon les chercheurs dans ce domaine, la méthode actuelle à
appliquer dans le choix du codage consiste à choisir celui qui semble le plus naturel en
fonction du problème à traiter et développer ensuite l'algorithme de traitement.
a) Codage binaire
Ce type de codage est certainement le plus utilisé car il présente plusieurs avantages. Son
principe est de coder la solution selon une chaîne de bits (qui peuvent prendre les valeurs
0 ou 1). Les raisons pour lesquelles ce type de codage est le plus utilisé sont tout d'abord
historiques. En effet, lors des premiers travaux de Holland, les théories ont été élaborées
en se basant sur ce type de codage. Et même si la plupart de ces théories peuvent être
étendues à des données autres que des chaînes de bits, elles n'ont pas été autant étudiées
dans ces contextes. Cependant, l'avantage de ce type de codage sur ses concurrents à
tendance à être remis en question par les chercheurs actuels qui estiment que les
démonstrations de Holland sur les avantages supposés de ce codage ne sont pas
révélatrices.
b) Codage à caractères multiples
Une autre manière de coder les chromosomes d'un algorithme génétique est donc le
codage à l'aide de caractères multiples (par opposition aux bits). Souvent, ce type de
codage est plus naturel que celui énoncé ci-avant. C'est d'ailleurs celui-ci qui est utilisé
dans de nombreux cas poussés d'algorithmes génétiques que nous présenterons par la
suite.
c) Codage sous forme d'arbre
Ce codage utilise une structure arborescente avec une racine de laquelle peuvent être
issus un ou plusieurs fils. Un de leurs avantages est qu'ils peuvent être utilisés dans le cas
13. de problèmes où les solutions n'ont pas une taille finie. En principe, des arbres de taille
quelconque peuvent être formés par le biais d'enjambements et de mutations.
Le problème de ce type de codage est que les arbres résultants sont souvent difficiles à
analyser et que l'on peut se retrouver avec des arbres « solutions » dont la taille sera
importante alors qu'il existe des solutions plus simples et plus structurées à côté
desquelles sera passé l'algorithme. De plus, les performances de ce type de codage par
rapport à des codages en chaînes n'ont pas encore été comparées ou très peu. En effet, ce
type d'expérience ne fait que commencer et les informations sont trop faibles pour se
prononcer.
7.Domaine d’application
Applications dans la recherche[modifier | modifier le code]
1. Le problème du voyageur de commerce :
Ce problème est un classique d'algorithmique. Son sujet concerne les trajets d'un
voyageur de commerce. Celui-ci doit s'arrêter en plusieurs points, et le but de l'algorithme
est d'optimiser le trajet de façon que celui-ci soit le plus court possible. Dans le cas où
huit points d'arrêts existent, cela est encore possible par énumération (2520 possibilités :
pour n arrêts, n supérieur ou égal à 3) mais ensuite, l'augmentation du nombre d'arrêts
fait suivre au nombre de possibilités une croissance exponentielle.
Par le biais d'algorithmes génétiques, il est possible de trouver des chemins relativement
corrects. De plus, ce type de problèmes est assez facile à coder sous forme d'algorithme
génétique. L'idée de base est de prendre la longueur de chemin comme fonction
d'évaluation. Pour effectuer le croisement de deux chemins :
On recopie le premier chemin jusqu'à une « cassure ».
On recopie ensuite les villes du second chemin. Si la ville est déjà utilisée, on passe à la
ville suivante.
2. Applications industrielles
Un premier exemple est une réalisation effectuée au sein de l'entreprise Motorola. Le
problème pour lequel Motorola a utilisé les algorithmes génétiques concerne les tests des
applications informatiques. En effet, lors de chaque changement apporté à une
application, il convient de retester l'application afin de voir si les modifications apportées
n'ont pas eu d'influence négative sur le reste de l'application. Pour cela, la méthode
14. classique est de définir manuellement des plans de test permettant un passage dans toutes
les fonctions de l'application. Mais ce type de test nécessite un important travail humain.
Le but de Motorola a donc été d'automatiser cette phase de définition de plans de tests. Ils
ont pour cela défini un algorithme où chaque individu correspond à un résultat
d'exécution d'un programme (l'enchaînement des valeurs passées au programme) et où
chaque individu reçoit une valeur qui correspond à son aptitude à passer dans un
maximum de parties du code de l'application. Finalement, l'outil développé permet, à
l'aide d'un algorithme génétique, de faire évoluer ces programmes de test pour maximiser
les zones testées de façon que lors de modifications apportées à l'application on puisse
soumettre celle-ci à des tests efficaces.
D'autres domaines industriels utilisent aujourd'hui les algorithmes génétiques. On peut
retenir entre autres l'aérodynamique où des optimisations sont mises au point à l'aide de
ces outils, l'optimisation structurelle, qui consiste à minimiser le poids d'une structure en
tenant compte des contraintes de tension admissibles pour les différents éléments, et la
recherche d'itinéraires : ces algorithmes ont été utilisés par la NASA pour la mission
d'exploration de Mars, dans la gestion des déplacements du robot Pathfinder.
3. Informatique décisionnelle
Les algorithmes génétiques sont mis en œuvre dans certains outils d'informatique
décisionnelle ou de data mining par exemple pour rechercher une solution d'optimum à un
problème par mutation des attributs (des variables) de la population étudiée.
Ils sont utilisés par exemple dans une étude d'optimisation d'un réseau de points de vente
ou d'agences (banque, assurance…) pour tenter de répondre aux questions :
Quelles sont les variables (superficie, effectif…) qui expliquent la réussite commerciale de
telle ou telle agence ?
En modifiant telle variable (mutation) de telle agence améliore-t-on son résultat ?
8.Application
Nous allons maintenant appliquer les algorithmes génétiques à la résolution du problème
du voyageur de commerce.
Un algorithme génétique se caractérise par différents points :
Une instance du problème
15. Un espace de recherche
Le codage des points de l'espace de recherche (par un chromosome)
Les opérateurs génétiques classiques
o Sélection
o Hybridation
o Mutation
o Diversification
Nous allons préciser pour chaqu'un de ces points les options choisies pour l'implantation
du problème du voyageur de commerce.
a) UNE INSTANCE DU PROBLÈME
Une instance du PVC est un graphe complet de sommets dont les arêtes sont pondérées
par un coût strictement positif. L'instance sera alors implantée comme une
matrice M nxn dont les coefficients sont strictement positifs sauf sur la première
diagonale où ils sont tous nuls. M est appelé matrice de coût. Ainsi la distance entre le
sommet j et le sommet i est Mij. On n'a pas forcement Mij=Mji et on n'a pas non plus
l'inégalité triangulaire dans le cas général. Cependant, pour l'implantation de
l'algorithme, nous avons choisi le cas d'une distance euclidienne sur points du plan,
pour construire la matrice de coût.
b) L'espace de recherche
C'est l'ensemble Sn des permutations de {1,2,3, …}. Un point de l'espace de recherche est
une permutation.
c) Codage des points de l'espace de recherche
Chaque point de l'espace de recherche est une permutation de {1,2,3, …}. Une première
idée est de coder alors chaque permutation par une chaîne de bits. Par exemple,
pour :
011 111 000 100 001 010 101 110
Représente la permutation :
16. 37041256
Cependant après quelques hybridations, on risque d'avoir un chromosome qui ressemble à :
011 111 011 100 000 000 111
À savoir
3734007
Ce qui ne représente plus une permutation. Il suffit alors de répartir les chromosomes
comme une chaîne d'entiers et d'adapter les opérateurs génétiques à ce codage. Notons
que les sommets sont répartis à partir de 0.
d) La fonction d'évaluation
C'est ici le coût total d'une permutation. À savoir pour une permutation :
Le dernier terme de la somme permettant de revenir au sommet initial. C'est cette fonction
là que nous cherchons à minimiser.
e) Opérateurs génétiques classiques
f) Sélection
Nous utilisons ici la méthode de sélection par roulette. On calcule d'abord la valeur
moyenne de la fonction d'évaluation dans la population :
où Pi est l'individu i de la population et la taille de la population. La place d'un
individu Pi dans la roulette est proportionnel. On sélectionne alors m/2 individus pour la
reproduction. Il y a aussi la possibilité d'avoir une politique d’élitisme. C'est à dire qu'à
chaque étape de sélection le meilleur chromosome est automatiquement sélectionné.
17. a) Hybridation
Une fois la population intermédiaire sélectionné, on complète la population avec les
enfants de la population intermédiaire. Deux chromosomes se combinant donnent
naissance à deux autres chromosomes de la façon suivante :
1. Un point d'hybridation est déterminé aléatoirement (entre 0 et la longueur du
chromosome).
2. On copie dans le premier fils les indices du premier père jusqu'au point
d'hybridation.
3. On complète ensuite par les indices du deuxième chromosome père ne se trouvant
pas déjà dans le fils dans l'ordre donné par le deuxième parent.
4. On réitère 2) et 3) avec le même point d'hybridation, mais en inversant le rôle des
deux parents.
Par exemple, pour , on a les deux chromosomes suivants qui s'hybrident :
C1= ( 1 0 5 3 2 7 4 6 )
C2= ( 7 1 3 5 6 2 0 4 )
On hybride à partir du rang 5. On arrive alors aux deux nouveaux chromosomes :
C1= ( 1 0 5 3 2 7 6 4 )
C2= ( 7 1 3 5 6 0 2 4 )
b) Mutation
Une des méthodes les plus simples pour muter un chromosome est d'inverser les positions de
deux villes. Par exemple :
C3=( 0 1 3 6 4 7 5 2 )
Devient :
C3’=( 0 1 7 6 4 3 5 2 )
18. Cependant, cette mutation change beaucoup la fonction d'adaptation. Si on veut inverser
deux sommets non-contigües i et j, la fonction d'adaptation change :
Une solution qui perturbe moins l'individu consiste à inverser tous les sommets entre
et j. Par exemple,
C4=( 0 1 3 6 4 7 5 2)
devient
C4’=(0 1 7 4 6 3 5 2)
La différence de la fonction d'évaluation ne dépend plus que de quatre termes :
En fait, au lieu d'inverser deux sommets, cette méthode efface deux arêtes et les remplace
par deux autres.
c) Diversification
La diversification consiste à mieux répartir les individus de la population dans l'espace de
recherche. Ici, on fait un décalage vers la gauche de longueur aléatoire sur tous les
individus nouvellement créés. Cela n'affecte pas leur valeur d'adaptation et cela permet
une meilleure diversité génétique.
9.Les inconvénients de l’algorithme génétique
- Le temps de calcul : par rapport à d'autres métaheuristiques, ils nécessitent de
nombreux calculs, en particulier au niveau de la fonction d'évaluation.
- Ils sont le plus souvent difficiles à mettre en œuvre : des paramètres comme la taille
de la population ou le taux de mutation sont parfois difficiles à déterminer. Or le
succès de l'évolution en dépend et plusieurs essais sont donc nécessaires, ce qui
limite encore l'efficacité de l'algorithme. En outre, choisir une bonne fonction
d'évaluation est aussi critique. Celle-ci doit prendre en compte les bons paramètres
du problème. Elle doit donc être choisie avec soin.
19. - Il faut aussi noter l'impossibilité d'être assuré, même après un nombre important de
générations, que la solution trouvée soit la meilleure. On peut seulement être sûr
que l'on s'est approché de la solution optimale (pour les paramètres et la fonction
d'évaluation choisie), sans la certitude de l'avoir atteinte.
- Un autre problème important est celui des optima locaux. En effet, lorsqu'une
population évolue, il se peut que certains individus qui à un instant occupent une
place importante au sein de cette population deviennent majoritaires. À ce moment,
il se peut que la population converge vers cet individu et s'écarte ainsi d'individus
plus intéressants mais trop éloignés de l'individu vers lequel on converge. Pour
vaincre ce problème, il existe différentes méthodes comme l'ajout de quelques
individus générés aléatoirement à chaque génération, des méthodes de sélection
différentes de la méthode classique…
CONCLUSION
Les algorithmes génétiques fournissent des solutions proches de la solution optimale à
l'aide des mécanismes de sélection, d'hybridation et de mutation. Ils sont applicables à de
Nombreux problèmes, dont le problème du voyageur de commerce.
Mais malheureusement il consomme beaucoup de temps de calcule et peuvent facilement
tomber dans les minimas locaux
20. Bibliographies
1. Darrell Whitley. - A Genetic Algorithm Tutorial, Computer Science Departement,
Colorado State University
2. Thomas Cormen, Charles Leiserson, Ronald Rivest. - «Introduction à l'algorithmique»,
Dunod
3. G.B. Dantzig, R. Fulkerson, S.Johnson, «Solution of a large-scale traveling salesman
problem», Operations Research 2 (1954), 393-410
4. D. Applegate, R. Bixby, V. Chvàtal, W. Cook,«Finding cuts in the TSP(A preliminary
report)»,1995
5. M. Held, R. M. Karp, «The Traveling Salesman Problem and Minimum Spanning
Trees», 1970
6. S. Lin, B.W. Kernighan, «An Effective Heuristic Algorithm for the Traveling Salesman
Problem», 1973
7. Keld Helsgaun, «An Effective Implementation of the Lin-Kernighan Traveling
Salesman Heuristic», 2000
8. H. Kargupta,«SEARCH, polynomial complexity, and the fast messy genetic algorithm»,
1995
9. J. C. «Bean, Genetic algorithms and random keys for sequencing and optimization,
ORSA Journal on Computing», 1994
10.F. Glover, M. Laguna, «Tabu search», Kluwer Academic Publishers, 1997