SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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
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
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...
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.
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
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
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
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.
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
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
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
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
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
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
 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 :
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é.
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 )
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.
- 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
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

Contenu connexe

Tendances

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Introduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesIntroduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesGiorgio Pauletto
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleECAM Brussels Engineering School
 
Solving Traveling Salesman problem using genetic algorithms, implementation i...
Solving Traveling Salesman problem using genetic algorithms, implementation i...Solving Traveling Salesman problem using genetic algorithms, implementation i...
Solving Traveling Salesman problem using genetic algorithms, implementation i...MEJDAOUI Soufiane
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variableMohammed Mansouri
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Intelligence Artificielle et cybersécurité
Intelligence Artificielle et cybersécuritéIntelligence Artificielle et cybersécurité
Intelligence Artificielle et cybersécuritéOPcyberland
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithmszamakhan
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisionsMariem Chaaben
 
Data Mining Spatial
Data Mining Spatial Data Mining Spatial
Data Mining Spatial dihiaselma
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particuleschagra bassem
 
Datamining appliqué au churn client dans les télécommunications
Datamining appliqué au churn client dans les télécommunicationsDatamining appliqué au churn client dans les télécommunications
Datamining appliqué au churn client dans les télécommunicationsabdelmoumène taleb
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Genetic algorithm
Genetic algorithmGenetic algorithm
Genetic algorithmgarima931
 

Tendances (20)

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Introduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesIntroduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes Statistiques
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 
Solving Traveling Salesman problem using genetic algorithms, implementation i...
Solving Traveling Salesman problem using genetic algorithms, implementation i...Solving Traveling Salesman problem using genetic algorithms, implementation i...
Solving Traveling Salesman problem using genetic algorithms, implementation i...
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variable
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
A star
A starA star
A star
 
Cours datamining
Cours dataminingCours datamining
Cours datamining
 
Intelligence Artificielle et cybersécurité
Intelligence Artificielle et cybersécuritéIntelligence Artificielle et cybersécurité
Intelligence Artificielle et cybersécurité
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithms
 
Les arbres de décisions
Les arbres de décisionsLes arbres de décisions
Les arbres de décisions
 
Recherche semantique
Recherche semantique Recherche semantique
Recherche semantique
 
Data Mining Spatial
Data Mining Spatial Data Mining Spatial
Data Mining Spatial
 
Big data
Big dataBig data
Big data
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particules
 
Datamining appliqué au churn client dans les télécommunications
Datamining appliqué au churn client dans les télécommunicationsDatamining appliqué au churn client dans les télécommunications
Datamining appliqué au churn client dans les télécommunications
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Genetic algorithm
Genetic algorithmGenetic algorithm
Genetic algorithm
 

Similaire à Algorithme génétique

La biologie à l'ère du big data
La biologie à l'ère du big dataLa biologie à l'ère du big data
La biologie à l'ère du big datatuxette
 
Student Project - Accurate Computer-assisted Cell Culture using Ultrasounds
Student Project - Accurate Computer-assisted Cell Culture using UltrasoundsStudent Project - Accurate Computer-assisted Cell Culture using Ultrasounds
Student Project - Accurate Computer-assisted Cell Culture using UltrasoundsYoann Pageaud
 
Génomique généralités jd
Génomique généralités jdGénomique généralités jd
Génomique généralités jdjudec12
 
Introduction la science Genomique, slides
Introduction la science Genomique, slidesIntroduction la science Genomique, slides
Introduction la science Genomique, slidesssuserbc9423
 
Chikhi abdelouahab
Chikhi abdelouahabChikhi abdelouahab
Chikhi abdelouahabSadouk Ta
 
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelle
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelleRôle de l’inférence temporel dans la reconnaissance de l’inférence textuelle
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelleBouneffouf Djallel
 
Exterminer - Guide de l'enseignant
Exterminer - Guide de l'enseignantExterminer - Guide de l'enseignant
Exterminer - Guide de l'enseignantGroupe Traces
 
M krahn organisation_genome_et_analyses_genomiques_2009
M krahn organisation_genome_et_analyses_genomiques_2009M krahn organisation_genome_et_analyses_genomiques_2009
M krahn organisation_genome_et_analyses_genomiques_2009Elsa von Licy
 
Bio-informatique et applications
Bio-informatique et applicationsBio-informatique et applications
Bio-informatique et applicationsSara SI-MOUSSI
 
Présentation de Prospectic
Présentation de ProspecticPrésentation de Prospectic
Présentation de ProspecticFing
 
Exploring Enlightenment: Text Mining the 18th-Century Republic of Letters
Exploring Enlightenment: Text Mining the 18th-Century Republic of LettersExploring Enlightenment: Text Mining the 18th-Century Republic of Letters
Exploring Enlightenment: Text Mining the 18th-Century Republic of Lettersglennroe
 
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Youssaf Menacer
 

Similaire à Algorithme génétique (20)

La biologie à l'ère du big data
La biologie à l'ère du big dataLa biologie à l'ère du big data
La biologie à l'ère du big data
 
Cinetique enzymatique
Cinetique enzymatiqueCinetique enzymatique
Cinetique enzymatique
 
Td phylogénie
Td phylogénieTd phylogénie
Td phylogénie
 
Student Project - Accurate Computer-assisted Cell Culture using Ultrasounds
Student Project - Accurate Computer-assisted Cell Culture using UltrasoundsStudent Project - Accurate Computer-assisted Cell Culture using Ultrasounds
Student Project - Accurate Computer-assisted Cell Culture using Ultrasounds
 
Génomique généralités jd
Génomique généralités jdGénomique généralités jd
Génomique généralités jd
 
Introduction la science Genomique, slides
Introduction la science Genomique, slidesIntroduction la science Genomique, slides
Introduction la science Genomique, slides
 
Reseaux, Traces, Controverses
Reseaux, Traces, ControversesReseaux, Traces, Controverses
Reseaux, Traces, Controverses
 
FRESNEL_Quentin_Rapport
FRESNEL_Quentin_RapportFRESNEL_Quentin_Rapport
FRESNEL_Quentin_Rapport
 
Chikhi abdelouahab
Chikhi abdelouahabChikhi abdelouahab
Chikhi abdelouahab
 
Symbioses4
Symbioses4Symbioses4
Symbioses4
 
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelle
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelleRôle de l’inférence temporel dans la reconnaissance de l’inférence textuelle
Rôle de l’inférence temporel dans la reconnaissance de l’inférence textuelle
 
Exterminer - Guide de l'enseignant
Exterminer - Guide de l'enseignantExterminer - Guide de l'enseignant
Exterminer - Guide de l'enseignant
 
M krahn organisation_genome_et_analyses_genomiques_2009
M krahn organisation_genome_et_analyses_genomiques_2009M krahn organisation_genome_et_analyses_genomiques_2009
M krahn organisation_genome_et_analyses_genomiques_2009
 
R´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.docR´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.doc
 
presentation_IHPST_2013
presentation_IHPST_2013presentation_IHPST_2013
presentation_IHPST_2013
 
Bio-informatique et applications
Bio-informatique et applicationsBio-informatique et applications
Bio-informatique et applications
 
CV Pascal Leonardi
CV Pascal LeonardiCV Pascal Leonardi
CV Pascal Leonardi
 
Présentation de Prospectic
Présentation de ProspecticPrésentation de Prospectic
Présentation de Prospectic
 
Exploring Enlightenment: Text Mining the 18th-Century Republic of Letters
Exploring Enlightenment: Text Mining the 18th-Century Republic of LettersExploring Enlightenment: Text Mining the 18th-Century Republic of Letters
Exploring Enlightenment: Text Mining the 18th-Century Republic of Letters
 
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
 

Dernier

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 

Dernier (7)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 

Algorithme génétique

  • 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