SlideShare une entreprise Scribd logo
1S.BENHMIRA S.MEJDAOUI
Résumé
Les algorithmes génétiques sont des algorithmes évolutionnaires, inspirés par la
biologie, utilisés souvent pour résoudre des problèmes classés comme des problèmes
d'optimisation combinatoire NP-difficile, comme le problème du voyageur de commerce dont
l'enjeu est de trouver un cycle hamiltonien reliant 𝑛 points tout en minimisant le trajet. Les
AGs ne fournissent pas une solution exacte mais ils permettent de trouver une solution très
proche de l’optimum dans un temps raisonnable. Dans ce travail, nous allons tenter d'adapter
le principe classique des algorithmes génétiques (sélection, croisement, mutation …) et de
l'appliquer sur le problème mentionné afin de trouver des bonnes solutions pour des différentes
instances de benchmark tirées du TSPLIB libraire. Pour améliorer davantage les résultats
obtenus, nous allons introduire une nouvelle approche inspirée également de la nature, et qui
est celle de l’immigration. Il s'agit d'une approche qui assure une grande diversité dans la
population et qui permettra, par conséquent, l’obtention des résultats satisfaisants.
Mots-clés : Algorithme Génétique, Optimisation Combinatoire, Problème du Voyageur de
Commerce, Immigration.
2S.BENHMIRA S.MEJDAOUI
Abstract
The genetic algorithms (GAs) are evolutionary algorithms, inspired by the biology,
used often to solve problems classified as NP-hard combinatorial optimization problems, like
the traveling salesman problem (TSP) which the challenge is to find a Hamiltonian cycle
linking 𝑛 points while minimizing the target. The GAs do not provide an exact solution but they
allow finding a solution very close to the optimum in a reasonable time. In this work, we will
try to adapt the traditional principle of genetic algorithms (selection, crossover, mutation ...)
and apply it to the mentioned problem in order to find good solutions for different benchmark
instances from the TSPLIB library. To further improve the results obtained, we will introduce
a new approach inspired also by nature, which is that of immigration. It is an approach which
ensures a great diversity in the population and which will, therefore, obtaining satisfactory
results.
Keywords: Genetic Algorithm, Combinatorial Optimisation, Traveling Salesman Problem,
Immigration.
3S.BENHMIRA S.MEJDAOUI
‫ملخص‬
‫لحل‬ ‫تستخدم‬ ‫ما‬ ً‫ا‬‫وكثير‬ ، ‫األحياء‬ ‫علم‬ ‫من‬ ‫مستوحاة‬ ‫تطورية‬ ‫خوارزميات‬ ‫هي‬ ‫الجينية‬ ‫الخوارزميات‬
‫كمشاكل‬ ‫المصنفة‬ ‫المشكالت‬‫تو‬‫ا‬‫في‬ ‫التحدي‬ ‫يتمثل‬ ‫الذي‬ ‫التجاري‬ ‫المسافر‬ ‫مشكلة‬ ‫مثل‬ ، ‫صعبة‬ ‫فقية‬
‫مع‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫المدينة‬ ‫زيارة‬ ‫عدم‬ ‫و‬ ‫بينها‬ ‫فيما‬ ‫مرتبطة‬ ‫المدن‬ ‫من‬ ‫مجموعة‬ ‫زيارة‬ ‫على‬ ‫القدرة‬
‫تسمح‬ ‫ولكنها‬ ‫ا‬ً‫ق‬‫دقي‬ ً‫حال‬ ‫الجينية‬ ‫الخوارزميات‬ ‫تقدم‬ ‫ال‬ .‫المقطوعة‬ ‫المسافة‬ ‫من‬ ‫حد‬ ‫أدنى‬ ‫إلى‬ ‫التقليل‬
‫سنح‬ ، ‫العمل‬ ‫هذا‬ ‫في‬ .‫منطقي‬ ‫و‬ ‫مقبول‬ ‫وقت‬ ‫في‬ ‫األمثل‬ ‫الحل‬ ‫من‬ ‫ًا‬‫د‬‫ج‬ ‫قريب‬ ‫حل‬ ‫بإيجاد‬‫تكييف‬ ‫اول‬
‫المشكلة‬ ‫على‬ ‫وتطبيقه‬ )... ‫الطفرة‬ ، ‫التبادل‬ ، ‫(االختيار‬ ‫الجينية‬ ‫للخوارزميات‬ ‫التقليدي‬ ‫المبدأ‬
‫مكتبة‬ ‫من‬ ‫المأخوذة‬ ‫القياسية‬ ‫الحاالت‬ ‫لمختلف‬ ‫جيدة‬ ‫حلول‬ ‫إيجاد‬ ‫أجل‬ ‫من‬ ‫المذكورة‬‫التجاري‬ ‫المسافر‬
.‫و‬‫مست‬ ‫ًا‬‫د‬‫جدي‬ ‫ا‬ً‫ج‬‫منه‬ ‫سنقدم‬ ، ‫عليها‬ ‫الحصول‬ ‫تم‬ ‫التي‬ ‫النتائج‬ ‫لتحسين‬‫وهو‬ ، ‫الطبيعة‬ ‫من‬ ‫ا‬ً‫ض‬‫أي‬ ‫وحى‬
‫النهج‬ ‫هذا‬ .‫الهجرة‬ ‫نهج‬‫سوف‬‫السكان‬ ‫في‬ ‫كبير‬ ‫تنوع‬ ‫يضمن‬‫مرضية‬ ‫نتائج‬ ‫إلى‬ ‫سيؤدي‬ ، ‫وبالتالي‬.
.‫الهجرة‬ ،‫التجاري‬ ‫المسافر‬ ‫مشكلة‬ ،‫التوافقية‬ ‫المشاكل‬ ،‫الجينية‬ ‫الخوارزمية‬ : ‫مفتاحية‬ ‫كلمات‬
4S.BENHMIRA S.MEJDAOUI
Liste des figures
Figure 1 : Jeu d’Icosien---------------------------------------------------------------------------------------------- 4
fFgure 2 : Cycle Hamiltonien--------------------------------------------------------------------------------------10
Figure 3 : Problème de voyageur de commerce sous forme d’un graphe-----------------------------------12
Figure 4 : Exemple de l’optimum global et local---------------------------------------------------------------19
Figure 5 : Classification des méthodes de résolution ----------------------------------------------------------20
Fgure 6 : Classification des méthodes métaheuristiques -----------------------------------------------------23
Figure 7 : Schéma générale d’un algorithme génétique -------------------------------------------------------33
Figure 8 : Codage binaire d'un chromosome--------------------------------------------------------------------34
Figure 9 : Codage réel d'un chromosome------------------------------------------------------------------------34
Figure 10 : Codage entier d'un chromosome--------------------------------------------------------------------34
Figure 11 : Codage à caractère d’un chromosome ------------------------------------------------------------34
Figure 12 : La sélection par la méthode de Roulette-----------------------------------------------------------36
Figure 13 : La sélection par Tournoi avec K = 3 ---------------------------------------------------------------38
Figure 14 : Croisement en un point de deux chromosomes---------------------------------------------------39
Figure 15 : Croisement en 2- point de deux chromosomes ---------------------------------------------------39
Figure 16 : Exemple d’un Croisement uniforme ---------------------------------------------------------------40
Figure 17 : opérateurs de mutation -------------------------------------------------------------------------------40
Figure 18 : codage d’un chemin-----------------------------------------------------------------------------------45
Figure 19 : Application de croisement en 1-point sur deux parents représentés par chemin ------------47
Figure 20 : Croisement PMX--------------------------------------------------------------------------------------48
Figure 21 : Croisement CX ----------------------------------------------------------------------------------------49
Figure 22 : Croisement OX ----------------------------------------------------------------------------------------50
Figure 23 : Opérateur de mutation par insertion----------------------------------------------------------------51
Figure 24 : Opérateur de mutation par échange ----------------------------------------------------------------51
Figure 25 : Opérateur de mutation par inversion ---------------------------------------------------------------51
Figure 26 : Logo MatLab ------------------------------------------------------------------------------------------52
Figure 27 : Graphe de performance illustrant la convergence des instances après 1000 itérations-----57
Figure 28 : Pincipe d’immigration--------------------------------------------------------------------------------64
Figure 29 : Graphe de performance illustrant la convergence des instances après 1000 itérations en
intégrant l’approche d’immigration ------------------------------------------------------------------------------66
Liste des Algorithmes
Algorithme 1: Recuit simulé ……………………………………………………………………….…26
Algorithme 2: Colonie de fourmis……………………………………………….……………………27
Algorithme 3: Essaims de particule ……………………..……………………………………………29
Algorithme 4: Algorithme génétique………….………………………………………………………34
Algorithme 5: Roulette Wheel ………………..………………………………………………………49
Algorithme 6: Mutation PSM …………………….………………………………………………..…54
Algorithme 7: Immigration aléatoire ……………………...……………………………………….…69
Liste des Tableaux
Tableau 1: Taille maximale des instances résolues ……….……………………………………….…14
Tableau 2: Exemple de sélection par rang pour 6 chromosomes .……………….……………………40
Tableau 3: le temps de calcule en fonction du nombre de villes pour le TSP ……….………………47
Tableau 4: Paramètres génétique utilisés dans l’expérience ………….……………...………………57
Tableau 5: Les résultats obtenus pour les instances TSP après 1000 itérations …………………..…60
Tableau 6: Les résultats obtenus pour les instances TSP après 1000 itérations par immigration……68
5S.BENHMIRA S.MEJDAOUI
Table des matières
Dédicace............................................................................................Error! Bookmark not defined.
Remerciement...................................................................................Error! Bookmark not defined.
Résumé............................................................................................................................................. 1
Abstract ........................................................................................................................................... 2
‫ملخص‬................................................................................................................................................. 3
Introduction générale ...................................................................................................................... 7
Chapitre 1 : Le problème du voyageur de commerce
1. Historique.................................................................................................................................... 10
2. Principe....................................................................................................................................... 12
3. Formulation mathématique .......................................................................................................... 12
4. Variantes du problème du voyageur de commerce........................................................................ 14
5. Domaine d’application du problème du voyageur de commerce ................................................... 15
5.1 Forage de cartes de circuits imprimés..................................................................................... 15
5.2 Routage de véhicule............................................................................................................... 15
5.3 Contrôle des mouvements du robot ........................................................................................ 16
6. Conclusion .................................................................................................................................. 16
Chapitre 2 : les différentes approches d'optimisation
1. Optimisation combinatoire........................................................................................................... 18
1.1 Définition .............................................................................................................................. 18
1.2 Résolution d’un problème d’optimisation combinatoire.......................................................... 19
1.3 Classification des méthodes de résolution............................................................................... 20
2. Les méthodes de résolution exactes.............................................................................................. 20
2.1 La méthodes de séparation et évaluation................................................................................. 20
3. Les méthodes de résolution heuristiques et méta-heuristiques....................................................... 21
3.1 Le recuit simulé ..................................................................................................................... 23
3.2 Colonie de fourmis (ACO : Ant Colony Optimization) ........................................................... 24
3.3 Essaim de particules (PSO : Particule Swarm Optimization)................................................... 25
Chapitre 3 : Les algorithmes génétiques
1. Contexte historique...................................................................................................................... 28
2. aperçu de l’algorithme génétique ................................................................................................. 29
3. Etapes de l’algorithme génétique ................................................................................................. 32
3.1 Codage des chromosomes ...................................................................................................... 33
3.1.1 Codage Binaire ............................................................................................................... 34
3.1.2 Codage réel ou entier....................................................................................................... 34
3.1.3 Codage à caractères multiples.......................................................................................... 34
3.2 Création de la population initiale.......................................................................................... 35
3.3 Evaluation des individus ....................................................................................................... 35
3.4 Les opérateurs génétiques ..................................................................................................... 35
3.4.1 Opérateur de sélection..................................................................................................... 35
3.4.2 Opérateur de Croisement................................................................................................. 38
3.4.3 Opérateur de Mutation..................................................................................................... 40
6S.BENHMIRA S.MEJDAOUI
3.4.4 Insertion.......................................................................................................................... 41
3.4.5 Avantage et inconvénients :............................................................................................. 41
3.5 Conclusion............................................................................................................................. 42
Chapitre 4 : Résolution du problème du voyageur de commerce avec les lagorithmes génétiques
1. Introduction................................................................................................................................. 44
2. Algorithme génétique appliqué au problème du voyageur de commerce....................................... 45
2.1 Représentation des chromosomes........................................................................................... 45
2.3 Génération de la population initiale........................................................................................ 46
2.4 Sélection................................................................................................................................ 46
2.5 Opérateur de croisement pour TSP......................................................................................... 47
2.5.1 Partially Mapped Crossover (PMX)................................................................................. 47
2.5.3 Cycle Crossover (CX) ..................................................................................................... 48
2.5.4 Order Crossover (OX)..................................................................................................... 49
2.6 Opérateur de mutation pour TSP ............................................................................................ 50
2.6.1 Mutation par insertion ..................................................................................................... 51
2.6.2 Mutation par échange (SWAP)........................................................................................ 51
2.6.3 Mutation par inversion (RSM)......................................................................................... 51
2.6.4 Mutation par changement aléatoire (PSM)....................................................................... 51
2.7 Insertion ................................................................................................................................ 52
3. Expérimentations et résultats ....................................................................................................... 52
3.1 Langage de programmation MATLAB................................................................................... 52
3.2 Paramètres génétiques de l’expérimentation ........................................................................... 53
3.3 Calcul de distance.................................................................................................................. 55
3.3.1 Distance Euclidienne....................................................................................................... 55
3.3.2 Distance géographique .................................................................................................... 55
3.4 Résultats de l’expérience........................................................................................................ 56
Chapitre 5 : Amélioration par la stratégie d'immigration
1 – Histoire de l'immigration ........................................................................................................... 60
2- Définition.................................................................................................................................... 60
2.1 Immigration Humaines : ........................................................................................................ 61
2.2 Immigration animales : .......................................................................................................... 62
2.3 L’immigration des oiseaux..................................................................................................... 63
3- Algorithme génétique avec l’approche d’imigration.................................................................... 64
Conclusion ..................................................................................................................................... 67
Références...................................................................................................................................... 69
Annexe 1 ....................................................................................................................................... 73
Annexe 2 ....................................................................................................................................... 75
7S.BENHMIRA S.MEJDAOUI
Introduction générale
Depuis toujours, les problèmes d’optimisation combinatoire présentent un défi majeur
pour l’être humain. Beaucoup d’applications pratiques touchent aux problèmes combinatoires
notamment la télécommunication, le transport, l’énergie, l’industrie, l’économie et
l’éducation… etc. Dans quel ordre visiter les clients d’une même tournée pour minimiser les
emplacements ? Comment affecter chaque véhicule à un client ? Voici deux exemples qui se
posent fréquemment et qui, malgré leur simplicité apparente, constituent un obstacle pour les
chercheurs et les gestionnaires du terrain les poussant ainsi à trouver une solution. Cela exige
alors un degré de lucidité et d’esprit scientifique afin de trouver de bonnes solutions, et ce,
quelle que soit la complexité du cas proposé. L’un des problèmes d’optimisation combinatoire
le plus célèbre est le problème du voyageur de commerce (TSP) qui peut se décrire comme
suit : Un réseau avec 𝑛 nœuds (ou villes), choisir un nœud comme point de départ et d’arrivée,
une matrice de coût de déplacement (ou distance, ou temps de parcours etc.) 𝐶 = [𝑐𝑖𝑗] d'ordre
𝑛 associée à des paires de nœuds ordonnées (𝑖, 𝑗) est donnée. Le but est de trouver un cycle
hamiltonien au moindre coût. Ce problème parait facile à résoudre à première vue et aussi
simple à représenter, cependant, depuis 1972 ce problème est classé parmi les problèmes NP-
difficiles, c-à-d, il n’existe pas, jusqu’à aujourd’hui, une solution exacte pour un nombre de
paramètres assez grand.
Le TSP attire l’attention de plusieurs des chercheurs dans le monde entier pour le
résoudre en essayant de développer des méthodes appropriées, certaines de ces méthodes sont
exactes, tandis que les autres sont approximatives. Malgré le nombre fini de solutions, la
stratégie de résolution exacte qui consiste à les énumérer toutes, en les évaluant à chaque fois
et en retenant la meilleure, est impraticable car le nombre de solutions agrandit généralement
de manière exponentielle avec la taille du problème. Dans ce sens, il est primordial de mettre
en place une méthode de résolution adéquate qui prend en considération le temps de calcul et
l’efficacité dans l’exploration de l’espace de recherche pour trouver la solution optimale, d’où
les méthodes heuristiques qui ont fait leurs apparition. Ces dernières sont spécifiques au
problème traité, par contre les métaheuristiques sont plus générales et peuvent s’adapter à
n’importe quel problème. Ce sont des algorithmes stochastiques itératifs, qui progressent vers
un optimum par échantillonnage d’une fonction objective. On peut distinguer celles qui
travaillent avec une population de solutions (Algorithme génétiques, essaim de particulaire …)
de celles qui ne manipulent qu’une seule solution à la fois (recuit simulé, recherche locale …).
Dans ce projet nous allons nous concentrer sur celles qui travaillent avec une population de
8S.BENHMIRA S.MEJDAOUI
solution pour résoudre un problème NP-difficile. Plus précisément, on va adapter les
algorithmes génétiques (la méthode) avec le problème du voyageur de commerce (le
problème).
L’algorithme génétique est un membre de famille des algorithmes évolutionnaires, la
population dans un algorithme génétique évolue en utilisant des opérateurs génétiques inspirés
de la théorie d’évolution naturelle de Darwin « La survie des plus forts », d’où le nom
génétique. Il se base sur les trois principes d’évolution : sélection, croisement et mutation.
Les algorithmes génétiques sont de puissantes méthodes d'optimisation utilisées avec
succès dans différents problèmes grâce à son efficacité remarquable en termes d’exploration
des domaines ayant plusieurs solutions, ce qui rend leurs champs d’application fort diversifiés.
Le présent rapport tentera d’apporter des réponses à ce que nous venons d’avancer.
Dans le premier chapitre, on va traiter le problème du voyageur de commerce, son principe,
formulation, variantes et applications. Le deuxième chapitre présentera quelques notions sur
l’optimisation combinatoire et les différentes approches pour la résolution d’un problème
combinatoire. Le troisième chapitre fournira une explication détaillé d’AG, codage, operateurs
ainsi son fonctionnement. Et enfin, les deux derniers chapitres seront consacrés à l’adaptation
des AG avec le TSP, à la discussion des résultats obtenus et à proposition d’une nouvelle
approche plus appropriée pour améliorer ces résultats.
Chapitre 1 : Le problème du voyageur de commerce
9S.BENHMIRA S.MEJDAOUI
Chapitre 1
Le problème du Voyageurs de
Commerce
Dans ce chapitre nous allons donner un aperçu historique du problème
du voyageur de commerce, ensuite, nous allons définir le problème et sa
formulation mathématique, enfin nous allons citer quelques une de ses
variantes ainsi que les domaines d’application dans la vie réelle.
Chapitre 1 : Le problème du voyageur de commerce
10S.BENHMIRA S.MEJDAOUI
1. Historique
Source d’images : [32]
Le problème du voyageur de commerce (TSP) vient de la traduction anglaise Traveling
Salesman Problem est un problème d’optimisation classique, très connu et utilisé dans le
domaine d’intelligence artificielle et la recherche opérationnelle.
Les premières approches mathématiques envisagées pour le problème du voyageur de
commerce ont été traitées au 19éme siècle par les mathématiciens. En effet, le problème du
voyageur de commerce a été décrit pour la première fois par William Rowan Hamilton et
Thomas Penyngton Kirkman, deux mathématiciens respectivement Irlandais et Britannique. Il
a été posé pour la première fois par Hamilton sous forme d’un jeu qui s’appelle « Icosian
game» en 1857, [1] (Figure-1) C’était un panneau perforé de vingt trous qui exigeait que
chaque sommet soit visible une seule fois, aucun bord n’est à visiter plus d'une fois et le point
final étant le même que le point de départ. Ce type de chemin a finalement été désigné comme
un cycle hamiltonien (Figure-2).
 Cycle : chaîne qui revient à son point de départ.
 Cycle hamiltonien : cycle simple passant par tous les sommets d'un graphe une et une
seule fois.
Figure 1: Jeu d’Icosien
figure 1
Figure 2: Cycle Hamiltonien
figure 2
Chapitre 1 : Le problème du voyageur de commerce
11S.BENHMIRA S.MEJDAOUI
Le TSP a été étudié pour la première fois dans les années 1930 par un mathématicien et
un économiste Karl Menger. En suite, il a été étudié par les statisticiens: Mahalanobis (1940),
Jessen (1942), Gosh (1948) et Julia Robenson (1949) [2]. Plus tard Hassler Whitney et Merrill
Flood ont mené une enquête approfondie à ce propos à l’université de Princeton.
Durant les années 50, un nombre considérable de solutions optimales a été atteint grâce
à différentes méthodes comme la formulation de George B. Dantzig, Fulkerson et Johnson en
1954 qui a pu résoudre jusqu’à 49 villes. En 1956 Merill M.Flood a publié quelques
heuristiques générant ainsi des bonnes solutions. En 1957, Barachet a mis en œuvre une
méthode graphique pour la résolution du TSP. [2]
Depuis 1954, le souci des chercheurs était d’aller le plus loin possible au niveau du
nombre de villes à considérer dans ce problème. Le tableau suivant illustre les tailles maximales
des instances résolues du TSP :
Année Acteurs Nombre de villes
1954 G.Dantzig, R.Fulkerson et S.Jhonson 49
1971 M. Held et R.M. Karp 64
1975 P.M.Camerini, L.Fratta et F.Maffioli 100
1977 M.Grotschel 120
1980 H.Crowder et M.W.Padberg 318
1987 M.Padberg et G.Rinaldi 532
1987 M. Grotschel et O.Holland 666
1987 M.Padberg et G.Rinaldi 2392
1994 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 7397
1998 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 13509
2001 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 15112
Tableau 1: Taille maximale des instances résolues
Chapitre 1 : Le problème du voyageur de commerce
12S.BENHMIRA S.MEJDAOUI
2. Principe
Le problème du voyageur de commerce est un problème d'optimisation combinatoire
de grande importance qui continue à intéresser plusieurs chercheurs afin de développer des
méthodes pour parvenir à une solution optimale. Il fait partie de la catégorie des problèmes de
transport. Dans ce problème, un voyageur de commerce doit visiter toutes les villes en passant
une et une seule fois par chacune d’elle, celui-ci commence par une certaine ville et termine
son parcours en y retournant sachant que les distances entre les villes sont connues.
Un TSP peut se modéliser sous forme d'un graphe constitué d’un ensemble de sommets
et d’un ensemble d’arêtes. Chaque sommet représente une ville, une arête symbolise le passage
d’une ville à une autre, et on lui associe un poids pouvant représenter une distance, un temps
de parcours ou encore un coût. L'objectif est de trouver un cycle hamiltonien.
3. Formulation mathématique
Le problème de voyageur de commerce consiste à chercher le plus court chemin reliant
𝑛 points donnés et passant une et une seule fois par chaque point et il retourne au point de
départ. Le point peut représenter une ville, un pays, ou un entrepôt, etc.
Pour un ensemble de 𝑛 points, il existe au total 𝑛! chemins possibles. Le point de
départ ne change pas la longueur du chemin, on peut choisir celui-ci de façon arbitraire, on a
ainsi ( 𝑛 − 1)! chemins différents. Enfin, chaque chemin pouvant être parcouru dans les deux
sens et les deux possibilités ont la même longueur, on peut donc diviser ce nombre par deux.
Par exemple, si on nomme les points, 𝑎, 𝑏, 𝑐, 𝑑 les chemins 𝑎𝑏𝑐𝑑, 𝑏𝑐𝑑𝑎, 𝑐𝑑𝑎𝑏, 𝑑𝑎𝑏𝑐,
Figure 3: Problème de voyageur de commerce sous forme d’un graphe
figure 3
Chapitre 1 : Le problème du voyageur de commerce
13S.BENHMIRA S.MEJDAOUI
𝑎𝑑𝑐𝑏, 𝑑𝑐𝑏𝑎, 𝑐𝑏𝑎𝑑, 𝑏𝑎𝑑𝑐 Ont tous la même longueur, seul le point de départ et le sens de
parcours change. On a donc
( 𝑛−1)!
2
chemins candidats à considérer.
Soit un graphe 𝐺 = (𝑉, 𝐴), tel que 𝑉 = { 𝑣1, … , 𝑣 𝑛} l’ensemble des sommets, 𝑛 =
|𝑉| le nombre des sommets du graphe 𝐺, chaque sommet modélisant une ville où 𝑣𝑖 caractérisé
par les coordonnées 𝑥 et 𝑦 et 𝑑 la matrice de distance de taille ( 𝑛 × 𝑛), tel que 𝑑(𝑖, 𝑗)
définit la distance entre les deux sommets 𝑣𝑖 et 𝑣𝑗. 𝐴(𝐺) L’ensemble des arcs, modélise le
coût de déplacement entre deux villes.
L'objectif est de trouver une visite de la longueur totale minimum, dont la longueur est
la somme des coûts de chaque arc dans la tournée.
L'espace de recherche pour le TSP est un ensemble de permutations de 𝑛 villes et la
solution optimale est une permutation qui donne le coût minimum de la tournée.
Le concept de calcule des distances entre les villes 𝑖 𝑒𝑡 (𝑖 + 1) est calculée sous la
règle de la distance euclidienne en utilisant l’équation suivante :
𝑑( 𝑇[ 𝑖 ], 𝑇[ 𝑖 + 1]) = √( ( 𝑥𝑖 − 𝑥𝑖+1)2 + ( 𝑦𝑖 − 𝑦𝑖+1)2 )
Tel que, 𝑇[𝑖] est une permutation sur l’ensemble {1, 2, . . . , 𝑛}
𝑇 = ( 𝑇[1], 𝑇[2] , 𝑇[3], … , 𝑇[𝑛], 𝑇[1] )
Alors, 𝑓 la fonction objective pour calculer le cout de chaque solution du problème donnée
par la formule suivante:
𝑓 = 𝑑( 𝑇[ 𝑛], 𝑇[1] ) + ∑ 𝑑( 𝑇[ 𝑖], 𝑇[ 𝑖 + 1] )
𝑛−1
𝑖=1
D’après (1), (2) 𝑒𝑡 (3) la formule mathématique simple du problème de voyageur de
commerce est donnée par :
𝑀𝑖𝑛 { 𝑓 (𝑇) , 𝑇 = ( 𝑇[1], 𝑇[2], 𝑇[3] … , 𝑇[𝑛], 𝑇[1])}
 Il est à noter que, en plus de la règle de calcul euclidienne, il existe plusieurs autres
façons de calculer la distance, à savoir la distance géographique, matrix, pseudo-
euclidienne ... [3] Dans le chapitre 4, on va travailler avec la distance géographique
(2)
(1)
(3)
Chapitre 1 : Le problème du voyageur de commerce
14S.BENHMIRA S.MEJDAOUI
4. Variantes du problème du voyageur de
commerce
Le modèle classique du TSP a été modifié par plusieurs chercheurs pour l’appliquer à
de nombreux problèmes de la vie réelle. Il existe trois variantes de base de TSP à savoir ; TSP
symétrique (sTSP), TSP asymétrique (aTSP) et TSP multiple (mTSP). Ces variantes peuvent
être décrites comme suit :
 sTSP : Soit 𝑑(𝑖, 𝑗) la distance Euclidienne entre les villes 𝑖 𝑒𝑡 𝑗. Si 𝑑(𝑖, 𝑗) =
𝑑(𝑗, 𝑖) alors le trajet peut être évalué dans les deux directions pour le même
coût [4]. Le sTSP est donc le même que le TSP consiste à trouver un chemin de
longueur minimale qui visite chaque ville une fois.
 aTSP : Si 𝑑(𝑖, 𝑗) ≠ 𝑑(𝑗, 𝑖) pour au moins un sommet, alors le TSP devient un
aTSP.
 mTSP : Le modèle fondamental du problème qui consiste à visiter les villes par
un seul voyageur de commerce, peut également être abandonné, un TSP avec
plusieurs voyageurs qui peuvent visiter ces villes s’appelle mTSP [5].
De même, il n’est pas toujours moins cher de prendre le lien direct du nœud 𝑖 au nœud
𝑘, parfois, il peut être moins cher de passer via le nœud j, et donc d’autres variantes qui jeu sur
les contraintes du problème classique de TSP pour l’adapter avec les problèmes réelles de la
vie, on distingue :
 Profit Based : TSP avec Profits est une simplification du TSP traditionnel, où il
n’est pas nécessaire de visiter tous les sommets. Chaque sommet est associé à
un bénéfice prédéfini. L'objectif du problème est de trouver un trajet avec un
profit collecté satisfaisant (maximisé) et le coût du chemin (minimisé).
 Time Windows based : Le TSP avec fenêtre de temps (TSPTW) nécessite de
trouver une visite à coût minimale en visitant toutes les villes exactement une
fois, où chaque ville doit être visitée dans une fenêtre de temps donnée.
 maximal based TSP : Le TSP maximum est équivalent au TSP minimum
traditionnel, alors que le vendeur veut visiter chacune des villes exactement une
fois et revenir à la ville de départ avec la distance maximale possible [6]. Les
techniques utilisées pour le maximum Les TSP semblent utiles pour les
nombreux problèmes combinatoires et géométriques.
Chapitre 1 : Le problème du voyageur de commerce
15S.BENHMIRA S.MEJDAOUI
5. Domaine d’application du problème du voyageur
de commerce
Puisque nous nous intéressons au développement des méthodes algorithmiques pour la
résolution de TSP dans le but de faciliter quelques types de tâches dans la vie réelle et surtout
dans le monde industriels et électroniques, plusieurs applications pratiques [7] peuvent se
modéliser directement avec le TSP ou l’une de ses variantes.
5.1 Forage de cartes de circuits imprimés
Une application directe du TSP est le problème du forage dont la solution joue un rôle
important dans la fabrication économique de cartes de circuits imprimés (PCB).
Pour connecter un conducteur sur une couche avec un conducteur sur une autre couche,
ou pour positionner (dans une étape ultérieure de la production de PCB) les broches des circuits
intégrés, des trous doivent être percés à travers la carte. Les trous peuvent avoir des diamètres
différents. Pour percer consécutivement deux trous de diamètres différents, la tête de la
machine doit se déplacer vers une boîte des outils et changer l'équipement de forage. Cela prend
beaucoup de temps. Ainsi, il est clair au départ qu'il faut choisir un certain diamètre, percer
tous les trous du même diamètre, changer la perceuse, percer les trous du diamètre suivant, etc.
Ainsi, ce problème de forage peut être vu comme une séquence d'instances TSP, une
pour chaque diamètre de trou, où les ‘’villes’’ sont la position initiale et l'ensemble de tous les
trous qui peuvent être percés avec un seul et même perceur. La «distance» entre deux villes est
donnée par le temps qu'il faut pour déplacer la tête de forage d'une position à l'autre. Le but ici
est de minimiser le temps de déplacement de la tête de la machine.
5.2 Routage de véhicule
Supposons que dans une ville 𝑛 boîtes aux lettres doivent être vidées tous les jours dans
une période de temps, disons 1 heure. Le problème est de trouver le nombre minimum de
camions pour le faire et le temps le plus court pour les collectes en utilisant ce nombre de
camions. Comme autre exemple, supposons que 𝑛 clients ont besoin de certaines quantités de
certains produits et qu'un fournisseur doit satisfaire toutes les demandes avec un nombre de
camions fixe. Le problème est de trouver une affectation des clients aux camions et un
calendrier de livraison pour chaque camion afin que la capacité de chaque camion ne soit pas
dépassée et que la distance totale de déplacement soit minimisée. Plusieurs variantes de ces
deux problèmes, où les contraintes de temps et de capacité sont combinées, sont très utilisées
dans de nombreuses applications du monde réel. Ce problème peut être résolu en tant que TSP
Chapitre 1 : Le problème du voyageur de commerce
16S.BENHMIRA S.MEJDAOUI
s'il n'y a pas de contraintes de temps et de capacité et si le nombre de camions est fixe
(disons 𝑚). Dans ce cas, nous obtenons un problème de 𝑚 –voyageurs (mTSP).
5.3 Contrôle des mouvements du robot
Pour fabriquer des pièces dans une usine, un robot doit effectuer une séquence
d'opérations (perçage de trous de différents diamètres, découpe de bois, rabotage, etc.). La
tâche consiste à déterminer une séquence des opérations nécessaires qui mène au temps de
traitement global le plus court. Une difficulté dans cette application se pose parce qu'il y a des
contraintes de priorité qui doivent être observées. Nous avons donc ici le problème de trouver
le chemin hamiltonien le plus court (où les distances correspondent aux temps nécessaires au
positionnement et aux changements d'outils possibles) qui satisfont certaines relations de
préséance entre les opérations.
6. Conclusion
Depuis 1972, le problème du voyageur de commerce était l’un des premiers problèmes
prouvés comme un problème NP-difficile, par Karp. Des nouvelles techniques ont été
développées pour résoudre le problème ou au moins pour y être appliquées afin de vérifier leurs
efficacités. Parmi ces méthodes, on trouve celles qui donnent des solutions exactes, d’autres
qui donnent des solutions approchées.
Dans le chapitre suivant, nous allons expliquer les notions mathématiques de ce
problème, et citer les différentes approches qui ont été développés pour le résoudre.
Chapitre 2 : Les différentes approches d’optimisation
17S.BENHMIRA S.MEJDAOUI
Chapitre 2
Les différentes approches
d'optimisation
Dans ce chapitre nous allons voir quelque notions sur l’optimisation
combinatoire, et nous décrirons les algorithmes d’optimisation qui peuvent être
réparties en deux grande classe : algorithme exacts (Séparation et évaluation…)
et approchés (Algorithme évolutionnaire, recuit simulé …).
Chapitre 2 : Les différentes approches d’optimisation
18S.BENHMIRA S.MEJDAOUI
1. Optimisation combinatoire
1.1 Définition
Un « problème d’optimisation combinatoire » est un problème dont la résolution se
ramène à l'examen d'un nombre fini de combinaisons (appelée aussi solutions). Bien souvent,
cette résolution se heurte à une explosion de nombre de combinaisons à explorer.
En mathématique, l’optimisation combinatoire recouvre toutes les méthodes qui
permettent de déterminer l’optimum d’une fonction avec ou sans contraintes.
Un Problème d‘Optimisation Combinatoire (POC) peut être défini comme suit:
 Un ensemble de combinaisons ou de solutions 𝑋
 Un ensemble de contraintes 𝐶
 Un sous-ensemble 𝑆 de 𝑋 représentant les solutions admissibles (ou réalisables)
qui vérifient les contraintes 𝐶
 Une fonction de coût 𝑓 (fonction objectif) qui assigne à chaque solution 𝑠 ∈ 𝑆
une valeur 𝑓(𝑠)
 Il s’agit de trouver une solution optimale (ou optimum global) 𝑠∗
∈ 𝑆 qui
optimise (minimise ou maximise) la fonction de coût 𝑓
𝑓( 𝑠∗) ≤ 𝑓( 𝑠𝑖), ∀ 𝑠𝑖 𝜖 𝑆
Soit 𝐷𝑖𝑠𝑡 une fonction qui mesure la distance entre deux solutions :
𝐷𝑖𝑠𝑡: 𝑆 × 𝑆 → 𝑅
Pour un problème de minimisation, si on veut trouver la distance minimale entre deux
solutions dans l’ensemble de combinaisons possibles, il faut chercher à déterminer une solution
𝑠 qui minimise la fonction objective 𝐷𝑖𝑠𝑡. Un minimum est une solution qui fait partie des
solutions réalisables dans le domaine d’optimisation, on distingue deux types de minimums :
 Minimum Local : une solution 𝑠 est minimum local par rapport à une structure
de voisinage 𝑁 si ∀𝑠 ′ ∈ N(s), 𝑓(𝑠) ≤ 𝑓(𝑠′) .
 Minimum global : une solution 𝑠 est minimum global si ∀𝑠 ′ ∈ S , 𝑓(𝑠) ≤
𝑓(𝑠′) .
Chapitre 2 : Les différentes approches d’optimisation
19S.BENHMIRA S.MEJDAOUI
 Voisinage : le voisinage est une fonction notée 𝑁 qui associe un sous ensemble
de S à toute solution 𝑠, les voisins de 𝑠 sont 𝑠′
∈ 𝑁(𝑠)
1.2 Résolution d’un problème d’optimisation
combinatoire
Résoudre un problème d’optimisation combinatoire nécessite l’étude des points
suivants :
1. Définir l’ensemble des solutions 𝑋
2. Exprimer l’ensemble des contraintes du problème 𝐶 afin de définir l’ensemble des
solutions réalisables 𝑆
3. Exprimer la fonction objective 𝑓 à optimiser
4. Choisir la méthode de résolution à utiliser
 Les trois premiers points concernent la modélisation du problème, le dernier point sa
résolution.
A chaque problème d’optimisation on peut associer un problème de décision (est un
problème dont la solution est formulé en termes de Oui / Non) dont le but est de déterminer
s’il existe une solution pour laquelle la fonction objective soit optimale.
La complexité d’un problème d’optimisation est liée à celle du problème de décision
qui lui associé. En particulier, si le problème de décision est NP-complet, alors le problème
d’optimisation est dit NP-difficile.
Optimum
Global
Solutions Réalisables
FonctionObjective
Figure 4: Exemple de l’optimum global et local
figure 4
Chapitre 2 : Les différentes approches d’optimisation
20S.BENHMIRA S.MEJDAOUI
1.3 Classification des méthodes de résolution
La majorité des problèmes d'optimisation combinatoire sont des problèmes NP-
difficiles et donc ils ne possèdent pas à ce jour un algorithme efficace, valable de trouver la
solution optimale en un temps raisonnable. Ceci a motivé les chercheurs à développer de
nombreuses méthodes de résolution en recherche opérationnelle et en intelligence artificielle,
la recherche s’est d'abord orientée vers des heuristiques spécifiques aux problèmes, elle s’est
progressivement intéressée aux méthodes plus générales, c'est à dire les métaheuristiques.
Ces méthodes de résolution peuvent être réparties en deux grandes classes :
 Méthodes exactes : Les méthodes exactes ont permis de trouver des solutions
optimales pour des problèmes de taille raisonnable et rencontrent généralement des
difficultés face aux applications de taille importante.
 Méthodes approchées : Elles permettent de trouver une bonne solution, pas forcément
optimale, dans un temps raisonnable.
2. Les méthodes de résolution exactes
Le principe des méthodes exactes consiste généralement à énumérer, souvent de
manière implicite, l'ensemble des solutions dans le but de trouver la solution optimale, elle
présente comme avantage la certitude de trouver la solution optimale, mais par contre son
inconvénient se manifeste dans le temps d’exécution qui est exagéré.
2.1 La méthodes de séparation et évaluation
L’algorithme de séparation et évaluation, plus connu sous son appellation anglaise
Branch and Bound (B&B) repose sur une méthode arborescente de recherche d’une solution
Méthodes Exactes Méthodes Approchées
Séparation et Evaluation
Programmation Linéaire
Programmation Dynamique
Heuristiques
Méta-heuristiques
Figure 5: Classification des méthodes de résolution
figure 5
Chapitre 2 : Les différentes approches d’optimisation
21S.BENHMIRA S.MEJDAOUI
optimale par séparations et évaluations, en représentant les états solutions par un arbre d’états,
avec des nœuds, et des feuilles.
 L’évaluation
L’évaluation permet de réduire l’espace de recherche en éliminant quelques sous-
ensembles qui ne contiennent pas la solution optimale. L’objectif est d’essayer d’évaluer
l’intérêt de l’exploration d’un sous-ensemble de l’arborescence.
Le branch-and-bound utilise une élimination de branches dans l’arborescence de
recherche de la manière suivante :
La recherche d’une solution de coût minimal, consiste à mémoriser la solution de plus
bas coût trouvé pendant l’exploration, et à comparer le coût de chaque nœud parcouru à celui
de la meilleure solution. Si le coût du nœud considéré est supérieur au meilleur coût, on arrête
l’exploration de la branche et toutes les solutions de cette branche seront nécessairement de
coût plus élevé que la meilleure solution déjà trouvée.
 La séparation
La séparation consiste à diviser le problème en sous-problèmes. Ainsi, en résolvant tous
les sous-problèmes et en gardant la meilleure solution trouvée, on est assuré d’avoir résolu le
problème initial. Cela revient à construire un arbre permettant d’énumérer toutes les solutions.
L’ensemble de nœuds de l’arbre qu’il reste encore à parcourir comme étant susceptibles de
contenir une solution optimale, c’est-à-dire encore à diviser, est appelé ensemble des nœuds
actifs.
3. Les méthodes de résolution heuristiques et méta-
heuristiques
Une heuristique est un algorithme approché qui permet d’identifier en temps
raisonnable au moins une solution réalisable rapide, pas obligatoirement optimale. L’usage
d’une heuristique est efficace pour calculer une solution approchée d’un problème et ainsi
accélérer le processus de résolution exacte. Généralement une heuristique est conçue pour un
problème particulier en s’appuyant sur sa structure propre sans offrir aucune garantie sur la
qualité de la solution calculée.
Les heuristiques rencontrent des difficultés pendant la recherche d’une solution
réalisable de bonne qualité pour des problèmes d’optimisation difficiles, d’où les
Chapitre 2 : Les différentes approches d’optimisation
22S.BENHMIRA S.MEJDAOUI
métaheuristiques ont fait leur apparition. Ces algorithmes sont plus complets et complexes
qu’une simple heuristique, et permettent généralement d’obtenir une solution de très bonne
qualité pour des problèmes difficiles dont on ne connait pas de méthodes efficaces pour les
résoudre ou bien quand la résolution du problème nécessite un temps élevé ou une grande
mémoire de stockage.
La plupart des métaheuristiques utilisent des processus aléatoires et itératifs comme
moyens d’explorer l’espace de recherche et de faire face à des problèmes comme l’explosion
combinatoire (qui rend la solution très difficile). Une métaheuristique peut être adaptée pour
différents types de problèmes, tandis qu’une heuristique est utilisée à un problème donné.
Plusieurs d’entre elles sont souvent inspirées des systèmes naturels dans de nombreux
domaines tels que : la biologie (algorithmes évolutionnaires et génétiques) la physique (recuit
simulé), et aussi l’éthologie (algorithmes de colonies de fourmis).
Les métaheuristiques peuvent être classées de nombreuses façons. On peut distinguer
celles qui travaillent avec une population de solutions de celles qui ne manipulent qu’une seule
solution à la fois. Les méthodes qui tentent itérativement d’améliorer une solution sont appelées
méthodes de recherche locale ou méthodes de trajectoire. Ces méthodes construisent une
trajectoire dans l’espace des solutions en tentant de se diriger vers des solutions optimales. Les
exemples les plus connus de ces méthodes sont : La recherche Tabou et le Recuit Simulé. Les
algorithmes génétiques, l’optimisation par essaim de particules et Les algorithmes de colonies
de fourmis présentent les exemples les plus connus des méthodes qui travaillent avec une
population.
Le principe d’intensification et de diversification est un point critique pour tout
métaheuristique, communes à toutes ces approches heuristiques, il consiste à trouver un
compromis entre les deux tendances duales suivantes :
 L’intensification : vise à diriger l’effort de recherche aux alentours des meilleures
combinaisons trouvées.
 La diversification : vise à garantir un bon échantillonnage de l’espace de recherche.
Chapitre 2 : Les différentes approches d’optimisation
23S.BENHMIRA S.MEJDAOUI
3.1 Le recuit simulé
Le recuit simulé (SA - simulated annealing) a été introduit par (Kirkpatrik et al. 1983)
et (Cerný 1985) comme une méthode de recherche locale normale, utilisant une stratégie pour
éviter les minima locaux.
Le principe du recuit simulé est de parcourir de manière itérative l’espace des solutions.
On part avec une solution notée 𝑠0 initialement générée de manière aléatoire dont
correspondent une énergie initiale 𝐸0 et une température initiale 𝑇0 généralement élevée. A
chaque itération de l’algorithme, un changement élémentaire est effectué sur la solution, cette
modification fait varier l’énergie du système ∆E. Si cette variation est négative (la nouvelle
solution améliore la fonction objective, et permet de diminuer l’énergie du système), elle est
acceptée. Si la solution trouvée est moins bonne que la précédente alors elle sera acceptée avec
une probabilité 𝑃.
Solution unique Solution à population
Recuit Simulé
Recherche Taboue
Algorithme Génétique
Colonies des Fourmis
Méta-heuristiques
Essaimes particulaires
Figure 6: Classification des méthodes métaheuristiques
figure 6
𝟏. 𝐸𝑛𝑔𝑒𝑛𝑑𝑟𝑒𝑟 𝑢𝑛𝑒 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑖𝑛𝑖𝑡𝑖𝑎𝑙𝑒 𝑆0 𝑑𝑒 𝑆
𝑆 ⇽ 𝑆0
𝟐. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑙𝑎 𝑡𝑒𝑚𝑝é𝑟𝑎𝑡𝑢𝑟𝑒 𝑇
𝟑. 𝒓é𝒑é𝒕𝒆𝒓
𝟒. 𝐸𝑛𝑔𝑒𝑛𝑑𝑟𝑒𝑟 𝑢𝑛 𝑣𝑜𝑖𝑠𝑖𝑛 𝑎𝑙é𝑎𝑡𝑜𝑖𝑟𝑒 𝑆′
𝑑𝑒 𝑆
𝟓. 𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟 ∆𝐸 = 𝑓 ( 𝑆′ ) − 𝑓 ( 𝑆 )
𝟔. 𝑺𝒊 ∆𝐸 ≤ 0 𝑎𝑙𝑜𝑟𝑠 𝑆 ← 𝑆′
𝟕. 𝑺𝒊𝒏𝒐𝒏 𝑎𝑐𝑐𝑒𝑝𝑡𝑒𝑟 𝑆′ 𝑐𝑜𝑚𝑚𝑒 𝑙𝑎 𝑛𝑜𝑢𝑣𝑒𝑙𝑙𝑒
𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑎𝑣𝑒𝑐 𝑙𝑎 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡é 𝑃
8. 𝐹𝑖𝑛 𝑠𝑖
𝟗. 𝑀𝑒𝑡𝑡𝑟𝑒 𝑇 À jours
𝟏𝟎. 𝑱𝒖𝒔𝒒𝒖’à 𝑙𝑎 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 𝑑’𝑎𝑟𝑟ê𝑡
𝟏𝟏. 𝑅𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 𝑙𝑎 𝑚𝑒𝑖𝑙𝑙𝑒𝑢𝑟𝑒 𝑐𝑜𝑛𝑓𝑖𝑔𝑢𝑟𝑎𝑡𝑖𝑜𝑛
𝑡𝑟𝑜𝑢𝑣é
Algorithme 1: Recuit simulé
figure 7
Chapitre 2 : Les différentes approches d’optimisation
24S.BENHMIRA S.MEJDAOUI
3.2 Colonie de fourmis (ACO : Ant Colony Optimization)
Les algorithmes de colonies de fourmis ont été proposés par Colorni, Dorigo et
Maniezzo en 1992 et appliquées la première fois au problème du voyageur de commerce. Ce
sont des algorithmes itératifs à population où tous les individus partagent un savoir commun
qui leur permet d’orienter leurs futurs choix et d’indiquer aux autres individus des choix à
suivre ou à éviter. Le principe de cette métaheuristique repose sur le comportement particulier
des fourmis, elles utilisent pour communiquer une substance chimique volatile particulière
appelée phéromone.
En quittant leur nid pour explorer leur environnement à la recherche de la nourriture,
les fourmis arrivent à élaborer des chemins qui s’avèrent fréquemment être les plus courts pour
aller du nid vers une source de nourriture. Chaque fourmi dépose alors une quantité de
phéromones sur ces pistes qui deviendront un moyen de communication avec leurs congénères,
les fourmis choisissent ainsi avec une probabilité élevée les chemins contenant les plus fortes
concentrations de phéromones à l’aide des récepteurs situés dans leurs antennes.
Lorsqu’une fourmi doit prendre de décision sur la direction à prendre, elle doit choisir
le chemin ayant la plus forte concentration en phéromone, c'est-à-dire la décision dépend de la
probabilité de transition d’un emplacement à une autre. Cette probabilité dépend de la
concentration en phéromone. La décision à prendre une fourmi pour construire une solution
dépend de deux facteurs : Facteur de visibilité noté 𝜂 𝑑 où d est la décision à prendre, ce facteur
représente l’apport qu’a la fourmi lorsque elle prend une décision, Facteur de trace noté 𝜏 𝑑 où
𝑑 est la décision à prendre, cette trace représente l’apport historique qu’a la fourmi lorsque elle
prend la décision. Plus cette valeur est grande, plus il a été intéressant dans le passé de prendre
cette décision.
1. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒 𝑑𝑒 𝑙𝑎 𝑝ℎé𝑟𝑜𝑚𝑜𝑛𝑒 𝜏 𝑑 à 0 𝑝𝑜𝑢𝑟 𝑡𝑜𝑢𝑡𝑒 𝑑é𝑐𝑖𝑠𝑖𝑜𝑛 𝑑.
2. 𝑻𝒂𝒏𝒕𝑸𝒖𝒆 (𝐶𝑟𝑖𝑡è𝑟𝑒 𝑑’𝑎𝑟𝑟ê𝑡 𝑛𝑜𝑛 𝑎𝑡𝑡𝑒𝑖𝑛𝑡𝑒) 𝑭𝒂𝒊𝒓𝒆
3. 𝑷𝒐𝒖𝒓 𝐶ℎ𝑎𝑞𝑢𝑒 𝑓𝑜𝑢𝑟𝑚𝑖 𝑘 𝜖 𝐾 𝑭𝒂𝒊𝒓𝒆
4. 𝐶𝑜𝑛𝑠𝑡𝑟𝑢𝑖𝑟𝑒 𝑢𝑛𝑒 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑒𝑛 𝑡𝑒𝑛𝑎𝑛𝑡 𝑐𝑜𝑚𝑝𝑡𝑒 𝑑𝑒 𝑙𝑎 𝑣𝑖𝑠𝑖𝑏𝑖𝑙𝑖𝑡é 𝑒𝑡 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒
5. 𝑀𝑒𝑡𝑡𝑟𝑒 à 𝑗𝑜𝑢𝑟 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒 𝜏 𝑑 𝑎𝑖𝑛𝑠𝑖 𝑞𝑢𝑒 𝑙𝑎 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑡𝑟𝑜𝑢𝑣é𝑒
6. 𝑭𝒊𝒏𝒑𝒐𝒖𝒓
7. 𝑭𝒊𝒏𝑻𝒂𝒏𝒕𝑸𝒖𝒆
Algorithme 2: Colonie de fourmis
figure 8
Chapitre 2 : Les différentes approches d’optimisation
25S.BENHMIRA S.MEJDAOUI
3.3 Essaim de particules (PSO : Particule Swarm
Optimization)
L’optimisation par Essaim Particulaire (OEP, ou PSO en anglais) a été proposée par
(Kennedy et Eberhart 1995). Cette méthode est inspirée du comportement social des animaux
évoluant en essaim.
Un essaim est un ensemble de particules positionnées dans l'espace de définition de la
fonction objectif. Le principe de l'algorithme consiste à déplacer ces particules dans l'espace
de définition afin de trouver la solution optimale.
Une particule est caractérisée par plusieurs attributs:
 sa position actuelle: c'est-à-dire ses coordonnées dans l'ensemble de définition et la
valeur de la fonction objective lui correspondant.
 sa meilleure position : c’est la valeur obtenue par la particule et ses coordonnées.
 sa vitesse: cette donnée, recalculée à chaque itération de l'algorithme permet de déduire
la position suivante de la particule. Elle est fonction de la meilleure position de la
particule depuis le début de la recherche, du voisin le mieux positionné à l'instant actuel
et de la vitesse précédente de la particule.
 ses voisins: c'est un ensemble de particules qui influe sur ses déplacements, en
particulier celui qui est le mieux positionné.
Le principe de l'optimisation par essaim particulaire a notamment été conçu à partir de
modèles sociaux. En effet, chacune des particules agit en fonction de sa propre expérience et
de celle de ses voisins. Pour se déplacer elle prend en compte son histoire (sa meilleure
position) et est attirée par la meilleure particule actuelle de son voisinage.
Les particules sont dans un premier temps placées aléatoirement dans l'ensemble de
définition de la fonction objectif. Ensuite on calcule pour chacune de ses particules leur vitesse.
Dans ce but, on mémorise leur meilleure position depuis le début et on recherche celle de ses
voisins les plus proches à cet instant-là.
𝑉𝑘+1 = 𝜔 × 𝑉𝑘 + 𝑐1 × (𝑏𝑒𝑠𝑡 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 − 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒) + 𝑐2 × (𝑏𝑒𝑠𝑡 𝑣𝑜𝑖𝑠𝑖𝑛
− 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒)
Où : 𝑉𝑘+1 et 𝑉𝑘 sont les vitesses de la particule aux itérations k et k+1.
𝑏𝑒𝑠𝑡 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 : La meilleure position de la particule.
Chapitre 2 : Les différentes approches d’optimisation
26S.BENHMIRA S.MEJDAOUI
𝑏𝑒𝑠𝑡 𝑣𝑜𝑖𝑠𝑖𝑛 : Est la meilleure position d'un voisin à l'itération k.
𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 ∶ Est la position de la particule à l’itération k.
𝜔, 𝑐1 et 𝑐2 sont des coefficients fixés au début du programme ou générés aléatoirement.
Ensuite, on peut déterminer la position suivante de la particule grâce à la vitesse que l’on vient
de calculer :
𝑋 𝑘+1 = 𝑋 𝑘 + 𝑉𝑘+1
Où : 𝑋 𝑘 est la position de la particule à l'itération k.
𝑋0 ∶ Est générée aléatoirement.
𝑉0 : Est nulle.
1. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑎𝑙é𝑎𝑡𝑜𝑖𝑟𝑒𝑚𝑒𝑛𝑡 𝑃𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠 ∶ 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑒𝑡 𝑣𝑖𝑡𝑒𝑠𝑠𝑒;
2. 𝐸𝑣𝑎𝑙𝑢𝑒𝑟 𝑙𝑒𝑠 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛𝑠 𝑑𝑒𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠;
3. 𝑻𝒂𝒏𝒕 𝒒𝒖𝒆 𝑙𝑒 𝑐𝑟𝑖𝑡è𝑟𝑒 𝑑’𝑎𝑟𝑟ê𝑡 𝑛’𝑒𝑠𝑡 𝑝𝑎𝑠 𝑎𝑡𝑡𝑒𝑖𝑛𝑡 𝒇𝒂𝒊𝒓𝒆
4. 𝑷𝒐𝒖𝒓 𝒊 = 𝟏, … , 𝑷𝒔 𝒇𝒂𝒊𝒓𝒆
5. 𝐷é𝑝𝑙𝑎𝑐𝑒𝑟 𝑙𝑒𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠 𝑠𝑒𝑙𝑜𝑛 𝑙𝑒𝑠 é𝑞𝑢𝑎𝑡𝑖𝑜𝑛𝑠 𝑑é𝑓𝑖𝑛𝑖𝑡 𝑎𝑢 − 𝑑𝑒𝑠𝑠𝑢𝑠 ;
6. 𝑺𝒊 𝑓( 𝑥𝑖) < 𝑓(𝑝𝑖)
7. 𝑝𝑖 = 𝑥𝑖;
8. 𝑺𝒊 𝑓( 𝑥𝑖) < 𝑓(𝑝 𝑔)
9. 𝑝 𝑔 = 𝑥𝑖;
10. 𝑭𝒊𝒏 𝑺𝒊
11. 𝑭𝒊𝒏 𝑺𝒊
12. 𝑭𝒊𝒏 𝑷𝒐𝒖𝒓
13. 𝑭𝒊𝒏 𝑻𝒂𝒏𝒕 𝒒𝒖𝒆
Algorithme 3: Essaimes de particules
figure 9
Chapitre 3 : les algorithmes génétiques
27S.BENHMIRA S.MEJDAOUI
Chapitre 3
Les algorithmes génétiques
Dans ce chapitre nous allons présenter le contexte historique de cet
algorithme, puis nous allons expliquer en détail son principe de
fonctionnement (codage des chromosomes, sélection, croisement, mutation
….).
Chapitre 3 : les algorithmes génétiques
28S.BENHMIRA S.MEJDAOUI
1. Contexte historique
L'évolution décrit le processus par lequel les différentes espèces et les organismes
vivants ont été changés au cours du temps, impliquant généralement leur adaptation progressive
à un nouvel environnement ou des changements à leur environnement actuel. Elle a été, depuis
longtemps, objet de discussions dans de nombreux domaines, de la science à la religion et
même à la philosophie, car le genre humain désire découvrir et déterminer non seulement leur
propre histoire, mais celle de tous ce qui l’entoure.
« L'origine des espèces » de Charles Darwin [12] reste au cœur de ce concept comme
l'une des premières théories ayant été présentées. La théorie de Darwin décrit le processus de
la sélection naturelle, dans lequel les populations gardent des traits favorables tout en rejetant
les caractéristiques indésirables des générations futures, résultant de la compétition entre ou au
sein des espèces où les individus les plus aptes ont un taux de survie plus élevé, et peuvent
transmettre leurs gènes qui contiennent ces traits avantageux pour la survie.
L'idée de créer des outils basés sur l'évolution qui pourraient être utilisés pour optimiser
les solutions des problèmes d'ingénierie est commencée vers le milieu du 20éme siècle. Le
concept était de faire évoluer une population de solutions candidates en simulant des variations
génétiques et la sélection naturelle. Pendant ce temps, quelques algorithmes inspirés de
l'évolution ont été développés par plusieurs chercheurs.
L’un des chercheurs les plus importants dans le développement et la popularisation des
algorithmes génétiques était John Holland, qui étudiait le processus d'adaptation dans la nature
et comment il pouvait être utilisé dans la programmation, avec ses étudiants et ses collègues de
l'Université du Michigan dans les années 1960 et les années 1970. Holland a publié un livre en
1975 intitulé « Adaptation dans les systèmes naturels et artificiels » [13] qui contenait une
grande partie de son travail présenté de manière détaillée et systématique afin d'établir la
présence et les possibilités des algorithmes génétiques, ainsi que de présenter les nouveaux
concepts de simulation de l'évolution et les processus de sélection naturelle comme un outil
pour résoudre les problèmes grâce à des programmes informatiques adaptatifs utilisant la
sélection, le croisement et les mutations. Son travail s'est avéré être une innovation utilisée
comme une base de presque tous les travaux ultérieurs dans le domaine des algorithmes
génétiques [16].
Chapitre 3 : les algorithmes génétiques
29S.BENHMIRA S.MEJDAOUI
2. aperçu de l’algorithme génétique
Puisque les algorithmes génétiques sont conçus pour simuler un processus biologique,
une grande partie de la terminologie pertinente est empruntée à la biologie. Cependant, les
entités auxquelles cette terminologie fait référence dans les algorithmes génétiques sont
beaucoup plus simples que leurs homologues biologiques [14]. Les composants de base
communs à presque tous les algorithmes génétiques sont :
 Une fonction objective (fitness) à optimiser
 Une population de chromosomes
 Sélection des chromosomes qui se reproduiront
 Croisement pour produire la prochaine génération de chromosomes
 Mutation sur des chromosomes de nouvelle génération
La fonction fitness est la fonction que l'algorithme tente à optimiser [14]. Le mot
"fitness" est tiré de la théorie de l'évolution. Il est utilisé ici parce que cette fonction nous permet
de tester et quantifier l'adéquation de chaque solution potentielle. La fonction fitness est l'une
des parties les plus importantes de l'algorithme.
Le terme chromosome fait référence à une ou plusieurs valeurs numériques qui
représentent une solution possible au problème que l'algorithme génétique tente de résoudre
[14]. Chaque solution candidate est codée sous la forme d'un tableau de valeurs, le processus
que l'on trouve également dans d'autres algorithmes d'optimisation [15]. Il revient à l’utilisateur
de l'algorithme génétique de concevoir comment traduire l'espace échantillon des solutions
possibles en chromosomes. Une approche consiste à convertir chaque valeur de paramètre en
une chaîne de bits (séquence de 1 et de 0), puis à concaténer les paramètres comme des gènes
de bout en bout dans un ADN pour créer les chromosomes. Historiquement, les chromosomes
étaient généralement codés de cette façon, et il reste une méthode appropriée pour les espaces
de solution discrète. Les ordinateurs modernes permettent aux chromosomes d'inclure des
permutations, des nombres réels et de nombreux autres objets; mais pour l'instant et pour bien
comprendre le fonctionnement de l’algorithme génétique nous allons nous concentrer sur les
chromosomes binaires.
Chapitre 3 : les algorithmes génétiques
30S.BENHMIRA S.MEJDAOUI
Un algorithme génétique commence avec un nombre aléatoire de chromosomes, qui sert
de première génération (population initiale). Ensuite, chaque chromosome de la population est
évalué par la fonction de fitness pour tester son adaptation dans la résolution du problème.
L’opérateur de sélection choisit certains chromosomes pour la reproduction en se basant
sur une probabilité définit par l’utilisateur. Le chromosome le plus adapté est celui qui a plus
de chance d’être sélectionné. Par exemple si 𝑓 une fonction d’adaptation non négative, alors la
probabilité qu’un chromosome 𝐶𝑖 soit sélectionné est donnée par :
𝑃( 𝐶𝑖) =
𝑓( 𝐶𝑖)
∑ 𝑓( 𝐶𝑗)
𝑁 𝑝𝑜𝑝
𝑗=1
Notez que l'opérateur de sélection choisit les chromosomes avec remplacement, donc le
même chromosome peut être choisi plusieurs fois.
L'opérateur de croisement ressemble au croisement biologique et à la recombinaison des
chromosomes dans la cellule. Cet opérateur échange une sous-séquence de deux des
chromosomes choisis pour créer deux descendants. Par exemple, si les chromosomes
parentaux :
[1101|0111001000] et [0101|1101010010]
Sont croisés après le quatrième bit, alors
[0101|0111001000] et [1101|1101010010]
Seront leurs deux fils.
L'opérateur de mutation inverti aléatoirement deux bit d’un individu et nous donne un
nouveau chromosome (remplacer 0 par 1 et vice versa). Dans un premier temps l’opérateur de
mutation semble inutile. En effet, il joue un rôle important même s'il est secondaire à ceux de
la sélection et du croisement, la sélection et le croisement gardent l’information génétique des
chromosomes les mieux adaptés, mais ces chromosomes ne sont plus performants que par
rapport à la génération courante. Cela peut entrainer à une convergence trop rapide de
l’algorithme et la perte d’une gêne potentielle qui peut être utile dans le déroulement de
l’algorithme. En d’autre terme l'algorithme peut rester bloqué à un optimum local avant de
trouver l'optimum global [15]. L'opérateur de mutation aide à protéger contre ce problème en
Chapitre 3 : les algorithmes génétiques
31S.BENHMIRA S.MEJDAOUI
assurant la diversité dans la population, mais il peut aussi faire converger l'algorithme plus
lentement.
Maintenant la seconde génération est évaluée avec la fonction fitness, et ce cycle va se
répéter. Il est recommandé de sauvegarder le chromosome le mieux adapté (qui a une fitness
optimal) pour chaque génération.
L’algorithme est itéré jusqu’à ce que la valeur fitness du chromosome le mieux adapté se
stabilise et ne change pas pendant de nombreuse générations. Cela signifie que l’algorithme est
convergé vers une solution(s).
La performance d'un algorithme génétique dépend fortement de la méthode utilisée pour
coder les solutions candidates dans les chromosomes et de ce que la fonction de fitness mesure
réellement [16]. D'autres détails importants sont la probabilité de croisement, la probabilité de
mutation, la taille de la population et le nombre d'itérations. Ces valeurs peuvent être ajustées
après avoir évalué les performances de l'algorithme sur quelques essais.
Les algorithmes génétiques sont utilisés dans diverses applications. Quelques exemples
importants sont la programmation et l'apprentissage automatique. Ils sont également bien
adaptés à la modélisation des phénomènes en économie, écologie, système immunitaire
humain, génétique des populations et systèmes sociaux.
Bref, on peut générer un processus à suivre lors de l’utilisation de l’AG pour la résolution
de n’importe quel problème d’optimisation :
1. Initialiser la population initiale 𝑃( 𝑡)
2. Evaluer 𝑃( 𝑡)
3. TantQue (Critère d’arrêt non atteint) Faire
4. 𝑃( 𝑡 + 1) ← Sélection des parents dans 𝑃( 𝑡)
5. 𝑃( 𝑡 + 1) ← Appliquer Croissement et Mutation sur 𝑃( 𝑡 + 1)
6. 𝑃( 𝑡 + 1) ← Remplacer P(t) par 𝑃( 𝑡 + 1)
7. Evaluer 𝑃( 𝑡)
8. FinTantQue
Algorithme 4 : Algorithme Génétique
figure 10
Chapitre 3 : les algorithmes génétiques
32S.BENHMIRA S.MEJDAOUI
Il nous reste un dernier point à discuter, c’est le critère de convergence, ce dernier ne
prend pas une forme spécifique, selon le problème traité et la conception du programmeur, le
critère de convergence peut être de nature diverse, par exemple :
 Un taux minimum qu'on désire atteindre d'adaptation de la population au problème.
 Un certain temps de calcul à ne pas dépasser.
 Un nombre d’itérations maximum.
Dans la section suivante, nous allons traiter en détails tous les paramètres et opérateurs
utilisés dans les algorithmes génétiques, mais seulement dans le cas des chromosomes binaires,
le cas des chromosomes discrets et ses différents types de représentations, on va également les
citer et expliquer en détails dans le chapitre 4.
3. Etapes de l’algorithme génétique
Le principe de l’algorithme génétique est extrêmement simple, la première étape
consiste à générer une population de solutions potentielles (chromosomes) initiales,
arbitrairement choisies, ensuite nous évaluons leurs performances (Fitness) relatives. Sur la
base de ces performances, nous sélectionnons les individus par une méthode de sélection. Les
opérateurs génétiques (croisement, mutation) seront appliqués sur ces individus selon les
probabilités Pc, Pm. Ces deux opérateurs permettent la génération d’une nouvelle population
d’individus qui ont de bonnes chances d’être plus forts que ceux de la génération précédente.
Les individus résultant de l’étape de mutation seront insérés et remplacés par une méthode
d’insertion dans la nouvelle population.
Pour chaque nouvelle génération, la puissance des individus de la population agrandit
et, à la fin, pour décider quand arrêter l’algorithme, un test d’arrêt sera effectué. La figure 7
présente un schéma de fonctionnement général de l’algorithme génétique.
Chapitre 3 : les algorithmes génétiques
33S.BENHMIRA S.MEJDAOUI
3.1 Codage des chromosomes
Le codage des chromosomes ou la création d’une solution (chromosome) est la
première étape dans la réalisation des AGs. Le codage est une tâche fondamentale. Son rôle
consiste à passer des données réelles du problème proposé aux données traitées par l’algorithme
génétique. La structure de données, traditionnellement utilisée, est un tableau appelé aussi
vecteur. Avant de générer la population initiale des individus représentés par des
chromosomes, il faut d’abord définir un système de codage adéquat. Le choix du codage d’un
chromosome est très important : il peut rendre un algorithme génétique plus ou moins efficace.
Plusieurs types de codage sont utilisés pour coder les individus, chaque type est propre
à un tel ou tel problème donné.
Génération de la population
initiale
Evaluation
Sélection pour la
reproduction
Croisement et Mutation
Insertion
Nouvelle population
Figure 7: Schéma générale d’un algorithme génétique
figure 11
Chapitre 3 : les algorithmes génétiques
34S.BENHMIRA S.MEJDAOUI
3.1.1 Codage Binaire
Ce type de codage utilise l’alphabet binaire (0,1) pour représenter les différentes
solutions. Dans le sens où, les gènes sont représentés par des bits et les chromosomes sont
représentés par des chaines de bits, la population est constituée des individus représentés par
des tableaux de chromosomes.
Un inconvénient à ce type de codage qui entraîne certains problèmes est que ce codage
est généralement peu naturel par rapport à un problème donné.
3.1.2 Codage réel ou entier
Contrairement au codage binaire, le codage réel est destiné à modéliser des problèmes
de type continu. Il représente les solutions par des suites de type réel, comme le montre la
figure 9.
De même, le codage entier ou discret est un type spécial du codage réel utilisant des
entiers au lieu des réels (Figure 10).
3.1.3 Codage à caractères multiples
Une autre manière de coder les chromosomes d’un algorithme génétique est le codage
à l’aide de caractères multiples. Souvent, ce type de codage est plus naturel que le codage
binaire. C’est d’ailleurs celui-ci qui est utilisé dans de nombreux cas poussés d’algorithmes
génétiques.
Figure 8 : Codage binaire d'un chromosome.
figure 12
Figure 9 : Codage réel d’un chromosome.
figure 13
Figure 10 : Codage entier d’un chromosome.
figure 14
Figure 11: Codage à caractère d’un chromosome.
figure 15
0 1 1 0 0 0 1
0.56 1.12 5.00 4.07 74.82 11.14 1.21
6 2 45 7 22 12 1
M S , L ? B _
Chapitre 3 : les algorithmes génétiques
35S.BENHMIRA S.MEJDAOUI
3.2 Création de la population initiale
Plusieurs mécanismes de génération de la population initiale sont utilisés dans la
littérature. Le choix de l’initialisation se fera en fonction des connaissances que l’utilisateur a
sur le problème. S’il n’a pas d’informations particulières, alors une initialisation aléatoire, la
plus uniforme possible afin de favoriser une exploration de l’espace de recherche maximum,
sera la plus adaptée. Par ailleurs, cette étape présente un problème principal qui est celui de
choix de la taille de la population. En effet une taille de population trop grande augmente le
temps de calcul et nécessite un espace mémoire considérable, alors qu’une taille de population
trop petite conduit à l’obtention d’un optimum local [8].
3.3 Evaluation des individus
Afin d'effectuer une sélection naturelle, chaque individu est évalué en fonction de sa
valeur de performance, déterminée par une fonction d'évaluation ou fonction fitness. Cette
valeur mesure la qualité des solutions et permet de les comparer. Le choix des meilleurs
individus se fait grâce au résultat fourni par la fonction d’adaptation. Le choix de la fonction
de fitness retenue est important et dépend du problème à résoudre et de l’espace de recherche
qui en découle. Cette fonction, propre au problème, est souvent simple à formuler lorsqu’il y a
peu de paramètres. Au contraire, lorsqu’il y a beaucoup de paramètres ou lorsqu’ils sont liés
entre eux, elle est plus difficile à définir, et donc c'est le rôle de l'utilisateur de penser à la façon
dont cette fonction est configurée pour répondre au besoin de problème.
3.4 Les opérateurs génétiques
Une fois que la population initiale est créée et nous avons finis d’évaluer ses individus,
nous allons appliquer les opérateurs génétiques pour générer de nouveaux individus ‘fils’ qui
seront la nouvelle génération de notre population, et nous espérons que certains entre eux seront
les meilleures solutions à notre problème. La sélection, le croisement et la mutation sont les
trois opérateurs les plus importants et les plus communs dans un AG.
Premièrement nous commençons par sélectionner les individus qui vont se reproduire
(Croisement) puis mutés (Mutation) pour donner cette nouvelle génération.
3.4.1 Opérateur de sélection
Comme son nom l'indique, la sélection nous permet de garder les individus relativement
performants afin qu’ils se reproduisent, en se basant sur l’évaluation précédemment établie qui
a identifié les meilleurs individus dans la population. Alors, le principe est clair ; sélectionner
une sous-population à partir de la population parente, éliminer les individus les moins
Chapitre 3 : les algorithmes génétiques
36S.BENHMIRA S.MEJDAOUI
28%
18%33%
6%
15%
P1 P2 P3 P4 P5
performants, et générer à leur place les plus performants, simulant ainsi le schéma de la
sélection naturelle de Darwin.
Plusieurs stratégies de sélection ont été mises en place. Voici quelques-unes de ces
méthodes :
3.4.1.1 Sélection par Roulette
La sélection par Roulette (Roulette Wheel Selection) introduit par Goldberg [1989] est
la plus connue et la plus utilisée. Elle consiste à associer à chaque individu un segment (ou case
de la roue) dont la longueur est proportionnelle à sa performance comme l'illustre la Figure 12.
La roue étant lancée, l'individu sélectionné est celui sur lequel la roue s'est arrêtée. Cette
méthode favorise les meilleurs individus, en effet, si un individu est bien plus performant que
les autres, il sera sélectionné plusieurs fois et donc on peut tomber dans un manque de diversité
du problème, mais avec cette méthode généralement, tous les individus conservent néanmoins
des chances d'être sélectionnés.
Si la population d’individus est de taille égale à N, alors la probabilité de sélection d’un
individu 𝑥𝑖 notée 𝑃(𝑥𝑖) est égale à : 𝑃( 𝑥𝑖) =
𝑓(𝑥 𝑖)
∑ 𝑓(𝑥 𝑖)𝑛
𝑖=1
où 𝑓( 𝑥) est la fonction d’adaptation.
Garder P2
comme parent
Chromosome Fitness
P1 28
P2 18
P3 33
P4 6
P5 15
Figure 12: La sélection par la méthode de Roulette
figure 16
Chapitre 3 : les algorithmes génétiques
37S.BENHMIRA S.MEJDAOUI
3.4.1.2 La sélection par Rang
La sélection par roulette présente des inconvénients lorsque la valeur d’évaluation des
individus varie énormément. En effet, on risquerait d’atteindre une situation de stagnation de
l’évolution. Imaginons le cas où 90% de la roulette est allouée à l’individu qui a la meilleure
évaluation, alors les autres individus auront une probabilité très faible d’être sélectionnés. 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 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 [17]. 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 ci-dessous 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.
Chromosomes 1 2 3 4 5 6 Total
Probabilités
initiales
89% 5% 1% 4% 3% 2% 100%
Rang 6 5 1 4 3 2 21
Probabilités
finales
29% 24% 5% 19% 14% 9% 100%
3.4.1.3 La sélection par Tournois
La sélection par tournoi est l’une des sélections les plus utilisées dans les algorithmes
génétiques, grâce à son efficacité et sa simple implémentation. Le principe consiste à choisir
un sous-ensemble d’individus (K individus) aléatoirement dans la population, l’individu ayant
la meilleure valeur d’adaptation dans ce groupe, sera sélectionné et inclus dans la prochaine
génération pour la reproduction. Ce processus est répété jusqu’ à l’obtention du nombre
d’individus requis. Le nombre de participants à un tournoi (K), appelé la taille de tournoi, est
utilisé pour faire varier la pression de cette sélection. Si ce nombre est grand, alors la pression
sera forte et les faibles individus auront une petite chance d’être choisis. En général, un seul
gagnant est choisi parmi les participants à un tournoi.
Tableau 2: Exemple de sélection par rang pour 6 chromosomes
Chapitre 3 : les algorithmes génétiques
38S.BENHMIRA S.MEJDAOUI
Ce gagnant peut être choisi d’une façon déterministe ou probabiliste [18] [probabilité entre 0.5
et 1]. La méthode de tournoi la plus commune est le tournoi binaire, où on choisit deux
individus aléatoirement (K=2) puis on sélectionne le meilleur.
3.4.1.4 La sélection Elitiste
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 de croisement 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.
3.4.2 Opérateur de Croisement
Une fois que l’opérateur de sélection fini de générer la population parente, on applique
sur cette population l’opérateur de recombinaison ou croisement. Ce dernier joue un rôle
primordial dans un AG, il peut accélérer ou décaler le processus de recherche.
Le croisement est l’opérateur principal de l’algorithme génétique, Il a pour objectif
d’enrichir la diversité de la population en manipulant les gènes des chromosomes. D'une
manière générale, le croisement consiste à appliquer des procédures avec une certaine
probabilité Pc (s’appelle le taux de croisement) sur les individus sélectionnés pour donner
naissance à un ou plusieurs (généralement deux) enfants. Ces derniers doivent hériter, par
A
S
Q
H
D
P
B
N
L
Y
23
25
15
12
6
30
47
22
10
29
Fitness Chromosomes
S
D
L
S
Garder le
meilleur
comme parent
Figure 13 : la sélection par Tournoi avec K = 3
figure 17
Chapitre 3 : les algorithmes génétiques
39S.BENHMIRA S.MEJDAOUI
croisement, de certaines caractéristiques des parents. Bien qu'il soit souvent aléatoire, cet
échange d'informations offre aux algorithmes génétiques une part de leur puissance:
quelquefois, de « bons » gènes d'un parent viennent remplacer les « mauvais » gènes d'un autre
et créent des enfants mieux adaptés que les parents [19].
Au début de la recherche, quand les solutions sont plutôt différentes, le croisement a un
rôle d’exploration, car la combinaison des solutions produit des solutions placées aux endroits
non encore visités pendant la recherche. Par contre, à la fin de la recherche, les parents sont
similaires, ce qui produit des enfants similaires, accordant au croisement un rôle plutôt
d’intensification (ou d’exploitation) [18].
Habituellement le croisement peut être classé en deux classes; celui appelé « en un point
» et l’autre appelé « à des points multiples ».
3.4.2.1 Croisement en 1-point
C’est le croisement le plus simple et le plus connu. Il consiste à choisir au hasard un
point de croisement pour chaque couple de chromosomes. Les séquences de bits situées après
ce point sont par la suite inter-changées pour former les fils, (Figure 14).
3.4.2.2 Croisement en N-point
Contrairement au croisement en un point, plusieurs points sont sélectionnés
aléatoirement et l’échange entre les parents s’effectue selon les différentes parties des
séquences cernées par ces points. Dans la Figure 15 deux points de coupure sont choisis au
hasard et le contenu entre ces points est inter-changé pour former les fils.
1 0 0 1 1 1 0 0 1 0 0 1
1 1 0 0 0 1 1 0 0 0 1 0
Figure 14 : Croisement en un point de deux chromosomes
figure 18
Parent 1
Parent 2
1 0 0 1 0 1 1 0 0 0 1 0
1 1 0 0 1 1 0 0 1 0 0 1
Fils 1
Fils 2
1 0 0 1 1 1 0 0 1 0 0 1
1 1 0 0 0 1 1 0 0 0 1 0
1 0 0 0 0 1 1 0 1 0 0 1
1 1 0 1 1 1 0 0 0 0 1 0
Parent 1
Parent 2
Fils 1
Fils 2
Figure 15 : Croisement en 2-point de deux chromosomes
(n=2)
figure 19
Chapitre 3 : les algorithmes génétiques
40S.BENHMIRA S.MEJDAOUI
3.4.2.3 Croisement uniforme
Un autre type de croisement peut être recensé, nommé le croisement uniforme, ce
mécanisme consiste à définir un masque de bits 0,1 dont la longueur est égale au nombre
d’individus parents sur lesquels il sera appliqué [20]. Si le bit du masque égal à «1 » dans la
position « i » alors l’échange entre les parents dans la même position est possible, « 0 » ne
désigne pas d’échange.
3.4.3 Opérateur de Mutation
Une fois que l’opérateur de croisement finit de générer la population des enfants, on
applique sur cette population l’opérateur de mutation afin de l’améliorer encore plus, son but
est de maintenir la diversité de la population des enfants et d'explorer l'espace de recherche en
évitant à l'algorithme de converger trop rapidement vers un optimum local.
Le principe est très simple (dans le cas des chromosomes binaires) ; une mutation est
l’inversion d’un bit aléatoire dans un chromosome. Un bit égale à 1 prendra la valeur 0 et vice
versa, comme il montre la figure 17. Cet opérateur est appliqué avec une probabilité très faible
Pm, nommée taux de mutation. Les petits taux sont recommandés car un grand taux peut
occasionner une destruction de l'information utile contenue dans les solutions et être considéré
probablement comme une recherche aléatoire [18].
Elle assure en outre une recherche aussi bien globale que locale, selon le poids et le
nombre des bits mutés. Plus un individu a été muté, plus la recherche s’éloignera du voisinage
local de ce même individu non muté. De plus, elles garantissent mathématiquement que
l’optimum global peut être atteint [21].
1 0 0 1 1 1 0 0 1 0 1 1
1 1 0 0 0 1 1 0 0 0 1 0
Figure 16: Exemple d’un Croisement uniforme
figure 20
Parent 1
Parent 2
1 1 0 1 1 1 0 0 0 0 0 0
1 0 0 0 0 1 1 0 1 0 1 1
Fils 1
Fils 2
1 1 0 0 0 1 0 1 1 0 0 1Masque
1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0Parent Fils
Figure 17 : opérateurs de mutation
figure 21
Chapitre 3 : les algorithmes génétiques
41S.BENHMIRA S.MEJDAOUI
Généralement, l'opérateur de mutation modifie de manière complètement aléatoire les
caractéristiques d'un ou plusieurs individus de la population des enfants. Il modifie un ou
plusieurs gènes pour passer d'une solution à une autre solution de forme similaire mais qui peut
avoir une évaluation totalement différente. L'individu muté n'est pas une solution idéale. Il ne
sera pas forcément meilleur ou moins bon, mais il apportera des possibilités supplémentaires
qui pourraient être utiles pour la création de bonnes solutions.
3.4.4 Insertion
La dernière étape consiste à générer la population finale de la génération courante, en
insérant les individus obtenus après l’application des opérateurs de croisement et de mutation
dans la population en fonction de leurs valeurs de performance ou garder juste les enfants avec
ses parents… Donc la nouvelle population est constituée d’individus sélectionnés pour
continuer à participer à son amélioration. Plusieurs méthodes d’insertion sont utilisées, on
distingue deux méthodes :
 Un remplacement automatique des parents par les enfants sans prendre en considération
leurs performances respectives.
 Un remplacement sélectif, le facteur performance est pris en compte dans cette stratégie
qui consiste à garder au moins l’individu le plus performant lors du passage d’une
génération à la suivante.
3.4.5 Avantage et inconvénients :
 Avantages
 En général les AGs accélèrent le parcours d’un vaste ensemble de solutions. Et les
mauvaises solutions ne sont pas prises en compte, elles sont éliminées afin de ne
pas affecter la solution optimale.
 Grande efficacité pour résoudre tous les problèmes d’optimisation qui peuvent être
décrits avec le codage de chromosomes.
 Les AGs traitent des problèmes très complexes d’une manière très efficace et
permettant facilement de trouver les bonnes solutions, cette caractéristique a
beaucoup aidé dans les domaines avec un grand nombre de paramètres et dont le
temps de réponse doit être réduit (obtenir de bonnes solutions en quelques itérations
seulement).
Chapitre 3 : les algorithmes génétiques
42S.BENHMIRA S.MEJDAOUI
 Inconvénients
 Trouver les bonnes solutions pour des problèmes avec un grand nombre de
paramètres n’est pas toujours assuré par AG car il est très lent.
 AG peut converger vers les optimums locaux et ne pas trouver un optimum global.
 Il s’agit d’une technique d’intelligence artificielle, donc l’algorithme génétique ne
peut pas assurer toujours les mêmes résultats en termes de temps. Cette propriété
limite leur utilisation dans les applications en temps réel.
3.5 Conclusion
Les algorithmes génétiques s’inspirent de la théorie de la sélection naturelle. Par
analogie avec le monde biologique, l’algorithme génétique fait évoluer un groupe d’individus
à l’aide de trois opérateurs principaux : sélection, croisement et mutation.
Ils admettent une grande liberté dans la configuration des paramètres et dans
l’implémentation des différents traitements. L’adaptation des paramètres de l’algorithme avec
le problème traité et l’implémentation de toutes les étapes de l’algorithme sont indispensables
pour atteindre des performances optimales.
De plus, l’AG est un domaine de recherche très vaste, il permet aux utilisateurs de
modifier ses paramètres et méthodes selon le besoin, en effet, on peut réaliser des algorithmes
hybrides mêlant différentes méthodes. Ils synthétisent des solutions nouvelles et originales à
des problèmes connus sans idées préconçues.
Chapitre 4 : résolution du problème du voyageur de commerce avec les AG
43S.BENHMIRA S.MEJDAOUI
Chapitre 4
Résolution du problème du voyageur
de commerce avec les algorithmes
génétiques
Dans ce chapitre nous essayerons d’adapter les paramètres du TSP avec
celles des AG en appliquant les opérateurs génétiques sur le problème
mentionné. Ensuite nous allons réaliser un programme qui sera susceptible de
donner des résultats sur les instances du problème, enfin nous allons faire une
application graphique pour visualiser le déroulement de l’exécution du
programme.
Chapitre 4 : résolution du problème du voyageur de commerce avec les AG
44S.BENHMIRA S.MEJDAOUI
1. Introduction
Comme nous l’avons déjà dit dans le chapitre 1, un problème de voyageur de commerce
(TSP) doit visiter 𝑛 villes données en passant exactement une seule fois par chaque ville. Il
commence par une ville quelconque ou une ville spécifique et termine son parcours en
retournant à la ville de départ.
Le TSP est un problème d’optimisation combinatoire classique, simple à représenter,
très difficile à résoudre, il est de type NP-difficile, il ne pas être résolu dans un temps
raisonnable.
Ce problème se complexifie de manière factorielle quand le nombre de villes augmente
linéairement. Le tableau 3 montrant l’accélération horrible des chemins possibles et du temps
d’énumération. On suppose qu’une solution est trouvée par un ordinateur performant toutes les
microsecondes.
Villes Chemins possibles Temps de calcule
5 12 12 microsecondes
10 181440 0.18 seconde
15 43 milliards 12 heures
20 6 × 1016 1928 années
25 3.1 × 1023 9.8 milliards d’années
Note : Dans notre calcul, nous avons supposés que le TSP est symétrique, et que le voyageur
part d’une ville connue et y retourne. Si 𝑛 est le nombre de villes, alors les trajets possibles
seront calculés par
(𝑛−1)!
2
De nombreux algorithmes, exacts et heuristiques, ont été développés dans le domaine
de la recherche opérationnelle pour résoudre ce problème. Les méthodes exactes donnent de
bons résultats, malgré le temps de calcul qui est très élevé, mais elles se limitent à un nombre
de villes assez petit. Or, les heuristiques nous donnent une valeur approchée de l’optimum dans
un temps raisonnable. Dans les sections qui suivent, nous abordons l’une de ces méthodes, celle
la plus connue et utilisée ; les algorithmes génétiques.
Tableau 3: le temps de calcule en fonction du nombre de villes pour le TSP
Chapitre 4 : résolution du problème du voyageur de commerce avec les AG
45S.BENHMIRA S.MEJDAOUI
2. Algorithme génétique appliqué au problème du
voyageur de commerce
Les algorithmes génétiques (AG) décrits dans le chapitre 3 sont souvent utilisés pour
résoudre des problèmes NP-difficiles, comme le problème de voyageur de commerce (TSP).
Dans le contexte de TSP, chaque chromosome est une solution du problème (trajet), la fonction
d’évaluation (fitness) des chromosomes est reliée avec la longueur de ce trajet, qui à son tour
dépend de l’ordre des villes. Puisque le TSP est un problème de minimisation alors la mesure
de trajet la plus élevée correspond à l’individu le plus faible, celle la plus courte sera associée
au meilleur individu.
Le problème dans un AG est comment représenter ou transformer les paramètres du
problème aux chromosomes, cette phase –comme nous le savons- appelée le codage. Dans le
TSP, il y a eu beaucoup de représentations utilisées pour résoudre le problème de TSP en
utilisant les Algorithmes Génétiques [22]. Certains d'entre eux, tels que la représentation
binaire et la représentation matricielle, utilisent des alphabets binaires pour la représentation
du tour. Bien que ces alphabets binaires constituent le mode classique de représentation dans
les AGs, mais les résultats obtenus par les opérateurs de croisement et de mutation ne sont pas
valides. La représentation la plus naturelle s’appelle « la représentation par chemin ».
Dans les parties suivantes de notre projet, nous nous concentrerons exclusivement sur
cette représentation des individus.
2.1 Représentation des chromosomes
La représentation par chemin (path repesentation) est probablement la représentation
la plus naturelle d'un tour. Dans cette représentation, un trajet est représenté par une liste des
entiers ordonnée de 𝑛 ville. Si 𝑖 est le 𝑗-é𝑚𝑒 éléments de la liste, alors la ville 𝑖 est la 𝑗-é𝑚𝑒
ville à visiter.
Par conséquent, le tour 1-3-2-5-6-8-4-7 est simplement représenté par :
L’avantage de la représentation par chemin inclut la simplicité de l'évaluation de la
fonction fitness. On peut calculer la valeur de fitness pour chaque chromosome en additionnant
1 3 2 5 6 8 4 7
Figure 18: codage d’un chemin
figure 22
Chapitre 4 : résolution du problème du voyageur de commerce avec les AG
46S.BENHMIRA S.MEJDAOUI
les coûts de chaque paire de nœuds adjacents. Cette représentation est utile car elle affiche
directement la liste des villes dans l'ordre dans lequel elles doivent être visitées.
2.3 Génération de la population initiale
La population initiale peut influencer sur le déroulement de l’AG, en décalant ou en
accélérant la convergence de l’algorithme.
Pour cela, il existe plusieurs méthodes à appliquer pour générer la population initiale :
 Génération aléatoire de la population initiale.
 Génération du premier individu au hasard, celui-ci sera muté (𝑁 − 1) fois avec
un opérateur de mutation.
 Génération du premier individu en utilisant une méthode heuristique. Le
deuxième sera généré par mutation du premier. Ensuite, nous utilisons un
opérateur de mutation sur la route obtenue afin de générer (𝑁 − 2) d'autres
individus qui constitueront la population initiale.
2.4 Sélection
Bien qu’il existe de nombreux types de sélection, décrits dans le chapitre 3, nous avons
choisi à implémenter la méthode la plus connue et utilisée, on parle de la sélection par Roulette.
Elle consiste à associer à chaque
individu une probabilité 𝑃𝑠 d’être
sélectionné proportionnelle à sa
valeur de fitness. Si la population
d’individus est de taille égale à N,
alors la probabilité de sélection d’un
individu 𝑥𝑖 notée 𝑃(𝑥𝑖) est égale à :
𝑃( 𝑥𝑖) =
𝑓(𝑥 𝑖)
∑ 𝑓(𝑥 𝑖)𝑛
𝑖=1
où 𝑓( 𝑥) est la
fonction d’adaptation.
𝑃 ⇽ (𝑃1, 𝑃2,… , 𝑃𝑛) | 𝑓 ⇽ (𝑓1, 𝑓2, … , 𝑓𝑛)
𝑷𝒐𝒖𝒓 ( 𝑖 = 2, … , 𝑛) 𝑭𝒂𝒊𝒓𝒆 𝑓𝑖 ⇽ 𝑓𝑖 + 𝑓𝑖−1
𝑹é𝒑é𝒕𝒆𝒓
𝑝 ⇽ 𝑟𝑎𝑛𝑑𝑜𝑚(0, 𝑓𝑛)
𝑷𝒐𝒖𝒓 ( 𝑖 = 2, … , 𝑛) 𝑭𝒂𝒊𝒓𝒆
𝑺𝒊 𝑓𝑖−1 < 𝑝 < 𝑓𝑖
𝑨𝒍𝒐𝒓𝒔 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒 𝑃𝑖
𝑺𝒊𝒏𝒐𝒏 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒 𝑃1
𝑭𝒊𝒏𝑷𝒐𝒖𝒓
𝑱𝒖𝒔𝒒𝒖′
à (𝑜𝑏𝑡𝑒𝑛𝑖𝑟 𝑙𝑒 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑′
𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑠 𝑟𝑒𝑞𝑢𝑖𝑠)
Algorithme 5: Roulette wheel selection
figure 23
𝑃 ∶ 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑃𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛
𝑛 ∶ 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑′
𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑠
𝑓 ∶ 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑓𝑖𝑡𝑛𝑒𝑠𝑠
Chapitre 4 : résolution du problème du voyageur de commerce avec les AG
47S.BENHMIRA S.MEJDAOUI
2.5 Opérateur de croisement pour TSP
Le croisement (ou recombinaison) est le processus par lequel les parents donnent leurs
gènes caractéristiques à leurs fils, formant ainsi la base de la génération suivante. Le rôle
important de cet opérateur est de maintenir la diversité de la population, évitant ainsi la
convergence rapide.
Il est clair que les opérateurs de croisement vus dans le chapitre 3, comme le croisement
en 1-point, sont susceptibles de générer des trajets invalides en utilisant la représentation par
chemin. En effet, appliquer le croisement à la position 3 donne deux solutions invalides.
Comme l’illustre la figure 19.
 Les deux fils ne sont pas une permutation de 𝑛 éléments (𝑛 = 8).
Le TSP est un problème de permutation pur. Tous les chromosomes portent exactement les
mêmes valeurs et ne diffèrent que par l'ordre de ces valeurs. En conséquence, des opérateurs
de permutation spécialisés doivent être développés pour ce problème.
2.5.1 Partially Mapped Crossover (PMX)
Exemple tiré de [8].
PMX est un opérateur de croisement à deux points de coupure, introduit par
Goldberg et Lingle en 1985 [23], qui définit un segment de même longueur dans chacun des
parents 𝑃1 𝑒𝑡 𝑃2. Les segments sont entourés avec un rectangle dans la partie (𝑎) de la figure
20. Ces segments sont copiés vers les enfants 𝐹1 𝑒𝑡 𝐹2. 𝐹1 a hérité du segment de 𝑃2 et 𝐹2
de 𝑃1, comme le montre la partie (𝑏) de la figure.
A partir de l’un de ces segments, on établit à chaque gène une liste de
correspondance. Cette liste va servir à placer les gènes redondants et elle est formée de la
manière suivante: pour chaque position du segment on note 𝑥 le gène qui s'y trouve et 𝑦 celui
de l'autre enfant dans la même position. Tant que 𝑦 est retrouvé ailleurs dans le segment de
départ, on note 𝑦′ son correspondant dans l'autre enfant et on remplace 𝑦 par 𝑦′. Par exemple,
le gène correspondant à "1" de 𝐹1 est "6" mais ce gène existe aussi dans 𝐹1 et son
1 3 2 5 6 8 4 7
1 5 6 7 8 2 3 4
P1
P2
1 3 2 7 8 2 3 4
1 5 6 5 6 8 4 7
F1
F2
Figure 19: Application de croisement en 1-point sur deux parents représentés par chemin
figure 24
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.
Solving Traveling Salesman problem using genetic algorithms, implementation in  MATLAB.

Contenu connexe

Tendances

Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
Mohamed Heny SELMI
 
Quelques points sur les métaheuristiques
Quelques points sur les métaheuristiquesQuelques points sur les métaheuristiques
Quelques points sur les métaheuristiques
BENSMAINE Abderrahmane
 
ROBOT à base d'Android - Présentation PFE
ROBOT à base d'Android - Présentation PFEROBOT à base d'Android - Présentation PFE
ROBOT à base d'Android - Présentation PFE
Houssem Eddine LASSOUED
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
Atef MASMOUDI
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
Rouâa Ben Hammouda
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
recherche operationnelle
recherche operationnelle recherche operationnelle
recherche operationnelle
mohamednacim
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
Donia Hammami
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
Mohamed Heny SELMI
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.
 
E-learning
E-learningE-learning
E-learning
Donia Hammami
 
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineRapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Mohamed Amine Mahmoudi
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
IbtissemSlimeni
 
Rapport de stage développement informatique
Rapport de stage développement informatique Rapport de stage développement informatique
Rapport de stage développement informatique
MehdiOuqas
 
L'algorithme du Recuit simule
L'algorithme du Recuit simuleL'algorithme du Recuit simule
L'algorithme du Recuit simule
Ahmed BEN ABDALLAH
 
Merise 60 affaires classées
Merise 60 affaires classées  Merise 60 affaires classées
Merise 60 affaires classées
oussama ben rejeb
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
Ahmed rebai
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
Mohamed Heny SELMI
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
sarah Benmerzouk
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseAbderrahmane Filali
 

Tendances (20)

Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
 
Quelques points sur les métaheuristiques
Quelques points sur les métaheuristiquesQuelques points sur les métaheuristiques
Quelques points sur les métaheuristiques
 
ROBOT à base d'Android - Présentation PFE
ROBOT à base d'Android - Présentation PFEROBOT à base d'Android - Présentation PFE
ROBOT à base d'Android - Présentation PFE
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
recherche operationnelle
recherche operationnelle recherche operationnelle
recherche operationnelle
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
E-learning
E-learningE-learning
E-learning
 
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineRapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
 
Rapport de stage développement informatique
Rapport de stage développement informatique Rapport de stage développement informatique
Rapport de stage développement informatique
 
L'algorithme du Recuit simule
L'algorithme du Recuit simuleL'algorithme du Recuit simule
L'algorithme du Recuit simule
 
Merise 60 affaires classées
Merise 60 affaires classées  Merise 60 affaires classées
Merise 60 affaires classées
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
 

Similaire à Solving Traveling Salesman problem using genetic algorithms, implementation in MATLAB.

Merise
MeriseMerise
Merise
basy15
 
Prog lin
Prog linProg lin
Prog lin
Youcef SMAILI
 
Cours 20de-20simulation
Cours 20de-20simulationCours 20de-20simulation
Cours 20de-20simulation
Jihad Makhlouf
 
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
MohamedAmineHACHICHA1
 
RR 2011 03 LUSSI complet.pdf
RR 2011 03 LUSSI complet.pdfRR 2011 03 LUSSI complet.pdf
RR 2011 03 LUSSI complet.pdf
Khalid526420
 
Conception Base de Données
Conception Base de DonnéesConception Base de Données
Conception Base de Données
Amadou Tidiane Diallo
 
Box Methode M2 R
Box Methode M2 RBox Methode M2 R
Box Methode M2 Rguestb16e95
 
SerieBoucle pour
SerieBoucle pourSerieBoucle pour
SerieBoucle pour
Hichem Kemali
 
logistic_regression_ml.pdf
logistic_regression_ml.pdflogistic_regression_ml.pdf
logistic_regression_ml.pdf
SidiAbdallah1
 
Etude de la convergence du modèle binomial vers le modèle de Black Scholes
Etude de la convergence du modèle  binomial vers le modèle de Black ScholesEtude de la convergence du modèle  binomial vers le modèle de Black Scholes
Etude de la convergence du modèle binomial vers le modèle de Black Scholes
Ali SIDIBE
 
Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)
Mohammed TAMALI
 
La progr.docx
La progr.docxLa progr.docx
La progr.docx
patrick525760
 
Conception bd 2
Conception bd 2Conception bd 2
Conception bd 2hassan1488
 
Upc
UpcUpc
Assignment problem algorithm
Assignment problem algorithmAssignment problem algorithm
Assignment problem algorithm
Abdel Yezza
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
Boubaker KHMILI
 

Similaire à Solving Traveling Salesman problem using genetic algorithms, implementation in MATLAB. (20)

Merise
MeriseMerise
Merise
 
Prog lin
Prog linProg lin
Prog lin
 
Cours 20de-20simulation
Cours 20de-20simulationCours 20de-20simulation
Cours 20de-20simulation
 
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
 
Dynoptim
DynoptimDynoptim
Dynoptim
 
RR 2011 03 LUSSI complet.pdf
RR 2011 03 LUSSI complet.pdfRR 2011 03 LUSSI complet.pdf
RR 2011 03 LUSSI complet.pdf
 
Rapport
RapportRapport
Rapport
 
Rapport stage
Rapport stageRapport stage
Rapport stage
 
Regsimple
RegsimpleRegsimple
Regsimple
 
Conception Base de Données
Conception Base de DonnéesConception Base de Données
Conception Base de Données
 
Box Methode M2 R
Box Methode M2 RBox Methode M2 R
Box Methode M2 R
 
SerieBoucle pour
SerieBoucle pourSerieBoucle pour
SerieBoucle pour
 
logistic_regression_ml.pdf
logistic_regression_ml.pdflogistic_regression_ml.pdf
logistic_regression_ml.pdf
 
Etude de la convergence du modèle binomial vers le modèle de Black Scholes
Etude de la convergence du modèle  binomial vers le modèle de Black ScholesEtude de la convergence du modèle  binomial vers le modèle de Black Scholes
Etude de la convergence du modèle binomial vers le modèle de Black Scholes
 
Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)
 
La progr.docx
La progr.docxLa progr.docx
La progr.docx
 
Conception bd 2
Conception bd 2Conception bd 2
Conception bd 2
 
Upc
UpcUpc
Upc
 
Assignment problem algorithm
Assignment problem algorithmAssignment problem algorithm
Assignment problem algorithm
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
 

Dernier

Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
MustaphaZhiri
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
mohammadaminejouini
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
Morzadec Cécile
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
Txaruka
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
Michel Bruley
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 

Dernier (7)

Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 

Solving Traveling Salesman problem using genetic algorithms, implementation in MATLAB.

  • 1. 1S.BENHMIRA S.MEJDAOUI Résumé Les algorithmes génétiques sont des algorithmes évolutionnaires, inspirés par la biologie, utilisés souvent pour résoudre des problèmes classés comme des problèmes d'optimisation combinatoire NP-difficile, comme le problème du voyageur de commerce dont l'enjeu est de trouver un cycle hamiltonien reliant 𝑛 points tout en minimisant le trajet. Les AGs ne fournissent pas une solution exacte mais ils permettent de trouver une solution très proche de l’optimum dans un temps raisonnable. Dans ce travail, nous allons tenter d'adapter le principe classique des algorithmes génétiques (sélection, croisement, mutation …) et de l'appliquer sur le problème mentionné afin de trouver des bonnes solutions pour des différentes instances de benchmark tirées du TSPLIB libraire. Pour améliorer davantage les résultats obtenus, nous allons introduire une nouvelle approche inspirée également de la nature, et qui est celle de l’immigration. Il s'agit d'une approche qui assure une grande diversité dans la population et qui permettra, par conséquent, l’obtention des résultats satisfaisants. Mots-clés : Algorithme Génétique, Optimisation Combinatoire, Problème du Voyageur de Commerce, Immigration.
  • 2. 2S.BENHMIRA S.MEJDAOUI Abstract The genetic algorithms (GAs) are evolutionary algorithms, inspired by the biology, used often to solve problems classified as NP-hard combinatorial optimization problems, like the traveling salesman problem (TSP) which the challenge is to find a Hamiltonian cycle linking 𝑛 points while minimizing the target. The GAs do not provide an exact solution but they allow finding a solution very close to the optimum in a reasonable time. In this work, we will try to adapt the traditional principle of genetic algorithms (selection, crossover, mutation ...) and apply it to the mentioned problem in order to find good solutions for different benchmark instances from the TSPLIB library. To further improve the results obtained, we will introduce a new approach inspired also by nature, which is that of immigration. It is an approach which ensures a great diversity in the population and which will, therefore, obtaining satisfactory results. Keywords: Genetic Algorithm, Combinatorial Optimisation, Traveling Salesman Problem, Immigration.
  • 3. 3S.BENHMIRA S.MEJDAOUI ‫ملخص‬ ‫لحل‬ ‫تستخدم‬ ‫ما‬ ً‫ا‬‫وكثير‬ ، ‫األحياء‬ ‫علم‬ ‫من‬ ‫مستوحاة‬ ‫تطورية‬ ‫خوارزميات‬ ‫هي‬ ‫الجينية‬ ‫الخوارزميات‬ ‫كمشاكل‬ ‫المصنفة‬ ‫المشكالت‬‫تو‬‫ا‬‫في‬ ‫التحدي‬ ‫يتمثل‬ ‫الذي‬ ‫التجاري‬ ‫المسافر‬ ‫مشكلة‬ ‫مثل‬ ، ‫صعبة‬ ‫فقية‬ ‫مع‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫المدينة‬ ‫زيارة‬ ‫عدم‬ ‫و‬ ‫بينها‬ ‫فيما‬ ‫مرتبطة‬ ‫المدن‬ ‫من‬ ‫مجموعة‬ ‫زيارة‬ ‫على‬ ‫القدرة‬ ‫تسمح‬ ‫ولكنها‬ ‫ا‬ً‫ق‬‫دقي‬ ً‫حال‬ ‫الجينية‬ ‫الخوارزميات‬ ‫تقدم‬ ‫ال‬ .‫المقطوعة‬ ‫المسافة‬ ‫من‬ ‫حد‬ ‫أدنى‬ ‫إلى‬ ‫التقليل‬ ‫سنح‬ ، ‫العمل‬ ‫هذا‬ ‫في‬ .‫منطقي‬ ‫و‬ ‫مقبول‬ ‫وقت‬ ‫في‬ ‫األمثل‬ ‫الحل‬ ‫من‬ ‫ًا‬‫د‬‫ج‬ ‫قريب‬ ‫حل‬ ‫بإيجاد‬‫تكييف‬ ‫اول‬ ‫المشكلة‬ ‫على‬ ‫وتطبيقه‬ )... ‫الطفرة‬ ، ‫التبادل‬ ، ‫(االختيار‬ ‫الجينية‬ ‫للخوارزميات‬ ‫التقليدي‬ ‫المبدأ‬ ‫مكتبة‬ ‫من‬ ‫المأخوذة‬ ‫القياسية‬ ‫الحاالت‬ ‫لمختلف‬ ‫جيدة‬ ‫حلول‬ ‫إيجاد‬ ‫أجل‬ ‫من‬ ‫المذكورة‬‫التجاري‬ ‫المسافر‬ .‫و‬‫مست‬ ‫ًا‬‫د‬‫جدي‬ ‫ا‬ً‫ج‬‫منه‬ ‫سنقدم‬ ، ‫عليها‬ ‫الحصول‬ ‫تم‬ ‫التي‬ ‫النتائج‬ ‫لتحسين‬‫وهو‬ ، ‫الطبيعة‬ ‫من‬ ‫ا‬ً‫ض‬‫أي‬ ‫وحى‬ ‫النهج‬ ‫هذا‬ .‫الهجرة‬ ‫نهج‬‫سوف‬‫السكان‬ ‫في‬ ‫كبير‬ ‫تنوع‬ ‫يضمن‬‫مرضية‬ ‫نتائج‬ ‫إلى‬ ‫سيؤدي‬ ، ‫وبالتالي‬. .‫الهجرة‬ ،‫التجاري‬ ‫المسافر‬ ‫مشكلة‬ ،‫التوافقية‬ ‫المشاكل‬ ،‫الجينية‬ ‫الخوارزمية‬ : ‫مفتاحية‬ ‫كلمات‬
  • 4. 4S.BENHMIRA S.MEJDAOUI Liste des figures Figure 1 : Jeu d’Icosien---------------------------------------------------------------------------------------------- 4 fFgure 2 : Cycle Hamiltonien--------------------------------------------------------------------------------------10 Figure 3 : Problème de voyageur de commerce sous forme d’un graphe-----------------------------------12 Figure 4 : Exemple de l’optimum global et local---------------------------------------------------------------19 Figure 5 : Classification des méthodes de résolution ----------------------------------------------------------20 Fgure 6 : Classification des méthodes métaheuristiques -----------------------------------------------------23 Figure 7 : Schéma générale d’un algorithme génétique -------------------------------------------------------33 Figure 8 : Codage binaire d'un chromosome--------------------------------------------------------------------34 Figure 9 : Codage réel d'un chromosome------------------------------------------------------------------------34 Figure 10 : Codage entier d'un chromosome--------------------------------------------------------------------34 Figure 11 : Codage à caractère d’un chromosome ------------------------------------------------------------34 Figure 12 : La sélection par la méthode de Roulette-----------------------------------------------------------36 Figure 13 : La sélection par Tournoi avec K = 3 ---------------------------------------------------------------38 Figure 14 : Croisement en un point de deux chromosomes---------------------------------------------------39 Figure 15 : Croisement en 2- point de deux chromosomes ---------------------------------------------------39 Figure 16 : Exemple d’un Croisement uniforme ---------------------------------------------------------------40 Figure 17 : opérateurs de mutation -------------------------------------------------------------------------------40 Figure 18 : codage d’un chemin-----------------------------------------------------------------------------------45 Figure 19 : Application de croisement en 1-point sur deux parents représentés par chemin ------------47 Figure 20 : Croisement PMX--------------------------------------------------------------------------------------48 Figure 21 : Croisement CX ----------------------------------------------------------------------------------------49 Figure 22 : Croisement OX ----------------------------------------------------------------------------------------50 Figure 23 : Opérateur de mutation par insertion----------------------------------------------------------------51 Figure 24 : Opérateur de mutation par échange ----------------------------------------------------------------51 Figure 25 : Opérateur de mutation par inversion ---------------------------------------------------------------51 Figure 26 : Logo MatLab ------------------------------------------------------------------------------------------52 Figure 27 : Graphe de performance illustrant la convergence des instances après 1000 itérations-----57 Figure 28 : Pincipe d’immigration--------------------------------------------------------------------------------64 Figure 29 : Graphe de performance illustrant la convergence des instances après 1000 itérations en intégrant l’approche d’immigration ------------------------------------------------------------------------------66 Liste des Algorithmes Algorithme 1: Recuit simulé ……………………………………………………………………….…26 Algorithme 2: Colonie de fourmis……………………………………………….……………………27 Algorithme 3: Essaims de particule ……………………..……………………………………………29 Algorithme 4: Algorithme génétique………….………………………………………………………34 Algorithme 5: Roulette Wheel ………………..………………………………………………………49 Algorithme 6: Mutation PSM …………………….………………………………………………..…54 Algorithme 7: Immigration aléatoire ……………………...……………………………………….…69 Liste des Tableaux Tableau 1: Taille maximale des instances résolues ……….……………………………………….…14 Tableau 2: Exemple de sélection par rang pour 6 chromosomes .……………….……………………40 Tableau 3: le temps de calcule en fonction du nombre de villes pour le TSP ……….………………47 Tableau 4: Paramètres génétique utilisés dans l’expérience ………….……………...………………57 Tableau 5: Les résultats obtenus pour les instances TSP après 1000 itérations …………………..…60 Tableau 6: Les résultats obtenus pour les instances TSP après 1000 itérations par immigration……68
  • 5. 5S.BENHMIRA S.MEJDAOUI Table des matières Dédicace............................................................................................Error! Bookmark not defined. Remerciement...................................................................................Error! Bookmark not defined. Résumé............................................................................................................................................. 1 Abstract ........................................................................................................................................... 2 ‫ملخص‬................................................................................................................................................. 3 Introduction générale ...................................................................................................................... 7 Chapitre 1 : Le problème du voyageur de commerce 1. Historique.................................................................................................................................... 10 2. Principe....................................................................................................................................... 12 3. Formulation mathématique .......................................................................................................... 12 4. Variantes du problème du voyageur de commerce........................................................................ 14 5. Domaine d’application du problème du voyageur de commerce ................................................... 15 5.1 Forage de cartes de circuits imprimés..................................................................................... 15 5.2 Routage de véhicule............................................................................................................... 15 5.3 Contrôle des mouvements du robot ........................................................................................ 16 6. Conclusion .................................................................................................................................. 16 Chapitre 2 : les différentes approches d'optimisation 1. Optimisation combinatoire........................................................................................................... 18 1.1 Définition .............................................................................................................................. 18 1.2 Résolution d’un problème d’optimisation combinatoire.......................................................... 19 1.3 Classification des méthodes de résolution............................................................................... 20 2. Les méthodes de résolution exactes.............................................................................................. 20 2.1 La méthodes de séparation et évaluation................................................................................. 20 3. Les méthodes de résolution heuristiques et méta-heuristiques....................................................... 21 3.1 Le recuit simulé ..................................................................................................................... 23 3.2 Colonie de fourmis (ACO : Ant Colony Optimization) ........................................................... 24 3.3 Essaim de particules (PSO : Particule Swarm Optimization)................................................... 25 Chapitre 3 : Les algorithmes génétiques 1. Contexte historique...................................................................................................................... 28 2. aperçu de l’algorithme génétique ................................................................................................. 29 3. Etapes de l’algorithme génétique ................................................................................................. 32 3.1 Codage des chromosomes ...................................................................................................... 33 3.1.1 Codage Binaire ............................................................................................................... 34 3.1.2 Codage réel ou entier....................................................................................................... 34 3.1.3 Codage à caractères multiples.......................................................................................... 34 3.2 Création de la population initiale.......................................................................................... 35 3.3 Evaluation des individus ....................................................................................................... 35 3.4 Les opérateurs génétiques ..................................................................................................... 35 3.4.1 Opérateur de sélection..................................................................................................... 35 3.4.2 Opérateur de Croisement................................................................................................. 38 3.4.3 Opérateur de Mutation..................................................................................................... 40
  • 6. 6S.BENHMIRA S.MEJDAOUI 3.4.4 Insertion.......................................................................................................................... 41 3.4.5 Avantage et inconvénients :............................................................................................. 41 3.5 Conclusion............................................................................................................................. 42 Chapitre 4 : Résolution du problème du voyageur de commerce avec les lagorithmes génétiques 1. Introduction................................................................................................................................. 44 2. Algorithme génétique appliqué au problème du voyageur de commerce....................................... 45 2.1 Représentation des chromosomes........................................................................................... 45 2.3 Génération de la population initiale........................................................................................ 46 2.4 Sélection................................................................................................................................ 46 2.5 Opérateur de croisement pour TSP......................................................................................... 47 2.5.1 Partially Mapped Crossover (PMX)................................................................................. 47 2.5.3 Cycle Crossover (CX) ..................................................................................................... 48 2.5.4 Order Crossover (OX)..................................................................................................... 49 2.6 Opérateur de mutation pour TSP ............................................................................................ 50 2.6.1 Mutation par insertion ..................................................................................................... 51 2.6.2 Mutation par échange (SWAP)........................................................................................ 51 2.6.3 Mutation par inversion (RSM)......................................................................................... 51 2.6.4 Mutation par changement aléatoire (PSM)....................................................................... 51 2.7 Insertion ................................................................................................................................ 52 3. Expérimentations et résultats ....................................................................................................... 52 3.1 Langage de programmation MATLAB................................................................................... 52 3.2 Paramètres génétiques de l’expérimentation ........................................................................... 53 3.3 Calcul de distance.................................................................................................................. 55 3.3.1 Distance Euclidienne....................................................................................................... 55 3.3.2 Distance géographique .................................................................................................... 55 3.4 Résultats de l’expérience........................................................................................................ 56 Chapitre 5 : Amélioration par la stratégie d'immigration 1 – Histoire de l'immigration ........................................................................................................... 60 2- Définition.................................................................................................................................... 60 2.1 Immigration Humaines : ........................................................................................................ 61 2.2 Immigration animales : .......................................................................................................... 62 2.3 L’immigration des oiseaux..................................................................................................... 63 3- Algorithme génétique avec l’approche d’imigration.................................................................... 64 Conclusion ..................................................................................................................................... 67 Références...................................................................................................................................... 69 Annexe 1 ....................................................................................................................................... 73 Annexe 2 ....................................................................................................................................... 75
  • 7. 7S.BENHMIRA S.MEJDAOUI Introduction générale Depuis toujours, les problèmes d’optimisation combinatoire présentent un défi majeur pour l’être humain. Beaucoup d’applications pratiques touchent aux problèmes combinatoires notamment la télécommunication, le transport, l’énergie, l’industrie, l’économie et l’éducation… etc. Dans quel ordre visiter les clients d’une même tournée pour minimiser les emplacements ? Comment affecter chaque véhicule à un client ? Voici deux exemples qui se posent fréquemment et qui, malgré leur simplicité apparente, constituent un obstacle pour les chercheurs et les gestionnaires du terrain les poussant ainsi à trouver une solution. Cela exige alors un degré de lucidité et d’esprit scientifique afin de trouver de bonnes solutions, et ce, quelle que soit la complexité du cas proposé. L’un des problèmes d’optimisation combinatoire le plus célèbre est le problème du voyageur de commerce (TSP) qui peut se décrire comme suit : Un réseau avec 𝑛 nœuds (ou villes), choisir un nœud comme point de départ et d’arrivée, une matrice de coût de déplacement (ou distance, ou temps de parcours etc.) 𝐶 = [𝑐𝑖𝑗] d'ordre 𝑛 associée à des paires de nœuds ordonnées (𝑖, 𝑗) est donnée. Le but est de trouver un cycle hamiltonien au moindre coût. Ce problème parait facile à résoudre à première vue et aussi simple à représenter, cependant, depuis 1972 ce problème est classé parmi les problèmes NP- difficiles, c-à-d, il n’existe pas, jusqu’à aujourd’hui, une solution exacte pour un nombre de paramètres assez grand. Le TSP attire l’attention de plusieurs des chercheurs dans le monde entier pour le résoudre en essayant de développer des méthodes appropriées, certaines de ces méthodes sont exactes, tandis que les autres sont approximatives. Malgré le nombre fini de solutions, la stratégie de résolution exacte qui consiste à les énumérer toutes, en les évaluant à chaque fois et en retenant la meilleure, est impraticable car le nombre de solutions agrandit généralement de manière exponentielle avec la taille du problème. Dans ce sens, il est primordial de mettre en place une méthode de résolution adéquate qui prend en considération le temps de calcul et l’efficacité dans l’exploration de l’espace de recherche pour trouver la solution optimale, d’où les méthodes heuristiques qui ont fait leurs apparition. Ces dernières sont spécifiques au problème traité, par contre les métaheuristiques sont plus générales et peuvent s’adapter à n’importe quel problème. Ce sont des algorithmes stochastiques itératifs, qui progressent vers un optimum par échantillonnage d’une fonction objective. On peut distinguer celles qui travaillent avec une population de solutions (Algorithme génétiques, essaim de particulaire …) de celles qui ne manipulent qu’une seule solution à la fois (recuit simulé, recherche locale …). Dans ce projet nous allons nous concentrer sur celles qui travaillent avec une population de
  • 8. 8S.BENHMIRA S.MEJDAOUI solution pour résoudre un problème NP-difficile. Plus précisément, on va adapter les algorithmes génétiques (la méthode) avec le problème du voyageur de commerce (le problème). L’algorithme génétique est un membre de famille des algorithmes évolutionnaires, la population dans un algorithme génétique évolue en utilisant des opérateurs génétiques inspirés de la théorie d’évolution naturelle de Darwin « La survie des plus forts », d’où le nom génétique. Il se base sur les trois principes d’évolution : sélection, croisement et mutation. Les algorithmes génétiques sont de puissantes méthodes d'optimisation utilisées avec succès dans différents problèmes grâce à son efficacité remarquable en termes d’exploration des domaines ayant plusieurs solutions, ce qui rend leurs champs d’application fort diversifiés. Le présent rapport tentera d’apporter des réponses à ce que nous venons d’avancer. Dans le premier chapitre, on va traiter le problème du voyageur de commerce, son principe, formulation, variantes et applications. Le deuxième chapitre présentera quelques notions sur l’optimisation combinatoire et les différentes approches pour la résolution d’un problème combinatoire. Le troisième chapitre fournira une explication détaillé d’AG, codage, operateurs ainsi son fonctionnement. Et enfin, les deux derniers chapitres seront consacrés à l’adaptation des AG avec le TSP, à la discussion des résultats obtenus et à proposition d’une nouvelle approche plus appropriée pour améliorer ces résultats.
  • 9. Chapitre 1 : Le problème du voyageur de commerce 9S.BENHMIRA S.MEJDAOUI Chapitre 1 Le problème du Voyageurs de Commerce Dans ce chapitre nous allons donner un aperçu historique du problème du voyageur de commerce, ensuite, nous allons définir le problème et sa formulation mathématique, enfin nous allons citer quelques une de ses variantes ainsi que les domaines d’application dans la vie réelle.
  • 10. Chapitre 1 : Le problème du voyageur de commerce 10S.BENHMIRA S.MEJDAOUI 1. Historique Source d’images : [32] Le problème du voyageur de commerce (TSP) vient de la traduction anglaise Traveling Salesman Problem est un problème d’optimisation classique, très connu et utilisé dans le domaine d’intelligence artificielle et la recherche opérationnelle. Les premières approches mathématiques envisagées pour le problème du voyageur de commerce ont été traitées au 19éme siècle par les mathématiciens. En effet, le problème du voyageur de commerce a été décrit pour la première fois par William Rowan Hamilton et Thomas Penyngton Kirkman, deux mathématiciens respectivement Irlandais et Britannique. Il a été posé pour la première fois par Hamilton sous forme d’un jeu qui s’appelle « Icosian game» en 1857, [1] (Figure-1) C’était un panneau perforé de vingt trous qui exigeait que chaque sommet soit visible une seule fois, aucun bord n’est à visiter plus d'une fois et le point final étant le même que le point de départ. Ce type de chemin a finalement été désigné comme un cycle hamiltonien (Figure-2).  Cycle : chaîne qui revient à son point de départ.  Cycle hamiltonien : cycle simple passant par tous les sommets d'un graphe une et une seule fois. Figure 1: Jeu d’Icosien figure 1 Figure 2: Cycle Hamiltonien figure 2
  • 11. Chapitre 1 : Le problème du voyageur de commerce 11S.BENHMIRA S.MEJDAOUI Le TSP a été étudié pour la première fois dans les années 1930 par un mathématicien et un économiste Karl Menger. En suite, il a été étudié par les statisticiens: Mahalanobis (1940), Jessen (1942), Gosh (1948) et Julia Robenson (1949) [2]. Plus tard Hassler Whitney et Merrill Flood ont mené une enquête approfondie à ce propos à l’université de Princeton. Durant les années 50, un nombre considérable de solutions optimales a été atteint grâce à différentes méthodes comme la formulation de George B. Dantzig, Fulkerson et Johnson en 1954 qui a pu résoudre jusqu’à 49 villes. En 1956 Merill M.Flood a publié quelques heuristiques générant ainsi des bonnes solutions. En 1957, Barachet a mis en œuvre une méthode graphique pour la résolution du TSP. [2] Depuis 1954, le souci des chercheurs était d’aller le plus loin possible au niveau du nombre de villes à considérer dans ce problème. Le tableau suivant illustre les tailles maximales des instances résolues du TSP : Année Acteurs Nombre de villes 1954 G.Dantzig, R.Fulkerson et S.Jhonson 49 1971 M. Held et R.M. Karp 64 1975 P.M.Camerini, L.Fratta et F.Maffioli 100 1977 M.Grotschel 120 1980 H.Crowder et M.W.Padberg 318 1987 M.Padberg et G.Rinaldi 532 1987 M. Grotschel et O.Holland 666 1987 M.Padberg et G.Rinaldi 2392 1994 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 7397 1998 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 13509 2001 D.Appelgate, R.Bixby. V.Chvatal et W.Cook 15112 Tableau 1: Taille maximale des instances résolues
  • 12. Chapitre 1 : Le problème du voyageur de commerce 12S.BENHMIRA S.MEJDAOUI 2. Principe Le problème du voyageur de commerce est un problème d'optimisation combinatoire de grande importance qui continue à intéresser plusieurs chercheurs afin de développer des méthodes pour parvenir à une solution optimale. Il fait partie de la catégorie des problèmes de transport. Dans ce problème, un voyageur de commerce doit visiter toutes les villes en passant une et une seule fois par chacune d’elle, celui-ci commence par une certaine ville et termine son parcours en y retournant sachant que les distances entre les villes sont connues. Un TSP peut se modéliser sous forme d'un graphe constitué d’un ensemble de sommets et d’un ensemble d’arêtes. Chaque sommet représente une ville, une arête symbolise le passage d’une ville à une autre, et on lui associe un poids pouvant représenter une distance, un temps de parcours ou encore un coût. L'objectif est de trouver un cycle hamiltonien. 3. Formulation mathématique Le problème de voyageur de commerce consiste à chercher le plus court chemin reliant 𝑛 points donnés et passant une et une seule fois par chaque point et il retourne au point de départ. Le point peut représenter une ville, un pays, ou un entrepôt, etc. Pour un ensemble de 𝑛 points, il existe au total 𝑛! chemins possibles. Le point de départ ne change pas la longueur du chemin, on peut choisir celui-ci de façon arbitraire, on a ainsi ( 𝑛 − 1)! chemins différents. Enfin, chaque chemin pouvant être parcouru dans les deux sens et les deux possibilités ont la même longueur, on peut donc diviser ce nombre par deux. Par exemple, si on nomme les points, 𝑎, 𝑏, 𝑐, 𝑑 les chemins 𝑎𝑏𝑐𝑑, 𝑏𝑐𝑑𝑎, 𝑐𝑑𝑎𝑏, 𝑑𝑎𝑏𝑐, Figure 3: Problème de voyageur de commerce sous forme d’un graphe figure 3
  • 13. Chapitre 1 : Le problème du voyageur de commerce 13S.BENHMIRA S.MEJDAOUI 𝑎𝑑𝑐𝑏, 𝑑𝑐𝑏𝑎, 𝑐𝑏𝑎𝑑, 𝑏𝑎𝑑𝑐 Ont tous la même longueur, seul le point de départ et le sens de parcours change. On a donc ( 𝑛−1)! 2 chemins candidats à considérer. Soit un graphe 𝐺 = (𝑉, 𝐴), tel que 𝑉 = { 𝑣1, … , 𝑣 𝑛} l’ensemble des sommets, 𝑛 = |𝑉| le nombre des sommets du graphe 𝐺, chaque sommet modélisant une ville où 𝑣𝑖 caractérisé par les coordonnées 𝑥 et 𝑦 et 𝑑 la matrice de distance de taille ( 𝑛 × 𝑛), tel que 𝑑(𝑖, 𝑗) définit la distance entre les deux sommets 𝑣𝑖 et 𝑣𝑗. 𝐴(𝐺) L’ensemble des arcs, modélise le coût de déplacement entre deux villes. L'objectif est de trouver une visite de la longueur totale minimum, dont la longueur est la somme des coûts de chaque arc dans la tournée. L'espace de recherche pour le TSP est un ensemble de permutations de 𝑛 villes et la solution optimale est une permutation qui donne le coût minimum de la tournée. Le concept de calcule des distances entre les villes 𝑖 𝑒𝑡 (𝑖 + 1) est calculée sous la règle de la distance euclidienne en utilisant l’équation suivante : 𝑑( 𝑇[ 𝑖 ], 𝑇[ 𝑖 + 1]) = √( ( 𝑥𝑖 − 𝑥𝑖+1)2 + ( 𝑦𝑖 − 𝑦𝑖+1)2 ) Tel que, 𝑇[𝑖] est une permutation sur l’ensemble {1, 2, . . . , 𝑛} 𝑇 = ( 𝑇[1], 𝑇[2] , 𝑇[3], … , 𝑇[𝑛], 𝑇[1] ) Alors, 𝑓 la fonction objective pour calculer le cout de chaque solution du problème donnée par la formule suivante: 𝑓 = 𝑑( 𝑇[ 𝑛], 𝑇[1] ) + ∑ 𝑑( 𝑇[ 𝑖], 𝑇[ 𝑖 + 1] ) 𝑛−1 𝑖=1 D’après (1), (2) 𝑒𝑡 (3) la formule mathématique simple du problème de voyageur de commerce est donnée par : 𝑀𝑖𝑛 { 𝑓 (𝑇) , 𝑇 = ( 𝑇[1], 𝑇[2], 𝑇[3] … , 𝑇[𝑛], 𝑇[1])}  Il est à noter que, en plus de la règle de calcul euclidienne, il existe plusieurs autres façons de calculer la distance, à savoir la distance géographique, matrix, pseudo- euclidienne ... [3] Dans le chapitre 4, on va travailler avec la distance géographique (2) (1) (3)
  • 14. Chapitre 1 : Le problème du voyageur de commerce 14S.BENHMIRA S.MEJDAOUI 4. Variantes du problème du voyageur de commerce Le modèle classique du TSP a été modifié par plusieurs chercheurs pour l’appliquer à de nombreux problèmes de la vie réelle. Il existe trois variantes de base de TSP à savoir ; TSP symétrique (sTSP), TSP asymétrique (aTSP) et TSP multiple (mTSP). Ces variantes peuvent être décrites comme suit :  sTSP : Soit 𝑑(𝑖, 𝑗) la distance Euclidienne entre les villes 𝑖 𝑒𝑡 𝑗. Si 𝑑(𝑖, 𝑗) = 𝑑(𝑗, 𝑖) alors le trajet peut être évalué dans les deux directions pour le même coût [4]. Le sTSP est donc le même que le TSP consiste à trouver un chemin de longueur minimale qui visite chaque ville une fois.  aTSP : Si 𝑑(𝑖, 𝑗) ≠ 𝑑(𝑗, 𝑖) pour au moins un sommet, alors le TSP devient un aTSP.  mTSP : Le modèle fondamental du problème qui consiste à visiter les villes par un seul voyageur de commerce, peut également être abandonné, un TSP avec plusieurs voyageurs qui peuvent visiter ces villes s’appelle mTSP [5]. De même, il n’est pas toujours moins cher de prendre le lien direct du nœud 𝑖 au nœud 𝑘, parfois, il peut être moins cher de passer via le nœud j, et donc d’autres variantes qui jeu sur les contraintes du problème classique de TSP pour l’adapter avec les problèmes réelles de la vie, on distingue :  Profit Based : TSP avec Profits est une simplification du TSP traditionnel, où il n’est pas nécessaire de visiter tous les sommets. Chaque sommet est associé à un bénéfice prédéfini. L'objectif du problème est de trouver un trajet avec un profit collecté satisfaisant (maximisé) et le coût du chemin (minimisé).  Time Windows based : Le TSP avec fenêtre de temps (TSPTW) nécessite de trouver une visite à coût minimale en visitant toutes les villes exactement une fois, où chaque ville doit être visitée dans une fenêtre de temps donnée.  maximal based TSP : Le TSP maximum est équivalent au TSP minimum traditionnel, alors que le vendeur veut visiter chacune des villes exactement une fois et revenir à la ville de départ avec la distance maximale possible [6]. Les techniques utilisées pour le maximum Les TSP semblent utiles pour les nombreux problèmes combinatoires et géométriques.
  • 15. Chapitre 1 : Le problème du voyageur de commerce 15S.BENHMIRA S.MEJDAOUI 5. Domaine d’application du problème du voyageur de commerce Puisque nous nous intéressons au développement des méthodes algorithmiques pour la résolution de TSP dans le but de faciliter quelques types de tâches dans la vie réelle et surtout dans le monde industriels et électroniques, plusieurs applications pratiques [7] peuvent se modéliser directement avec le TSP ou l’une de ses variantes. 5.1 Forage de cartes de circuits imprimés Une application directe du TSP est le problème du forage dont la solution joue un rôle important dans la fabrication économique de cartes de circuits imprimés (PCB). Pour connecter un conducteur sur une couche avec un conducteur sur une autre couche, ou pour positionner (dans une étape ultérieure de la production de PCB) les broches des circuits intégrés, des trous doivent être percés à travers la carte. Les trous peuvent avoir des diamètres différents. Pour percer consécutivement deux trous de diamètres différents, la tête de la machine doit se déplacer vers une boîte des outils et changer l'équipement de forage. Cela prend beaucoup de temps. Ainsi, il est clair au départ qu'il faut choisir un certain diamètre, percer tous les trous du même diamètre, changer la perceuse, percer les trous du diamètre suivant, etc. Ainsi, ce problème de forage peut être vu comme une séquence d'instances TSP, une pour chaque diamètre de trou, où les ‘’villes’’ sont la position initiale et l'ensemble de tous les trous qui peuvent être percés avec un seul et même perceur. La «distance» entre deux villes est donnée par le temps qu'il faut pour déplacer la tête de forage d'une position à l'autre. Le but ici est de minimiser le temps de déplacement de la tête de la machine. 5.2 Routage de véhicule Supposons que dans une ville 𝑛 boîtes aux lettres doivent être vidées tous les jours dans une période de temps, disons 1 heure. Le problème est de trouver le nombre minimum de camions pour le faire et le temps le plus court pour les collectes en utilisant ce nombre de camions. Comme autre exemple, supposons que 𝑛 clients ont besoin de certaines quantités de certains produits et qu'un fournisseur doit satisfaire toutes les demandes avec un nombre de camions fixe. Le problème est de trouver une affectation des clients aux camions et un calendrier de livraison pour chaque camion afin que la capacité de chaque camion ne soit pas dépassée et que la distance totale de déplacement soit minimisée. Plusieurs variantes de ces deux problèmes, où les contraintes de temps et de capacité sont combinées, sont très utilisées dans de nombreuses applications du monde réel. Ce problème peut être résolu en tant que TSP
  • 16. Chapitre 1 : Le problème du voyageur de commerce 16S.BENHMIRA S.MEJDAOUI s'il n'y a pas de contraintes de temps et de capacité et si le nombre de camions est fixe (disons 𝑚). Dans ce cas, nous obtenons un problème de 𝑚 –voyageurs (mTSP). 5.3 Contrôle des mouvements du robot Pour fabriquer des pièces dans une usine, un robot doit effectuer une séquence d'opérations (perçage de trous de différents diamètres, découpe de bois, rabotage, etc.). La tâche consiste à déterminer une séquence des opérations nécessaires qui mène au temps de traitement global le plus court. Une difficulté dans cette application se pose parce qu'il y a des contraintes de priorité qui doivent être observées. Nous avons donc ici le problème de trouver le chemin hamiltonien le plus court (où les distances correspondent aux temps nécessaires au positionnement et aux changements d'outils possibles) qui satisfont certaines relations de préséance entre les opérations. 6. Conclusion Depuis 1972, le problème du voyageur de commerce était l’un des premiers problèmes prouvés comme un problème NP-difficile, par Karp. Des nouvelles techniques ont été développées pour résoudre le problème ou au moins pour y être appliquées afin de vérifier leurs efficacités. Parmi ces méthodes, on trouve celles qui donnent des solutions exactes, d’autres qui donnent des solutions approchées. Dans le chapitre suivant, nous allons expliquer les notions mathématiques de ce problème, et citer les différentes approches qui ont été développés pour le résoudre.
  • 17. Chapitre 2 : Les différentes approches d’optimisation 17S.BENHMIRA S.MEJDAOUI Chapitre 2 Les différentes approches d'optimisation Dans ce chapitre nous allons voir quelque notions sur l’optimisation combinatoire, et nous décrirons les algorithmes d’optimisation qui peuvent être réparties en deux grande classe : algorithme exacts (Séparation et évaluation…) et approchés (Algorithme évolutionnaire, recuit simulé …).
  • 18. Chapitre 2 : Les différentes approches d’optimisation 18S.BENHMIRA S.MEJDAOUI 1. Optimisation combinatoire 1.1 Définition Un « problème d’optimisation combinatoire » est un problème dont la résolution se ramène à l'examen d'un nombre fini de combinaisons (appelée aussi solutions). Bien souvent, cette résolution se heurte à une explosion de nombre de combinaisons à explorer. En mathématique, l’optimisation combinatoire recouvre toutes les méthodes qui permettent de déterminer l’optimum d’une fonction avec ou sans contraintes. Un Problème d‘Optimisation Combinatoire (POC) peut être défini comme suit:  Un ensemble de combinaisons ou de solutions 𝑋  Un ensemble de contraintes 𝐶  Un sous-ensemble 𝑆 de 𝑋 représentant les solutions admissibles (ou réalisables) qui vérifient les contraintes 𝐶  Une fonction de coût 𝑓 (fonction objectif) qui assigne à chaque solution 𝑠 ∈ 𝑆 une valeur 𝑓(𝑠)  Il s’agit de trouver une solution optimale (ou optimum global) 𝑠∗ ∈ 𝑆 qui optimise (minimise ou maximise) la fonction de coût 𝑓 𝑓( 𝑠∗) ≤ 𝑓( 𝑠𝑖), ∀ 𝑠𝑖 𝜖 𝑆 Soit 𝐷𝑖𝑠𝑡 une fonction qui mesure la distance entre deux solutions : 𝐷𝑖𝑠𝑡: 𝑆 × 𝑆 → 𝑅 Pour un problème de minimisation, si on veut trouver la distance minimale entre deux solutions dans l’ensemble de combinaisons possibles, il faut chercher à déterminer une solution 𝑠 qui minimise la fonction objective 𝐷𝑖𝑠𝑡. Un minimum est une solution qui fait partie des solutions réalisables dans le domaine d’optimisation, on distingue deux types de minimums :  Minimum Local : une solution 𝑠 est minimum local par rapport à une structure de voisinage 𝑁 si ∀𝑠 ′ ∈ N(s), 𝑓(𝑠) ≤ 𝑓(𝑠′) .  Minimum global : une solution 𝑠 est minimum global si ∀𝑠 ′ ∈ S , 𝑓(𝑠) ≤ 𝑓(𝑠′) .
  • 19. Chapitre 2 : Les différentes approches d’optimisation 19S.BENHMIRA S.MEJDAOUI  Voisinage : le voisinage est une fonction notée 𝑁 qui associe un sous ensemble de S à toute solution 𝑠, les voisins de 𝑠 sont 𝑠′ ∈ 𝑁(𝑠) 1.2 Résolution d’un problème d’optimisation combinatoire Résoudre un problème d’optimisation combinatoire nécessite l’étude des points suivants : 1. Définir l’ensemble des solutions 𝑋 2. Exprimer l’ensemble des contraintes du problème 𝐶 afin de définir l’ensemble des solutions réalisables 𝑆 3. Exprimer la fonction objective 𝑓 à optimiser 4. Choisir la méthode de résolution à utiliser  Les trois premiers points concernent la modélisation du problème, le dernier point sa résolution. A chaque problème d’optimisation on peut associer un problème de décision (est un problème dont la solution est formulé en termes de Oui / Non) dont le but est de déterminer s’il existe une solution pour laquelle la fonction objective soit optimale. La complexité d’un problème d’optimisation est liée à celle du problème de décision qui lui associé. En particulier, si le problème de décision est NP-complet, alors le problème d’optimisation est dit NP-difficile. Optimum Global Solutions Réalisables FonctionObjective Figure 4: Exemple de l’optimum global et local figure 4
  • 20. Chapitre 2 : Les différentes approches d’optimisation 20S.BENHMIRA S.MEJDAOUI 1.3 Classification des méthodes de résolution La majorité des problèmes d'optimisation combinatoire sont des problèmes NP- difficiles et donc ils ne possèdent pas à ce jour un algorithme efficace, valable de trouver la solution optimale en un temps raisonnable. Ceci a motivé les chercheurs à développer de nombreuses méthodes de résolution en recherche opérationnelle et en intelligence artificielle, la recherche s’est d'abord orientée vers des heuristiques spécifiques aux problèmes, elle s’est progressivement intéressée aux méthodes plus générales, c'est à dire les métaheuristiques. Ces méthodes de résolution peuvent être réparties en deux grandes classes :  Méthodes exactes : Les méthodes exactes ont permis de trouver des solutions optimales pour des problèmes de taille raisonnable et rencontrent généralement des difficultés face aux applications de taille importante.  Méthodes approchées : Elles permettent de trouver une bonne solution, pas forcément optimale, dans un temps raisonnable. 2. Les méthodes de résolution exactes Le principe des méthodes exactes consiste généralement à énumérer, souvent de manière implicite, l'ensemble des solutions dans le but de trouver la solution optimale, elle présente comme avantage la certitude de trouver la solution optimale, mais par contre son inconvénient se manifeste dans le temps d’exécution qui est exagéré. 2.1 La méthodes de séparation et évaluation L’algorithme de séparation et évaluation, plus connu sous son appellation anglaise Branch and Bound (B&B) repose sur une méthode arborescente de recherche d’une solution Méthodes Exactes Méthodes Approchées Séparation et Evaluation Programmation Linéaire Programmation Dynamique Heuristiques Méta-heuristiques Figure 5: Classification des méthodes de résolution figure 5
  • 21. Chapitre 2 : Les différentes approches d’optimisation 21S.BENHMIRA S.MEJDAOUI optimale par séparations et évaluations, en représentant les états solutions par un arbre d’états, avec des nœuds, et des feuilles.  L’évaluation L’évaluation permet de réduire l’espace de recherche en éliminant quelques sous- ensembles qui ne contiennent pas la solution optimale. L’objectif est d’essayer d’évaluer l’intérêt de l’exploration d’un sous-ensemble de l’arborescence. Le branch-and-bound utilise une élimination de branches dans l’arborescence de recherche de la manière suivante : La recherche d’une solution de coût minimal, consiste à mémoriser la solution de plus bas coût trouvé pendant l’exploration, et à comparer le coût de chaque nœud parcouru à celui de la meilleure solution. Si le coût du nœud considéré est supérieur au meilleur coût, on arrête l’exploration de la branche et toutes les solutions de cette branche seront nécessairement de coût plus élevé que la meilleure solution déjà trouvée.  La séparation La séparation consiste à diviser le problème en sous-problèmes. Ainsi, en résolvant tous les sous-problèmes et en gardant la meilleure solution trouvée, on est assuré d’avoir résolu le problème initial. Cela revient à construire un arbre permettant d’énumérer toutes les solutions. L’ensemble de nœuds de l’arbre qu’il reste encore à parcourir comme étant susceptibles de contenir une solution optimale, c’est-à-dire encore à diviser, est appelé ensemble des nœuds actifs. 3. Les méthodes de résolution heuristiques et méta- heuristiques Une heuristique est un algorithme approché qui permet d’identifier en temps raisonnable au moins une solution réalisable rapide, pas obligatoirement optimale. L’usage d’une heuristique est efficace pour calculer une solution approchée d’un problème et ainsi accélérer le processus de résolution exacte. Généralement une heuristique est conçue pour un problème particulier en s’appuyant sur sa structure propre sans offrir aucune garantie sur la qualité de la solution calculée. Les heuristiques rencontrent des difficultés pendant la recherche d’une solution réalisable de bonne qualité pour des problèmes d’optimisation difficiles, d’où les
  • 22. Chapitre 2 : Les différentes approches d’optimisation 22S.BENHMIRA S.MEJDAOUI métaheuristiques ont fait leur apparition. Ces algorithmes sont plus complets et complexes qu’une simple heuristique, et permettent généralement d’obtenir une solution de très bonne qualité pour des problèmes difficiles dont on ne connait pas de méthodes efficaces pour les résoudre ou bien quand la résolution du problème nécessite un temps élevé ou une grande mémoire de stockage. La plupart des métaheuristiques utilisent des processus aléatoires et itératifs comme moyens d’explorer l’espace de recherche et de faire face à des problèmes comme l’explosion combinatoire (qui rend la solution très difficile). Une métaheuristique peut être adaptée pour différents types de problèmes, tandis qu’une heuristique est utilisée à un problème donné. Plusieurs d’entre elles sont souvent inspirées des systèmes naturels dans de nombreux domaines tels que : la biologie (algorithmes évolutionnaires et génétiques) la physique (recuit simulé), et aussi l’éthologie (algorithmes de colonies de fourmis). Les métaheuristiques peuvent être classées de nombreuses façons. On peut distinguer celles qui travaillent avec une population de solutions de celles qui ne manipulent qu’une seule solution à la fois. Les méthodes qui tentent itérativement d’améliorer une solution sont appelées méthodes de recherche locale ou méthodes de trajectoire. Ces méthodes construisent une trajectoire dans l’espace des solutions en tentant de se diriger vers des solutions optimales. Les exemples les plus connus de ces méthodes sont : La recherche Tabou et le Recuit Simulé. Les algorithmes génétiques, l’optimisation par essaim de particules et Les algorithmes de colonies de fourmis présentent les exemples les plus connus des méthodes qui travaillent avec une population. Le principe d’intensification et de diversification est un point critique pour tout métaheuristique, communes à toutes ces approches heuristiques, il consiste à trouver un compromis entre les deux tendances duales suivantes :  L’intensification : vise à diriger l’effort de recherche aux alentours des meilleures combinaisons trouvées.  La diversification : vise à garantir un bon échantillonnage de l’espace de recherche.
  • 23. Chapitre 2 : Les différentes approches d’optimisation 23S.BENHMIRA S.MEJDAOUI 3.1 Le recuit simulé Le recuit simulé (SA - simulated annealing) a été introduit par (Kirkpatrik et al. 1983) et (Cerný 1985) comme une méthode de recherche locale normale, utilisant une stratégie pour éviter les minima locaux. Le principe du recuit simulé est de parcourir de manière itérative l’espace des solutions. On part avec une solution notée 𝑠0 initialement générée de manière aléatoire dont correspondent une énergie initiale 𝐸0 et une température initiale 𝑇0 généralement élevée. A chaque itération de l’algorithme, un changement élémentaire est effectué sur la solution, cette modification fait varier l’énergie du système ∆E. Si cette variation est négative (la nouvelle solution améliore la fonction objective, et permet de diminuer l’énergie du système), elle est acceptée. Si la solution trouvée est moins bonne que la précédente alors elle sera acceptée avec une probabilité 𝑃. Solution unique Solution à population Recuit Simulé Recherche Taboue Algorithme Génétique Colonies des Fourmis Méta-heuristiques Essaimes particulaires Figure 6: Classification des méthodes métaheuristiques figure 6 𝟏. 𝐸𝑛𝑔𝑒𝑛𝑑𝑟𝑒𝑟 𝑢𝑛𝑒 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑖𝑛𝑖𝑡𝑖𝑎𝑙𝑒 𝑆0 𝑑𝑒 𝑆 𝑆 ⇽ 𝑆0 𝟐. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑙𝑎 𝑡𝑒𝑚𝑝é𝑟𝑎𝑡𝑢𝑟𝑒 𝑇 𝟑. 𝒓é𝒑é𝒕𝒆𝒓 𝟒. 𝐸𝑛𝑔𝑒𝑛𝑑𝑟𝑒𝑟 𝑢𝑛 𝑣𝑜𝑖𝑠𝑖𝑛 𝑎𝑙é𝑎𝑡𝑜𝑖𝑟𝑒 𝑆′ 𝑑𝑒 𝑆 𝟓. 𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟 ∆𝐸 = 𝑓 ( 𝑆′ ) − 𝑓 ( 𝑆 ) 𝟔. 𝑺𝒊 ∆𝐸 ≤ 0 𝑎𝑙𝑜𝑟𝑠 𝑆 ← 𝑆′ 𝟕. 𝑺𝒊𝒏𝒐𝒏 𝑎𝑐𝑐𝑒𝑝𝑡𝑒𝑟 𝑆′ 𝑐𝑜𝑚𝑚𝑒 𝑙𝑎 𝑛𝑜𝑢𝑣𝑒𝑙𝑙𝑒 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑎𝑣𝑒𝑐 𝑙𝑎 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡é 𝑃 8. 𝐹𝑖𝑛 𝑠𝑖 𝟗. 𝑀𝑒𝑡𝑡𝑟𝑒 𝑇 À jours 𝟏𝟎. 𝑱𝒖𝒔𝒒𝒖’à 𝑙𝑎 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 𝑑’𝑎𝑟𝑟ê𝑡 𝟏𝟏. 𝑅𝑒𝑡𝑜𝑢𝑟𝑛𝑒𝑟 𝑙𝑎 𝑚𝑒𝑖𝑙𝑙𝑒𝑢𝑟𝑒 𝑐𝑜𝑛𝑓𝑖𝑔𝑢𝑟𝑎𝑡𝑖𝑜𝑛 𝑡𝑟𝑜𝑢𝑣é Algorithme 1: Recuit simulé figure 7
  • 24. Chapitre 2 : Les différentes approches d’optimisation 24S.BENHMIRA S.MEJDAOUI 3.2 Colonie de fourmis (ACO : Ant Colony Optimization) Les algorithmes de colonies de fourmis ont été proposés par Colorni, Dorigo et Maniezzo en 1992 et appliquées la première fois au problème du voyageur de commerce. Ce sont des algorithmes itératifs à population où tous les individus partagent un savoir commun qui leur permet d’orienter leurs futurs choix et d’indiquer aux autres individus des choix à suivre ou à éviter. Le principe de cette métaheuristique repose sur le comportement particulier des fourmis, elles utilisent pour communiquer une substance chimique volatile particulière appelée phéromone. En quittant leur nid pour explorer leur environnement à la recherche de la nourriture, les fourmis arrivent à élaborer des chemins qui s’avèrent fréquemment être les plus courts pour aller du nid vers une source de nourriture. Chaque fourmi dépose alors une quantité de phéromones sur ces pistes qui deviendront un moyen de communication avec leurs congénères, les fourmis choisissent ainsi avec une probabilité élevée les chemins contenant les plus fortes concentrations de phéromones à l’aide des récepteurs situés dans leurs antennes. Lorsqu’une fourmi doit prendre de décision sur la direction à prendre, elle doit choisir le chemin ayant la plus forte concentration en phéromone, c'est-à-dire la décision dépend de la probabilité de transition d’un emplacement à une autre. Cette probabilité dépend de la concentration en phéromone. La décision à prendre une fourmi pour construire une solution dépend de deux facteurs : Facteur de visibilité noté 𝜂 𝑑 où d est la décision à prendre, ce facteur représente l’apport qu’a la fourmi lorsque elle prend une décision, Facteur de trace noté 𝜏 𝑑 où 𝑑 est la décision à prendre, cette trace représente l’apport historique qu’a la fourmi lorsque elle prend la décision. Plus cette valeur est grande, plus il a été intéressant dans le passé de prendre cette décision. 1. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒 𝑑𝑒 𝑙𝑎 𝑝ℎé𝑟𝑜𝑚𝑜𝑛𝑒 𝜏 𝑑 à 0 𝑝𝑜𝑢𝑟 𝑡𝑜𝑢𝑡𝑒 𝑑é𝑐𝑖𝑠𝑖𝑜𝑛 𝑑. 2. 𝑻𝒂𝒏𝒕𝑸𝒖𝒆 (𝐶𝑟𝑖𝑡è𝑟𝑒 𝑑’𝑎𝑟𝑟ê𝑡 𝑛𝑜𝑛 𝑎𝑡𝑡𝑒𝑖𝑛𝑡𝑒) 𝑭𝒂𝒊𝒓𝒆 3. 𝑷𝒐𝒖𝒓 𝐶ℎ𝑎𝑞𝑢𝑒 𝑓𝑜𝑢𝑟𝑚𝑖 𝑘 𝜖 𝐾 𝑭𝒂𝒊𝒓𝒆 4. 𝐶𝑜𝑛𝑠𝑡𝑟𝑢𝑖𝑟𝑒 𝑢𝑛𝑒 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑒𝑛 𝑡𝑒𝑛𝑎𝑛𝑡 𝑐𝑜𝑚𝑝𝑡𝑒 𝑑𝑒 𝑙𝑎 𝑣𝑖𝑠𝑖𝑏𝑖𝑙𝑖𝑡é 𝑒𝑡 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒 5. 𝑀𝑒𝑡𝑡𝑟𝑒 à 𝑗𝑜𝑢𝑟 𝑙𝑎 𝑡𝑟𝑎𝑐𝑒 𝜏 𝑑 𝑎𝑖𝑛𝑠𝑖 𝑞𝑢𝑒 𝑙𝑎 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑡𝑟𝑜𝑢𝑣é𝑒 6. 𝑭𝒊𝒏𝒑𝒐𝒖𝒓 7. 𝑭𝒊𝒏𝑻𝒂𝒏𝒕𝑸𝒖𝒆 Algorithme 2: Colonie de fourmis figure 8
  • 25. Chapitre 2 : Les différentes approches d’optimisation 25S.BENHMIRA S.MEJDAOUI 3.3 Essaim de particules (PSO : Particule Swarm Optimization) L’optimisation par Essaim Particulaire (OEP, ou PSO en anglais) a été proposée par (Kennedy et Eberhart 1995). Cette méthode est inspirée du comportement social des animaux évoluant en essaim. Un essaim est un ensemble de particules positionnées dans l'espace de définition de la fonction objectif. Le principe de l'algorithme consiste à déplacer ces particules dans l'espace de définition afin de trouver la solution optimale. Une particule est caractérisée par plusieurs attributs:  sa position actuelle: c'est-à-dire ses coordonnées dans l'ensemble de définition et la valeur de la fonction objective lui correspondant.  sa meilleure position : c’est la valeur obtenue par la particule et ses coordonnées.  sa vitesse: cette donnée, recalculée à chaque itération de l'algorithme permet de déduire la position suivante de la particule. Elle est fonction de la meilleure position de la particule depuis le début de la recherche, du voisin le mieux positionné à l'instant actuel et de la vitesse précédente de la particule.  ses voisins: c'est un ensemble de particules qui influe sur ses déplacements, en particulier celui qui est le mieux positionné. Le principe de l'optimisation par essaim particulaire a notamment été conçu à partir de modèles sociaux. En effet, chacune des particules agit en fonction de sa propre expérience et de celle de ses voisins. Pour se déplacer elle prend en compte son histoire (sa meilleure position) et est attirée par la meilleure particule actuelle de son voisinage. Les particules sont dans un premier temps placées aléatoirement dans l'ensemble de définition de la fonction objectif. Ensuite on calcule pour chacune de ses particules leur vitesse. Dans ce but, on mémorise leur meilleure position depuis le début et on recherche celle de ses voisins les plus proches à cet instant-là. 𝑉𝑘+1 = 𝜔 × 𝑉𝑘 + 𝑐1 × (𝑏𝑒𝑠𝑡 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 − 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒) + 𝑐2 × (𝑏𝑒𝑠𝑡 𝑣𝑜𝑖𝑠𝑖𝑛 − 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒) Où : 𝑉𝑘+1 et 𝑉𝑘 sont les vitesses de la particule aux itérations k et k+1. 𝑏𝑒𝑠𝑡 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 : La meilleure position de la particule.
  • 26. Chapitre 2 : Les différentes approches d’optimisation 26S.BENHMIRA S.MEJDAOUI 𝑏𝑒𝑠𝑡 𝑣𝑜𝑖𝑠𝑖𝑛 : Est la meilleure position d'un voisin à l'itération k. 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒 ∶ Est la position de la particule à l’itération k. 𝜔, 𝑐1 et 𝑐2 sont des coefficients fixés au début du programme ou générés aléatoirement. Ensuite, on peut déterminer la position suivante de la particule grâce à la vitesse que l’on vient de calculer : 𝑋 𝑘+1 = 𝑋 𝑘 + 𝑉𝑘+1 Où : 𝑋 𝑘 est la position de la particule à l'itération k. 𝑋0 ∶ Est générée aléatoirement. 𝑉0 : Est nulle. 1. 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑠𝑒𝑟 𝑎𝑙é𝑎𝑡𝑜𝑖𝑟𝑒𝑚𝑒𝑛𝑡 𝑃𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠 ∶ 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑒𝑡 𝑣𝑖𝑡𝑒𝑠𝑠𝑒; 2. 𝐸𝑣𝑎𝑙𝑢𝑒𝑟 𝑙𝑒𝑠 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛𝑠 𝑑𝑒𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠; 3. 𝑻𝒂𝒏𝒕 𝒒𝒖𝒆 𝑙𝑒 𝑐𝑟𝑖𝑡è𝑟𝑒 𝑑’𝑎𝑟𝑟ê𝑡 𝑛’𝑒𝑠𝑡 𝑝𝑎𝑠 𝑎𝑡𝑡𝑒𝑖𝑛𝑡 𝒇𝒂𝒊𝒓𝒆 4. 𝑷𝒐𝒖𝒓 𝒊 = 𝟏, … , 𝑷𝒔 𝒇𝒂𝒊𝒓𝒆 5. 𝐷é𝑝𝑙𝑎𝑐𝑒𝑟 𝑙𝑒𝑠 𝑝𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑒𝑠 𝑠𝑒𝑙𝑜𝑛 𝑙𝑒𝑠 é𝑞𝑢𝑎𝑡𝑖𝑜𝑛𝑠 𝑑é𝑓𝑖𝑛𝑖𝑡 𝑎𝑢 − 𝑑𝑒𝑠𝑠𝑢𝑠 ; 6. 𝑺𝒊 𝑓( 𝑥𝑖) < 𝑓(𝑝𝑖) 7. 𝑝𝑖 = 𝑥𝑖; 8. 𝑺𝒊 𝑓( 𝑥𝑖) < 𝑓(𝑝 𝑔) 9. 𝑝 𝑔 = 𝑥𝑖; 10. 𝑭𝒊𝒏 𝑺𝒊 11. 𝑭𝒊𝒏 𝑺𝒊 12. 𝑭𝒊𝒏 𝑷𝒐𝒖𝒓 13. 𝑭𝒊𝒏 𝑻𝒂𝒏𝒕 𝒒𝒖𝒆 Algorithme 3: Essaimes de particules figure 9
  • 27. Chapitre 3 : les algorithmes génétiques 27S.BENHMIRA S.MEJDAOUI Chapitre 3 Les algorithmes génétiques Dans ce chapitre nous allons présenter le contexte historique de cet algorithme, puis nous allons expliquer en détail son principe de fonctionnement (codage des chromosomes, sélection, croisement, mutation ….).
  • 28. Chapitre 3 : les algorithmes génétiques 28S.BENHMIRA S.MEJDAOUI 1. Contexte historique L'évolution décrit le processus par lequel les différentes espèces et les organismes vivants ont été changés au cours du temps, impliquant généralement leur adaptation progressive à un nouvel environnement ou des changements à leur environnement actuel. Elle a été, depuis longtemps, objet de discussions dans de nombreux domaines, de la science à la religion et même à la philosophie, car le genre humain désire découvrir et déterminer non seulement leur propre histoire, mais celle de tous ce qui l’entoure. « L'origine des espèces » de Charles Darwin [12] reste au cœur de ce concept comme l'une des premières théories ayant été présentées. La théorie de Darwin décrit le processus de la sélection naturelle, dans lequel les populations gardent des traits favorables tout en rejetant les caractéristiques indésirables des générations futures, résultant de la compétition entre ou au sein des espèces où les individus les plus aptes ont un taux de survie plus élevé, et peuvent transmettre leurs gènes qui contiennent ces traits avantageux pour la survie. L'idée de créer des outils basés sur l'évolution qui pourraient être utilisés pour optimiser les solutions des problèmes d'ingénierie est commencée vers le milieu du 20éme siècle. Le concept était de faire évoluer une population de solutions candidates en simulant des variations génétiques et la sélection naturelle. Pendant ce temps, quelques algorithmes inspirés de l'évolution ont été développés par plusieurs chercheurs. L’un des chercheurs les plus importants dans le développement et la popularisation des algorithmes génétiques était John Holland, qui étudiait le processus d'adaptation dans la nature et comment il pouvait être utilisé dans la programmation, avec ses étudiants et ses collègues de l'Université du Michigan dans les années 1960 et les années 1970. Holland a publié un livre en 1975 intitulé « Adaptation dans les systèmes naturels et artificiels » [13] qui contenait une grande partie de son travail présenté de manière détaillée et systématique afin d'établir la présence et les possibilités des algorithmes génétiques, ainsi que de présenter les nouveaux concepts de simulation de l'évolution et les processus de sélection naturelle comme un outil pour résoudre les problèmes grâce à des programmes informatiques adaptatifs utilisant la sélection, le croisement et les mutations. Son travail s'est avéré être une innovation utilisée comme une base de presque tous les travaux ultérieurs dans le domaine des algorithmes génétiques [16].
  • 29. Chapitre 3 : les algorithmes génétiques 29S.BENHMIRA S.MEJDAOUI 2. aperçu de l’algorithme génétique Puisque les algorithmes génétiques sont conçus pour simuler un processus biologique, une grande partie de la terminologie pertinente est empruntée à la biologie. Cependant, les entités auxquelles cette terminologie fait référence dans les algorithmes génétiques sont beaucoup plus simples que leurs homologues biologiques [14]. Les composants de base communs à presque tous les algorithmes génétiques sont :  Une fonction objective (fitness) à optimiser  Une population de chromosomes  Sélection des chromosomes qui se reproduiront  Croisement pour produire la prochaine génération de chromosomes  Mutation sur des chromosomes de nouvelle génération La fonction fitness est la fonction que l'algorithme tente à optimiser [14]. Le mot "fitness" est tiré de la théorie de l'évolution. Il est utilisé ici parce que cette fonction nous permet de tester et quantifier l'adéquation de chaque solution potentielle. La fonction fitness est l'une des parties les plus importantes de l'algorithme. Le terme chromosome fait référence à une ou plusieurs valeurs numériques qui représentent une solution possible au problème que l'algorithme génétique tente de résoudre [14]. Chaque solution candidate est codée sous la forme d'un tableau de valeurs, le processus que l'on trouve également dans d'autres algorithmes d'optimisation [15]. Il revient à l’utilisateur de l'algorithme génétique de concevoir comment traduire l'espace échantillon des solutions possibles en chromosomes. Une approche consiste à convertir chaque valeur de paramètre en une chaîne de bits (séquence de 1 et de 0), puis à concaténer les paramètres comme des gènes de bout en bout dans un ADN pour créer les chromosomes. Historiquement, les chromosomes étaient généralement codés de cette façon, et il reste une méthode appropriée pour les espaces de solution discrète. Les ordinateurs modernes permettent aux chromosomes d'inclure des permutations, des nombres réels et de nombreux autres objets; mais pour l'instant et pour bien comprendre le fonctionnement de l’algorithme génétique nous allons nous concentrer sur les chromosomes binaires.
  • 30. Chapitre 3 : les algorithmes génétiques 30S.BENHMIRA S.MEJDAOUI Un algorithme génétique commence avec un nombre aléatoire de chromosomes, qui sert de première génération (population initiale). Ensuite, chaque chromosome de la population est évalué par la fonction de fitness pour tester son adaptation dans la résolution du problème. L’opérateur de sélection choisit certains chromosomes pour la reproduction en se basant sur une probabilité définit par l’utilisateur. Le chromosome le plus adapté est celui qui a plus de chance d’être sélectionné. Par exemple si 𝑓 une fonction d’adaptation non négative, alors la probabilité qu’un chromosome 𝐶𝑖 soit sélectionné est donnée par : 𝑃( 𝐶𝑖) = 𝑓( 𝐶𝑖) ∑ 𝑓( 𝐶𝑗) 𝑁 𝑝𝑜𝑝 𝑗=1 Notez que l'opérateur de sélection choisit les chromosomes avec remplacement, donc le même chromosome peut être choisi plusieurs fois. L'opérateur de croisement ressemble au croisement biologique et à la recombinaison des chromosomes dans la cellule. Cet opérateur échange une sous-séquence de deux des chromosomes choisis pour créer deux descendants. Par exemple, si les chromosomes parentaux : [1101|0111001000] et [0101|1101010010] Sont croisés après le quatrième bit, alors [0101|0111001000] et [1101|1101010010] Seront leurs deux fils. L'opérateur de mutation inverti aléatoirement deux bit d’un individu et nous donne un nouveau chromosome (remplacer 0 par 1 et vice versa). Dans un premier temps l’opérateur de mutation semble inutile. En effet, il joue un rôle important même s'il est secondaire à ceux de la sélection et du croisement, la sélection et le croisement gardent l’information génétique des chromosomes les mieux adaptés, mais ces chromosomes ne sont plus performants que par rapport à la génération courante. Cela peut entrainer à une convergence trop rapide de l’algorithme et la perte d’une gêne potentielle qui peut être utile dans le déroulement de l’algorithme. En d’autre terme l'algorithme peut rester bloqué à un optimum local avant de trouver l'optimum global [15]. L'opérateur de mutation aide à protéger contre ce problème en
  • 31. Chapitre 3 : les algorithmes génétiques 31S.BENHMIRA S.MEJDAOUI assurant la diversité dans la population, mais il peut aussi faire converger l'algorithme plus lentement. Maintenant la seconde génération est évaluée avec la fonction fitness, et ce cycle va se répéter. Il est recommandé de sauvegarder le chromosome le mieux adapté (qui a une fitness optimal) pour chaque génération. L’algorithme est itéré jusqu’à ce que la valeur fitness du chromosome le mieux adapté se stabilise et ne change pas pendant de nombreuse générations. Cela signifie que l’algorithme est convergé vers une solution(s). La performance d'un algorithme génétique dépend fortement de la méthode utilisée pour coder les solutions candidates dans les chromosomes et de ce que la fonction de fitness mesure réellement [16]. D'autres détails importants sont la probabilité de croisement, la probabilité de mutation, la taille de la population et le nombre d'itérations. Ces valeurs peuvent être ajustées après avoir évalué les performances de l'algorithme sur quelques essais. Les algorithmes génétiques sont utilisés dans diverses applications. Quelques exemples importants sont la programmation et l'apprentissage automatique. Ils sont également bien adaptés à la modélisation des phénomènes en économie, écologie, système immunitaire humain, génétique des populations et systèmes sociaux. Bref, on peut générer un processus à suivre lors de l’utilisation de l’AG pour la résolution de n’importe quel problème d’optimisation : 1. Initialiser la population initiale 𝑃( 𝑡) 2. Evaluer 𝑃( 𝑡) 3. TantQue (Critère d’arrêt non atteint) Faire 4. 𝑃( 𝑡 + 1) ← Sélection des parents dans 𝑃( 𝑡) 5. 𝑃( 𝑡 + 1) ← Appliquer Croissement et Mutation sur 𝑃( 𝑡 + 1) 6. 𝑃( 𝑡 + 1) ← Remplacer P(t) par 𝑃( 𝑡 + 1) 7. Evaluer 𝑃( 𝑡) 8. FinTantQue Algorithme 4 : Algorithme Génétique figure 10
  • 32. Chapitre 3 : les algorithmes génétiques 32S.BENHMIRA S.MEJDAOUI Il nous reste un dernier point à discuter, c’est le critère de convergence, ce dernier ne prend pas une forme spécifique, selon le problème traité et la conception du programmeur, le critère de convergence peut être de nature diverse, par exemple :  Un taux minimum qu'on désire atteindre d'adaptation de la population au problème.  Un certain temps de calcul à ne pas dépasser.  Un nombre d’itérations maximum. Dans la section suivante, nous allons traiter en détails tous les paramètres et opérateurs utilisés dans les algorithmes génétiques, mais seulement dans le cas des chromosomes binaires, le cas des chromosomes discrets et ses différents types de représentations, on va également les citer et expliquer en détails dans le chapitre 4. 3. Etapes de l’algorithme génétique Le principe de l’algorithme génétique est extrêmement simple, la première étape consiste à générer une population de solutions potentielles (chromosomes) initiales, arbitrairement choisies, ensuite nous évaluons leurs performances (Fitness) relatives. Sur la base de ces performances, nous sélectionnons les individus par une méthode de sélection. Les opérateurs génétiques (croisement, mutation) seront appliqués sur ces individus selon les probabilités Pc, Pm. Ces deux opérateurs permettent la génération d’une nouvelle population d’individus qui ont de bonnes chances d’être plus forts que ceux de la génération précédente. Les individus résultant de l’étape de mutation seront insérés et remplacés par une méthode d’insertion dans la nouvelle population. Pour chaque nouvelle génération, la puissance des individus de la population agrandit et, à la fin, pour décider quand arrêter l’algorithme, un test d’arrêt sera effectué. La figure 7 présente un schéma de fonctionnement général de l’algorithme génétique.
  • 33. Chapitre 3 : les algorithmes génétiques 33S.BENHMIRA S.MEJDAOUI 3.1 Codage des chromosomes Le codage des chromosomes ou la création d’une solution (chromosome) est la première étape dans la réalisation des AGs. Le codage est une tâche fondamentale. Son rôle consiste à passer des données réelles du problème proposé aux données traitées par l’algorithme génétique. La structure de données, traditionnellement utilisée, est un tableau appelé aussi vecteur. Avant de générer la population initiale des individus représentés par des chromosomes, il faut d’abord définir un système de codage adéquat. Le choix du codage d’un chromosome est très important : il peut rendre un algorithme génétique plus ou moins efficace. Plusieurs types de codage sont utilisés pour coder les individus, chaque type est propre à un tel ou tel problème donné. Génération de la population initiale Evaluation Sélection pour la reproduction Croisement et Mutation Insertion Nouvelle population Figure 7: Schéma générale d’un algorithme génétique figure 11
  • 34. Chapitre 3 : les algorithmes génétiques 34S.BENHMIRA S.MEJDAOUI 3.1.1 Codage Binaire Ce type de codage utilise l’alphabet binaire (0,1) pour représenter les différentes solutions. Dans le sens où, les gènes sont représentés par des bits et les chromosomes sont représentés par des chaines de bits, la population est constituée des individus représentés par des tableaux de chromosomes. Un inconvénient à ce type de codage qui entraîne certains problèmes est que ce codage est généralement peu naturel par rapport à un problème donné. 3.1.2 Codage réel ou entier Contrairement au codage binaire, le codage réel est destiné à modéliser des problèmes de type continu. Il représente les solutions par des suites de type réel, comme le montre la figure 9. De même, le codage entier ou discret est un type spécial du codage réel utilisant des entiers au lieu des réels (Figure 10). 3.1.3 Codage à caractères multiples Une autre manière de coder les chromosomes d’un algorithme génétique est le codage à l’aide de caractères multiples. Souvent, ce type de codage est plus naturel que le codage binaire. C’est d’ailleurs celui-ci qui est utilisé dans de nombreux cas poussés d’algorithmes génétiques. Figure 8 : Codage binaire d'un chromosome. figure 12 Figure 9 : Codage réel d’un chromosome. figure 13 Figure 10 : Codage entier d’un chromosome. figure 14 Figure 11: Codage à caractère d’un chromosome. figure 15 0 1 1 0 0 0 1 0.56 1.12 5.00 4.07 74.82 11.14 1.21 6 2 45 7 22 12 1 M S , L ? B _
  • 35. Chapitre 3 : les algorithmes génétiques 35S.BENHMIRA S.MEJDAOUI 3.2 Création de la population initiale Plusieurs mécanismes de génération de la population initiale sont utilisés dans la littérature. Le choix de l’initialisation se fera en fonction des connaissances que l’utilisateur a sur le problème. S’il n’a pas d’informations particulières, alors une initialisation aléatoire, la plus uniforme possible afin de favoriser une exploration de l’espace de recherche maximum, sera la plus adaptée. Par ailleurs, cette étape présente un problème principal qui est celui de choix de la taille de la population. En effet une taille de population trop grande augmente le temps de calcul et nécessite un espace mémoire considérable, alors qu’une taille de population trop petite conduit à l’obtention d’un optimum local [8]. 3.3 Evaluation des individus Afin d'effectuer une sélection naturelle, chaque individu est évalué en fonction de sa valeur de performance, déterminée par une fonction d'évaluation ou fonction fitness. Cette valeur mesure la qualité des solutions et permet de les comparer. Le choix des meilleurs individus se fait grâce au résultat fourni par la fonction d’adaptation. Le choix de la fonction de fitness retenue est important et dépend du problème à résoudre et de l’espace de recherche qui en découle. Cette fonction, propre au problème, est souvent simple à formuler lorsqu’il y a peu de paramètres. Au contraire, lorsqu’il y a beaucoup de paramètres ou lorsqu’ils sont liés entre eux, elle est plus difficile à définir, et donc c'est le rôle de l'utilisateur de penser à la façon dont cette fonction est configurée pour répondre au besoin de problème. 3.4 Les opérateurs génétiques Une fois que la population initiale est créée et nous avons finis d’évaluer ses individus, nous allons appliquer les opérateurs génétiques pour générer de nouveaux individus ‘fils’ qui seront la nouvelle génération de notre population, et nous espérons que certains entre eux seront les meilleures solutions à notre problème. La sélection, le croisement et la mutation sont les trois opérateurs les plus importants et les plus communs dans un AG. Premièrement nous commençons par sélectionner les individus qui vont se reproduire (Croisement) puis mutés (Mutation) pour donner cette nouvelle génération. 3.4.1 Opérateur de sélection Comme son nom l'indique, la sélection nous permet de garder les individus relativement performants afin qu’ils se reproduisent, en se basant sur l’évaluation précédemment établie qui a identifié les meilleurs individus dans la population. Alors, le principe est clair ; sélectionner une sous-population à partir de la population parente, éliminer les individus les moins
  • 36. Chapitre 3 : les algorithmes génétiques 36S.BENHMIRA S.MEJDAOUI 28% 18%33% 6% 15% P1 P2 P3 P4 P5 performants, et générer à leur place les plus performants, simulant ainsi le schéma de la sélection naturelle de Darwin. Plusieurs stratégies de sélection ont été mises en place. Voici quelques-unes de ces méthodes : 3.4.1.1 Sélection par Roulette La sélection par Roulette (Roulette Wheel Selection) introduit par Goldberg [1989] est la plus connue et la plus utilisée. Elle consiste à associer à chaque individu un segment (ou case de la roue) dont la longueur est proportionnelle à sa performance comme l'illustre la Figure 12. La roue étant lancée, l'individu sélectionné est celui sur lequel la roue s'est arrêtée. Cette méthode favorise les meilleurs individus, en effet, si un individu est bien plus performant que les autres, il sera sélectionné plusieurs fois et donc on peut tomber dans un manque de diversité du problème, mais avec cette méthode généralement, tous les individus conservent néanmoins des chances d'être sélectionnés. Si la population d’individus est de taille égale à N, alors la probabilité de sélection d’un individu 𝑥𝑖 notée 𝑃(𝑥𝑖) est égale à : 𝑃( 𝑥𝑖) = 𝑓(𝑥 𝑖) ∑ 𝑓(𝑥 𝑖)𝑛 𝑖=1 où 𝑓( 𝑥) est la fonction d’adaptation. Garder P2 comme parent Chromosome Fitness P1 28 P2 18 P3 33 P4 6 P5 15 Figure 12: La sélection par la méthode de Roulette figure 16
  • 37. Chapitre 3 : les algorithmes génétiques 37S.BENHMIRA S.MEJDAOUI 3.4.1.2 La sélection par Rang La sélection par roulette présente des inconvénients lorsque la valeur d’évaluation des individus varie énormément. En effet, on risquerait d’atteindre une situation de stagnation de l’évolution. Imaginons le cas où 90% de la roulette est allouée à l’individu qui a la meilleure évaluation, alors les autres individus auront une probabilité très faible d’être sélectionnés. 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 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 [17]. 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 ci-dessous 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. Chromosomes 1 2 3 4 5 6 Total Probabilités initiales 89% 5% 1% 4% 3% 2% 100% Rang 6 5 1 4 3 2 21 Probabilités finales 29% 24% 5% 19% 14% 9% 100% 3.4.1.3 La sélection par Tournois La sélection par tournoi est l’une des sélections les plus utilisées dans les algorithmes génétiques, grâce à son efficacité et sa simple implémentation. Le principe consiste à choisir un sous-ensemble d’individus (K individus) aléatoirement dans la population, l’individu ayant la meilleure valeur d’adaptation dans ce groupe, sera sélectionné et inclus dans la prochaine génération pour la reproduction. Ce processus est répété jusqu’ à l’obtention du nombre d’individus requis. Le nombre de participants à un tournoi (K), appelé la taille de tournoi, est utilisé pour faire varier la pression de cette sélection. Si ce nombre est grand, alors la pression sera forte et les faibles individus auront une petite chance d’être choisis. En général, un seul gagnant est choisi parmi les participants à un tournoi. Tableau 2: Exemple de sélection par rang pour 6 chromosomes
  • 38. Chapitre 3 : les algorithmes génétiques 38S.BENHMIRA S.MEJDAOUI Ce gagnant peut être choisi d’une façon déterministe ou probabiliste [18] [probabilité entre 0.5 et 1]. La méthode de tournoi la plus commune est le tournoi binaire, où on choisit deux individus aléatoirement (K=2) puis on sélectionne le meilleur. 3.4.1.4 La sélection Elitiste 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 de croisement 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. 3.4.2 Opérateur de Croisement Une fois que l’opérateur de sélection fini de générer la population parente, on applique sur cette population l’opérateur de recombinaison ou croisement. Ce dernier joue un rôle primordial dans un AG, il peut accélérer ou décaler le processus de recherche. Le croisement est l’opérateur principal de l’algorithme génétique, Il a pour objectif d’enrichir la diversité de la population en manipulant les gènes des chromosomes. D'une manière générale, le croisement consiste à appliquer des procédures avec une certaine probabilité Pc (s’appelle le taux de croisement) sur les individus sélectionnés pour donner naissance à un ou plusieurs (généralement deux) enfants. Ces derniers doivent hériter, par A S Q H D P B N L Y 23 25 15 12 6 30 47 22 10 29 Fitness Chromosomes S D L S Garder le meilleur comme parent Figure 13 : la sélection par Tournoi avec K = 3 figure 17
  • 39. Chapitre 3 : les algorithmes génétiques 39S.BENHMIRA S.MEJDAOUI croisement, de certaines caractéristiques des parents. Bien qu'il soit souvent aléatoire, cet échange d'informations offre aux algorithmes génétiques une part de leur puissance: quelquefois, de « bons » gènes d'un parent viennent remplacer les « mauvais » gènes d'un autre et créent des enfants mieux adaptés que les parents [19]. Au début de la recherche, quand les solutions sont plutôt différentes, le croisement a un rôle d’exploration, car la combinaison des solutions produit des solutions placées aux endroits non encore visités pendant la recherche. Par contre, à la fin de la recherche, les parents sont similaires, ce qui produit des enfants similaires, accordant au croisement un rôle plutôt d’intensification (ou d’exploitation) [18]. Habituellement le croisement peut être classé en deux classes; celui appelé « en un point » et l’autre appelé « à des points multiples ». 3.4.2.1 Croisement en 1-point C’est le croisement le plus simple et le plus connu. Il consiste à choisir au hasard un point de croisement pour chaque couple de chromosomes. Les séquences de bits situées après ce point sont par la suite inter-changées pour former les fils, (Figure 14). 3.4.2.2 Croisement en N-point Contrairement au croisement en un point, plusieurs points sont sélectionnés aléatoirement et l’échange entre les parents s’effectue selon les différentes parties des séquences cernées par ces points. Dans la Figure 15 deux points de coupure sont choisis au hasard et le contenu entre ces points est inter-changé pour former les fils. 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 Figure 14 : Croisement en un point de deux chromosomes figure 18 Parent 1 Parent 2 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 Fils 1 Fils 2 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 Parent 1 Parent 2 Fils 1 Fils 2 Figure 15 : Croisement en 2-point de deux chromosomes (n=2) figure 19
  • 40. Chapitre 3 : les algorithmes génétiques 40S.BENHMIRA S.MEJDAOUI 3.4.2.3 Croisement uniforme Un autre type de croisement peut être recensé, nommé le croisement uniforme, ce mécanisme consiste à définir un masque de bits 0,1 dont la longueur est égale au nombre d’individus parents sur lesquels il sera appliqué [20]. Si le bit du masque égal à «1 » dans la position « i » alors l’échange entre les parents dans la même position est possible, « 0 » ne désigne pas d’échange. 3.4.3 Opérateur de Mutation Une fois que l’opérateur de croisement finit de générer la population des enfants, on applique sur cette population l’opérateur de mutation afin de l’améliorer encore plus, son but est de maintenir la diversité de la population des enfants et d'explorer l'espace de recherche en évitant à l'algorithme de converger trop rapidement vers un optimum local. Le principe est très simple (dans le cas des chromosomes binaires) ; une mutation est l’inversion d’un bit aléatoire dans un chromosome. Un bit égale à 1 prendra la valeur 0 et vice versa, comme il montre la figure 17. Cet opérateur est appliqué avec une probabilité très faible Pm, nommée taux de mutation. Les petits taux sont recommandés car un grand taux peut occasionner une destruction de l'information utile contenue dans les solutions et être considéré probablement comme une recherche aléatoire [18]. Elle assure en outre une recherche aussi bien globale que locale, selon le poids et le nombre des bits mutés. Plus un individu a été muté, plus la recherche s’éloignera du voisinage local de ce même individu non muté. De plus, elles garantissent mathématiquement que l’optimum global peut être atteint [21]. 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 Figure 16: Exemple d’un Croisement uniforme figure 20 Parent 1 Parent 2 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 Fils 1 Fils 2 1 1 0 0 0 1 0 1 1 0 0 1Masque 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0Parent Fils Figure 17 : opérateurs de mutation figure 21
  • 41. Chapitre 3 : les algorithmes génétiques 41S.BENHMIRA S.MEJDAOUI Généralement, l'opérateur de mutation modifie de manière complètement aléatoire les caractéristiques d'un ou plusieurs individus de la population des enfants. Il modifie un ou plusieurs gènes pour passer d'une solution à une autre solution de forme similaire mais qui peut avoir une évaluation totalement différente. L'individu muté n'est pas une solution idéale. Il ne sera pas forcément meilleur ou moins bon, mais il apportera des possibilités supplémentaires qui pourraient être utiles pour la création de bonnes solutions. 3.4.4 Insertion La dernière étape consiste à générer la population finale de la génération courante, en insérant les individus obtenus après l’application des opérateurs de croisement et de mutation dans la population en fonction de leurs valeurs de performance ou garder juste les enfants avec ses parents… Donc la nouvelle population est constituée d’individus sélectionnés pour continuer à participer à son amélioration. Plusieurs méthodes d’insertion sont utilisées, on distingue deux méthodes :  Un remplacement automatique des parents par les enfants sans prendre en considération leurs performances respectives.  Un remplacement sélectif, le facteur performance est pris en compte dans cette stratégie qui consiste à garder au moins l’individu le plus performant lors du passage d’une génération à la suivante. 3.4.5 Avantage et inconvénients :  Avantages  En général les AGs accélèrent le parcours d’un vaste ensemble de solutions. Et les mauvaises solutions ne sont pas prises en compte, elles sont éliminées afin de ne pas affecter la solution optimale.  Grande efficacité pour résoudre tous les problèmes d’optimisation qui peuvent être décrits avec le codage de chromosomes.  Les AGs traitent des problèmes très complexes d’une manière très efficace et permettant facilement de trouver les bonnes solutions, cette caractéristique a beaucoup aidé dans les domaines avec un grand nombre de paramètres et dont le temps de réponse doit être réduit (obtenir de bonnes solutions en quelques itérations seulement).
  • 42. Chapitre 3 : les algorithmes génétiques 42S.BENHMIRA S.MEJDAOUI  Inconvénients  Trouver les bonnes solutions pour des problèmes avec un grand nombre de paramètres n’est pas toujours assuré par AG car il est très lent.  AG peut converger vers les optimums locaux et ne pas trouver un optimum global.  Il s’agit d’une technique d’intelligence artificielle, donc l’algorithme génétique ne peut pas assurer toujours les mêmes résultats en termes de temps. Cette propriété limite leur utilisation dans les applications en temps réel. 3.5 Conclusion Les algorithmes génétiques s’inspirent de la théorie de la sélection naturelle. Par analogie avec le monde biologique, l’algorithme génétique fait évoluer un groupe d’individus à l’aide de trois opérateurs principaux : sélection, croisement et mutation. Ils admettent une grande liberté dans la configuration des paramètres et dans l’implémentation des différents traitements. L’adaptation des paramètres de l’algorithme avec le problème traité et l’implémentation de toutes les étapes de l’algorithme sont indispensables pour atteindre des performances optimales. De plus, l’AG est un domaine de recherche très vaste, il permet aux utilisateurs de modifier ses paramètres et méthodes selon le besoin, en effet, on peut réaliser des algorithmes hybrides mêlant différentes méthodes. Ils synthétisent des solutions nouvelles et originales à des problèmes connus sans idées préconçues.
  • 43. Chapitre 4 : résolution du problème du voyageur de commerce avec les AG 43S.BENHMIRA S.MEJDAOUI Chapitre 4 Résolution du problème du voyageur de commerce avec les algorithmes génétiques Dans ce chapitre nous essayerons d’adapter les paramètres du TSP avec celles des AG en appliquant les opérateurs génétiques sur le problème mentionné. Ensuite nous allons réaliser un programme qui sera susceptible de donner des résultats sur les instances du problème, enfin nous allons faire une application graphique pour visualiser le déroulement de l’exécution du programme.
  • 44. Chapitre 4 : résolution du problème du voyageur de commerce avec les AG 44S.BENHMIRA S.MEJDAOUI 1. Introduction Comme nous l’avons déjà dit dans le chapitre 1, un problème de voyageur de commerce (TSP) doit visiter 𝑛 villes données en passant exactement une seule fois par chaque ville. Il commence par une ville quelconque ou une ville spécifique et termine son parcours en retournant à la ville de départ. Le TSP est un problème d’optimisation combinatoire classique, simple à représenter, très difficile à résoudre, il est de type NP-difficile, il ne pas être résolu dans un temps raisonnable. Ce problème se complexifie de manière factorielle quand le nombre de villes augmente linéairement. Le tableau 3 montrant l’accélération horrible des chemins possibles et du temps d’énumération. On suppose qu’une solution est trouvée par un ordinateur performant toutes les microsecondes. Villes Chemins possibles Temps de calcule 5 12 12 microsecondes 10 181440 0.18 seconde 15 43 milliards 12 heures 20 6 × 1016 1928 années 25 3.1 × 1023 9.8 milliards d’années Note : Dans notre calcul, nous avons supposés que le TSP est symétrique, et que le voyageur part d’une ville connue et y retourne. Si 𝑛 est le nombre de villes, alors les trajets possibles seront calculés par (𝑛−1)! 2 De nombreux algorithmes, exacts et heuristiques, ont été développés dans le domaine de la recherche opérationnelle pour résoudre ce problème. Les méthodes exactes donnent de bons résultats, malgré le temps de calcul qui est très élevé, mais elles se limitent à un nombre de villes assez petit. Or, les heuristiques nous donnent une valeur approchée de l’optimum dans un temps raisonnable. Dans les sections qui suivent, nous abordons l’une de ces méthodes, celle la plus connue et utilisée ; les algorithmes génétiques. Tableau 3: le temps de calcule en fonction du nombre de villes pour le TSP
  • 45. Chapitre 4 : résolution du problème du voyageur de commerce avec les AG 45S.BENHMIRA S.MEJDAOUI 2. Algorithme génétique appliqué au problème du voyageur de commerce Les algorithmes génétiques (AG) décrits dans le chapitre 3 sont souvent utilisés pour résoudre des problèmes NP-difficiles, comme le problème de voyageur de commerce (TSP). Dans le contexte de TSP, chaque chromosome est une solution du problème (trajet), la fonction d’évaluation (fitness) des chromosomes est reliée avec la longueur de ce trajet, qui à son tour dépend de l’ordre des villes. Puisque le TSP est un problème de minimisation alors la mesure de trajet la plus élevée correspond à l’individu le plus faible, celle la plus courte sera associée au meilleur individu. Le problème dans un AG est comment représenter ou transformer les paramètres du problème aux chromosomes, cette phase –comme nous le savons- appelée le codage. Dans le TSP, il y a eu beaucoup de représentations utilisées pour résoudre le problème de TSP en utilisant les Algorithmes Génétiques [22]. Certains d'entre eux, tels que la représentation binaire et la représentation matricielle, utilisent des alphabets binaires pour la représentation du tour. Bien que ces alphabets binaires constituent le mode classique de représentation dans les AGs, mais les résultats obtenus par les opérateurs de croisement et de mutation ne sont pas valides. La représentation la plus naturelle s’appelle « la représentation par chemin ». Dans les parties suivantes de notre projet, nous nous concentrerons exclusivement sur cette représentation des individus. 2.1 Représentation des chromosomes La représentation par chemin (path repesentation) est probablement la représentation la plus naturelle d'un tour. Dans cette représentation, un trajet est représenté par une liste des entiers ordonnée de 𝑛 ville. Si 𝑖 est le 𝑗-é𝑚𝑒 éléments de la liste, alors la ville 𝑖 est la 𝑗-é𝑚𝑒 ville à visiter. Par conséquent, le tour 1-3-2-5-6-8-4-7 est simplement représenté par : L’avantage de la représentation par chemin inclut la simplicité de l'évaluation de la fonction fitness. On peut calculer la valeur de fitness pour chaque chromosome en additionnant 1 3 2 5 6 8 4 7 Figure 18: codage d’un chemin figure 22
  • 46. Chapitre 4 : résolution du problème du voyageur de commerce avec les AG 46S.BENHMIRA S.MEJDAOUI les coûts de chaque paire de nœuds adjacents. Cette représentation est utile car elle affiche directement la liste des villes dans l'ordre dans lequel elles doivent être visitées. 2.3 Génération de la population initiale La population initiale peut influencer sur le déroulement de l’AG, en décalant ou en accélérant la convergence de l’algorithme. Pour cela, il existe plusieurs méthodes à appliquer pour générer la population initiale :  Génération aléatoire de la population initiale.  Génération du premier individu au hasard, celui-ci sera muté (𝑁 − 1) fois avec un opérateur de mutation.  Génération du premier individu en utilisant une méthode heuristique. Le deuxième sera généré par mutation du premier. Ensuite, nous utilisons un opérateur de mutation sur la route obtenue afin de générer (𝑁 − 2) d'autres individus qui constitueront la population initiale. 2.4 Sélection Bien qu’il existe de nombreux types de sélection, décrits dans le chapitre 3, nous avons choisi à implémenter la méthode la plus connue et utilisée, on parle de la sélection par Roulette. Elle consiste à associer à chaque individu une probabilité 𝑃𝑠 d’être sélectionné proportionnelle à sa valeur de fitness. Si la population d’individus est de taille égale à N, alors la probabilité de sélection d’un individu 𝑥𝑖 notée 𝑃(𝑥𝑖) est égale à : 𝑃( 𝑥𝑖) = 𝑓(𝑥 𝑖) ∑ 𝑓(𝑥 𝑖)𝑛 𝑖=1 où 𝑓( 𝑥) est la fonction d’adaptation. 𝑃 ⇽ (𝑃1, 𝑃2,… , 𝑃𝑛) | 𝑓 ⇽ (𝑓1, 𝑓2, … , 𝑓𝑛) 𝑷𝒐𝒖𝒓 ( 𝑖 = 2, … , 𝑛) 𝑭𝒂𝒊𝒓𝒆 𝑓𝑖 ⇽ 𝑓𝑖 + 𝑓𝑖−1 𝑹é𝒑é𝒕𝒆𝒓 𝑝 ⇽ 𝑟𝑎𝑛𝑑𝑜𝑚(0, 𝑓𝑛) 𝑷𝒐𝒖𝒓 ( 𝑖 = 2, … , 𝑛) 𝑭𝒂𝒊𝒓𝒆 𝑺𝒊 𝑓𝑖−1 < 𝑝 < 𝑓𝑖 𝑨𝒍𝒐𝒓𝒔 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒 𝑃𝑖 𝑺𝒊𝒏𝒐𝒏 𝑟𝑒𝑡𝑜𝑢𝑟𝑛𝑒 𝑃1 𝑭𝒊𝒏𝑷𝒐𝒖𝒓 𝑱𝒖𝒔𝒒𝒖′ à (𝑜𝑏𝑡𝑒𝑛𝑖𝑟 𝑙𝑒 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑′ 𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑠 𝑟𝑒𝑞𝑢𝑖𝑠) Algorithme 5: Roulette wheel selection figure 23 𝑃 ∶ 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑃𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛 𝑛 ∶ 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑′ 𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑠 𝑓 ∶ 𝑣𝑒𝑐𝑡𝑒𝑢𝑟 𝑓𝑖𝑡𝑛𝑒𝑠𝑠
  • 47. Chapitre 4 : résolution du problème du voyageur de commerce avec les AG 47S.BENHMIRA S.MEJDAOUI 2.5 Opérateur de croisement pour TSP Le croisement (ou recombinaison) est le processus par lequel les parents donnent leurs gènes caractéristiques à leurs fils, formant ainsi la base de la génération suivante. Le rôle important de cet opérateur est de maintenir la diversité de la population, évitant ainsi la convergence rapide. Il est clair que les opérateurs de croisement vus dans le chapitre 3, comme le croisement en 1-point, sont susceptibles de générer des trajets invalides en utilisant la représentation par chemin. En effet, appliquer le croisement à la position 3 donne deux solutions invalides. Comme l’illustre la figure 19.  Les deux fils ne sont pas une permutation de 𝑛 éléments (𝑛 = 8). Le TSP est un problème de permutation pur. Tous les chromosomes portent exactement les mêmes valeurs et ne diffèrent que par l'ordre de ces valeurs. En conséquence, des opérateurs de permutation spécialisés doivent être développés pour ce problème. 2.5.1 Partially Mapped Crossover (PMX) Exemple tiré de [8]. PMX est un opérateur de croisement à deux points de coupure, introduit par Goldberg et Lingle en 1985 [23], qui définit un segment de même longueur dans chacun des parents 𝑃1 𝑒𝑡 𝑃2. Les segments sont entourés avec un rectangle dans la partie (𝑎) de la figure 20. Ces segments sont copiés vers les enfants 𝐹1 𝑒𝑡 𝐹2. 𝐹1 a hérité du segment de 𝑃2 et 𝐹2 de 𝑃1, comme le montre la partie (𝑏) de la figure. A partir de l’un de ces segments, on établit à chaque gène une liste de correspondance. Cette liste va servir à placer les gènes redondants et elle est formée de la manière suivante: pour chaque position du segment on note 𝑥 le gène qui s'y trouve et 𝑦 celui de l'autre enfant dans la même position. Tant que 𝑦 est retrouvé ailleurs dans le segment de départ, on note 𝑦′ son correspondant dans l'autre enfant et on remplace 𝑦 par 𝑦′. Par exemple, le gène correspondant à "1" de 𝐹1 est "6" mais ce gène existe aussi dans 𝐹1 et son 1 3 2 5 6 8 4 7 1 5 6 7 8 2 3 4 P1 P2 1 3 2 7 8 2 3 4 1 5 6 5 6 8 4 7 F1 F2 Figure 19: Application de croisement en 1-point sur deux parents représentés par chemin figure 24