SlideShare une entreprise Scribd logo
qwertyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopasdfg
hjklzxcvbnmqwertyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopasdfg
hjklzxcvbnmqwertyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopasdfg
hjklzxcvbnmrtyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcvbnmqwert
yuiopasdfghjklzxcvbnmqwert
Le problème du voyageur de
commerce
Projet RO-Complexité
Réalisé par:
BRAHIM Khaled
KHEDHRI Hayet
LASSOUED Rim
SFAR Abir
Encadré par : M. FREFITA Riadh
Le problème du voyageur de commerce
2
Sommaire
Liste de figures :..................................................................................................................................3
Liste des tableaux : .............................................................................................................................3
Introduction :......................................................................................................................................4
Chapitre 1...........................................................................................................................................5
I. Problème de voyageur de commerce : ....................................................................................6
II. Domaine d’application :...........................................................................................................6
III. Point de vue formel : ...........................................................................................................6
IV. Complexité : ........................................................................................................................7
Conclusion..........................................................................................................................................8
Chapitre 2...........................................................................................................................................9
Introduction :....................................................................................................................................10
I. Algorithme des plus proches voisins (nearest neighbours) :...................................................10
1. Principe : ...........................................................................................................................10
2. Exemples :.........................................................................................................................11
II. Les méthodes exactes :..........................................................................................................11
1. Principe : ...........................................................................................................................11
2. Exemple :...........................................................................................................................12
III. Algorithme de la colonie de fourmis : ................................................................................12
1. Origine :.............................................................................................................................12
2. Principe : ...........................................................................................................................13
3. Description :......................................................................................................................14
4. Algorithme : ......................................................................................................................14
5. Complexité : ......................................................................................................................14
IV. Algorithme glouton (meilleure insertion) :.........................................................................15
1. Principe : ...........................................................................................................................15
2. Description :......................................................................................................................15
V. Les algorithmes génétiques : .................................................................................................15
1. Principe : ...........................................................................................................................15
2. Description d’AG :..............................................................................................................16
3. Adaptation à l'algorithmique et au PVC :............................................................................18
VI. Etude comparative et choix de solution : ...........................................................................18
Conclusion :......................................................................................................................................19
Chapitre 3.........................................................................................................................................20
Le problème du voyageur de commerce
3
Introduction......................................................................................................................................21
Nous présenterons dans cette partie les points clefs de programme exécuté par Java. ....................21
I. Choix des outils : ...................................................................................................................21
II. Fonctionnement du programme :..........................................................................................21
III. Imprimes écran :................................................................................................................22
Conclusion générale..........................................................................................................................26
Liste de figures :
Figure 1: courbe des nombres de villes en fonction des possibilités.....................................................8
Figure 2 :exemple de l'algorithme de la plus proche .........................................................................11
Figure 3 : exemple de la méthode exacte...........................................................................................12
Figure 4:algorithme de colonie de fourmis........................................................................................13
Figure 5:système fourmis..................................................................................................................14
Figure 6:Schéma du fonctionnement de l’algorithme génétique.........................................................16
Figure 7:croisement..........................................................................................................................17
Figure 8:croissement ........................................................................................................................18
Figure 9:Schéma récapitulatif d’AG .................................................................................................19
Figure 10:nombre de ville=200 ........................................................................................................22
Figure 11:5villes...............................................................................................................................23
Figure 12:1000 villes........................................................................................................................24
Figure 13:tester un chemin ...............................................................................................................25
Liste des tableaux :
Tableau 1:nombre de trajets possibles avec le temps de calcul............................................................7
Le problème du voyageur de commerce
4
Introduction :
Le problème du voyageur de commerce (PVC) a été évoqué pour la première fois en 1930
par le mathématicien viennois Karl Menger et il a intrigué bon nombre de chercheurs depuis
ce temps : sans doute parce qu'il est facile à énoncer mais redoutable à résoudre. Ce problème,
en apparence anodin et insignifiant, cache de nombreuses finesses et difficultés qui nous
emmèneront dans les développements récents de la théorie des algorithmes.
Beaucoup de méthodes atteignant ce but de PVC ont été développées (dont certaines assez
récemment) : méthode des plus proches voisins, de Lin-Kernighan, de l'élastique, du recuit
simulé, les réseaux de neurones auto-adaptatifs, algorithmes génétiques, tabu search, colonie
de fourmis.
Certaines méthodes sont très simples, d'autres très complexes. Ce qui est sûr, c'est que ce
problème stimule la créativité !
Parmi ces nombreuses méthodes, une m'a particulièrement intéressée : les algorithmes
génétiques.
Le problème du voyageur rentre dans la catégorie des problèmes NP -complets, à savoir que
sa complexité n’est pas polynomiale. Durant ce rapport, on étudiéra quelque algorithme pour
savoir pourquoi on a choisit les algorithmes génétiques.
Le problème du voyageur de commerce
5
Chapitre 1
Etude de l’art
Le problème du voyageur de commerce
6
I. Problème de voyageur de commerce :
Un voyageur de commerce doit visiter villes données en passant par chaque ville
exactement une fois. Il commence par une ville quelconque et termine en retournant à la ville
de départ. Les distances entre les villes sont connues. Quel chemin faut-il choisir afin de
minimiser la distance parcourue ?
La notion de distance peut-être remplacée par d'autres notions comme le temps qu'il met ou
l'argent qu'il dépense : dans tous les cas, on parle de coût.
Donc le problème de voyageur de commerce consiste à la recherche de trajet minimal en
traversant villes.
II. Domaine d’application :
Les domaines d’application sont nombreux : problèmes de logistique, de transport aussi bien
de marchandises que de personnes, et plus largement toutes sortes de problèmes
d'ordonnancement. Certains problèmes rencontrés dans l'industrie se modélisent sous la forme
d’un problème de voyageur de commerce, comme l'optimisation de trajectoires de machines
outils : comment percer plusieurs points sur une carte électronique le plus vite possible ?
III. Point de vue formel :
A partir d'une matrice :
: représente le coût du déplacement entre la ville i et la ville j, il faut trouver une
permutation qui minimise la somme des coûts. Autrement dit, il faut trouver un cycle
hamiltonien de longueur minimale dans un graphe pondéré complet.
Le problème du voyageur de commerce
7
IV. Complexité :
Ce problème est un représentant de la classe des problèmes NP-complets. L'existence d'un
algorithme de complexité polynomiale reste inconnue. Un calcul rapide de la complexité
montre qu'elle est en .
Avec villes il y a 𝑛 − 1 !
2
chemins possibles.
En supposant que le temps pour évaluer un trajet est de 1 , le tableau ci-dessous montre
l'explosion combinatoire du PCV (tableau 1).
Tableau 1:nombre de trajets possibles avec le temps de calcul
Les possibilités augmentent exponentiellement avec le nombre de villes
Le problème du voyageur de commerce
8
Figure 1: courbe des nombres de villes en fonction des possibilités
Conclusion
Durant ce chapitre on a décrit le PVC et précisé les domaines d’application .Et pour le
deuxième chapitre, on va résumer les méthodes de résolution existantes en mettant l’accent
sur les plus connues.
Le problème du voyageur de commerce
9
Chapitre 2
Solutions
Le problème du voyageur de commerce
10
Introduction :
On doit établir une démarche générale permettant de résoudre le problème pour n’importe
quel ensemble de villes : cette démarche s’appelle un algorithme.
Les algorithmes pour résoudre le problème du voyageur de commerce peuvent être répartis en
deux classes :
- les algorithmes déterministes qui trouvent la solution optimale.
- les algorithmes d'approximation qui fournissent une solution presque optimale. Elles
permettent d’obtenir en un temps rapide de bonnes solutions, pas nécessairement optimales
mais de qualité suffisante.
I. Algorithme des plus proches voisins (nearest neighbours) :
La première idée consiste à se rendre systématiquement dans la ville la plus proche de celle
où l’on se trouve, telle que le poids entre la ville courante et la prochaine ville soit minimale :
sans y réfléchir plus, on pourrait penser que cette méthode résout effectivement le problème
posé.
1. Principe :
Le trajet est initialement vide (pas de villes visitées)
On part d'une ville au hasard, que l'on met dans la liste des villes visitées.
On recherche la ville la plus proche que l'on ajoute dans la liste des villes visitées.
On recherche la ville la plus proche de la cette nouvelle ville. Si la ville est déjà dans la liste
des villes visitées, on prend la deuxième ville plus proche, la troisième si besoin, etc.
et ainsi de suite...
Une manière d'accélérer fortement le calcul de ces solutions est de calculer auparavant le
tableau des villes les plus proches (pour chaque ville, contient la liste des autres villes triées
dans l'ordre du plus proche au plus éloigné).
Le problème du voyageur de commerce
11
2. Exemples :
Figure 2 :exemple de l'algorithme de la plus proche
Par exemple, quel itinéraire proposeriez-vous pour visiter les cinq villes A, B, C, D et E de la
figure ci-contre (les distances sont données en kilomètres) ?
On commence par la ville A, les successeurs de la ville A sont B, C, E, D.
Le plus court chemin c’est [AB].
Les successeurs de la ville B sont C, E, D. Le plus court chemin c’est [BC].
Les successeurs de la ville C sont B, E, D, A. Mais B et A sont déjà dans le parcours. Le plus
court chemin c’est [CD].
Les successeurs de la ville D sont A, B, C, E. Mais B, A et C sont déjà dans le parcours. Le
plus court chemin c’est [DE].
Et enfin [EA].
Donc le parcourt est ABCDEA et le cout de chemin est égale : 60+54+67+71+139=391 Km.
Si on choisit un autre parcourt pour ce exemple, on trouve que cette méthode peut donner des
mauvaises résultats(le parcourt ABEDCA= 387Km).
II. Les méthodes exactes :
1. Principe :
Pour le problème du voyageur de commerce, l’une des méthodes exactes les plus classiques et
les plus performantes reste la Procédure par Séparation et Evaluation (PSE). Cette méthode
repose sur le parcours d’un arbre de recherche.
Dans un chemin de cet arbre, le premier nœud représente la ville de départ, son successeur la
deuxième ville visitée, puis la troisième ville visitée, etc. À chaque étape de l’algorithme, on
Le problème du voyageur de commerce
12
crée autant de nœuds qu’il reste de villes à visiter. À chaque nœud, le choix consiste à
sélectionner la prochaine ville à visiter parmi les villes restantes.
2. Exemple :
Figure 3 : exemple de la méthode exacte
Mais si le nombre de ville est assez grande on ne peut pas calcule nombre de chemins par
cette méthode. Il faut donc trouver un autre algorithme pour résoudre le problème, qui
trouverait dans un temps raisonnable une solution approchée.
Cette méthode montre que le problème du voyageur de commerce appartient au "NP
complet".
III. Algorithme de la colonie de fourmis :
1. Origine :
L’idée originale provient de l’observation de l’exploitation des ressources alimentaires chez
les fourmis. Elles sont capables collectivement de trouver le chemin le plus court entre une
source de nourriture et leur nid.
Des biologistes ont ainsi observé, dans une série d’expériences menées à partir de 1989,
qu’une colonie de fourmis ayant le choix entre deux chemins d’inégale longueur menant à une
source de nourriture avait tendance à utiliser le chemin le plus court.
Le problème du voyageur de commerce
13
2. Principe :
Les algorithmes de colonies de fourmis sont des algorithmes inspirés du comportement des
fourmis.
Le premier algorithme de colonies de fourmis proposé est appelé le Ant system (système
fourmi). Il vise notamment à résoudre le problème du voyageur de commerce, où le but est de
trouver le plus court chemin permettant de relier un ensemble de villes.
L’algorithme général est relativement simple, et repose sur un ensemble de fourmis, chacune
parcourant un trajet parmi ceux possibles. À chaque étape, la fourmi choisit de passer d’une
ville à une autre en fonction de quelques règles :
 elle ne peut visiter qu’une fois chaque ville ;
 plus une ville est loin, moins elle a de chance d’être choisie (c’est la
« visibilité ») ;
 plus l'intensité de la piste de phéromone disposée sur l’arête entre deux villes
est grande, plus le trajet aura de chance d’être choisi ;
 une fois son trajet terminé, la fourmi dépose, sur l’ensemble des arêtes
parcourues, plus de phéromones si le trajet est court ;
 les pistes de phéromones s’évaporent à chaque itération.
Le partage des données sur les phéromones est le point fort de cette technique.
Figure 4:algorithme de colonie de fourmis
Le problème du voyageur de commerce
14
3. Description :
L’algorithme « Ant System » optimisant le problème du voyageur de commerce : 1) une
fourmi choisit un trajet, et trace une piste de phéromone. 2) l’ensemble des fourmis parcourt
un certain nombre de trajets, chaque fourmi déposant une quantité de phéromone
proportionnelle à la qualité du parcours. 3) chaque arête du meilleur chemin est plus renforcée
que les autres. 4) l’évaporation fait disparaître les mauvaises solutions (figure 5).
Figure 5:système fourmis
4. Algorithme :
Initialisation
for iter:=1 to NbIter
for i:=1 to n
for k:=1 to m
choix de la prochaine ville pour la fourmi k
dépot de la trace locale
endfor
endfor
Choix de la fourmi ayant le plus court chemin
dépot de la trace globale
endfor
avec n : nombre de villes et m : nombre de fourmis
5. Complexité :
𝑂 𝑛2
+ 𝑚 + 𝑁𝐶 𝑚𝑎𝑥 . 𝑛2
. 𝑚
Le 𝑁𝐶 𝑚𝑎𝑥 est fixé en fonction des ressources de calcul qui sont allouées à la résolution du
problème.
Le problème du voyageur de commerce
15
IV. Algorithme glouton (meilleure insertion) :
1. Principe :
L'algorithme glouton (l’algorithme de la meilleure insertion) est une des méthodes classiques
pour résoudre le problème du voyageur de commerce. Il s'agit de construire le parcours ville
par ville, en insérant dans le parcours la ville qui le rallonge le moins.
2. Description :
L’idée est la suivante : le parcours du voyageur de commerce est construit pas à pas en y
insérant de nouvelles villes. À un instant donné de l’algorithme, un certain cycle de villes a
été construit. L’étape suivante consiste à insérer une ville supplémentaire dans le cycle de
manière optimale, c'est-à-dire qu’elle augmente au minimum la longueur totale du cycle. À
l’étape initiale de l’algorithme, le parcours de voyageur est composé de deux villes, la ville de
départ et celle qui en est la plus proche. L’algorithme se termine lorsque toutes les villes à
visiter ont été insérées. Cependant, même si l’insertion d’une ville dans le cycle est optimale
et rapide à calculer, la solution finale n’est pas nécessairement optimale, mais elle est obtenue
rapidement.
V. Les algorithmes génétiques :
1. Principe :
Les algorithmes génétiques forment une famille très intéressante d’algorithmes
d’optimisation, initiée par Charles Darwin au XIXème siècle.
Le principe des algorithmes génétiques s’inspire directement des lois de la sélection
naturelle. On l’utilise dans la résolution de problèmes complexes, nécessitant des temps de
calcul élevés.
Les algorithmes génétiques sont des algorithmes d’optimisation s’appuyant sur des techniques
dérivées de la génétique et des mécanismes d’évolution de la nature : croisements, mutations,
sélections, etc... Ils appartiennent à la classe des algorithmes évolutionnaires.
L’idée d’un algorithme génétique est tirée de la théorie darwinienne de l'évolution. Chaque
groupe d’individus (animaux, espèces végétales...), appelé aussi population, donne lieu à une
génération suivante par reproduction sexuelle. Cette génération consiste à croiser les individus
entre eux pour donner des descendants possédant les caractères des deux parents. En plus de
ce croisement, des mutations de caractères interviennent aléatoirement dans la génération de
la population suivante. Puis, cette nouvelle population subit une sélection, métaphore de la
sélection naturelle : seuls les individus les mieux adaptés à l’environnement survivent. Enfin,
Le problème du voyageur de commerce
16
à son tour, cette population donnera lieu par le même processus à une nouvelle population, qui
sera encore plus performante dans son environnement. Pour développer un algorithme
génétique, les individus sont des solutions, la sélection se fait grâce à leur qualité (évaluée à
travers la fonction objectif), les croisements entre deux solutions sont faits à l’aide
d’opérateurs de croisement, etc.
2. Description d’AG :
Figure 6:Schéma du fonctionnement de l’algorithme génétique
Les étapes suivantes sont exécutées (figure 6) :
 Tout d’abord, chaque individu est évalué. Pour cela, on calcule la valeur de la fonction
objective, c’est-à-dire la longueur du cycle parcouru par le voyageur de commerce.
 Puis, une étape de sélection est appliquée. Cette étape permet d’éliminer les moins
bons individus et de garder uniquement les meilleurs en fonction de leur évaluation. Il
existe plusieurs méthodes de sélection. Une sélection par rang ne fait pas intervenir le
hasard, contrairement à la roulette, car elle choisit les n meilleurs individus de la
Le problème du voyageur de commerce
17
population. Chaque individu a ainsi une probabilité de sélection dépendant de son
évaluation, avec une plus forte probabilité pour les meilleurs individus.
 L’étape suivante consiste à croiser les individus précédemment sélectionnés pour
obtenir une nouvelle population. Deux parents sont donc choisis pour appliquer un
opérateur de croisement afin d’obtenir un descendant (nouvel individu). Il existe de
nombreuses techniques de croisement ; dans le cas présent, nous utiliserons le
« crossover en un point ». Cet opérateur consiste à recopier une partie du parent 1 et
une partie du parent 2 pour obtenir un nouvel individu. Le point de séparation des
parents est appelé point de croisement. Il faut cependant faire attention à ne pas visiter
plusieurs fois la même ville (on ne recopie pas les villes déjà visitées), et à ne pas
oublier de ville (on rajoute à la fin les villes non prises en compte). Voici un exemple
avec 8 villes et un point de croisement juste après la troisième ville (figure7) :
Figure 7:croisement
Pour mieux comprendre le croissement, voilà les étapes à suivre (figure 8):
1. On choisi aléatoirement deux points de découpe.
2. On interverti, entre les deux parcours, les parties qui se trouvent entre ces deux points.
3. On supprime, à l’extérieur des points de coupe, les villes qui sont déjà placées entre les
points de coupe.
Le problème du voyageur de commerce
18
Figure 8:croissement
 Enfin, avant de revenir à la première étape, un procédé de mutation est utilisé pour
diversifier les solutions au fur et à mesure des générations. Cette mutation consiste à
modifier aléatoirement une petite partie d’un caractère dans certains individus de la
nouvelle génération. Cette étape est effectuée avec une très faible probabilité, et
consiste par exemple à échanger deux villes consécutives dans un individu.
3. Adaptation à l'algorithmique et au PVC :
Un individu trajet
Son évaluation la longueur totale de ce trajet
Un gène ville où l'on passe à une certaine position dans le
parcours
ADN la liste des villes dans l'ordre du parcours.
VI. Etude comparative et choix de solution :
L’algorithme de plus proche voisin peut donner parfois le meilleur chemin ; mais elle peut
aussi donner des résultats très mauvais.
Les méthodes exactes est inutilisable, sauf si le nombre de villes est très petit.
L’algorithme glouton, même si l’insertion d’une ville dans le cycle est optimale et rapide à
calculer, la solution finale n’est pas nécessairement optimale, mais elle est obtenue
rapidement. En fait des recherches sont faites montrent que ce algorithme n’est pas optimale.
Le problème du voyageur de commerce
19
On a éliminé trois algorithmes, on évoquera deux d'entre elles, assez innovantes et
intéressantes puisqu’elles s’inspirent de phénomènes naturels : les algorithmes génétiques et
les algorithmes de colonies de fourmis.
Entres ces deux derniers algorithmes, on a choisit l’algorithme génétique. Ce type
d'algorithme est intéressant pour obtenir plusieurs solutions de bonne qualité. En effet, à la fin
de l’algorithme, la population est constituée des meilleures solutions trouvées.
Figure 9:Schéma récapitulatif d’AG
Conclusion :
Après avoir détaillé les algorithmes proposés ainsi que dégager la solution optimale, dans le
chapitre suivant, nous nous proposons de présenter la réalisation du programme.
Le problème du voyageur de commerce
20
Chapitre 3
Réalisation
Le problème du voyageur de commerce
21
Introduction
Nous présenterons dans cette partie les points clefs de programme exécuté par Java.
I. Choix des outils :
Nous avons choisi Eclipse comme environnement de travail et le langage Java pour notre
implémentation. Nous avons implémenté une interface graphique pour notre programme, au
profit d'une meilleure esthétique et d'une ergonomie améliorée.
II. Fonctionnement du programme :
On doit définir :
 le nombre de ville
 nombre de chemin
 nombre de génération
 nombre de mutation
Après on lance l’application.
On peut tester un chemin et afficher son ordre d’itération.
Plus le nombre villes est assez grand, le lancement de l’application prend de temps.
Le problème du voyageur de commerce
22
III. Imprimes écran :
Figure 10:nombre de ville=200
Le problème du voyageur de commerce
23
Figure 11:5villes
Le problème du voyageur de commerce
24
Figure 12:1000 villes
Le problème du voyageur de commerce
25
Figure 13:tester un chemin
Le problème du voyageur de commerce
26
Conclusion générale
Pour conclure, ce projet a constitué une étape intéressante dans notre apprentissage de la
complexité des algorithmes. Ce travail nous a permis de faire une étude comparatives des
plusieurs algorithmes ainsi la mise en œuvre de l’algorithme génétique qui est largement
utilisé dans la recherche scientifique. Dans ce projet, nous avons eu la possibilité de dégager
la solution optimale ainsi que d’appliquer notre algorithme élu pour PVC.

Contenu connexe

Tendances

Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCARE
BILEL TLILI
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
Ben Abdelwahed Slim
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
Semah Mhamdi
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
Sana Aroussi
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
Mohamed Ayoub OUERTATANI
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
Yahyaoui Mohamed Yosri
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
Yassine Badri
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
Riadh Bouslimi
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
Mohamed Heny SELMI
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
Mohamed Amine Mahmoudi
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout1
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Mohamed Amine Mahmoudi
 
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.
 
Célèbres pannes du génie logiciel
Célèbres pannes du génie logicielCélèbres pannes du génie logiciel
Célèbres pannes du génie logiciel
Nassim Bahri
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
Yassine Badri
 
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
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 

Tendances (20)

Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCARE
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
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...
 
Célèbres pannes du génie logiciel
Célèbres pannes du génie logicielCélèbres pannes du génie logiciel
Célèbres pannes du génie logiciel
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
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
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 

En vedette

Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)
Cdi_LgtBaimbridge
 
Chapitre 2 le recuit simulé
Chapitre 2 le recuit simuléChapitre 2 le recuit simulé
Chapitre 2 le recuit simuléAchraf Manaa
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
Sana Aroussi
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsSana Aroussi
 
Métaheuristiques et applications
Métaheuristiques et applicationsMétaheuristiques et applications
Métaheuristiques et applications
Johann Dreo
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Slimen Belhaj Ali
 
A heuristic multi-agents model to solve the TSP
A heuristic multi-agents model to solve the TSPA heuristic multi-agents model to solve the TSP
A heuristic multi-agents model to solve the TSPMnasri Sami
 
Metaheuristics classifications
Metaheuristics classificationsMetaheuristics classifications
Metaheuristics classifications
Johann Dreo
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
Sana Aroussi
 
Optimisation par colonie de fourmis par zellagui amine
Optimisation par colonie de fourmis par zellagui amineOptimisation par colonie de fourmis par zellagui amine
Optimisation par colonie de fourmis par zellagui amine
Zellagui Amine
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
Hajer Trabelsi
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variable
Mohammed Mansouri
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
rezgui mohamed
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
The Travelling Salesman Problem
The Travelling Salesman ProblemThe Travelling Salesman Problem
The Travelling Salesman Problem
guest3d82c4
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
Snehasis Panigrahi
 
Travelling Salesman Problem
Travelling Salesman ProblemTravelling Salesman Problem
Travelling Salesman Problem
Daniel Raditya
 

En vedette (20)

Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)
 
Chapitre 2 le recuit simulé
Chapitre 2 le recuit simuléChapitre 2 le recuit simulé
Chapitre 2 le recuit simulé
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
Métaheuristiques et applications
Métaheuristiques et applicationsMétaheuristiques et applications
Métaheuristiques et applications
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...
 
A heuristic multi-agents model to solve the TSP
A heuristic multi-agents model to solve the TSPA heuristic multi-agents model to solve the TSP
A heuristic multi-agents model to solve the TSP
 
Metaheuristics classifications
Metaheuristics classificationsMetaheuristics classifications
Metaheuristics classifications
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Optimisation par colonie de fourmis par zellagui amine
Optimisation par colonie de fourmis par zellagui amineOptimisation par colonie de fourmis par zellagui amine
Optimisation par colonie de fourmis par zellagui amine
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variable
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
The Travelling Salesman Problem
The Travelling Salesman ProblemThe Travelling Salesman Problem
The Travelling Salesman Problem
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
 
Travelling Salesman Problem
Travelling Salesman ProblemTravelling Salesman Problem
Travelling Salesman Problem
 
Correction
CorrectionCorrection
Correction
 

Dernier

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
Elisée Ndjabu
 

Dernier (11)

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
 

Le problème de voyageur de commerce: algorithme génétique

  • 2. Le problème du voyageur de commerce 2 Sommaire Liste de figures :..................................................................................................................................3 Liste des tableaux : .............................................................................................................................3 Introduction :......................................................................................................................................4 Chapitre 1...........................................................................................................................................5 I. Problème de voyageur de commerce : ....................................................................................6 II. Domaine d’application :...........................................................................................................6 III. Point de vue formel : ...........................................................................................................6 IV. Complexité : ........................................................................................................................7 Conclusion..........................................................................................................................................8 Chapitre 2...........................................................................................................................................9 Introduction :....................................................................................................................................10 I. Algorithme des plus proches voisins (nearest neighbours) :...................................................10 1. Principe : ...........................................................................................................................10 2. Exemples :.........................................................................................................................11 II. Les méthodes exactes :..........................................................................................................11 1. Principe : ...........................................................................................................................11 2. Exemple :...........................................................................................................................12 III. Algorithme de la colonie de fourmis : ................................................................................12 1. Origine :.............................................................................................................................12 2. Principe : ...........................................................................................................................13 3. Description :......................................................................................................................14 4. Algorithme : ......................................................................................................................14 5. Complexité : ......................................................................................................................14 IV. Algorithme glouton (meilleure insertion) :.........................................................................15 1. Principe : ...........................................................................................................................15 2. Description :......................................................................................................................15 V. Les algorithmes génétiques : .................................................................................................15 1. Principe : ...........................................................................................................................15 2. Description d’AG :..............................................................................................................16 3. Adaptation à l'algorithmique et au PVC :............................................................................18 VI. Etude comparative et choix de solution : ...........................................................................18 Conclusion :......................................................................................................................................19 Chapitre 3.........................................................................................................................................20
  • 3. Le problème du voyageur de commerce 3 Introduction......................................................................................................................................21 Nous présenterons dans cette partie les points clefs de programme exécuté par Java. ....................21 I. Choix des outils : ...................................................................................................................21 II. Fonctionnement du programme :..........................................................................................21 III. Imprimes écran :................................................................................................................22 Conclusion générale..........................................................................................................................26 Liste de figures : Figure 1: courbe des nombres de villes en fonction des possibilités.....................................................8 Figure 2 :exemple de l'algorithme de la plus proche .........................................................................11 Figure 3 : exemple de la méthode exacte...........................................................................................12 Figure 4:algorithme de colonie de fourmis........................................................................................13 Figure 5:système fourmis..................................................................................................................14 Figure 6:Schéma du fonctionnement de l’algorithme génétique.........................................................16 Figure 7:croisement..........................................................................................................................17 Figure 8:croissement ........................................................................................................................18 Figure 9:Schéma récapitulatif d’AG .................................................................................................19 Figure 10:nombre de ville=200 ........................................................................................................22 Figure 11:5villes...............................................................................................................................23 Figure 12:1000 villes........................................................................................................................24 Figure 13:tester un chemin ...............................................................................................................25 Liste des tableaux : Tableau 1:nombre de trajets possibles avec le temps de calcul............................................................7
  • 4. Le problème du voyageur de commerce 4 Introduction : Le problème du voyageur de commerce (PVC) a été évoqué pour la première fois en 1930 par le mathématicien viennois Karl Menger et il a intrigué bon nombre de chercheurs depuis ce temps : sans doute parce qu'il est facile à énoncer mais redoutable à résoudre. Ce problème, en apparence anodin et insignifiant, cache de nombreuses finesses et difficultés qui nous emmèneront dans les développements récents de la théorie des algorithmes. Beaucoup de méthodes atteignant ce but de PVC ont été développées (dont certaines assez récemment) : méthode des plus proches voisins, de Lin-Kernighan, de l'élastique, du recuit simulé, les réseaux de neurones auto-adaptatifs, algorithmes génétiques, tabu search, colonie de fourmis. Certaines méthodes sont très simples, d'autres très complexes. Ce qui est sûr, c'est que ce problème stimule la créativité ! Parmi ces nombreuses méthodes, une m'a particulièrement intéressée : les algorithmes génétiques. Le problème du voyageur rentre dans la catégorie des problèmes NP -complets, à savoir que sa complexité n’est pas polynomiale. Durant ce rapport, on étudiéra quelque algorithme pour savoir pourquoi on a choisit les algorithmes génétiques.
  • 5. Le problème du voyageur de commerce 5 Chapitre 1 Etude de l’art
  • 6. Le problème du voyageur de commerce 6 I. Problème de voyageur de commerce : Un voyageur de commerce doit visiter villes données en passant par chaque ville exactement une fois. Il commence par une ville quelconque et termine en retournant à la ville de départ. Les distances entre les villes sont connues. Quel chemin faut-il choisir afin de minimiser la distance parcourue ? La notion de distance peut-être remplacée par d'autres notions comme le temps qu'il met ou l'argent qu'il dépense : dans tous les cas, on parle de coût. Donc le problème de voyageur de commerce consiste à la recherche de trajet minimal en traversant villes. II. Domaine d’application : Les domaines d’application sont nombreux : problèmes de logistique, de transport aussi bien de marchandises que de personnes, et plus largement toutes sortes de problèmes d'ordonnancement. Certains problèmes rencontrés dans l'industrie se modélisent sous la forme d’un problème de voyageur de commerce, comme l'optimisation de trajectoires de machines outils : comment percer plusieurs points sur une carte électronique le plus vite possible ? III. Point de vue formel : A partir d'une matrice : : représente le coût du déplacement entre la ville i et la ville j, il faut trouver une permutation qui minimise la somme des coûts. Autrement dit, il faut trouver un cycle hamiltonien de longueur minimale dans un graphe pondéré complet.
  • 7. Le problème du voyageur de commerce 7 IV. Complexité : Ce problème est un représentant de la classe des problèmes NP-complets. L'existence d'un algorithme de complexité polynomiale reste inconnue. Un calcul rapide de la complexité montre qu'elle est en . Avec villes il y a 𝑛 − 1 ! 2 chemins possibles. En supposant que le temps pour évaluer un trajet est de 1 , le tableau ci-dessous montre l'explosion combinatoire du PCV (tableau 1). Tableau 1:nombre de trajets possibles avec le temps de calcul Les possibilités augmentent exponentiellement avec le nombre de villes
  • 8. Le problème du voyageur de commerce 8 Figure 1: courbe des nombres de villes en fonction des possibilités Conclusion Durant ce chapitre on a décrit le PVC et précisé les domaines d’application .Et pour le deuxième chapitre, on va résumer les méthodes de résolution existantes en mettant l’accent sur les plus connues.
  • 9. Le problème du voyageur de commerce 9 Chapitre 2 Solutions
  • 10. Le problème du voyageur de commerce 10 Introduction : On doit établir une démarche générale permettant de résoudre le problème pour n’importe quel ensemble de villes : cette démarche s’appelle un algorithme. Les algorithmes pour résoudre le problème du voyageur de commerce peuvent être répartis en deux classes : - les algorithmes déterministes qui trouvent la solution optimale. - les algorithmes d'approximation qui fournissent une solution presque optimale. Elles permettent d’obtenir en un temps rapide de bonnes solutions, pas nécessairement optimales mais de qualité suffisante. I. Algorithme des plus proches voisins (nearest neighbours) : La première idée consiste à se rendre systématiquement dans la ville la plus proche de celle où l’on se trouve, telle que le poids entre la ville courante et la prochaine ville soit minimale : sans y réfléchir plus, on pourrait penser que cette méthode résout effectivement le problème posé. 1. Principe : Le trajet est initialement vide (pas de villes visitées) On part d'une ville au hasard, que l'on met dans la liste des villes visitées. On recherche la ville la plus proche que l'on ajoute dans la liste des villes visitées. On recherche la ville la plus proche de la cette nouvelle ville. Si la ville est déjà dans la liste des villes visitées, on prend la deuxième ville plus proche, la troisième si besoin, etc. et ainsi de suite... Une manière d'accélérer fortement le calcul de ces solutions est de calculer auparavant le tableau des villes les plus proches (pour chaque ville, contient la liste des autres villes triées dans l'ordre du plus proche au plus éloigné).
  • 11. Le problème du voyageur de commerce 11 2. Exemples : Figure 2 :exemple de l'algorithme de la plus proche Par exemple, quel itinéraire proposeriez-vous pour visiter les cinq villes A, B, C, D et E de la figure ci-contre (les distances sont données en kilomètres) ? On commence par la ville A, les successeurs de la ville A sont B, C, E, D. Le plus court chemin c’est [AB]. Les successeurs de la ville B sont C, E, D. Le plus court chemin c’est [BC]. Les successeurs de la ville C sont B, E, D, A. Mais B et A sont déjà dans le parcours. Le plus court chemin c’est [CD]. Les successeurs de la ville D sont A, B, C, E. Mais B, A et C sont déjà dans le parcours. Le plus court chemin c’est [DE]. Et enfin [EA]. Donc le parcourt est ABCDEA et le cout de chemin est égale : 60+54+67+71+139=391 Km. Si on choisit un autre parcourt pour ce exemple, on trouve que cette méthode peut donner des mauvaises résultats(le parcourt ABEDCA= 387Km). II. Les méthodes exactes : 1. Principe : Pour le problème du voyageur de commerce, l’une des méthodes exactes les plus classiques et les plus performantes reste la Procédure par Séparation et Evaluation (PSE). Cette méthode repose sur le parcours d’un arbre de recherche. Dans un chemin de cet arbre, le premier nœud représente la ville de départ, son successeur la deuxième ville visitée, puis la troisième ville visitée, etc. À chaque étape de l’algorithme, on
  • 12. Le problème du voyageur de commerce 12 crée autant de nœuds qu’il reste de villes à visiter. À chaque nœud, le choix consiste à sélectionner la prochaine ville à visiter parmi les villes restantes. 2. Exemple : Figure 3 : exemple de la méthode exacte Mais si le nombre de ville est assez grande on ne peut pas calcule nombre de chemins par cette méthode. Il faut donc trouver un autre algorithme pour résoudre le problème, qui trouverait dans un temps raisonnable une solution approchée. Cette méthode montre que le problème du voyageur de commerce appartient au "NP complet". III. Algorithme de la colonie de fourmis : 1. Origine : L’idée originale provient de l’observation de l’exploitation des ressources alimentaires chez les fourmis. Elles sont capables collectivement de trouver le chemin le plus court entre une source de nourriture et leur nid. Des biologistes ont ainsi observé, dans une série d’expériences menées à partir de 1989, qu’une colonie de fourmis ayant le choix entre deux chemins d’inégale longueur menant à une source de nourriture avait tendance à utiliser le chemin le plus court.
  • 13. Le problème du voyageur de commerce 13 2. Principe : Les algorithmes de colonies de fourmis sont des algorithmes inspirés du comportement des fourmis. Le premier algorithme de colonies de fourmis proposé est appelé le Ant system (système fourmi). Il vise notamment à résoudre le problème du voyageur de commerce, où le but est de trouver le plus court chemin permettant de relier un ensemble de villes. L’algorithme général est relativement simple, et repose sur un ensemble de fourmis, chacune parcourant un trajet parmi ceux possibles. À chaque étape, la fourmi choisit de passer d’une ville à une autre en fonction de quelques règles :  elle ne peut visiter qu’une fois chaque ville ;  plus une ville est loin, moins elle a de chance d’être choisie (c’est la « visibilité ») ;  plus l'intensité de la piste de phéromone disposée sur l’arête entre deux villes est grande, plus le trajet aura de chance d’être choisi ;  une fois son trajet terminé, la fourmi dépose, sur l’ensemble des arêtes parcourues, plus de phéromones si le trajet est court ;  les pistes de phéromones s’évaporent à chaque itération. Le partage des données sur les phéromones est le point fort de cette technique. Figure 4:algorithme de colonie de fourmis
  • 14. Le problème du voyageur de commerce 14 3. Description : L’algorithme « Ant System » optimisant le problème du voyageur de commerce : 1) une fourmi choisit un trajet, et trace une piste de phéromone. 2) l’ensemble des fourmis parcourt un certain nombre de trajets, chaque fourmi déposant une quantité de phéromone proportionnelle à la qualité du parcours. 3) chaque arête du meilleur chemin est plus renforcée que les autres. 4) l’évaporation fait disparaître les mauvaises solutions (figure 5). Figure 5:système fourmis 4. Algorithme : Initialisation for iter:=1 to NbIter for i:=1 to n for k:=1 to m choix de la prochaine ville pour la fourmi k dépot de la trace locale endfor endfor Choix de la fourmi ayant le plus court chemin dépot de la trace globale endfor avec n : nombre de villes et m : nombre de fourmis 5. Complexité : 𝑂 𝑛2 + 𝑚 + 𝑁𝐶 𝑚𝑎𝑥 . 𝑛2 . 𝑚 Le 𝑁𝐶 𝑚𝑎𝑥 est fixé en fonction des ressources de calcul qui sont allouées à la résolution du problème.
  • 15. Le problème du voyageur de commerce 15 IV. Algorithme glouton (meilleure insertion) : 1. Principe : L'algorithme glouton (l’algorithme de la meilleure insertion) est une des méthodes classiques pour résoudre le problème du voyageur de commerce. Il s'agit de construire le parcours ville par ville, en insérant dans le parcours la ville qui le rallonge le moins. 2. Description : L’idée est la suivante : le parcours du voyageur de commerce est construit pas à pas en y insérant de nouvelles villes. À un instant donné de l’algorithme, un certain cycle de villes a été construit. L’étape suivante consiste à insérer une ville supplémentaire dans le cycle de manière optimale, c'est-à-dire qu’elle augmente au minimum la longueur totale du cycle. À l’étape initiale de l’algorithme, le parcours de voyageur est composé de deux villes, la ville de départ et celle qui en est la plus proche. L’algorithme se termine lorsque toutes les villes à visiter ont été insérées. Cependant, même si l’insertion d’une ville dans le cycle est optimale et rapide à calculer, la solution finale n’est pas nécessairement optimale, mais elle est obtenue rapidement. V. Les algorithmes génétiques : 1. Principe : Les algorithmes génétiques forment une famille très intéressante d’algorithmes d’optimisation, initiée par Charles Darwin au XIXème siècle. Le principe des algorithmes génétiques s’inspire directement des lois de la sélection naturelle. On l’utilise dans la résolution de problèmes complexes, nécessitant des temps de calcul élevés. Les algorithmes génétiques sont des algorithmes d’optimisation s’appuyant sur des techniques dérivées de la génétique et des mécanismes d’évolution de la nature : croisements, mutations, sélections, etc... Ils appartiennent à la classe des algorithmes évolutionnaires. L’idée d’un algorithme génétique est tirée de la théorie darwinienne de l'évolution. Chaque groupe d’individus (animaux, espèces végétales...), appelé aussi population, donne lieu à une génération suivante par reproduction sexuelle. Cette génération consiste à croiser les individus entre eux pour donner des descendants possédant les caractères des deux parents. En plus de ce croisement, des mutations de caractères interviennent aléatoirement dans la génération de la population suivante. Puis, cette nouvelle population subit une sélection, métaphore de la sélection naturelle : seuls les individus les mieux adaptés à l’environnement survivent. Enfin,
  • 16. Le problème du voyageur de commerce 16 à son tour, cette population donnera lieu par le même processus à une nouvelle population, qui sera encore plus performante dans son environnement. Pour développer un algorithme génétique, les individus sont des solutions, la sélection se fait grâce à leur qualité (évaluée à travers la fonction objectif), les croisements entre deux solutions sont faits à l’aide d’opérateurs de croisement, etc. 2. Description d’AG : Figure 6:Schéma du fonctionnement de l’algorithme génétique Les étapes suivantes sont exécutées (figure 6) :  Tout d’abord, chaque individu est évalué. Pour cela, on calcule la valeur de la fonction objective, c’est-à-dire la longueur du cycle parcouru par le voyageur de commerce.  Puis, une étape de sélection est appliquée. Cette étape permet d’éliminer les moins bons individus et de garder uniquement les meilleurs en fonction de leur évaluation. Il existe plusieurs méthodes de sélection. Une sélection par rang ne fait pas intervenir le hasard, contrairement à la roulette, car elle choisit les n meilleurs individus de la
  • 17. Le problème du voyageur de commerce 17 population. Chaque individu a ainsi une probabilité de sélection dépendant de son évaluation, avec une plus forte probabilité pour les meilleurs individus.  L’étape suivante consiste à croiser les individus précédemment sélectionnés pour obtenir une nouvelle population. Deux parents sont donc choisis pour appliquer un opérateur de croisement afin d’obtenir un descendant (nouvel individu). Il existe de nombreuses techniques de croisement ; dans le cas présent, nous utiliserons le « crossover en un point ». Cet opérateur consiste à recopier une partie du parent 1 et une partie du parent 2 pour obtenir un nouvel individu. Le point de séparation des parents est appelé point de croisement. Il faut cependant faire attention à ne pas visiter plusieurs fois la même ville (on ne recopie pas les villes déjà visitées), et à ne pas oublier de ville (on rajoute à la fin les villes non prises en compte). Voici un exemple avec 8 villes et un point de croisement juste après la troisième ville (figure7) : Figure 7:croisement Pour mieux comprendre le croissement, voilà les étapes à suivre (figure 8): 1. On choisi aléatoirement deux points de découpe. 2. On interverti, entre les deux parcours, les parties qui se trouvent entre ces deux points. 3. On supprime, à l’extérieur des points de coupe, les villes qui sont déjà placées entre les points de coupe.
  • 18. Le problème du voyageur de commerce 18 Figure 8:croissement  Enfin, avant de revenir à la première étape, un procédé de mutation est utilisé pour diversifier les solutions au fur et à mesure des générations. Cette mutation consiste à modifier aléatoirement une petite partie d’un caractère dans certains individus de la nouvelle génération. Cette étape est effectuée avec une très faible probabilité, et consiste par exemple à échanger deux villes consécutives dans un individu. 3. Adaptation à l'algorithmique et au PVC : Un individu trajet Son évaluation la longueur totale de ce trajet Un gène ville où l'on passe à une certaine position dans le parcours ADN la liste des villes dans l'ordre du parcours. VI. Etude comparative et choix de solution : L’algorithme de plus proche voisin peut donner parfois le meilleur chemin ; mais elle peut aussi donner des résultats très mauvais. Les méthodes exactes est inutilisable, sauf si le nombre de villes est très petit. L’algorithme glouton, même si l’insertion d’une ville dans le cycle est optimale et rapide à calculer, la solution finale n’est pas nécessairement optimale, mais elle est obtenue rapidement. En fait des recherches sont faites montrent que ce algorithme n’est pas optimale.
  • 19. Le problème du voyageur de commerce 19 On a éliminé trois algorithmes, on évoquera deux d'entre elles, assez innovantes et intéressantes puisqu’elles s’inspirent de phénomènes naturels : les algorithmes génétiques et les algorithmes de colonies de fourmis. Entres ces deux derniers algorithmes, on a choisit l’algorithme génétique. Ce type d'algorithme est intéressant pour obtenir plusieurs solutions de bonne qualité. En effet, à la fin de l’algorithme, la population est constituée des meilleures solutions trouvées. Figure 9:Schéma récapitulatif d’AG Conclusion : Après avoir détaillé les algorithmes proposés ainsi que dégager la solution optimale, dans le chapitre suivant, nous nous proposons de présenter la réalisation du programme.
  • 20. Le problème du voyageur de commerce 20 Chapitre 3 Réalisation
  • 21. Le problème du voyageur de commerce 21 Introduction Nous présenterons dans cette partie les points clefs de programme exécuté par Java. I. Choix des outils : Nous avons choisi Eclipse comme environnement de travail et le langage Java pour notre implémentation. Nous avons implémenté une interface graphique pour notre programme, au profit d'une meilleure esthétique et d'une ergonomie améliorée. II. Fonctionnement du programme : On doit définir :  le nombre de ville  nombre de chemin  nombre de génération  nombre de mutation Après on lance l’application. On peut tester un chemin et afficher son ordre d’itération. Plus le nombre villes est assez grand, le lancement de l’application prend de temps.
  • 22. Le problème du voyageur de commerce 22 III. Imprimes écran : Figure 10:nombre de ville=200
  • 23. Le problème du voyageur de commerce 23 Figure 11:5villes
  • 24. Le problème du voyageur de commerce 24 Figure 12:1000 villes
  • 25. Le problème du voyageur de commerce 25 Figure 13:tester un chemin
  • 26. Le problème du voyageur de commerce 26 Conclusion générale Pour conclure, ce projet a constitué une étape intéressante dans notre apprentissage de la complexité des algorithmes. Ce travail nous a permis de faire une étude comparatives des plusieurs algorithmes ainsi la mise en œuvre de l’algorithme génétique qui est largement utilisé dans la recherche scientifique. Dans ce projet, nous avons eu la possibilité de dégager la solution optimale ainsi que d’appliquer notre algorithme élu pour PVC.