Académique Documents
Professionnel Documents
Culture Documents
Présenté par
Benjamin Vincent
Je tiens à remercier dans un premier temps, la direction du LABEX IMOBS3 et plus particulièrement,
Monsieur le Professeur Alain Quilliot responsable du challenge 2 « Services & Systèmes de Mobilité
Intelligente » qui a rendu ce stage possible.
Je tiens également à remercier tous les membres du LIMOS de leur accueil chaleureux.
L’encadrement de mon stage a été réalisé au quotidien par Philippe LACOMME, Nicolay TCHERNEV et Libo
REN. De par leur suivi régulier ils m’ont permis de découvrir le monde de la recherche et ils ont partagé
avec moi leur expérience. Merci aussi à eux pour m'avoir fait découvrir la notion de publication scientifique
et d'avoir écrit avec moi des articles pour des conférences.
Un grand merci pour l’accueil qu’ils m’ont réservé et merci de m’avoir permis de trouver un financement de
thèse, thèse qui débute à la suite de ce stage au sein du LIMOS en collaboration avec Ip Leanware.
Enfin ces remerciements ne seraient pas complets sans y associer les thésards que j’ai eu le plaisir de
fréquenter pendant 6 mois. Sans chercher à les citer tous citons Raksmey PHAN et Diyé DIA.
Résumé
Ce stage a été réalisé au sein du LIMOS, qui est une unité de recherche CNRS et a porté sur l'étude de
différents problèmes de tournées de véhicules dont en particulier le VRP et le HVRP. Dans un premier
temps, mon travail a consisté à implémenter une métaheuristique de résolution approchée du VRP. Dans un
deuxième temps nous nous sommes intéressé au problème de cheminement dans un environnement
urbain afin de pouvoir appliquer le travail sur les tournées de véhicules avec des instances issues d’un
réseau urbain. Nous nous sommes particulièrement intéressé au cas de cheminement de piétons avec
comme objectif de concevoir des algorithmes de cheminement dédiés aux contraintes spécifiques liées au
contexte mobile. Le travail réalisé a donné lieu à la conception d'un web service et d'une application mobile
pour piéton. Enfin le troisième chapitre est dédié à la conception d'une métaheuristique pour HVRP qui est
testée sur des instances de la littérature mais aussi sur des instances générées à partir de réseaux routiers.
Le travail réalisé durant ce stage a donné lieu à trois soumissions dans des conférences.
mots clefs : tournées de véhicules, métaheuristique, cheminement, milieu urbain, mobilité.
Abstract
This internship has been achieved in the LIMOS, a CNRS research unit and has been focused on the
study of different vehicles routing problems especially on the VRP and on the HVRP. At first, my job was to
implement a metaheuristic which is an approximated method of VRP. In a second step we studied the
routing problem in an urban in the case of pedestrian with the objective to design algorithms dedicated to
the specific constraints in mobile context. The work carried out has resulted in the design of a web service
and a route guidance application for pedestrian. Finally, the third chapter of this report is dedicated to
design of metaheuristics for HVRP. The metaheuristic we introduced is benchmarked on instances of the
literature but also on instances generated from real life networks. The work achieved during this internship
resulted in three submissions in conferences.
Keywords : vehicle routing problems, metaheuristic, routing, urban area, mobility.
Table des matières
Table des matières .................................................................................................................................. i
Liste des figures ..................................................................................................................................... v
Liste des tableaux ................................................................................................................................ vii
Liste des algorithmes........................................................................................................................... viii
Introduction........................................................................................................................................... 1
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP......................................................... 3
1. Problème du type VRP .......................................................................................................................... 3
1.1 Présentation du VRP ............................................................................................................................ 3
1.2 Etude sur les méthodes de résolution existantes ............................................................................... 5
2. Conception d’une métaheuristique basée sur un codage indirect ...................................................... 6
2.1 Codage indirect des solutions.............................................................................................................. 6
2.2 Critères d’évaluation d’une métaheuristique ..................................................................................... 8
3. Principe d'un GRASP/ELS basé sur un codage indirect......................................................................... 9
3.1 Définition d’une métaheuristique GRASP ........................................................................................ 9
3.2 Définition d’une métaheuristique ELS ........................................................................................... 11
3.3 La méthode hybride GRASP/ELS .................................................................................................... 11
4. GRASP/ELS proposé ............................................................................................................................ 12
4.1 Schéma général de la méthode implémentée ............................................................................... 13
4.2 Etape d’initialisation : la méthode des plus proches voisins ......................................................... 13
4.3 L’algorithme Split ........................................................................................................................... 14
4.4 La mutation .................................................................................................................................... 18
4.5 La recherche locale ........................................................................................................................ 19
5. Expérimentations numériques ........................................................................................................... 21
5.1 Paramètres ..................................................................................................................................... 21
5.2 Performances des ordinateurs utilisés........................................................................................... 22
5.3 Résultats numériques .................................................................................................................... 22
6. Conclusion .......................................................................................................................................... 23
7. Références .......................................................................................................................................... 23
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain ............................................... 25
8. Introduction ........................................................................................................................................ 25
i
Table des matières
iii
Liste des figures
Figure 1 : Solution d’un problème de VRP .......................................................................................... 5
Figure 2 : Classification des fonctions de mapping d'après (Cheng et al., 1996) ................................ 7
Figure 3 : Liste des publications avec un codage indirect selon Duhamel et al., [Duh12] ................. 8
Figure 4 : Schéma d’une heuristique efficace selon (Duhamel et al., 2011 )....................................... 9
Figure 5 : Initialisation de la méthode GRASP.................................................................................. 10
Figure 6 : Recherche locale de la méthode GRASP .......................................................................... 10
Figure 7 : Mutation d’un algorithme ELS .......................................................................................... 11
Figure 8: Recherche locale d’un algorithme ELS .............................................................................. 11
Figure 9 : Schéma d’une métaheuristique de type GRASP/ELS ....................................................... 12
Figure 10 : Mise en correspondance de l’espace des solutions et de celui des tours géants. ............. 12
Figure 11 : Schéma du GRASP/ELS proposé .................................................................................... 13
Figure 12 : Méthode des plus proches voisins ................................................................................... 14
Figure 13 : Exemple d’un problème avec clients déjà ordonnancés .................................................. 15
Figure 14 : Exemple de tournées incluant le premier client .............................................................. 16
Figure 15 : Exemple de tournée n’incluant pas le premier client (A) ................................................ 16
Figure 16 : Schéma de l’ensemble des tournées possibles................................................................. 16
Figure 17 : Calcul du plus court chemin ............................................................................................ 17
Figure 18 : Etape de mutation de l’algorithme GRASP/ELS ............................................................ 18
Figure 19 : Mouvement de type 2-opt intra-tournée .......................................................................... 19
Figure 20 : Mouvement de type 2-opt inter-tournées ........................................................................ 20
Figure 21 : Schéma de la méthode de type GRASP/ELS .................................................................. 22
Figure 22 : Graphe d’un problème de plus court chemin .................................................................. 26
Figure 23 : Initialisation de Dijkstra .................................................................................................. 28
Figure 24 : Première itération de Dijkstra .......................................................................................... 28
Figure 25 : Deuxième itération du Dijkstra ....................................................................................... 29
Figure 26 : Troisième itération du Dijkstra ........................................................................................ 29
Figure 27 : Dernière itération de Dijkstra .......................................................................................... 30
Figure 28 : Initialisation de Bellman.................................................................................................. 31
Figure 29 : Première itération de Bellman ......................................................................................... 31
Figure 30 : Deuxième itération de Bellman ....................................................................................... 32
Figure 31 : Initialisation de Floyd-Warshall ...................................................................................... 32
Figure 32 : Première itération de Floyd-Warshall .............................................................................. 33
Figure 33 : Deuxième itération de Floyd-Warshall ............................................................................ 33
Figure 34 : Troisième itération de Floyd-Warshall ............................................................................ 33
Figure 35 : Fin de Floyd-Warshall ..................................................................................................... 33
Figure 36 : Initialisation de A étoile ................................................................................................... 34
Figure 37 : Liste d’attente de la première itération de A étoile .......................................................... 35
Figure 38 : Liste d’attente de la deuxième itération de A étoile ........................................................ 35
Figure 39 : Liste d’attente de la dernière itération de A étoile ........................................................... 35
Figure 40 : Architecture où l’application client fait office de terminal.............................................. 36
Figure 41 : Limitation du graphe ....................................................................................................... 38
Figure 42 : Contraction du graphe ..................................................................................................... 39
Figure 43 : Architecture permettant de limiter les problèmes de connexion réseau .......................... 40
Figure 44 : Calculs itératifs ................................................................................................................ 41
Figure 45 : Illustration d’une carte constituée de tuiles ..................................................................... 43
v
Liste des figures
vi
Liste des tableaux
Tableau 1 : Tableau de comparaison de puissance ............................................................................. 22
Tableau 2 : Résultats du VRP sur les instances de Christofides ........................................................ 23
Tableau 3 : Comparaison des différents systèmes de cartographies .................................................. 42
Tableau 4 : Instances et résultats de référence ................................................................................... 51
Tableau 5 : Bilan des résultats............................................................................................................ 54
Tableau 6: Méthodes publiées utilisant les instances de Golden et al. référencées par [Pri09] ......... 62
Tableau 7 : Demandes des clients du tour géant de l’exemple du Split ............................................. 65
Tableau 8 : Liste des véhicules disponibles de l’exemple du Split .................................................... 65
Tableau 9 : Demandes des clients de l’exemple de génération de solutions ...................................... 71
Tableau 10 : Liste des véhicules disponibles de l’exemple de génération de solutions..................... 71
Tableau 11 : Donnée de l’exemple de calcul de distance de Zhang ................................................... 74
Tableau 12 : Performance des processeurs......................................................................................... 80
Tableau 13 : Résultats du HVRP sur les instances de Golden ........................................................... 81
Tableau 14 : Liste des tournées d’une solution sur l’instance de Clermont-Ferrand ......................... 84
vii
Liste des algorithmes
Algorithme 1 : 4-plus proches voisins .......................................................................................... 14
Algorithme 2 : Séparation d’un tour géant (Prins 2004)1 ............................................................ 18
Algorithme 3 : 2-opt intra tournée (Recherche locale)................................................................. 19
Algorithme 4 : Recherche locale de type 2-opt inter tournées ..................................................... 21
Algorithme 5 : Split pour HVRP .................................................................................................. 70
Algorithme 6 : Distance de Zhang ............................................................................................... 74
Algorithme 7 : Recherche locale pour HVRP .............................................................................. 77
viii
Introduction
La recherche opérationnelle est un domaine mêlant l'informatique et les mathématiques. L'objectif de
ce domaine est de développer des méthodes permettant de choisir parmi un nombre important de
possibilités, la meilleure solution à un problème donné.
Les problèmes de recherche opérationnelle que nous allons traiter tout au long de ce rapport sont des
problèmes de tournées de véhicules. Ils consistent à organiser de façon optimale les tournées d'une flotte
de véhicules afin de livrer une liste de clients. La combinatoire des solutions associées à ces problèmes est
tellement importante qu’il est difficile de déterminer de façon exacte la solution optimale dans des temps
acceptables. De nombreuses méthodes de résolution de ces problèmes sont donc approchées afin d’être
exécutées en un minimum de temps. C’est à ces méthodes que nous nous intéressons dans ce rapport.
D’autre part, les nouvelles technologies mobiles (via la téléphonie mobile par exemple) envahissent
notre quotidien. On peut penser en particulier aux smartphones et à leurs applications dialoguant avec des
services en ligne comme la météo.
L’objectif de ce stage est de réfléchir sur l’adaptation des méthodes du domaine de la recherche
opérationnelle dans un environnement mobile. Dans ce contexte, nous nous sommes plus particulièrement
intéressés aux problèmes de tournées de véhicules en zone urbaine avec pour objectif de développer des
méthodes dynamiques et réactives aux contraintes du développement mobile.
Le deuxième chapitre porte sur le problème de cheminement en milieu urbain. Ce problème illustre
parfaitement les contraintes liées au développement mobile et sa résolution est de plus nécessaire pour
aborder les problèmes de tournées de véhicules sur des données routières. Nous nous sommes
particulièrement intéressés dans ce chapitre au cas du cheminement de piétons afin d’illustrer nos résultats
sur une architecture constituée d’une application Android et d’un service web. Ce chapitre contient une
présentation du problème de plus court chemin dans des graphes ainsi que de ses différentes méthodes de
résolution. Il contient également la présentation de l’algorithme que l’on a développé afin de pallier aux
contraintes urbaines et mobiles. On présente également les principes de l’application mobile et du service
web développés. On termine ce chapitre par une analyse des résultats de notre algorithme sur des
instances concrètes basées sur le réseau routier de Clermont-Ferrand.
Le troisième chapitre aborde le problème de tournées de véhicules dans le cas d’une flotte hétérogène.
Ce chapitre consiste à élaborer une méthode de résolution de ce problème en appliquant les contraintes
liées à l’environnement mises en évidence au chapitre précédent. Ce chapitre reprend le travail effectué sur
la conception de méthodes approchées du chapitre 1 et les résultats sur le problème de cheminement du
chapitre 2. Il contient la présentation du problème de tournées de véhicules avec une flotte hétérogène
ainsi que de ses différentes méthodes de résolution. Il présente également le principe de la méthode de
résolution développée dont les résultats sont comparés avec les résultats des différents articles référents du
1
Introduction
sujet. Ce chapitre conclut sur l’application de la méthode à un exemple issu du réseau routier de Clermont-
Ferrand.
Ce stage m'a permis de découvrir le monde de la recherche opérationnelle avec une orientation très
appliquée puisque les objectifs ont tous consisté à fournir des méthodes efficaces sur des cas les plus
réalistes possibles. C’est pourquoi, ce rapport met en évidence : d’une part l’aspect ingénierie, à travers le
développement d’une application mobile et d’un service web, et d’autre part l’aspect recherche à travers la
conception de méthodes de résolution pour différents problèmes de recherche opérationnelle.
2
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
CHAPITRE 1
Le problème de base en tournées de
véhicules : le VRP
Le VRP est définit comme suit : on considère un graphe orienté complet (𝐺 = (𝑉, 𝐸)) où 𝑉 =
*0, . . , 𝑛+ est l’ensemble des sommets et 𝐸 = *(𝑖, 𝑗) | ∀𝑖, 𝑗 𝜖 𝑉, 𝑖 ≠ 𝑗+ est l’ensemble des arcs. Les
sommets regroupent le dépôt (sommet 0) et les clients (sommets 1 à 𝑛). Chaque arc (𝑖, 𝑗) représente
le plus court chemin pour aller de 𝑖 à 𝑗. On lui associe un coût non-négatif qui représente la distance
3
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Modélisation mathématique :
Fisher et Jaikumar *Fis81+ ont formulé le problème sous la forme d’un programme linéaire :
𝐾
𝑘
Min ∶ z = ∑ ∑ 𝐶𝑖𝑗 𝑥𝑖𝑗 (1)
(𝑖,𝑗)∈𝐸 𝑘=1
Sous les contraintes :
∑ di yik ≤ Q ∀ k = 1, … , K (2)
i∈V
K
∑ y0k ≤K (4)
k=1
∀ S ⊂ V; 2 ≤ |S| ≤ n − 2,
∑ xijk ≤ |S| − 1 (7)
k = 1, … , K
i,j∈ S
xijk ∈ *0,1+ ∀ i, j ∈ V ; i ≠ j , k = 1, … , K (8)
yik ∈ *0,1+ ∀ i ∈ V , k = 1, … , K (9)
où
𝑉 : l’ensemble des sommets constitué des clients et du dépôt.
𝐸 : l’ensemble des arcs.
𝐶𝑖𝑗 : le coût de l’arc (𝑖, 𝑗).
𝐷𝑖 : la demande du client 𝑖.
𝐾 : le nombre de véhicules.
𝑄 : la capacité des véhicules.
𝑘
𝑥𝑖𝑗 : indique si l’arc (𝑖, 𝑗) fait partie de la tournée 𝑘.
𝑘
𝑦𝑖 : égale à 1 si le véhicule k effectue le service chez le client i. L’indice i=0 correspond au
4
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
dépôt.
Dans ce modèle, la fonction objectif est de minimiser la somme des coûts de transport. Les
contraintes (2) vérifient que la capacité de chargement de chaque véhicule est bien respectée. Les
contraintes (3) permettent de vérifier que chaque client est desservi. Les contraintes (4) permettent
de vérifier que l’on construit au plus 𝐾 tournées. Les contraintes (5) et (6) assurent la cohérence entre
la visite d’un client par un véhicule 𝑘 et l’appartenance de ce client à la tournée 𝑘. Les contraintes (7)
ont pour but d’éviter la formation de sous-tours au sein des tournées.
Modélisation sous forme de graphe :
On peut modéliser une solution du problème de type VRP par un graphe (voir Figure 1) dans
lequel le dépôt et les clients sont représentés chacun par un nœud. Chaque arc entre deux sommets
symbolise l’ordre de passage du véhicule et la distance qui parcourue.
Méthodes exactes :
Les méthodes de résolution exactes ne sont, en pratique, utilisées que pour les instances de
petite taille (environ 50 clients) *Tot02+ car le temps de calcul pour ce genre de méthode est
exponentiel en fonction du nombre de clients considérés et de ce fait, les instances de taille moyenne
(de 100 à 200 clients) ont des temps de résolution peu raisonnables.
Ces méthodes sont divisées en trois catégories :
- les méthodes de branchement (procédure par évaluation et séparation progressive) qui
ont pour principe de diviser progressivement l’espace des solutions du problème créant
ainsi un arbre de sous problèmes dont les feuilles sont résolubles rapidement par des
méthodes de programmation linéaire. (Ex : branch-and-bound *Lap87+) ;
- les méthodes de programmation dynamique qui sont basés sur une logique de résolution
ascendante et qui ont pour principe d’élaborer une série de sous-problèmes. Ces
méthodes ont été utilisées la première fois pour un problème de type VRP par Eilon et al.
*Eil71+ en 1971 ;
- les méthodes basées sur la programmation linéaire en nombres entiers qui comprend par
5
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Méthodes approchées :
Les méthodes de résolution approchées ne garantissent pas d’avoir une solution optimale,
cependant ce sont des outils permettant d’obtenir rapidement une solution de très bonne qualité,
elles sont donc particulièrement biens adaptées pour les instances de grandes tailles (plus de 200
clients). La résolution de ce type d'instance par une méthode exacte est généralement impossible.
On peut distinguer deux catégories de méthodes approchées :
- les heuristiques qui sont des algorithmes dédiés à un unique problème. En particulier,
celles dédiées au VRP sont souvent issues de celles du TSP. Parmi les heuristiques souvent
utilisées pour le VRP, on peut distinguer les heuristiques de construction qui consistent à
élaborer la solution étape par étape sans remettre en question l’étape précédente (ex :
méthode d’insertion *Chr79+) . Les heuristiques d’amélioration consistent à partir d’une
solution existante et à explorer les voisinages pour l’améliorer. Les heuristiques à deux
phases consistent à séparer la recherche de l’ordre dans lequel on dessert les clients et
l’attribution des clients aux différentes tournées (ex : The Fisher and Jaikumar algorithm
*Fis81+) ;
- les métaheuristiques qui sont des méthodes plus générales et qui peuvent s’appliquer à
une grande variété de problèmes. Ce sont des schémas généraux qui peuvent incorporer
une ou plusieurs heuristiques. Les métaheuristiques sont constituées généralement de
deux étapes principales, une étape d’initialisation qui permet d’obtenir une solution
initiale valide et une étape d’amélioration de cette solution.
Les métaheuristiques peuvent se distinguer en trois catégories (Classification par Gendreau et al.
*Gen02+) :
- les méthodes de recherche voisinage qui consistent à améliorer la solution par des
déplacements itératifs en choisissant une nouvelle solution parmi le voisinage considéré.
(ex : Le recuit simulé *Osm93+) ;
- les méthodes de recherche à base de population qui consistent à générer plusieurs
solutions et à les améliorer en parallèle. (ex : l’algorithme génétique (GA) *Prin04+) ;
- les méthodes de mécanisme d’apprentissage qui basent l’évaluation d’une solution sur
les informations recueillies au fur à mesure de l’algorithme. (ex : l’algorithme de colonie
de fourmis *Col91+).
Les métaheuristiques développées sont souvent des hybridations entre ces différentes catégories
comme l’illustre la métaheuristique détaillée dans la section 3 de ce chapitre.
6
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
d’optimisation, il n’est pas toujours facile de travailler directement dans l’espace des solutions (qui
correspond à l’ensemble des graphes orientés modélisant une solution dans le cas des problèmes de
tournées de véhicules). C’est pourquoi, depuis les années 80, dans un premiers temps pour les
problèmes d’ordonnancement, de nombreux articles ont mis en évidence l’importance d’une
représentation indirecte de la solution. Plus particulièrement, on trouve dans les travaux de Cheng et
al. *Che96+, une définition générale (Figure 2), applicable en particulier à notre problème de tournées
de véhicules. La Figure 2 montre comment doit être mise en place un codage indirect d’une solution
pour être utilisable. Un tel schéma consiste en deux espaces : espace de codage (indirect) et espace
des solutions (i.e. codage direct). Chaque élément de l’espace de codage choisi doit, après avoir été
appliqué par une fonction de « mapping » simple, correspondre à un élément dans celui des
solutions qui respectent les contraintes. D’après *Che96+, il existe trois types de fonctions de
« mapping » :
- Les fonctions de type « 1-to-1 » où un et un seul élément de l’espace de codage est
associé à un et un seul élément de l’espace des solutions
- Les fonctions de type « n-to-1 » où plusieurs éléments de l’espace de codage peuvent
être reliés à un seul élément de l’espace des solutions.
- Les fonctions de type « 1-to-n » où un élément de l’espace de codage peut être relié à
plusieurs éléments de l’espace des solutions.
1-to-n mapping
n-to-1 mapping
1-to-1 mapping
Il est naturellement plus confortable de trouver une fonction de type « 1-to-1 » pour établir une
correspondance entre l’espace de codage et l’espace des solutions, cependant dans la pratique, il est
très difficile de trouver une fonction de « mapping » du type « 1-to-1 ». Par exemple, la fonction de
« mapping » associée au vecteur de Bierwirth *Bie95+ qui est une représentation indirecte classique
d’une solution d’un problème d’ordonnancement est du type « n-to-1 ».
Dans le cas des problèmes de tournée de véhicule, la première méthode se basant sur un codage
indirect fut une méthode de type « route-first, cluster-second » proposée par Beasley dans un article
de 1983 *Bea83+ dans laquelle apparaît la méthode Split, détaillée dans la section 3.2 de ce chapitre,
qui permet de passer de l’espace de codage à l’espace des solutions.
L'application de codage indirect pour les problèmes de type VRP se base le plus souvent sur la
proposition initiale de Beasley. Depuis les années 2001 ce type de codage a connu un fort
engouement et a été inséré dans des techniques globales d'optimisation *Lac 01+. Duhamel et al.
7
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
*Duh12+ ont réalisé un état de l'art dans lequel 41 articles ont été référencés (Figure 4).
Figure 3 : Liste des publications avec un codage indirect selon Duhamel et al., *Duh12+
8
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Comme le montre la Figure 4, le point clef d’une telle métaheuristique est d’alterner entre deux
espaces. L’espace de codage qui est utilisé pour le processus de diversification et l’espace des
solutions qui est utilisé pour améliorer la solution par une recherche locale.
Dans la majorité des méthodes de résolution des problèmes de tournées de véhicules on peut
utiliser comme représentation indirecte un tour géant qui donne un ordre dans lequel doivent être
desservis tous les clients. Un tour géant est une solution du problème de voyageur de commerce
(TSP) sur une instance constituée du même graphe. On peut alors identifier une telle représentation à
une solution de notre problème en découpant ce tour géant de la façon la plus efficace possible en
tenant compte des contraintes telles que la capacité de chargement des véhicules.
9
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
l’espace des solutions par une gestion correcte de la diversification et de l’intensification durant le
processus d'optimisation. Elle se compose de deux étapes distinctes itérées jusqu’à ce qu’un nombre
d'itérations choisi soit atteint :
- l’initialisation : consiste à générer une solution du problème. La construction de cette
solution se fait généralement par des techniques de construction gloutonne permettant
d'obtenir des solutions de qualité médiocre mais dans des temps raisonnable. Elles sont
basées dans la majorité des cas, sur une technique de plus proche voisin randomisé.
la première étape consiste à créer une liste ordonnée des sommets à ajouter à la
solution en utilisant par exemple un critère d'éloignement par rapport au dernier
somme inséré. Dans l’exemple ci-dessous l’étape sélectionne les éléments A, B, et
C.
la deuxième étape consiste à choisir aléatoirement un élément de la liste afin de
le rajouter au vecteur solution illustré dans l’exemple Figure 5. Dans la majorité
des cas, on utilise une probabilité 𝑃 de sélectionner un élément en position 𝑖
dans la liste et on passe à l'élément suivant si la probabilité n'est pas réalisée.
- La recherche locale consiste, une fois la solution obtenue par l’initialisation, à améliorer
cette solution en recherchant la meilleure des solutions parmi celles de son voisinage.
10
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
- Une étape de recherche locale qui consiste à améliorer chaque solution fils par un
processus de recherche locale. La meilleure solution obtenue est ensuite retenue pour
être la solution de départ à l’étape suivante.
11
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
4. GRASP/ELS proposé
Dans cette partie est présentée l’application du GRASP/ELS au problème de type VRP. Le
GRASP/ELS proposé dans cette partie se base sur un principe de codage indirect, et suit le schéma
présenté dans la section 3.3.Choix de l’espace de codage
La métaheuristique proposée se base sur une représentation indirecte de la solution. La
représentation indirecte choisie pour notre solution est un vecteur de clients nommé « tour géant » :
le tour géant est en fait une solution du TSP.
La fonction de « mapping » associée est de type « n-to-1» et a été définie en 2001 par *Lac 01+.
Elle est couramment nommée SPLIT dans la littérature, son principe est détaillé dans la section 4.3. La
fonction qui permet de passer de l’espace des solutions à l’espace de codage est une fonction de
concaténation des différentes tournées d’une solution.
Figure 10 : Mise en correspondance de l’espace des solutions et de celui des tours géants.
12
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
13
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
5).
Etablir, pour chaque sommet, la liste ordonnée des clients du plus proche
au plus éloigné du sommet.
14
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
15
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Chaque arc (𝑖, 𝑗) représente une tournée du client 𝑖+1 au client 𝑗 du tour géant.
16
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
17
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
4.4 La mutation
L’originalité de l’approche proposée réside dans la définition d’un opérateur de mutation sur un
tour géant. Cette étape consiste alors à générer plusieurs tours géants par permutation de deux
éléments choisis aléatoirement dans le tour (mouvement swap randomisé).
18
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Sur la Figure 19, l’arc de A à B et L’arc de E à F ont été remplacés par un arc de A à E et un de B à F
entrainant l’inversion du sens de 3 arcs de la tournée.
Pour être sûr que la tournée n’est plus améliorable par un tel mouvement, on effectue une
double boucle pour parcourir tous les échanges d’arcs possibles et on réitère l’opération jusqu’à ce
qu’aucune amélioration de la tournée ne soit trouvable (voir Algorithme 3).
19
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
Sur la Figure 20, l’arc de A à B et L’arc de E à F ont été remplacés par un arc de A à F et un de E à B.
Pour être sûr que le coût total des deux tournée n’est plus améliorable par un tel mouvement, on
effectue une double boucle pour parcourir tous les échanges d’arcs possibles et on réitère l’opération
jusqu’à qu’aucune amélioration de la tournée ne soit trouvée.
20
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
5. Expérimentations numériques
Dans cette partie sont exposés les résultats obtenus, en termes de performance, de la
métaheuristique de type GRASP/ELS dont nous venons de faire la description. L’algorithme a été
implémenté c++ sous visual studio 2008 et a été testé sur les instances classiques du VRP puis les
résultats sont comparés à ceux obtenus par C. Prins en 2004 *Prin04+.
5.1 Paramètres
Pour présenter l’algorithme de type GRASP/ELS regroupant les différentes étapes présentées dans
la partie 3 de ce chapitre et établir les paramètres de façon claire on s’appuie sur le schéma Figure 21.
Les différentes étapes :
- L’étape d’initialisation se fait par une méthode de génération de solution de type plus
proches voisins (Nearest Neighbors).
- La recherche locale est constituée d’un opérateur 2-opt inter tournées et d’un opérateur
2-opt intra tournée.
- La méthode de mutation s’effectue par interversion entre deux éléments d’un tour géant.
Les différents paramètres qui ont été choisis, de façon à donner les résultats les plus proches de
la meilleure solution connue en un temps raisonnable, en effectuant des test sur les premières
instances de Christofides et al.:
- Le nombre d’itérations de la boucle GRASP α=30.
- Le nombre d’itérations de la boucle ELS β=30.
- Le nombre d’itérations de la recherche locale après l’initialisation δ1=15.
- Le nombre d’itérations de la recherche locale après la mutation δ2=10.
21
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
22
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
pour être comparé à celui de C. Prins. La colonne 10 correspond au temps moyen pour atteindre la
meilleure solution connue (0 si la meilleure solution connue n’est pas atteinte) et il est multiplié par un
coefficient de 3.4 colonne 12.
Tableau 2 : Résultats du VRP sur les instances de Christofides
Sur les instances 1 et 12 l’algorithme proposé parvient à trouver la meilleure solution connue à
chacune de ses 10 exécutions, cependant le temps moyen pour son exécution sur ces 2 instances est
très mauvais par rapport à celui de C. Prins (10 et 20 fois supérieur). Sur les autres instances, en
comparant le GAP des solutions obtenues avec celui de C. Prins, on voit clairement que l’algorithme
proposé donne des solutions qui sont moins bonnes. Au niveau des temps on remarque que
l’algorithme proposé est plus rapide sur les instances où C. Prins ne trouve pas la meilleure solution
connue et qu’il est plus lent dans les autres cas.
6. Conclusion
Dans ce chapitre nous avons pu découvrir les problèmes de tournées de véhicules et nous
sommes monté en compétences sur la conception de méthode de résolution approchée et plus
particulièrement sur les métaheuristiques par le biais de l’élaboration d’une métaheuristique de type
GRASP/ELS pour la résolution du problème de tournée de véhicules. Nous avons par ailleurs pu
comparer les performances de l’algorithme proposé par rapport aux résultats de Prins *Prin04+ qui est
une référence dans le domaine des tournées de véhicules. On obtient des résultats satisfaisants et qui
permettent d’attaquer des problèmes plus complexes de tournées.
7. Références
*Bea83+ J.E. Beasley. Route-first cluster-second methods for vehicle routing. Omega, vol. 11,
pp. 403–408, 1983.
*Bie95+ C., Bierwirth, A generalized permutation approach to job-shop scheduling with genetic
algorithms. OR Spektrum, vol. 17, pp 87-92, 1995.
*Che96+ R. Cheng, M. Gen and Y. Tsujimura. A tutorial survey of job-shop scheduling problems using
genetic algorithms – I representation, Computers and industrial engineering, vol. 30, pp.
983-997. 1996.
23
Chapitre 1 : Le problème de base en tournées de véhicules : le VRP
24
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
CHAPITRE 2
Le problème de cheminement
de piétons en milieu urbain
L’objectif de ce chapitre est d'étudier en quoi un contexte mobile peut amener à redéfinir
certains algorithmes afin de proposer un système orienté mobile qui soit efficace. Pour ce
faire, on se place dans le cas du cheminement de piétons en milieu urbain pour lequel la
conception d'une application mobile basée sur une architecture client-serveur va être
réalisée. La conception de cette application comprend la conception d'un algorithme de plus
court chemin adapté c'est-à-dire permettant d’effectuer des calculs au fur et à mesure du
déplacement du piétons offrant la possibilité de réagir aux aléas du parcours.
Dans un premier temps, on introduit les algorithmes de plus court chemin et plus
généralement les problèmes de cheminement dans les graphes avant de présenter
l’algorithme développé. Dans un deuxième temps, nous montrons comment cet algorithme
s'intègre au sein d'un système complet visant à calculer puis à guider un usager de sa
position actuelle vers une destination. Le chapitre se termine par une étude statistique du
système en évaluant sa performance en fonction des aléas liés aux déplacements.
1. Introduction
Au cours des dernières années il y a eu un regain d'intérêt pour le problème du plus court chemin
pour une utilisation dans diverses applications de l'ingénierie des transports. Ceci peut être attribué
aux récents développements dans les systèmes de transport intelligents (STI), en particulier dans le
domaine du système de guidage (GPS). Dans chacun de ces cas, il est absolument nécessaire de
trouver les chemins les plus courts à partir d'un point d'origine vers une destination d’une manière
rapide et précise.
Un certain nombre de stratégie de recherche ont été développées pour augmenter l'efficacité des
algorithmes de plus court chemin. La plupart de ces stratégies proviennent du domaine de
l'intelligence artificielle (AI). On peut citer entre autres *Nil71+ et *Pea84+ où le problème du plus
court chemin est utilisé comme un mécanisme permettant de valider l'efficacité des heuristiques.
Le domaine actuel du système de guidage en Amérique du Nord et en Europe a généré un regain
d'intérêt en utilisant des algorithmes heuristiques pour trouver les plus courts chemins dans un
réseau routier pour les opérations de routage de véhicules en temps réel. En 1989, *Guz89+ a
examiné comment les méthodes de recherche heuristique pourraient être utilisés dans le système de
navigation de véhicule. Un grand nombre de chercheurs ont alors suivi cette piste et ont essayé
d'introduire une stratégie mondiale visant à améliorer l'efficacité du processus de recherche du plus
court chemin. Ces efforts ont donné lieu à une abondante littérature, y compris un large éventail de
25
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Modélisation mathématique :
Soit 𝐺 = (𝑉, 𝐸) où 𝑉 est l’ensemble des sommets et 𝐸 est l’ensemble des arcs avec un coût
𝐶𝑖𝑗 ≥ 0 associé à chaque arc (𝑖, 𝑗) ∈ 𝐸, on peut alors formuler le problème de la façon suivante :
𝑘
Min ∶ z = ∑ 𝐶𝑖𝑗 𝑦𝑖𝑗 (1)
(𝑖,𝑗)∈𝐸
Sous les contraintes :
1, 𝑠𝑖 𝑗 = 𝑠
∑ yj,i − ∑ y𝑖,𝑗 = {−1, si j = t ∀j ∈ V (2)
(j,i)∈E (i,j)∈E 0, sinon
yi,j ∈ *0,1+ ∀ (i, j) ∈ E (3)
où :
26
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Dans ce modèle, les contraintes 2 sont constituées de trois inégalités ; la première vérifie que l’on
part du point de départ, la deuxième vérifie que l’on finit le trajet au point d’arrivée et la dernière
vérifie que chaque sommet du graphe contient autant d’arcs entrants compris dans l’itinéraire que
d’arcs sortants (conservation de flot).
Méthodes exactes :
Les méthodes exactes pour la résolution de problèmes de PCC sont très utilisées dans le secteur
industriel et cela même pour des graphes de grandes tailles où elles sont généralement associées à
des techniques de réduction et de contraction de graphes. Parmi les algorithmes de résolution exacte
du problème de PCC les plus connus, on retrouve l’algorithme de Dijkstra *Dij59+ qui s’applique aux
graphes à coût positif, l’algorithme de Bellman *Bel58+ qui autorise la présence d'arcs de coût négatif
et l’algorithme de Floyd-Warshall *War62+ qui permet d’obtenir les distances entre chaque pair de
points du graphe en une seule exécution.
- L’algorithme de Dijkstra *Dij59+
Cet algorithme possède une complexité de l’ordre de (m+n)×n où 𝑚 est le nombre d’arcs du
graphe étudié et 𝑛 est son nombre de nœuds. Dans le cas d’un réseau routier 𝑚 et 𝑛 sont du même
ordre de grandeur, l’algorithme a donc une complexité quadratique suivant le nombre de nœuds du
graphe. C’est un algorithme itératif dans lequel l’information sur la distance parcourue depuis le point
de départ est propagée de voisin en voisin jusqu’au point d’arrivée. Pour se faire, cet algorithme
repose sur un principe de propagation de labels. Au fil de l’algorithme, à chaque nœud traité, le label
qui lui est associé est le coût du plus court chemin pour l’atteindre depuis le nœud de départ. A ce
nœud est alors aussi associé un nœud père qui est le précédant dans le plus court chemin jusqu’à lui.
L’exemple de la Figure 23 donne l'initialisation de l'algorithme pour un calcul du plus court
chemin du nœud 𝑠 au nœud 𝑡. Il s'agit d'initialiser le label du nœud 𝑠 à 0 et tous les autres labels à
+∞ puis dans un tableau de mémoriser les sommets du graphe non-traités par l’algorithme.
27
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Vient ensuite l’étape itérative qui consiste à choisir le sommet du graphe non-traité qui possède
le label le plus petit puis à propager son label vers les nœuds qui lui sont adjacents. Sur l’exemple
on choisit donc le sommet 𝑠 qui a un label de valeur 0. On met ensuite à jour les labels des nœuds
4 et 5 qui sont adjacents au nœud de départ par le label du nœud 𝑠 auquel on ajoute le coût de
l’arc parcouru (notons que l’on ne change un label qu’avec une valeur qui lui est inférieure). Enfin le
sommet 𝑠 est supprimé du tableau des nœuds non-traités.
On réitère cette étape jusqu’à ce que le nœud d’arrivée t porte le plus petit label parmi les nœuds
non-traités. On choisit donc à l’étape suivante le nœud 4 et on met à jour les labels des nœuds 2,3
28
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
et 7.
On tombe sur un cas où on a deux choix pour le sommet à traiter, le 5 et le 7. Il est possible de
choisir arbitrairement l’un des deux sans que cela change la solution finale. Dans ce cas le sommet
5 est choisi en premier. On met donc à jour le label du nœud 2.
29
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Arrivé à cette étape, on peut constater que 𝑡 fait partie des sommets qui ont le plus bas label
parmi ceux non-traités, on peut donc s’arrêter à cette étape. Il nous suffit alors de remonter les
nœuds pères depuis le nœud d’arrivé jusqu’au nœud de départ pour obtenir une solution
optimale ; on trouve alors le chemin (s,4,7,t) de coût 35 comme solution optimale du problème de
plus court chemin.
Une partie très importante du temps de calcul de cet algorithme repose dans la recherche du plus
petit label à chaque itération. Cette étape peut être grandement accélérée par l’utilisation d’un tas
pour stocker les labels des nœuds non-traités au lieu d’un tableau. En effet, lorsque l’on utilise un
tableau, la recherche du plus petit élément se fait en O(n) alors que la recherche dans un tas se
fait en O(1) à partir du moment où le tas est réarrangé en O(ln(n)) à chaque itération. On obtient
alors un algorithme de complexité O((m + n) × ln(n)) au lieu de O((m + n) × n).
- L’algorithme de Bellman *Bel58+
Cet algorithme possède une complexité au pire de l’ordre de 𝑛2 × 𝑚 où 𝑚 est le nombre d’arcs
du graphe et 𝑛 est le nombre de nœuds. Cet algorithme est un algorithme de programmation
dynamique qui se distingue du précédent par le fait que l'ordre de parcours des sommets ne peut
pas être obtenu en sélectionnant le sommet ayant le plus petit label à une itération donné du fait
des arcs à coûts négatifs. Il faut donc déterminer a priori un ordre de parcours des sommets. Cet
ordre a une influence très importante sur le nombre d'itérations de l'algorithme. Un ordre de
parcours des sommets permettant de faire un seul passage sur l'ensemble des sommets du graphe
défini un ordre topologique. Au pire des cas, l'algorithme peut effectuer autant d'itérations qu'il y
a de sommets dans le graphe.
Comme pour l’algorithme de Dijkstra, la première étape est une étape d’initialisation dans
laquelle on met le label du nœud 𝑠 à 0 et tous les autres labels à +∞. A chaque itération de
l’algorithme, tous les arcs du graphe sont parcourus, selon l'ordre initialement choisi. En fonction
de l'ordre choisi, le nombre total d'itérations de la méthode varie. Sur cet exemple, au pire, la
méthode effectuera donc 5 itérations. L'ordre de parcours des sommets du graphe permettant de
trouver le chemin optimal en 1 itération est appelé ordre topologique. Dans la majorité des cas,
sauf à utiliser des graphes ayant une structure particulière, la détermination d'un ordre
topologique n'est pas triviale.
A titre d'exemple, considérons l'ordre O : s 1 2 3 4 t
30
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
31
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
L’algorithme effectue un troisième passage durant lequel aucun des labels n’est modifié.
L’algorithme est donc fini et on obtient le chemin (s, 2, 1, t) avec un coût de 40 comme solution
optimale du problème de plus court chemin.
- L’algorithme de Floyd-Warshall :
Cet algorithme possède une complexité de l’ordre de 𝑛3 où 𝑛 est le nombre de nœuds du graphe
étudié. Cet algorithme a un intérêt un peu différent des deux précédents du fait qu’il calcul
l’itinéraire le plus court pour tous les couples de sommets du graphe et pas pour un seul couple. Le
principe de cet algorithme est qu’à chaque itération, on va fixer un point de passage à l’ensemble
des itinéraires et mettre à jour les itinéraires qui sont améliorés en passant par ce point. L’exemple
Figure 31 servira à illustrer son principe. Les figures 31 à 35 présentent le déroulement de
l’algorithme avec les tableaux des coûts associés. Sur l’exemple les arcs ne sont pas orientés afin de
simplifier l’exemple. La première étape est une étape d’initialisation dans laquelle on initialise le
tableau des coûts des différents chemins par le coût des arcs lorsque les nœuds de départ et
d’arrivée sont adjacents et par +∞ sinon.
32
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
La première étape consiste à fixer le nœud 1 et à regarder pour chaque couple de points si le
chemin est amélioré en passant par ce nœud. A cette itération, le chemin 2 à 5 est le seul à être
amélioré.
Méthodes approchées :
Les méthodes approchées pour la résolution du problème du PCC sont très utilisées dans le
domaine de l’intelligence artificiel et des jeux vidéo par exemple car elles permettent d’obtenir une
solution de façon très rapide. L’algorithme de résolution approchées du problème du PCC le plus
connu est l’algorithme A* de *Har68+.
33
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
- L’algorithme de A*:
Si on faisait une recherche en largeur comme le réalise l'algorithme de Dijkstra, on rechercherait
tous les points dans un rayon circulaire fixe, augmentant graduellement ce cercle pour rechercher
des intersections de plus en plus loin de notre point de départ. Ceci pourrait être une stratégie
efficace si on ne savait pas où se trouve notre destination, comme la police recherchant un criminel
en planque.
On peut considérer que l’algorithme de A étoile est basé sur le même principe que celui de
Dijkstra. Il repose en effet sur une propagation de labels et sur une sauvegarde du nœud père à
chaque itération similaire à l’algorithme de Dijkstra. Sa différence réside dans le fait que plutôt que
d’élargir progressivement le rayon de propagation des labels à partir du nœud de départ dans
toutes les directions, on explore en priorité les nœuds en direction du nœud d’arrivé. Cette notion
de direction induit une notion de distance à définir. On choisit pour présenter l’algorithme la
distance euclidienne. L’idée de l’algorithme est alors d’estimer pour chaque nœud le coût qui le
sépare du nœud d’arrivé afin que d’éviter de traiter les nœuds désavantageux ; l’algorithme va à
chaque itération construire un itinéraire en prenant le point de passage suivant, autant que faire se
peut, en direction du point d’arrivée. Son principe est illustré sur l’exemple de la Figure 36, sur
laquelle on s'intéresse au calcul du plus court chemin du nœud s au nœud t. La première étape est
une étape d’initialisation dans laquelle on calcule pour chaque nœud une estimation de sa distance
au point d’arrivée qui est la distance Euclidienne dans le cadre de cet exemple. On finit cette étape
en initialisant la file d’attente avec le point de départ.
34
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
A la deuxième itération, le premier élément de la file est le nœud 4 et ses nœuds adjacents
sont les nœuds 2, 3 et 7 que l’on rajoute donc à la liste.
A la troisième itération, le premier élément de la file est le nœud 7 et ses nœuds adjacents
sont les nœuds 1, 5, 6, 8 et t. t, le nœud d’arrivée, fait partie de la liste des nœuds adjacents au
nœud en tête de liste donc l’algorithme s’arrête. Suivant le même principe que pour l’algorithme de
Dijkstra, on remonte le chemin depuis le nœud d’arrivée et obtient une solution approchée du plus
court chemin (s,4,7,t) qui est, dans ce cas, une solution optimale.
35
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Compte tenu des deux difficultés qui viennent d'être mise en évidence, nous avons proposé un
algorithme de plus court chemin dynamique travaillant sur un graphe réduit.
Une partie client qui prend en charge le déclenchement de la demande de calcul du plus court
chemin (1). C’est-à-dire qu’elle est en charge de fournir au serveur les coordonnées de départ et
d’arrivé de l’itinéraire souhaité. Une fois l’itinéraire récupéré (5), elle est chargée également de la
visualisation du chemin, donc de la récupération des tuiles auprès de MapQuest ainsi que de
l’affichage de l’interface.
Une partie serveur qui, après avoir récupéré les positions de départ et d’arrivée auprès de la
partie cliente, s’occupe de récupérer les données routières auprès d’OSM (2) et (3) afin de
construire le graphe nécessaire au calcul d’itinéraire. Une fois le graphe construit, le serveur
effectue le calcul de plus court chemin (4) afin de renvoyer à l’application cliente l’itinéraire
obtenu (5).
Le serveur de données routières d’OSM qui permet de fournir les données nécessaires à la
réalisation du graphe (2) et (3).
Une architecture de ce type a pour intérêt, d’une part de limiter au maximum la quantité de
données présentes sur l’application mobile qui ne contient alors que les données strictement
nécessaires à l’interface et à l’affichage du résultat pour l’utilisateur, et d’autre part d’effectuer les
calculs sur le serveur distant afin d’alléger la consommation CPU de l’application.
L’inconvénient de cette architecture est qu’elle nécessite une connexion réseau quasi-
permanente entre l’application cliente et le serveur. En effet, plusieurs appels au serveur sont
36
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
effectués à chacun des recalculs d’itinéraire, c’est-à-dire à chaque fois que l’utilisateur s’éloigne de
l’itinéraire calculé ou qu’il s’approche de la fin du morceau d’itinéraire calculé. Cette architecture
est donc très sensible aux coupures réseaux qui sont très fréquentes en milieu urbain. C’est
pourquoi la seconde architecture client-serveur qui est présentée limite le nombre d’accès au
serveur.
37
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Il faut noter que dans un graphe modélisant une zone urbaine on perd l’optimalité du plus court
chemin mais que probablement dans un grand nombre de cas, le chemin trouvé est probablement
être proche du chemin optimal pour peu que la densité soit suffisante.
Contraction du graphe
Après avoir limité la taille du graphe à explorer, on peut aussi appliquer des principes de
contraction du graphe. Comme de nombreux auteurs l'ont souligné il existe de nombreuses
techniques permettant de contracter plusieurs sommets en un seul sommet et des techniques visant
à limiter le nombre d'arcs. Ces techniques sont présentées par exemple par *Dor03+ et par *Dor05+. A
titre d'exemple, nous soulignons ci-dessous, la possibilité, dans le cas d'un calcul d'itinéraire pour
piétons (graphe non orienté) qu'il est possible d'envisager la suppression des arcs qui ne sont pas
orienté dans la direction (s; t) en considérant que plus on s'éloigne de la ligne droite entre s et t, plus
la probabilité de rester sur le plus court chemin diminue. Toutefois, les nombreux sens interdits en
zone urbaine limite cette remarque aux piétons. Il est alors possible de contracter le graphe de
différentes manières, en supprimant par exemple les arcs qui ont un sens opposé au sens défini par le
point de départ et d’arrivée dans la mesure où l’on garde une connexité entre le point de départ et
d’arrivée. La Figure 42 illustre la contraction possible sur le graphe.
38
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
39
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
40
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
41
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
42
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Analyse fonctionnelle
Pour que le système de guidage soit fonctionnel le coté serveur a besoin de communiquer avec le
client et le serveur de données suivant le schéma Figure 46.
43
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
demarrer_Guidage
données routières
état du calcul
recupererResultatGuidage
itinéraire
recupererGraphe
données routières
données du graphe
Les méthodes associées au Web service développé ont deux fonctions principales : celle de
fournir un itinéraire entre deux points donnés du réseau routier et celle de fournir les données d’un
graphe autour d’une position donnée. Ces deux fonctions reposent sur le téléchargement de données
routières et leur conversion en graphe. Chacun des appels à une de ces fonctions nécessite donc un
certain temps de traitement et une certaine quantité de mémoire disponible. Ces méthodes sont
implémentées de manière asynchrone ce qui permet le traitement simultané de plusieurs requêtes.
Le Web Service proposé fournit donc cinq méthodes :
demarrer_Guidage : Méthode qui envoie au serveur une requête de calcul à partir des
coordonnées GPS du point de départ et d’arrivée fournies en argument accompagnées de la clef
d’identification.
testerEtatDemande : Méthode qui permet de vérifier l’état de la demande de calcul fait au serveur
à partir de la clef qu’on lui fournit en argument.
recupererResultatGuidage : Méthode qui permet de récupérer, toujours à partir de la clef, la liste
des arcs de l’itinéraire à parcourir sous forme d’une chaîne de caractères une fois qu’il est
disponible.
lireCodeRetour : Méthode qui prend en argument un nombre et renvoie la signification du code
erreur qui lui est associé sous forme d’une chaîne de caractères.
recupererGraphe : Méthode qui permet de récupérer toutes les informations sur les arcs et les
nœuds d’un graphe dans un rayon donné autour d’une position donnée.
Contrôle d’accès :
Afin de d'identifier les utilisateurs un système de gestion de clefs a été mis en place dans lequel
chaque utilisateur possède une clef qui lui est propre et qui sera communiquée au serveur à chaque
44
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
fois qu’il fait appel au Web service. L’utilisation de ce système permet de limiter chaque utilisateur à
une connexion au serveur d’une part, et de limiter le nombre de connexion journalière de chaque
utilisateur d’autre part ceci afin de limiter les utilisations abusives.
L’utilisation du Web service est donc restreint par l’utilisation d’une clef qui est fournie de
manière automatique lors de l’utilisation de l’application Android en fonction de l’identifiant unique
du mobile, ou qui peut aussi être fournie par un courrier électronique en remplissant un formulaire
(http://fc.isima.fr/~lacomme/identification/).
Implémentation
Le Web service est développé sous Java dans l’environnement de développement de NetBeans
est hébergé sur un serveur d'applications GlassFish (Figure 47). Ce serveur d’application est hébergé
sur deux serveurs de l’ISIMA afin de palier à l’arrêt d’un des serveurs (http://orws.isima.fr:8080/ et
http://orws2.isima.fr/).
45
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
b) Avec un Socket :
Pour accéder au Web service, on peut aussi utiliser un socket afin de faire communiquer
l’application avec le Web service. Il suffit de construire une enveloppe SOAP avec tous les paramètres
nécessaires à la méthode demandée afin d’envoyer au Web service une requête POST constituée de
cette enveloppe. C’est la méthode choisie pour faire communiquer l’application Android avec le Web
service, elle est détaillée et expliquée dans l’annexe.
46
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Analyse fonctionnelle
a) Multithread
La principale préoccupation lors de la conception d’une application Android est d'obtenir un
fonctionnement correct mais aussi une fluidité d’utilisation satisfaisante. C’est pourquoi chaque
action coûteuse en temps se fait en tâche de fond de l’application afin que l’utilisateur puisse
continuer de naviguer sur la carte et dans le menu (application multithread).
b) Graphe en local
Comme il l’a été présenté dans la section 2.4, l’application stocke un graphe en local dès qu’elle en
a l’occasion comme sécurité en cas de dégradation du réseau afin de continuer le guidage. Pour éviter
tout conflit dans la constitution de l’itinéraire ou pour l’accès au graphe en local, l’application
n’autorise qu’un seul calcul ou téléchargement de graphe en parallèle. Pour effectuer le calcul, un test
de connexion réseau est effectué. Si le réseau n’est pas disponible, l’application fait le calcul en local
(dans la mesure où le centre du graphe en local est suffisamment proche de la position courante pour
que le calcul ait un sens). Le déclenchement du calcul se fait de deux façons : 1) soit lorsque
l’utilisateur en fait la demande par l’interface; 2) soit de façon automatique lorsque l’application
décide que l’itinéraire nécessite d’être recalculé compte tenu de la position GPS du mobile.
c) Guidage
Dans le cas d’un déclenchement par l’utilisateur, l’application fournit des indications sonores et
visuelles sur l'avancement du calcul. Ensuite, lors du parcours de l’itinéraire, l’application calcule
l’angle entre l’arc sur lequel se trouve l’utilisateur et le prochain arc du chemin ainsi que la distance
restante jusqu’à l’intersection des deux arcs afin d’indiquer à l’utilisateur quelle direction il doit
emprunter (gauche, droite ou tout droit et dans combien de mètres).
Conception de l’interface :
L’interface de l’application se compose d’une carte sur laquelle l’utilisateur peut se déplacer et
zoomer, d’un bouton permettant de quitter l’application pour éviter qu’elle continue de s’exécuter en
tache de fond et d’un menu déroulant permettant d’accéder aux différentes fonctions de
l’application. L’architecture de l’interface est présentée Figure 50 dans laquelle plutôt que d’utiliser
les composants natifs du langage de développement (java), on choisit, par soucis d’esthétique,
d’incorporer une interface en html. Par conséquent l’interface, vue de l’environnement de
développement, n’est constituée que d’un composant WebView :
47
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Détaillons ci-dessous les différentes fonctionnalités de l’application qui sont disponibles à partir du
menu :
Ma position : Permet de centrer la carte sur la position GPS actuelle.
Destination : Permet de saisir l’adresse postale de la destination dans une nouvelle fenêtre.
Guider : Permet de lancer le calcul d’itinéraire une fois que la destination souhaitée a été rentrée
puis d’afficher l’itinéraire obtenu sur la carte.
La langue : Permet de passer l’application en anglais ou en français. (la langue par défaut
correspond à la langue du téléphone.)
A propos de : Fournit quelques informations sur la conception de l’application.
Implémentation
L’application cliente a été développée pour Android sous java dans l’environnement Eclipse. Elle
communique avec le serveur de Web services par le protocole SOAP. L’interface de la page principale
de l’application, quant à elle, a été programmée en javascript et html afin, d’une part, d’optimiser sa
compatibilité avec les api de visualisation de carte de MapQuest, et d’autre part, de simplifier
l’agencement et l’élaboration des éléments graphiques qui peuvent être complexe en
programmation Android (Ce n’est pas le cas pour la page de saisie d’adresse et de la page à propos
de).
48
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
49
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
A partir de ce graphe, plusieurs couples (points de départ, point d’arrivée) ont été sélectionnés
aléatoirement de telle façon que leur distance, calculée à partir d’une méthode de plus court chemin sur
le graphe, soit supérieure à 800m. Le cas des chemins de longueur trop petite est en effet peu intéressant
car l’algorithme itératif effectue le calcul de PCC jusqu’au point de destination en une seule itération (dans
le cas où l’utilisateur ne se perd pas).
N° instance Point d’origine Point d’arrivée N° instance Point d’origine Point d’arrivée
1 45,7581 3,1101 45,7780 3,0831 15 45,7645 3,1053 45,7812 3,0903
2 45,7792 3,1168 45,7580 3,0784 16 45,7728 3,0727 45,7662 3,0680
3 45,7848 3,1028 45,7746 3,0947 17 45,7805 3,1001 45,7763 3,0770
4 45,7890 3,0951 45,7704 3,1188 18 45,7592 3,0841 45,7777 3,0703
5 45,7780 3,1104 45,7884 3,0983 19 45,7620 3,1248 45,7612 3,0934
6 45,7751 3,0829 45,7710 3,0926 20 45,7691 3,1079 45,7879 3,0997
7 45,7701 3,0808 45,7801 3,1184 21 45,7773 3,0907 45,7877 3,0861
8 45,7821 3,0985 45,7636 3,1078 22 45,7764 3,0713 45,7664 3,0796
9 45,7705 3,0656 45,7651 3,0769 23 45,7725 3,0936 45,7668 3,1143
10 45,7819 3,1027 45,7647 3,0974 24 45,7613 3,0906 45,7867 3,0788
11 45,7590 3,1159 45,7856 3,0735 25 45,7682 3,0893 45,7654 3,0984
12 45,7789 3,0836 45,7823 3,1019 26 45,7654 3,0892 45,7654 3,0882
13 45,7890 3,1001 45,7707 3,0757 27 45,7659 3,1079 45,7804 3,0874
14 45,7683 3,1066 45,7816 3,1239
50
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
51
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Les résultats associés aux instances 10 et 20 dont les itinéraires sont illustrés respectivement
Figure 54 et Figure 55, sont aussi assujetties au problème du faible nombre de liaisons entre la rue de
la Pradelle et la rue de l’Oradou représenté par une bulle rouge sur les deux figures.
Ces deux cas se distinguent cependant de la précédente par le fait que le point d’arrivée et de
départ sont de part et d’autres de la voie de chemin de fer. Les passages à niveau au-dessus de la voie
de chemin de fer sont très espacés les uns des autres ; l’algorithme peut donc être amené à faire un
détour important pour traverser la voie afin de rester dans l’axe de direction fixé par la destination
plutôt que de la longer durant un certain temps comme l’optimum.
52
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Ces trois cas permettent de montrer que l’algorithme est sensible aux zones de faible densité
routière que cela soit dû à un passage à niveau ou à la faible communication de deux boulevards. Il
faut noter que la traversée d’une ville par un fleuve ou une rivière engendre des situations similaires
à celle d’un chemin de fer et qu’un allongement de 27% sur des trajets de cet ordre, soit le cas le plus
pathologique rencontré, représente plus ou moins 15min de marche.
53
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Les deux premières lignes sont les moyennes sur les 27 instances des données références relatives à
l’itinéraire optimal ℎ* et à l’itinéraire obtenu de façon itérative sans erreur de l’utilisateur ℎ(0%). Les
quatre lignes suivantes sont des estimateurs ℎ̅ de la moyenne sur les 27 instances des données relatives
aux cas où l’utilisateur s’égare à chaque intersection avec une probabilité de 1, 2, 5 et 10%. Ces
estimateurs sont basés sur la moyenne empirique des données associées aux 100 scénarios effectués sur
chacune instance et représentés par le vecteur d’évènements aléatoires x. La première colonne indique le
coût moyen des itinéraires obtenus en mètres. La deuxième colonne indique le taux moyen d’erreurs en
pourcentage par rapport à l’optimal. La troisième colonne indique la distance moyenne ajoutée en mètres
par rapport au parcourt sans erreurs. La quatrième colonne indique l’écart type moyen en mètres des
coûts d’itinéraires (pour chaque instance un écart type est calculé sur les 100 scénarios joués). La
cinquième colonne indique le nombre moyen d’itérations de l’algorithme pour atteindre la destination. La
sixième colonne indique le nombre moyen d’erreurs que le piéton a commises pour arriver à destination.
Dans un premier temps pour justifier ces choix de probabilité, entre 1 et 10% de chance de se perdre
par intersection, il faut s’attarder sur la dernière colonne. On peut alors remarquer qu’avec la probabilité
d’1%, le piéton fait en moyenne une erreur pour quatre trajets de 2km500 ce qui représente plus ou
moins la probabilité qu’un utilisateur se voit bloquer l’accès à une rue dû à des travaux publics ou un
accident par exemple. D’autre part avec une probabilité de 10%, le piéton fait pratiquement trois erreurs
par trajet d’une heure, ce qui correspond à un piéton plutôt distrait. On a donc un éventail raisonnable de
scénarios en choisissant les probabilités de s’égarer entre 1 et 10%. On rappelle que le but de cette
analyse est d’établir certaines tendances du comportement de l’algorithme et donc cette partie sera
l’objet de plusieurs approximations raisonnables.
Par un rapide calcul, on s’aperçoit que la distance ajoutée par rapport au parcours sans erreur et le
nombre d’itérations nécessaires pour atteindre l’optimum sont proportionnelles au nombre d’erreurs faîte
sur le parcours. Ceci est parfaitement logique étant donné qu’à chaque erreur d’itinéraire un recalcule est
déclenché et le chemin est dans la quasi-totalité des cas allongé. Ce qui par contre plus intéressant est le
coefficient de proportionnalité entre ces différentes grandeurs ; le nombre d’itérations ajoutées est
d’environ trois pour quatre erreurs respectivement pour les quatre probabilités de 70,8%, 64,7%, 71,4%,
74,15%. Ce coefficient est dû à plusieurs causes. Premièrement le piéton a progressé une partie du chemin
avant de se perdre, il est donc logique que le coefficient soit inversement proportionnel à la portion de
l’itinéraire effectué avant de se perdre. En effet si le piéton parcourt à chaque fois une grande partie de
l’itinéraire avant de se perdre et de déclencher un recalcule, le nombre d’itérations nécessaires ne sera
que très peu augmenter alors que si l’utilisateur se perd dès la première intersection à chaque fois le
nombre de recalcule sera approximativement le nombre d’erreurs survenues. Donc pour connaître la
proportion entre le nombre d’itérations supplémentaires nécessaires et le nombre d’erreurs, il suffit de
connaître la proportion moyenne du chemin parcourue avant chaque déclenchement d’erreur tout en
prenant en compte le malus accordé par le parcours de l’arc sur lequel on s’égare ; on sait en effet qu’en
moyenne on allonge le parcours effectué en n’empruntant pas l’arc désigné par l’algorithme du fait que la
distance ajoutée est proportionnelle au nombre d’erreurs.
On peut estimer parcourir environ 27 intersections en moyenne sur des chemins de 2km500 étant
54
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
donné le taux d’erreurs pour la probabilité d’1% qui est bien inférieur à 1 (0,24) ; en effet la première
intersection a 99% d’être atteinte sans erreur mais la 27ème n’aura que 76% de chance (0,9927), soit 24%
de chance de s’être trompé au moins une fois que l’on approxime au fait qu’il y a 0.24 erreurs en moyenne
par chemin. On précise bien que cette approximation n’est valable uniquement car on suppose la
probabilité d’avoir plus d’une erreur par chemin négligeable. Il faut en moyenne un peu plus de 9
itérations pour parcourir ces 27 intersections, soit une moyenne d’environ trois intersections par
itérations.
Pour une probabilité d’1%, sur trois intersections, on peut considérer les chances qu’une erreur
intervienne est équiprobable à chaque intersection comme le montre Figure 56 où une erreur à la
troisième intersection n’a que 2% de chance de moins de se produire qu’à la première. On peut donc
estimer que l’erreur surviendra en moyenne au milieu du parcours. Et donc le fait que le ratio entre le
nombre d’itérations ajoutées et le nombre d’erreurs survenues soit d’environ trois pour quatre (70,8%) est
en majeur partie dû à l’éloignement causé par les arcs empruntés en cas d’erreurs.
Pour une probabilité de 10% par contre, sur trois intersections, la différence entre la troisième et la
première sont non-négligeable comme l’illustre la Figure 57. En effet le piéton a 19% de chance de moins
de se perdre à la troisième intersection plutôt qu’à la première ; si une erreur survient il y a alors 36,9%
que ce soit au niveau de la première intersection, 33,2% que ce soit au niveau de la deuxième 29,9% que
ce soit au niveau de la troisième.
On voit bien cependant que le ratio de 74,15% est là encore en majeur partie dû à l’éloignement causé
par les arcs empruntés en cas d’erreurs cependant il est normal de voir un pourcentage plus élevé dans le
cas de 10% plutôt que dans le cas de 1%. Il faut alors noter que la valeur pour 2% (64,70%) devrait se
trouver légèrement au-dessus de celle de 1% (70,8%) ce qui rend bien compte de l’incertitude des
données malgré le fait que chacun de ces ratios se base sur plus de 2 700 calculs d’itinéraire (27*100).
Pour conclure cette analyse, on s’intéresse au rapport de proportionnalité existant entre la distance
moyenne ajoutée par itinéraire et le nombre d’erreurs moyen qui est de 75 mètres par erreur ce qui
correspond à la longueur moyenne d’un arc ; ce qui veut dire qu’en moyenne le chemin issu d’un sommet
sur lequel le piéton se perd est de même longueur que le chemin issu du sommet précédent comme
l’illustre la Figure 58 et donc que l’angle formé par la direction de la destination et l’arc vers le point erroné
est en moyenne inférieur à 90°, vu que le triangle moyen formé par le point destination et les deux
sommets est isocèle. Ceci est surement dû au fait que le piéton favorise la direction de la destination pour
se perdre et a pour effet direct que le piéton n’allonge que très peu l’itinéraire à chaque erreur.
55
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Pour résumer cette analyse aura permis de mettre en évidence : les différents cas pathologiques pour
lesquels l’algorithme itératif fourni un résultat éloigné de l’optimum, et d’autre part, les subtilités des
relations entre les erreurs d’itinéraire et les différentes grandeurs caractéristiques de l’algorithme.
5. Conclusion
Ce chapitre a permis de se familiariser avec les algorithmes de plus court chemin ; une étude des
algorithmes existants les plus utilisés a été faite et a conduit à l’élaboration d’un algorithme de type
Dijkstra avec tas qui a été utilisé dans le dernier chapitre. Dans un second temps cet algorithme a été
modifié afin d’être utilisé dans une architecture client-serveur permettant le guidage d’un piéton en milieu
urbain. Cette architecture a eu deux principaux objectifs : celui de mieux comprendre les enjeux induits
par le fait de travailler dans un milieu urbain et sur des graphes de grande taille, et celui d’élaborer un web
service fonctionnel et une application Android. Le travail sur les tournées de véhicules qui a été effectué
dans le chapitre suivant, utilise comme prétraitement, l’algorithme de plus court chemin qui a été
proposé, afin d’obtenir un tableau des plus courts chemins dans un graphe.
6. Références
*Bel58+ R. E., Bellman, On a Routing Problem, Quart. Appl. Math., Vol. 16(1), pp. 87-90, 1958.
*Chr79+ N. Christofides, A. Mingozzi, P. Toth. The vehicle routing problem. In Combinatorial
Optimization, John Wiley, vol. 11, pp. 315–338, 1979.
*Dij59+ E. W., Dijkstra, Note on Two Problems in Connexion with Graphs, Numerische Mathematik,
vol. 1, pp. 269–271, 1959.
*Dor03+ D. Wagner and T. Willhalm. Geometric Speed-Up Techniques for Finding Shortest Paths in
Large Sparse Graphs. Konstanzer Schriften in Mathematik und Informatik.ISSN 1430–3558.
Nr. 183, Januar 2003.
*Dor05+ D. Wagner, T. Willhalm and C. Zaroliagis. Geometric Containers for Efficient Shortest-Path
Computation. ACM Journal of Experimental Algorithmics, Vol. 10(1.3), pp. 1-30. 2005
*Dre69+ S. Dreyfus. An appraisal of some shortest-path algorithms. Operations Research, vol. 17(3),
pp. 395–412, 1969.
*Gub10+ A. Gubichev, S. Bedathur, S. Seufert and G. Weikum. Fast and Accurate Estimation of
56
Chapitre 2 : Le problème de cheminement de piétons en milieu urbain
Shortest Paths in Large Graphs. CIKM’10, October 26–30, 2010, Toronto, Ontario, Canada.
*Guz89+ J, Guzolek and E. Koch Real-time route planning in road network. Proceedings of VINS,
September 11–13, 1989. Toronto, Ontario, Canada, p. 165–9.
*Har68+ P. E. Hart, A Formal Basis for the Heuristic Determination of Minimum Cost Paths, IEEE
Transactions on Systems Science and Cybernetics SSC4, vol. 4(2), pp. 100–107, 1968.
*Nil71+ J., Nilsson, Problem-solving methods in artificial intelligence. New York: McGraw-Hill; 1971.
*Pea84+ J., Pearl, Heuristics: intelligent search strategies for computer problem solving. Addison-
Wesley Publishing Company; 1984.
*Ren12+ L. REN, Conception et évaluation d’outils décisionnels pour des systèmes réactifs d’aide à la
mobilité, PhD thesis, Université Blaise Pascal, Clermont-Ferrand, 2012.
*War62+ S., Warshall Theorem on Boolean Matrices, J. ACM, vol. 9, pp. 11–12, 1962.
*Wil05+ T. Willhalm. Engineering Shortest Paths and Layout Algorithms for Large Graphs.
Dissertation der Universität Fridericiana zu Karlsruhe (TH). 2005.
57
CHAPITRE 3
Etude du HVRP dans
un contexte mobile
On peut modéliser une solution du problème de type HVRP par une liste de tournées présentée
sous la forme d’un graphe comme illustré par la Figure 59 dans lequel le dépôt et les clients sont
représentés chacun par un nœud et où un arc entre deux clients symbolise l’ordre de passage du
véhicule et la distance qui les sépare. A chaque tournée est associé un coût fonction du véhicule
utilisé et de la distance parcourue.
59
Chapitre 3 : Etude du HVRP dans un contexte mobile
Modélisation mathématique :
Pour établir une formulation du problème de HVRP, on peut reprendre celle de Fisher et Jaikumar
en 1981 *Fis81+ du problème de VRP et adapter certaines contraintes afin de prendre en compte la
flotte hétérogène de véhicules de la façon suivante :
Min ∶ z = ∑M k k n
k=1 C u ∑i=0 ∑nj=0 cijk xijk (1)
60
Chapitre 3 : Etude du HVRP dans un contexte mobile
où 𝑉 est l’ensemble des arcs du graphe complet constitué des clients et du dépôt.
𝑘
𝑥𝑖𝑗 : indique si j est immédiatement visité après i dans la tournée k.
𝑘
𝑦𝑖 : est égale à 1 si le véhicule k effectue le service chez le client i si non 0. L’indice i=0
correspond au dépôt.
𝑢𝑘 : est égale à 1 si le véhicule k est utilisé.
𝑘
𝑐𝑖𝑗 : est le coût de l’arc (i,j) pour le véhicule k.
𝑘
𝐶 : est le coût fixe associé à l’utilisation du véhicule k.
𝑑𝑖 : est la demande du client i.
𝑛 : est le nombre de clients.
𝑀 : est le nombre de véhicules.
𝑄 𝑘 : est la capacité du véhicule k.
Dans ce problème, la contrainte 2 vérifie que la capacité de chargement de chaque véhicule est
bien respectée. La contrainte 3 permet de vérifier que chaque client est desservi. La contrainte 4
permet de vérifier que l’on construit au plus M tournées. Les contraintes 5 et 6 assurent la cohérence
entre la visite d’un client par un véhicule k et l’appartenance de ce client à la tournée k. La
contrainte 7 a pour but d’éviter la formation de sous-tours au sein des tournées. La contrainte 8
assure que chaque véhicule qui assure la livraison auprès d’au moins un client est considéré comme
utilisé.
61
Chapitre 3 : Etude du HVRP dans un contexte mobile
de plus d’un type de problème avec la même méthode. Les principaux articles sur le sujet et se
basent sur les instances de Golden et sont référencés dans l’article *Pri09+. Le Tableau 6 ci-dessous
précise quels sont les instances utilisées dans chacun des cas.
Tableau 6: Méthodes publiées utilisant les instances de Golden et al. référencées par *Pri09+
Taillard a été le premier à s’intéresser à la résolution du HVRP dans son article de 1999 *Tai99+. Il
utilise pour se faire une heuristique de résolution approchée basée sur le principe de la génération de
colonne qui repose sur l’idée de relaxer le programme linéaire associé au problème en ne prenant en
compte qu’une partie des variables puis en réinjectant progressivement les variables susceptibles de
faire varier la solution obtenue.
Tarantilis a, quant à lui, développé un algorithme TA (Threshold Accepting) *Tar04+ qui autorise
donc la recherche local à détériorer temporairement la solution avec un certain seuil d’acceptation
afin de diversifier la recherche.
Li et al. dans leur article *Li07+ ont utilisé un algorithme de type record-to-record dont la
recherche locale consiste à explorer l’espace(sans rechercher forcément une amélioration), au
voisinage des solutions qui sont raisonnablement peu éloignées (en coût) de la meilleure solution
trouvée.
A ces trois articles référencés dans le Tableau 6, il faut bien sûr ajouter celui de C. Prins *Pri09+ qui
propose deux méthodes de résolutions du HVRP basées sur un algorithme génétique et une
recherche locale intensive. Il faut également citer plusieurs articles qui ont été écrit après celui de C.
Prins en 2009.
Pessoa et al. *Pes09+ en 2009 ont élaboré la première méthode de résolution exacte du HVRP
pour des instances allant jusqu’à 75 clients basée sur un algorithme de BCP (Branch-Cut-and-Price)
qui consiste à diviser le problème principale en sous-problèmes et à résoudre chacun des sous-
problèmes susceptible de contenir la solution optimale par une méthode de génération de colonnes.
Baldacci et Mingozzi *Bal09+ en 2009 ont élaboré une seconde méthode de résolution exacte
permettant de résoudre certaines instances allant jusqu’à 100 clients basée sur un algorithme de SP
(Set Partitioning) utilisant des bornes fixées par une relaxation linéaire et lagrangienne du problème.
Ces deux méthodes de résolution exactes sont cependant extrêmement lentes sur des problèmes de
moyenne taille et ne sont pas adaptées à la résolution d’instances de grande taille.
C. Duhamel et al. *Duh10+ en 2010 ont développé une métaheuristique de type GRASP-ELS basé
sur une procédure de split évoluée.
Enfin A. Subramanian et al. *Sub12+ en 2012 ont formulé le problème sous forme d’un problème
de Set Partitioning qu’ils ont résolu par une méthode de recherche locale itérative (ILS).
62
Chapitre 3 : Etude du HVRP dans un contexte mobile
évolutionnaire qui utilise donc un ensemble de solutions afin de donner la meilleure solution
possible. L’algorithme est décrit dans cette partie à travers son schéma général et l’explication
détaillée des principales parties qui le composent.
De même que l’algorithme GRASP/ELS présenté dans le deuxième chapitre, cette méthode se
base sur les tours géants comme représentation indirecte de la solution. Comme pour le VRP, la
construction de la fonction de mapping (le Split) permettant de passer de l’espace de codage à
l’espace des solutions autorise plusieurs tours géants à obtenir la même solution. Cependant,
contrairement au cas du VRP, la fonction de mapping du HVRP peut donner plusieurs solutions. La
fonction de mapping associée au HVRP est alors de type n-to-n illustré Figure 60. L’élaboration de
cette fonction est décrite en détail dans la deuxième section de cette partie.
n-to-n mapping
Début de
la méthode
Ajout de nouvelles
solutions Intensification
Diversification Suppression
randomisé d’éléments Fin de la
méthode après
n ittération
Une partie dite de diversification de la population qui consiste à générer de nouvelles solutions
de façon aléatoire afin d’élargir le champ de recherche au maximum. Elle s’exécute en deux sous-
étapes. D’une part, une partie des solutions de la population est supprimée de façon randomisée
en fonction de leur qualité respective. D’autre part on procède à une injection de solution dans la
population illustrée sur la Figure 62 qui consiste à construire par la méthode des plus proches
63
Chapitre 3 : Etude du HVRP dans un contexte mobile
voisins un tour géant et lui appliquer une heuristique d’obtention de solutions décrite dans la
section 3 de cette partie puis enfin à intégrer les solutions obtenues dans la populations.
Plusieurs
solutions
Ajout des
solutions à la
population
Population des
solutions
Une partie dite d’intensification de la recherche illustrée sur la Figure 63 qui consiste en une
recherche approfondi autour des solutions de la population. Pour se faire plusieurs solutions de
la population sont retranscrites dans l’espace de codage afin de croiser leur tour géant associé
par une méthode de Path-Relinking générant ainsi de nouveaux axes de recherche proches des
solutions croisées et donc couvrant au maximum les solutions proches de très bonnes solutions
déjà mises en évidence lors des précédentes recherches locales. Pour chaque tour géant généré
l’algorithme de Split est appliqué et une recherche locale est alors effectuée sur les solutions
trouvées. La population est ensuite mise-à-jour avec les meilleures solutions parmi celles déjà
contenues dans la population et les nouvelles solutions issues des recherches locales.
64
Chapitre 3 : Etude du HVRP dans un contexte mobile
Plusieurs
solutions
t
Sp l i
Recherche
Ensemble de locale
tours géants Solutions
1 5 2 4 3 6
obtenus améliorées
2 6 3 4 1 5
1 6 3 4 2 5
Ajout des
solutions à la
Path-Relinking population
2 6 1 4 3 5 Sélection de
deux
Con Solutions à solutions
cate
nati croiser
on
Tableau 7 : Demandes des clients du tour géant de Tableau 8 : Liste des véhicules disponibles de
l’exemple du Split l’exemple du Split
Véhicules 1 2 3
Clients du TG 1 2 3 4
Capacités 9 5 3
Demandes 3 3 4 2
Coût par unité de distance 1 2 3
65
Chapitre 3 : Etude du HVRP dans un contexte mobile
Pour que l’algorithme split soit applicable, il faut bien sûr que chacune des tournées soit
identifiée non seulement par les clients qui la composent mais aussi par le véhicule qui l’effectue ce
qui induit pour chaque tournée un choix de véhicule en fonction de sa capacité, de son coût et de sa
disponibilité. Tous les véhicules disponibles et de capacité suffisante devront donc être testés pour
chaque tournée. On se tiendra, dans un premier temps, à ses simples modifications de l’algorithme
pour résoudre notre exemple afin de mettre en évidence la principale modification qui sera
nécessaire à l’optimalité de la méthode.
Déroulement de l’algorithme :
Afin de présenter cet exemple de manière concise, on ne va détailler que les trois premières
itérations de l’algorithme sous la forme d’un graphe de façon similaire à l’exemple traité pour le VRP.
Chaque arc représente donc une tournée. Sur chaque arc figure un couple de valeur
correspondant respectivement au véhicule de la tournée et au coût de la tournée. A chaque nœud 𝑖
est associé le coût pour desservir les 𝑖 premiers clients du tour géant.
La première étape illustrée par la Figure 64, consiste à desservir le client 1. Les trois véhicules
étant disponibles et de capacité suffisante, on compare donc pour chacun d’entre eux le coût
nécessaire pour faire l’aller-retour entre le premier client et le dépôt. Le coût est minimal (2) en
effectuant la tournée avec le véhicule 1.
La deuxième étape illustrée par la Figure 65 consiste à établir les tournées comprenant le client 1
et 2. Seul le véhicule 1 est assez volumineux pour desservir les deux clients (de capacité 9 > 3 +3). Un
coût de 3 est alors attribué au nœud 2 correspondant aux déplacements effectués : (dépôt;client 1) +
(client 1;client 2) + (client 2;dépôt).
La troisième étape consiste à établir les tournées contenant les clients 1 2 et 3 cependant aucun
des véhicules n’est assez volumineux pour desservir les trois clients. L’algorithme passe donc aux
tournées commençant par le client 2.
On commence donc cette fois par évaluer les tournées comprenant uniquement le client 2
sachant que le véhicule 1 est donc assigné à la tournée constituée uniquement du client 1. Comme
l’illustre la Figure 66 Les véhicules 2 et 3 sont éligibles à effectuer la tournée. Le véhicule 2 est celui
des deux qui possède le coût le plus faible cependant le coût de cette tournée (4) ajouté à celle de la
première tournée constituée du client 1 (2) et supérieure au coût de la tournée qui dessert le client 1
et 2 avec le véhicule 1. Aucune des tournées ne prenant uniquement le client 2 n’est donc prise en
66
Chapitre 3 : Etude du HVRP dans un contexte mobile
compte.
67
Chapitre 3 : Etude du HVRP dans un contexte mobile
L’algorithme tel qu’il est n’est donc pas optimal. Il peut même ne trouver aucune solution alors
que plusieurs existent comme on peut le remarquer en ajoutant un cinquième client de demande
égale à 2 à notre exemple. Selon la figure 7, une solution existe du fait que le véhicule 3 n’est pas
occupé et qu’il est de capacité suffisante. Cependant l’algorithme ne trouverait aucune solution. Ce
problème vient du fait que les véhicules sont disponibles en quantité limitée. En effet, l’algorithme
choisi à chaque itération le véhicule le moins couteux. Cependant, il n’est pas trivial qu’il soit plus
judicieux d’utiliser les camions les moins couteux au début de l’algorithme comme l’illustre
parfaitement l’exemple proposé.
La solution est donc, plutôt que de sauvegarder à chaque nœud uniquement la meilleure solution
à priori, de sauvegarder toutes les solutions qui ont une chance de mener à la solution optimale pour
le nœud final. Seules les solutions complètements dominées ne sont alors pas prises en compte ; par
exemple, si deux solutions utilisent la même flotte de véhicules seule la moins coûteuse sera
sauvegardée, de même si la plus coûteuse ne possède aucun véhicule libre non possédé par la moins
coûteuse.
L’algorithme une fois effectué peut alors proposer plusieurs solutions sur le dernier label qui sont
en partie ou toutes intéressantes à conserver pour l’étape de recherche locale étant donné que ces
solutions n’utilisent pas la même composition de véhicules.
Optimisation en temps et en espace de l’algorithme :
Conserver autant de labels sur chaque nœud du graphe de l’algorithme peut rendre le split
extrêmement coûteux en espace et en temps.
En effet, un coût total, un tableau indiquant le nombre de véhicules disponibles pour chacun des
types, l’indice correspondant au premier client de la tournée et l’indice du label père. Cet espace
nécessaire est à multiplier le nombre de labels de chacun des nœuds qui débute sur le premier nœud
par le nombre de types de véhicule à disposition de capacité supérieur à la demande du premier
client du TG puis augmente de façon exponentielle à chaque nœud sur lesquels une nouvelle tournée
est initiée en fonction du nombre de types de véhicule alors disponibles. Un label arrête d’être
propagé au nœud suivant et donc le nombre de labels diminue lorsque plus aucun des véhicules
disponibles ne peut traiter la demande du client suivant.
D’autre part, comparer deux labels revient à comparer le nombre de véhicules disponibles pour
chaque type de véhicule du problème et le coût total. Ce temps nécessaire à une comparaison est à
prendre en compte à chaque fois qu’un nouveau label potentiel doit être comparé aux labels déjà
présents pour un nœud traité.
Afin de réduire le coût en espace et en temps de l’algorithme du split, il est alors judicieux de
réduire le nombre de comparaisons de labels et le nombre de labels par nœud au maximum sans
pour autant perdre les solutions intéressantes. Pour se faire, un pré-calcul est effectué avant de
démarrer le split afin d’associer à chaque nœud un coût minimal pour traiter les clients restants et de
68
Chapitre 3 : Etude du HVRP dans un contexte mobile
ne comparer un label par rapport aux autres, durant l’algorithme, que s’il est suffisamment bon en lui
ajoutant la valeur pré calculée (inférieur au coût de la meilleure solution connue auquel on ajoute un
pourcentage d’incertitude). Cette borne inférieure du coût est calculée en supposant que l’on dispose
en quantité non limité d’un véhicule dont la capacité est le maxima parmi celles présentes dans la
flotte de véhicules et dont le coût fixe et le coût variable sont les minimas parmi ceux présents dans
la flotte de véhicules. De plus la distance entre le dépôt et les clients n’est prise en compte pour ce
coût minimal que lors du retour de la dernière tournée afin de s’assurer de bien être inférieur en tout
cas à la valeur optimale à partir du nœud traité. L’algorithme ainsi optimisé est décrit dans
l’algorithme 5 ci-dessous
Algorithme Split pour HVRP [Duh10] :
Données :
- n : nombre de clients
- t : nombre de types de véhicule
- 𝑞 : vecteur de taille n où pour tout i de 1 à n, 𝑞𝑖 est la demande correspondante
au client i.
- 𝑐 : matrice de taille (n+1,n+1) où pour tout i,j de 0 à n, 𝑐𝑖𝑗 correspond à la
distance de i à j où l’indice 0 correspond au dépôt et l’indice k de 1 à n
correspond au client k.
- 𝑊 : vecteur de taille n où pour tout i de 1 à t, 𝑊𝑖 est la capacité de chargement
d’un véhicule de type i.
- 𝐿 : distance maximum d’une tournée.
- 𝐹 : vecteur de taille t où pour tout i de 1 à t, 𝐹𝑖 est le coût fixe d’un véhicule de
type i.
- 𝑉 : vecteur de taille t où pour tout i de 1 à t, 𝑉𝑖 est le coût variable d’un véhicule
de type i.
- Borne_inf : vecteur de taille n où pour tout i de 1 à n, 𝐵𝑜𝑟𝑛𝑒_ inf𝑖 𝑒𝑠𝑡 la valeur pré-
calculée minimale pour finir de desservir les clients après le client i.
Variables :
- Label : vecteur de taille n où pour tout i de 1 à n, Labeli est la liste des labels
associée au nœud i.
- charge : variable permettant de vérifier qu’une tournée respecte la capacité d’un
véhicule.
- distance : variable permettant d’évaluer la distance de la tournée courante.
- coût : variable permettant d’évaluer le coût de la tournée courante en fonction d’un
type de véhicule choisi.
- coût_variable : variable qui prend la valeur du coût variable minimum parmi ceux des
différents véhicules durant la première étape de l’algorithme
- coût_fixe : variable qui prend la valeur du coût fixe minimum parmi ceux des différents
véhicules durant la première étape de l’algorithme
- capacité : variable qui prend la valeur de la capacité maximum parmi celles des
différents véhicules durant la première étape de l’algorithme
- nb_vehicule : variable temporaire utile dans la première partie de l’algorithme indiquant le
nombre de véhicules nécessaire pour desservir les clients.
- temp, stop, trop, échec : variables temporaires.
- Label_temp : label temporaire.
69
Chapitre 3 : Etude du HVRP dans un contexte mobile
70
Chapitre 3 : Etude du HVRP dans un contexte mobile
Tableau 9 : Demandes des clients de l’exemple de Tableau 10 : Liste des véhicules disponibles de
génération de solutions l’exemple de génération de solutions
Véhicules 1 2
Clients du TG 1 2 3 4
Capacités 4 6
Demandes 2 5 1 2
On illustre sur la Figure 70 les deux possibilités de faire évoluer le Split ; c’est-à-dire, en débutant
par le véhicule 1 ou par le véhicule 2. On remarque qu’aucune des deux possibilités ne permet de
desservir la totalité des clients. En effet, on a deux possibilités pour desservir le client 1 en choisissant
(le véhicule 1 ou 2). Ensuite aucun des deux véhicules ne peut prendre en charge la capacité des
clients 1 et 2 dans la même tournée. En partant du label où le client 1 est desservi par le véhicule 1, le
véhicule 2 reste disponible et peut effectuer la livraison du client 2. Le véhicule 2 peut prendre en
charge le client 2 et 3 dans la même tournée ce qui le remplira complètement et donc ce nouveau
label associé au nœud 3 ne se propagera pas. D’autre part, en partant du label où le client 1 est
desservi par le véhicule 2, seul le véhicule 1 est disponible mais il ne dispose pas de la capacité
suffisante pour contenir la demande du client 2 l’algorithme s’arrête donc complètement avec deux
labels sur le nœud 1, un label sur le nœud 2 et un label sur le nœud 3.
71
Chapitre 3 : Etude du HVRP dans un contexte mobile
Client 1 2 3 4
Demande 2 5 1 2
Possibilité 1 Possibilité 2
Etant donné qu’aucune solution n’est trouvée, l’heuristique se met en marche afin de modifier le
TG jusqu’à ce qu’une solution soit mise en évidence.
L’indice du client associé au dernier label est donc 3 ; l’algorithme va donc commencer par
essayer de déplacer le client 4 jusqu’à ce l’algorithme du split engendre une solution. La première
itération illustrée par la Figure 71 consiste à échanger la position des clients 3 et 4 et à réitérer
l’algorithme du split sur le TG obtenu.
Clients du TG 1 2 4 3
Demandes 2 5 2 1
Véhicule 1 : Véhicule 2 :
1 4 3 2
Le but étant de garder une solution initiale raisonnablement bonne, c’est-à-dire proche de celle
issue par la méthode des plus proches voisins, cet algorithme n’effectue qu’un seul échange de
72
Chapitre 3 : Etude du HVRP dans un contexte mobile
position au maximum dans le tour géant initial. Dans le cas où l’algorithme ne débouche sur aucune
solution un nouveau tour géant est généré par la méthode des plus proches voisins et on réitère
l’algorithme jusqu’à trouver une solution.
73
Chapitre 3 : Etude du HVRP dans un contexte mobile
B 3 4 1 2 5 6 7
B’ 4 3 5 2 6 1 7
74
Chapitre 3 : Etude du HVRP dans un contexte mobile
V T T F F F F F
B 3 4 1 2 5 6 7 LOC 3 4 1 2 5 6 7
B’ 4 3 5 2 6 1 7
Vu que l’on a échangé les positions 1 et 2 la boucle tant que s’arrête et la boucle pour se déroule.
Comme l’illustre Figure 75, la deuxième itération prend en compte la valeur 1 en position 3 de B. La
valeur 5 associée à la position 3 de B’ est en position 5 de B. La valeur 6 associée à la position 5 de B’
est en position 6 de B. Enfin la position 6 de B’ correspond à la valeur 1 ce qui termine la boucle tant
que.
V T T T F T T F
B 3 4 1 2 5 6 7 LOC 3 4 1 2 5 6 7
B’ 4 3 5 2 6 1 7
Les deux derniers éléments non traités ont des places correspondantes dans le vecteur B et le
vecteur B’ donc l’algorithme se finit donc comme illustré sur la Figure 76 :
V T T T T T T F V T T T T T T T
B 3 4 1 2 5 6 7 B 3 4 1 2 5 6 7
B’ 4 3 5 2 6 1 7 B’ 4 3 5 2 6 1 7
Sur cette même Figure 76, à la fin de l’algorithme, on peut apprécier le nombre de permutations
pour passer de B à B’ qui est 3 ; les permutations associées sont (1;2), (3;5), (5;6).
75
Chapitre 3 : Etude du HVRP dans un contexte mobile
Deux tours
géants issus de
solutions de la
population
Calcule de la distance
de Zhang Génération des tours
géants
En reprenant, l’exemple du Tableau 11, les tours géants générés par le Path-Relinking à partir de B
et B’ sont donc au nombre de 2 ; il y a 3 permutations et la dernière aboutit sur le vecteur B’
comme le montre la Figure 78 :
B 3 4 1 2 5 6 7
Tour géant 1 4 3 1 2 5 6 7
Tour géant 2 4 3 5 2 1 6 7
B’ 4 3 5 2 6 1 7
76
Chapitre 3 : Etude du HVRP dans un contexte mobile
Cette recherche locale repose sur le principe que pour améliorer une tournée, il peut apparaître
logique de se focaliser dans un premier temps sur les clients qui imposent un détour important du
véhicule. Ainsi chacune des deux recherches locales associées à un mouvement intra-tournée (2_opt
intra-tournée et 4_opt intra-tournée) opère avec une certaine probabilité du client le plus
contraignant au client le moins contraignant. Sur ce même raisonnement, pour les mouvements
faisant intervenir deux tournées (insertion et 4_opt inter-tournée), on affecte un ordre de traitement
des tournées afin que les tournées traitées en priorité aient une forte probabilité d’être celles
possédant le client imposant le plus grand détour.
77
Chapitre 3 : Etude du HVRP dans un contexte mobile
Le mouvement 4_opt intra-tournée qui consiste à changer quatre arcs d’une tournée par quatre
autres. Le nombre de possibilités d’un tel mouvement étant très important, on se restreint dans
cet algorithme au cas où l’on échange les places de deux clients comme le montre la Figure 80.
Le mouvement 4_opt inter-tournée qui consiste à changer deux arcs d’une tournée et deux arcs
d’une seconde par quatre autres. On se restreint là encore au cas où l’on échange les places de
deux clients illustré sur la Figure 81.
78
Chapitre 3 : Etude du HVRP dans un contexte mobile
3. Paramètres et résultats
3.1 Paramètres sur les instances classiques
Le schéma Figure 82 reprend le schéma général présenté dans la partie précédente afin
d’expliquer plus clairement les différents paramètres qui entre en œuvre dans cet algorithme.
79
Chapitre 3 : Etude du HVRP dans un contexte mobile
80
Tableau 13 : Résultats du HVRP sur les instances de Golden
81
Chapitre 3 : Etude du HVRP dans un contexte mobile
De façon générale, on peut voir que l’algorithme de ce stage obtient un coût moyen meilleur que
ceux associés aux publications de Taillard et de Tarantilis. Cependant Les publications les plus
récentes obtiennent globalement de meilleurs coûts. En termes de rapidité l’algorithme développé
est en moyenne plus lent que ceux des articles présentés. En analysant de façon plus détaillée, on
remarque que l’on obtient la meilleure solution connue pour l’instance 15 et que l’on se situe à 0.01%
de la meilleure solution connue de l’instance 13. Pour ce qui est du temps de calcule, on remarque
que l’algorithme est particulièrement lent pour les instances 13 et 18 qui possèdent un nombre de
types de véhicules important, alors qu’il est très correcte sur les autres instances relativement aux
autres publications.
Les résultats sur les instances de Golden sont donc plutôt satisfaisants car proches de ceux
trouvés dans les publications existantes. Le principal point négatif de l’algorithme proposé est son
comportement par rapport à un grand nombre de types de véhicules où son temps d’exécution
devient très élevé comparé aux différentes publications.
On choisit 51 nœuds du réseau routier de façon randomisée qui représentent les clients à
desservir et on leur associe aléatoirement une demande entre 1 et 100 unités. La répartition des
clients est illustré Figure 24.
82
Chapitre 3 : Etude du HVRP dans un contexte mobile
On obtient par ce procédé une demande totale à desservir de 1769 unités, on choisit donc en
conséquence une flotte de véhicules de capacité raisonnable. La flotte choisie est composée de
quatre types de véhicules :
Type 1 : 1 véhicule de capacité 160, de coût fixe 10.0 et de coût par unité de distance 1.0
Type 2 : 2 véhicules de capacité 260, de coût fixe 25.0 et de coût par unité de distance 2.0
Type 3 : 2 véhicules de capacité 360, de coût fixe 50.0 et de coût par unité de distance 8.0
Type 4 : 1 véhicule de capacité 600, de coût fixe 100.0 et de coût par unité de distance 10.0
Pour que les coûts fixes des différents véhicules ainsi choisis aient un impact raisonnable sur la
constitution des tournées par notre algorithme, on choisit d’utiliser comme unité de distance 10
mètres.
Les instances classiques de la littérature, comme les instances de Christofides pour le VRP ou
celles de Golden pour le HVRP, utilisent des coordonnées cartésiennes pour localiser les clients et le
dépôt et utilisent la distance euclidienne pour estimer la distance entre chaque nœud (le coût de
chaque arrête du graphe). Dans cette instance, on utilise les coordonnées GPS du graphe routier pour
localiser les nœuds représentants les clients et le dépôt. Pour établir le coût de chacune des arrêtes
du graphe associé à l’instance on calcule sur le graphe du réseau routier la distance du plus court
chemin entre chacun des 52 nœuds choisis. Ces calculs de plus court chemin sont faits de façon
exacte par un algorithme de Dijkstra. Une fois le graphe construit, l’instance est complète et peut être
utilisée par l’algorithme de résolution de HVRP proposé dans ce chapitre.
83
Chapitre 3 : Etude du HVRP dans un contexte mobile
84
Chapitre 3 : Etude du HVRP dans un contexte mobile
La deuxième tournée est constituée de 11 clients qui sont desservis par le véhicule de type 4 dans
l’ordre illustré Figure 86 où le dépôt est représenté par un point vert. On peut voir que les clients
desservis sont scindés en trois groupes :
Un groupe de trois points proches du dépôt.
Un groupe très compact de 5 points à une distance modéré du dépôt.
Un deuxième groupe compact de 3 points à une distance également modéré du dépôt.
La cinquième tournée n’est constituée que de 3 clients qui sont desservis par un véhicule de type
3 dans l’ordre illustré Figure 87 où le dépôt est représenté par un point vert. On peut voir que les
85
Chapitre 3 : Etude du HVRP dans un contexte mobile
4. Conclusion
Dans ce chapitre nous avons pu, grâce au travail effectué précédemment sur le VRP, résoudre de
façon approchée le problème du HVRP par une métaheuristique. Le point fort de notre méthode fut
d’approcher le problème d’une façon originale par une méthode de Path-Relinking tout en gardant
des résultats satisfaisants comparés aux principales publications sur le sujet.
Nous nous sommes, par ailleurs, servi du travail effectué dans le deuxième chapitre pour
proposer une méthode de construction d’instance basée sur un réseau routier réel afin d’appliquer
notre algorithme à un cas concret.
5. Références
*Bal09+ R., Baldacci and A., Mingozzi, A unified exact method for solving different classes of
vehicle routing problems. Mathematical Programming, vol. 120 , pp. 347-380, 2009.
*Duh10+ C. Duhamel, P. Lacomme and C., Prodhon, Efficient frameworks for greedy split and
new depth first search split procedures for routing problems, Computers &
Operations Research, vol.38, pp. 723–739, 2010.
*Gol84+ B. L., Golden, A. A., Assad, L.,Levy and F., Gheysens, The feet size and mix vehicle
routing problem, Computers & Operations Research, vol. 11, pp. 49-66, 1984.
*Glo96+ F. Glover. Tabu search and adaptive memory programing – Advances, applications and
challenges. In R.S. Barr, R.V. Helgason, and J.L. Kennington, editors, Interfaces in
Computer Science and Operations Research, pp 1–75. Kluwer, 1996.
*Li07+ F., Li, B., Golde and E., Wasil, A record-to-record travel algorithm for solving the
heterogeneous fleet vehicle routing problems. Computers & Operations Research,
vol. 34, pp. 2734–2742, 2007.
86
Chapitre 3 : Etude du HVRP dans un contexte mobile
*Li10+ X. Li, P., Tian and Y., Aneja, An adaptive memory programming metaheuristic for the
heterogeneous fixed fleet vehicle routing problem. Transportation Research Part E:
Logistics and Transportation Review, vol. 46, pp. 1111-1127, 2010.
*Pes09+ A., Pessoa, E., Uchoa and M., Aragao, A robust branch-cut-and-price algorithm for the
heterogeneous fleet vehicle routing problem. Networks, vol. 54 , pp. 167-177, 2009.
*Pri09+ C., Prins. Two memetic algorithms for heterogeneous fleet vehicle routing problems.
Engineering Applications of Artificial Intelligence, vol. 22, pp. 916–928, 2009.
*Sev07+ M., Sevaux, K. Sörensen, J. Springael, and W. Dullaert. Applications of metaheuristics.
European Journal of Operational Research, 179(3):601-604, 2007
*Sub12+ A., Subramaniana, P. Huachi Vaz Penna, E. Uchoa and L. Satoru Ochi. A Hybrid
Algorithm for the Heterogenous Fleet Vehicle Routing Problem. European Journal of
Operational Research January 18, 2012
*Tai99+ E., Taillard, A heuristic column generation method for the heterogeneous fleet VRP.
RAIRO Operations Research, vol. 33 (1), pp. 1–14, 1999.
*Tar04+ C., Tarantilis, C., Kiranoudis and V., Vassiliadis, A threshold accepting metaheuristic for
the heterogeneous fixed fleet vehicle routing problem, European Journal of
Operational Research 152, pp. 148–158, 2004
*Zha05+ L., Wang, Y., Zhang and J. Feng, On the Euclidean Distance of Images, IEEE
Transactions on Pattern Analysis and Machine Intelligence, vol. 27(8), pp. 1334-1339,
Aug. 2005
87
Conclusion
Durant ce stage d'une durée de 6 mois, trois problèmes de recherche opérationnelle ont été
traités sur les problèmes de routing. Le premier problème à résoudre a été le VRP, considéré comme
le problème de base en tournées de véhicules, qui a permis de se familiariser avec les méthodes
approchées. Le deuxième problème abordé a été le problème de cheminement en milieu urbain
intégré dans un environnement mobile. Il a permis d’appréhender les différentes contraintes liées au
milieu urbain et au milieu mobile. Le dernier problème abordé a été le HVRP qui est un problème de
tournées de véhicules sur lequel peu de littérature a été publiée.
Le premier mois du stage a été consacré à la découverte du milieu scientifique, l’étude des
différents problèmes théoriques abordés plus tard durant le stage. Cette première période s'est
terminée par l’élaboration d’une métaheuristique pour résoudre le VRP. Les résultats de cette
méthode ont été comparés aux résultats obtenus par C. Prins.
Une fois ces compétences acquises, une majeure partie du stage fut consacrée au problème de
cheminement pour piéton en milieu urbain dans un environnement mobile. Cette partie consiste,
dans un premier temps, à élaborer une méthode de résolution de plus court chemin dans des
graphes de grandes tailles. Une fois ce travail effectué, un service web dialoguant avec une base de
données routières. Une application GPS sous Android dédiée aux guidages de piétons en milieu
urbain et utilisant ce web service a été élaborée. L’application et le web service sont fonctionnels et
ont été présentés à Paris au siège de Via Michelin qui possèdent des services d’itinérance pour
véhicule très performants.
La dernière partie de mon stage consistait à concevoir une méthode approchée originale pour le
HVRP qui soit applicable aux instances de la littérature mais aussi à des instances construites à partir
de réseaux routiers. Cette méthode de résolution propose des résultats satisfaisants et s’applique
parfaitement aux instances de très grande taille créées à partir de plusieurs milliers de nœuds et
d’arcs issus d’un réseau routier de Clermont-Ferrand.
Ce stage m’a permis de monter en compétences sur de nombreux domaines qui m’étaient peu
familiers mais aussi de m’intégrer au domaine de la recherche opérationnelle me permettant ainsi de
poursuivre mon cursus par une thèse.
A partir du mois de septembre 2013, je débute une thèse avec la société Ip Leanware financée
par une bourse d'innovation de la région Auvergne.
89
ANNEXES
ANNEXE 1 : Installation et détails du fonctionnement de l'application mobile ........................................A1
ANNEXE 2 : Installation et détails du fonctionnement de l'application mobile ...................................... A11
91
Annexes
ANNEXE 1
Installation et détails du fonctionnement de l'application
mobile
A-1
Annexes
Installation de l’application
Pour installer l’application sur un mobile Android, il suffit de suivre les trois étapes suivantes :
Télécharger l’application sur le mobile à l’adresse suivante :
http//www.isima.fr/~lacomme/ORWebServices/GPS4pedestrian/source/Gps_android.apk
Configurer le mobile pour accepter les applications non issues du market Android. Pour cela il faut
aller dans les paramètres du téléphone puis dans l'onglet Sécurité et autoriser l’installation
d’application non Market.
Installer sur le mobile l’application à partir du fichier téléchargé.
Il faut noter que pour utiliser l’application, le GPS et les données mobiles du téléphone doivent être
activés.
A-3
Annexes
Détails du fonctionnement de
l'application mobile
Dans cette annexe, nous illustrons à les différents cas d’utilisation de notre application à travers le
parcours d’un itinéraire en allant du parking de l’ISIMA jusqu’au centre d’Aubière (12 rue des ramacles).
Nous commençons donc par vérifier que le mobile dispose d’une connexion réseau et que la
localisation par GPS est activée. Une fois cette vérification effectuée, et l’application lancée, on accède à
l’interface à partir de laquelle on a accès au menu de l’application :
A-5
Annexes
A partir de ce menu, on choisit l’onglet "ma position" afin de vérifier que le mobile
localise correctement le téléphone. Cette étape n’est pas nécessaire, elle permet seulement
d’ajuster automatique le zoom de la carte mais il faut noter que le calcul d’itinéraire ne se
déclenchera pas tant que le mobile n’est pas géolocalisé.
A-6
Annexes
Maintenant que l'application à tous les éléments nécessaires, il est possible de lancer la
demande d’itinéraire avec l’onglet guider. Le web service met en moyenne 5 secondes pour
traiter la demande. Une fois que l’itinéraire a été trouvé le chemin s’affiche sur la carte.
Notons qu’après le première itinéraire, l’application récupère auprès du web service un graphe
autour de la position courante afin de pouvoir lancer un recalcule en local en cas de coupure
réseau. Cette opération se fait de façon transparante pour l’utilisateur qui continue d’être
guidé durant le téléchargement.
A-7
Annexes
Les indications à suivre commencent alors dès que la position de l’utilisation a bougé
ou que l’on appuie sur ma position. La position courante du mobile est projetée sur le chemin
et des indications sur la prochaine intersection apparaissent à l’écran au fur et a mesure que
l’on se déplace.
A-8
Annexes
Lors de ces différents recalculs, il peut arriver que la connexion avec le réseau soit
interrompue auquel cas l’application se sert du graphe stocké dans le téléphone (dans la
mesure où il comprend la position actuelle) pour effectuer le calcul d’itinéraire. Cette prise en
charge du calcul par l’application du téléphone est invisible pour l’utilisateur.
Dans l’exemple suivant, une perte de connexion a été simulé par la coupure des
données mobiles puis nous avons relancé le calcul d’itinéraire vers la destination par l’onglet
A-9
Annexes
A-10
Annexes
ANNEXE 2
Liste de publications
Vincent B., P. Lacomme, R. Libo and N. Tchernev. Shortest Path in the context of Route
Guidance Systems. International France-China Workshop. NICST’2013, New and smart
Information Communication Science and Technology to support Sustainable Development,
18-20 September 2013, Clermont Ferrand, France. Accepté pour publication.
Vincent B., P. Lacomme, R. Libo and N. Tchernev. Shortest Path for Mobile Devices in Urban
Area., Congrès ROADEF de Société française de Recherche Opérationnelle et d'Aide à la
Décision. 26-28 février 2014. Soumission en cours.
Vincent B., P. Lacomme, R. Libo and N. Techernev. Shortest Path challenging problem in the
context of mobile devices in urban area takling weakened GPS data and wireless network
traffic interruption. ICORES 2014. 3rd International Conferences on Operations Research and
Enterprise Systems. ESEO, Angers, Loire Valley, France, 6-8 march 2014.
A-11
Annexes
Vincent B., P. Lacomme, R. Libo and N. Tchernev. Shortest Path in the context of Route
Guidance Systems. International France-China Workshop. NICST’2013, New and smart
Information Communication Science and Technology to support Sustainable Development,
18-20 September 2013, Clermont Ferrand, France. Accepté pour publication.
A-13
Annexes
A-14
Annexes
A-15
Annexes
A-16
Annexes
A-17
Annexes
A-18
Annexes
Vincent B., P. Lacomme, R. Libo and N. Tchernev. Shortest Path for Mobile Devices in Urban
Area., Congrès ROADEF de Société française de Recherche Opérationnelle et d'Aide à la
Décision. 26-28 février 2014. Soumission en cours.
A-19
Annexes
A-20
Annexes
Vincent B., P. Lacomme, R. Libo and N. Techernev. Shortest Path challenging problem in the
context of mobile devices in urban area takling weakened GPS data and wireless network
traffic interruption. ICORES 2014. 3rd International Conferences on Operations Research and
Enterprise Systems. ESEO, Angers, Loire Valley, France, 6-8 march 2014.
A-21
Annexes
A-22
Annexes
A-23
Annexes
A-24
Annexes
A-25
Annexes
A-26
Annexes
A-27
Annexes
A-28
Annexes
A-29
Annexes
A-30