Vehicule Routing Problem
Vehicule Routing Problem
Introduction générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1
TABLE DES MATIÈRES
2
TABLE DES MATIÈRES
3
Table des figures
4
Liste des tableaux
5
List of Algorithms
6
Liste d’abréviation
7
introduction générale
L’efficacité des itinéraires et la gestion des coûts liée a tout opérations d’approvision-
nement et de distribution sont des éléments essentiels dans le domaine du transport de
marchandises, l’optimisation de ces éléments est essentiel pour les entreprises qui cherchent
à maintenir leur compétitivité, à améliorer leur rentabilité et à offrir un service de qualité
à leurs clients.
8
En second lieu, nous aborderons la réglementation associée au transport de marchan-
dises qui régie le secteur, notamment celle qui ce rapport au transport des marchandises
au niveau nationales et internationales ; enfin, nous discuterons des problèmes majeurs
auxquels sont confrontés les acteurs du transport de marchandises au niveau national et
international. Il s’agit notamment des défis logistiques liés à la planification des itinéraires,
à la coordination des opérations et à la gestion des retards.
Dans le troisième chapitre, nous avons mis en lumière les différentes méthodes de
résolution utilisées pour résoudre le Problème de Routage de Vé[Link] lequel nous
exposerons les approches exactes, telles que les algorithmes de programmation linéaire, les
algorithmes branch-and-bound, ainsi que les approches heuristiques et métaheuristiques,
comme les algorithmes génétiques, les algorithmes de colonies de fourmis, les algorithmes
de recuit simulé, etc.
enfin, dans le quatrième chapitre, nous exposerons les resutat de la résolution du Pro-
blème de Routage de Véhicules (VRP) en développant une application avec une interface
conviviale, a compagnie un tableau de bord informatif et un backend robuste pour résoudre
efficacement le VRP en utilisant des algorithmes heuristiques et métaheuristiques.
9
Chapitre 1
Le transport de marchandise et
distribution
10
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
1.1 Introduction
Le transport de marchandises et la distribution sont des activités clés pout les entre-
prises,une planification efficace de la chaı̂ne d’approvisionnement et de distribution, doit
obillier a certaine critère : une sélection judicieuse des modes de transport et des moyens
contribue a améliorer la rentabilité des entreprises, par la réduction des coûts et à offrir
un meilleure service aux client.
Dans ce premier chapitre, nous allons en premier lieu, présenter des généralités sur
le transport routier de marchandises, en second lieu, nous allons présenter les différentes
réglementations du transport routier de marchandises.
Cependant, le transport routier est également confronté à plusieurs défis, tels que les
problèmes de congestion routière, les coûts élevés de carburant, les problèmes de sécurité
routière et les impacts environnementaux. Les entreprises de transport travaillent donc
constamment pour améliorer l’efficacité et la durabilité de leurs opérations de transport
de marchandises routier.
11
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
1.3 Définition
Distribution :
Selon DIOUX ET DUPUIS (2009) la distribution est le chemin suivi par un produit
ou un service, depuis la production jusqu’à la consommation, en regroupant lensemble des
personnes ou des entreprises que lon appelle les intermédiaires. Ces derniers constituent
les éléments de base du canal de distribution de lentreprise.[22]
image//[Link]
12
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
13
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
image/maritime - [Link]
Le transport aérien constitue une solution idéale pour transporter rapidement des pro-
duits sensibles ou très fragiles qui nécessitent un traitement spécial. Cette méthode s’avère
toutefois très coûteuse et n’est donc pas recommandée pour l’acheminement régulier des
produits sur de longues distances. Les entreprises peuvent toutefois recourir aux services
d’un cargo aérien pour expédier de petites quantités de marchandise sensible à destina-
tion internationale. Enfin, il existe des moyens alternatifs de transporter les marchandises
comme le transport par voie fluviale ou routière qui peut être très rentable si les condi-
tions climatiques sont favorables et si la distance à couvrir est relativement courte. De
plus, certaines entreprises optent pour le fret multimodal qui combine plusieurs moyens
de transport (terrestre, fluvial, aérien) afin daccroitre la flexibilité et réduire les coûts
globaux du projet logistique. Ainsi, il existe plusieurs formes de gestion du transport de
marchandises qui peuvent être utilisées selon les besoins spécifiques dune entreprise. Il
convient toutefois de noter quil est indispensable deffectuer un choix judicieux en fonc-
tion des caractéristiques du produit à transporter afin doptimiser la chaı̂ne logistique et
maximiser son efficacité globale.[28]
14
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
Un voyageur est une personne qui se déplace sur un parcours généralement préétabli en
empruntant un moyen de transport particulier, généralement les transports en commun.
Le transport de voyageurs peut être effectué à différentes échelles, allant du transport
local dans une ville ou une région, au transport interurbain, national ou international.[9]
Les transports interurbains ont pour caractéristiques de répondre aux besoins de trans-
port à l’extérieur des agglomérations, en général d’une ville à une autre et en autocar.
L’interurbain regroupe les lignes régulières et le transport occasionnel.[15]
Ces entreprises proposent souvent aussi des services logistiques pour aider les clients à
organiser efficacement leurs expéditions. Les principaux avantages de ce type de transport
routier de marchandises sont la flexibilité, car les envois peuvent être programmés pour
être livrés dans un délai précis.
15
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
1.6.3 Reglementation
16
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
lois importantes dans ce domaine sont la loi 0-13 et les lois 04-415 et 04-416. Ces lois
établissent un cadre juridique essentiel pour le transport de marchandises en Algérie, en
fixant des normes et des exigences auxquelles les transporteurs doivent se conformer.
a) Permis de conduire : Les conducteurs de véhicules de transport de marchandises
doivent détenir un permis de conduire approprié pour le type de véhicule qu’ils
conduisent, souvent assorti de certaines restrictions ou qualifications supplémen-
taires.
b) Limites de poids et de dimensions : Les véhicules de transport de marchandises
doivent respecter des limites de poids et de dimensions spécifiques définies par les
autorités routières. Cela inclut le poids total autorisé du véhicule, le poids par essieu,
la longueur, la largeur et la hauteur maximales.
c) Temps de conduite et de repos : Les conducteurs de véhicules de transport de mar-
chandises doivent respecter des règles strictes concernant les temps de conduite et
de repos pour garantir la sécurité routière. Ces règles peuvent inclure des limites sur
la durée quotidienne de conduite, des temps de repos obligatoires et des restrictions
sur les heures de conduite nocturne.
d) Sécurité des marchandises : Les marchandises transportées doivent être sécurisées
de manière appropriée pour éviter tout mouvement ou dommage pendant le trans-
port. Des règles spécifiques peuvent régir la manière dont les marchandises doivent
être chargées, arrimées et protégées à l’intérieur du véhicule.
e) Documents et autorisations : Les transporteurs de marchandises doivent s’assu-
rer d’avoir les documents et les autorisations appropriés pour transporter des mar-
chandises. Cela peut inclure des licences spécifiques, des permis de transport, des
documents de douane et des preuves d’assurance.
f) Équipement de sécurité : Les véhicules de transport de marchandises doivent être
équipés de dispositifs de sécurité obligatoires tels que des feux de signalisation, des
dispositifs réfléchissants, des extincteurs d’incendie et des trousses de premiers soins.
Le transport de fret est un processus complexe. Pour cette raison, les acteurs sont
multiples et indispensables au bon déroulement du transport.
17
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
Les transitaires ou agents chargés d’effectuer les opérations de mise sous douane ou de
dédouanement, cest-à-dire des déclarations de douane pour le compte d’autrui, éventuelle-
ment des déclarations complémentaires particulières, pour le compte des expéditeurs, des
transporteurs, des commissionnaires ou des destinataires.
1.7.3 Le courtier
1.7.4 Le transporteur
C’est une personne ou une société qui garantit lacheminement dans un lieu donné, des
personnes, des produits ou des marchandises à laide des moyens de transport en respectant
les délais déterminés par le client contre une rémunération.[1]
1.7.5 Le logisticien
Pour organiser lacheminement de leurs marchandises, les entreprises ont recours à une
diversité de stratégies de transport (transport pour compte propre, sous-traitance directe
à des transporteurs, sous-traitance à des transitaires ou auxiliaires de transport, et la
stratégie combinée) (Belotti, 1992 ; Cecilia, 2011).[5]
18
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
Il se définit comme un transport exécuté pour ses besoins propres, par une entreprise,
pour déplacer en gardant la maı̂trise du transport, des marchandises lui appartenant ou
faisant lobjet de son commerce, de son industrie ou de son exploitation, avec des véhicules
lui appartenant ou mis à sa disposition exclusive par location (Cecilia, 2011). Malgré
la croissance exponentielle du volume et de lintensité des flux physiques qui poussent
aujourdhui les chargeurs à faire appel à des prestataires logistiques externes (Belotti,
1992 ; Chevalier et Duphil, 1988 ; Lemeunier, 1989 ; Cecilia, 2011), certaines entreprises
continuent à assurer elles-mêmes le transport de leurs marchandises.[5]
Les transporteurs sont des personnes morales, propriétaires des moyens de transport,
qui assurent lacheminement des personnes et/ou des biens. Ils sont généralement spéciali-
sés par mode de transport, par type de produit transporté ou par type de prestation offerte
(Chevalier et Duphil, 1988 ; Belotti, 1992). La catégorisation par nature de marchandises
transportées permet de distinguer les transporteurs de marchandises conventionnelles, les
transporteurs de marchandises conteneurisées, les transporteurs dhydrocarbures...etc[5]
Les transitaires sont des intermédiaires entre les entreprises et les transporteurs. Ils
assurent un rôle de conseils et offrent aux entreprises une diversité de prestations de
services (Chevalier et Duphil, 1988 ; Belotti, 1992, 2015). En fonction de leur spécialisation
et du type dactivité qui conditionnent leur facturation, ils peuvent prendre le statut de
mandataire, de commissionnaire ou dorganisateur de transport multimodal (OTM).[5]
19
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
D’une manière générale, l’efficacité logistique mesure le degré datteinte des objectifs
initiaux fixés par lentreprise (Morana et Gonzalez-Feliu, 2010 ; Marcon, Guinet et Tahon,
2008 ; Tchokogué, Jobin et Beaulieu, 1999).Une stratégie de transport est efficace si elle
permet à lentreprise dassurer lacheminement de ses marchandises dans le respect de ses
objectifs de coûts, de délais, de qualité et de sécurité. À ce propos, plusieurs travaux
de recherche se sont intéressés aux avantages et aux limites des différentes stratégies de
transport.[5]
image//[Link]
La gestion du transport des marchandises est une question très complexe qui nécessite
une bonne compréhension des principes de logistique. En effet, elle implique la mise en
oeuvre d’une variété de méthodes et de procédures visant à assurer que le produit arrive
à l’endroit et au moment requis. Les principaux objectifs poursuivis par la gestion du
transport des marchandises sont l’efficacité, la sûreté, la sécurité et la qualité.En ce qui
concerne l’efficacité et l’optimisation des coûts, le premier élément à prendre en compte
est le choix du mode de transport approprié. .En ce qui concerne la sûreté et la sécurité
des produits pendant le transport, il est essentiel de recourir à des mesures strictes concer-
nant l’emballage et la manutention des marchandises. En outre, il convient d’adopter des
moyens supplémentaires pour assurer un niveau adéquat de sûreté et de sécurité pendant
le trajet (par exemple, utiliser un système GPS pour suivre en temps réel le transport).[28]
20
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
SAP (Systems, Applications, and Products in Data Processing) est une entreprise de
logiciels allemande qui fournit des solutions d’entreprise pour la gestion des processus
mé[Link] propose une gamme de produits logiciels destinés à répondre aux besoins de
gestion de différentes fonctions de l’entreprise telles que la finance, la gestion des ressources
humaines, la gestion de la chaı̂ne d’approvisionnement, la vente et la distribution, la
production, la maintenance, etc.
Voici quelques-unes des fonctionnalités de base des logiciels SAP et leur utilisation
dans les entreprises :
• Gestion financière : les logiciels SAP offrent une gamme complète de solutions pour
la gestion financière, y compris la comptabilité, les finances, les rapports financiers.
• Gestion des ressources humaines : SAP propose des solutions pour la gestion des
ressources humaines, y compris la gestion de la paie, la gestion des avantages sociaux,
la gestion du personnel, la gestion des performances, la formation et le développe-
ment.
• Gestion de la chaı̂ne d’approvisionnement : les solutions SAP pour la gestion de la
chaı̂ne d’approvisionnement incluent la planification de la demande, la planification
des approvisionnements, la gestion des stocks, la gestion des commandes et la gestion
des fournisseurs.
• Gestion de la production : SAP propose des solutions pour la gestion de la produc-
tion, y compris la planification de la production, la gestion de la qualité, la gestion
de la maintenance.
Le TMS est utilisé pour optimiser les opérations de transport en fournissant des infor-
mations en temps réel sur l’emplacement des expéditions, les temps de transit, les coûts
de transport et les capacités de chargement des camions. Les fonctionnalités typiques d’un
TMS comprennent la gestion des commandes, la gestion des tarifs et des factures, ainsi
que la génération de rapports sur les performances de transport.
voici une vue d’ensemble générale de la façon dont fonctionne un système de gestion
de transport (TMS) :
• Gestion des commandes : Le TMS commence par la gestion des commandes, qui
consiste à capturer tous les détails pertinents d’un envoi, tels que l’origine, la desti-
nation et le poids de l’envoi.
21
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
22
CHAPITRE 1. LE TRANSPORT DE MARCHANDISE ET DISTRIBUTION
des marchandises tout au long du processus de transport. Ainsi, le VRP joue un rôle
clé dans l’amélioration de l’efficacité et de la rentabilité du transport de marchandises
routier, tout en répondant aux exigences des clients et en garantissant la conformité aux
réglementations régissant le secteur.
1.13 Conclusion
23
Chapitre 2
24
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
2.1 Introduction
2.2 Définition
Le VRP est souvent résolu en utilisant des algorithmes d’optimisation, tels que des
algorithmes génétiques, des algorithmes de recherche tabou et des algorithmes de clus-
tering. Ces algorithmes peuvent être utilisés pour trouver des solutions optimales pour
des problèmes de taille moyenne, mais pour des problèmes plus complexes, des techniques
d’intelligence artificielle peuvent être nécessaires.
image//[Link]
25
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
Dantzig et Ramser (1959) ont été les premiers à introduire le ”problème de dispatching
de camions”, modélisant comment une flotte de camions homogènes pouvait répondre à
la demande en pétrole de plusieurs stations-service à partir d’un centre de distribution
centralisé, avec un minimum de distance parcourue. Cinq ans plus tard, Clarke et Wright
(1964) ont généralisé ce problème en un problème d’optimisation linéaire couramment ren-
contré dans le domaine de la logistique et des transports : c’est-à-dire comment desservir
un ensemble de clients, dispersés géographiquement autour du centre de distribution, en
utilisant une flotte de camions de capacités variables. Ceci est devenu connu sous le nom
de ”Problème de routage de véhicules” (VRP), l’un des sujets les plus étudiés dans le
domaine de la recherche opérationnelle[13].
Au fil des ans, de nombreuses variantes du VRP ont été développées pour prendre
en compte différents aspects du problème, tels que la capacité des véhicules, les coûts de
transport, les fenêtres de temps, les contraintes de synchronisation, etc. En conséquence,
le VRP est devenu un domaine de recherche très actif et diversifié, avec de nombreuses
approches algorithmiques proposées pour résoudre les différentes variantes du problème.
26
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
— Les fournisseurs et usines : les fournisseurs et usines sont les endroits où sont
stockées ou produites les marchandises à livrer.
— Type de véhicules disponibles :le type de véhicules disponibles est le type de vé-
hicules qui peuvent être utilisés pour le routage. par exemple, les véhicules légers,
lourds ou spécialisés.
— Contraintes d’équilibrage des chargements :les contraintes d’équilibrage des charge-
ments sont les contraintes imposées pour s’assurer que le chargement des véhicules
est équilibré. par exemple, les contraintes peuvent imposer une limite de poids ou
de volume pour chaque véhicule.
Le Capacitated Vehicle Routing Problem (CVRP) est l’une des variantes pour les-
quelles il existe des définitions contradictoires. Pour certains auteurs (Cordeau et al.,
2005)[12] (Christiansen, 2007) elle se caractérise par la présence de la contrainte de capa-
cité et l’absence de contrainte d’autonomie. Pour d’autres (Chen et al., 2006) [10], c’est
un problème à plusieurs véhicules, avec contraintes de capacité et d’autonomie, et une
seule visite par client.
Le Vehicle Routing Problem with Time Windows (VRPTW), ou VRP avec fenêtres
de temps, quant à lui, spécifie que chaque client a une fenêtre de temps. Celle-ci est
un intervalle de temps au cours duquel son service (par exemple le chargement ou le
déchargement de marchandises) doit être accompli. Un véhicule peut arriver plus tôt,
mais il doit attendre jusqu’à ce que le service soit possible. Sil arrive plus tard, le service
ne peut pas être rendu et le client correspondant ne sera jamais satisfait. Dans ce cas,
le problème est dit ”à contraintes dures” (Hard time window constraints). L’objectif du
problème est alors de minimiser le nombre de véhicules et la distance totale parcourue
pour servir les clients sans violer les contraintes de fenêtres de temps. Dans les modèles
dits à contraintes molles (soft time windows constraints), les véhicules peuvent servir le
client en dehors de sa fenêtre de temps mais au prix d’une certaine forme de pénalité.
Bien que cette définition du VRP à fenêtre de temps soit la plus répandue, il est possible
de rencontrer dans certaines variantes du problème des fenêtres de temps relatives aux
horaires d’ouverture du dépôt ou aux horaires de travail du personnel (Ombuki et al.,
2006) [26].
27
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
Le Vehicle Routing Problem with Backhauls (VRPB), comporte deux types de clients,
soit receveurs (linehauls), soit livreurs (backhauls). Tous les produits livrés sont pris d’un
dépôt et tous les produits prélevés sont retournés au dépôt.
28
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
2. Le VRP with Stochastic Demands (VRPSD), où la demande d’un client est une
variable aléatoire.
3. Le VRP with Stochastic Travel Times (VRPSTT), où le temps de service (si) d’un
client (i) et le temps de trajet (tij) d’un arc (i, j) sont des variables aléatoires.
Le Dynamic Vehicle Routing Problem (DVRP) peut être défini comme un VRP où
l’information nécessaire à la planification des tournées :
— nest pas connue entièrement par le planificateur quand le processus de planification
commence.
— peut changer après que les tournées initiales aient été construites.
Autrement dit, certaines données du problème dépendent explicitement du temps, comme
l’apparition dun nouveau client ou la fin de service dun client (Bianchi, 2000)[7].
Le Vehicle Routing Problem with Split Delivery (VRPSD ou SDVRP) remet en cause
deux contraintes du problème classique :
— Chaque client peut être visité plus dune fois si cela est nécessaire. Autrement dit,
la demande d’un client peut être divisée sur plusieurs tournées.
— la demande de chaque client peut alors être plus grande que la capacité des véhicules
(Archetti et al., 2002)[4].
29
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
image//[Link]
30
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
Le but du VRP est de minimiser C(S) sur le graphe G(V,E). Soit G le graphe qui contient
|E| + 2 sommets, et les clients sont numérotés de 1, 2, . . . , m. Les dépôts de départ et de
retour sont respectivement notés 0 et m + 1. Dans cette section, nous avons introduit le
problème de routage des véhicules que nous avons maintenant défini. Cependant, le pro-
blème ne concerne pas seulement la visite des clients, il y a d’autres exigences liées à leurs
demandes. Dans les définitions suivantes, nous spécifierons ces demandes supplémentaires
des clients :
— la demande ; d = (d0 , . . . , dm , dm+1 ) avec di > 0 et m est le nombre total de clients
qui est un vecteur des demandes des clients, la demande du dépôt est notée par d0 ;
d0 = dm + 1 = 0 toujours.
31
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
La formulation mathématique du CVRP est présentée comme suit avec une fonction
objectif de minimisation : ∑∑
min cij xijk (2.1)
k∈K
i∈V j∈V
soumis à :
∑
yik = 1, ∀i ∈ V \{0, f } (2.2)
k∈K
∑ ∑
xijk − xjik = 0, ∀i ∈ V \{0, f }, k ∈ K (2.3)
j∈V \{i} j∈V \{i}
∑ ∑
x0jk − xj0k = 1, ∀k ∈ K (2.4)
j∈V \{v0} j∈V \{v0}
∑
yik = xijk , ∀i ∈ V \{f }, k ∈ K (2.5)
j∈V \{i}
∑
ydk = xif k , ∀k ∈ K (2.6)
i∈V \{v1}
qi ≤ uik ≤ Q, ∀i ∈ V, k ∈ K (2.8)
32
CHAPITRE 2. PROBLÈME DE VRP(VÉHICULE ROUTING PROBLÈME)
La formulation mathématique du CVRP énonce que l’objectif (1) est de minimiser le coût
total de déplacement des véhicules.
- la contrainte (1.2) oblige chaque client à être visité par exactement un véhicule.
- les contraintes (1.3) et (1.4) définissent le flux de cheminement des véhicules.
- les contraintes (1.5) et (1.6) assurent l’appariement des clients et des véhicules.
- les contraintes (1.7) et (1.8) garantissent le respect des contraintes de capacité.
- les contraintes (1.9) et (1.10) indiquent des contraintes d’intégralité.
La formulation intègre également les nuds de début et de fin (0 et f) pour plus de
commodité.
Les contraintes (1.7) et (1.8) permettent d’éviter les sous-tours dans la solution, c’est-
à-dire les boucles qui ne passent pas par le dépôt. Leur avantage est que, du point de vue
des clients, la formulation possède un nombre polynomial de contraintes
2.7 Conclusion
33
Chapitre 3
34
CHAPITRE 3. LES METHODE DE RÉSOLUTION
3.1 introduction
Plusieurs familles d’heuristiques ont été proposées pour le VRP. Elles peuvent être
largement classées en deux grandes classes : les heuristiques classiques, développées surtout
entre 1960 et 1990, et les métaheuristiques, dont la croissance s’est produite au cours de la
dernière décennie. La plupart des procédures de construction et d’amélioration standard en
cours d’utilisation aujourd’hui appartiennent à la première classe. Ces méthodes effectuent
une exploration relativement limitée de l’espace de recherche et produisent généralement
des solutions de bonne qualité dans des temps de calcul modestes.
Les heuristiques classiques pour le VRP peuvent être largement classées en trois ca-
tégories. Les heuristiques constructives construisent progressivement une solution réali-
sable en gardant un il sur le coût de la solution, mais elles ne contiennent pas en soi de
phase d’amélioration. Dans les heuristiques à deux phases, le problème est décomposé en
35
CHAPITRE 3. LES METHODE DE RÉSOLUTION
Enfin, les méthodes d’amélioration tentent de mettre à niveau toute solution réali-
sable en effectuant une séquence d’échanges d’arêtes ou de sommets dans ou entre les
itinéraires de véhicules. Ces trois classes de méthodes sont couvertes dans les trois sec-
tions suivantes, respectivement. Cependant, la distinction entre les méthodes constructives
et les méthodes d’amélioration est souvent floue car la plupart des algorithmes construc-
tifs intègrent des étapes d’amélioration à divers stades. Étant donné que le nombre de
méthodes disponibles et de variantes est très grand, nous nous concentrons sur les heu-
ristiques et les améliorations vraiment classiques, en laissant de côté certaines variantes.
Pour des lectures supplémentaires sur les heuristiques classiques pour le VRP, [11]
Deux techniques principales sont utilisées pour construire des solutions VRP : la fusion
des itinéraires existants en utilisant un critère d’économies, et l’attribution progressive des
sommets aux itinéraires de véhicules en utilisant un coût d’insertion.
Étape 1 (calcul des économies) : Calculer les économies si,j = Qo + Ci,0 + C0,j − Ci,j
pour i, j = 1, . . . , n et i ̸= j. Créer n itinéraires de véhicules (0, i, 0) pour i = 1, . . . , n.
Classer les économies de manière non décroissante.[27]
Version parallèle
36
CHAPITRE 3. LES METHODE DE RÉSOLUTION
l’une contenant l’arc ou l’arête (0, 7) et l’autre contenant l’arc ou l’arête (z, 0), qui
peuvent être fusionnées de manière réalisable. Si c’est le cas, combinez ces deux itinéraires
en supprimant (0, 7) et (z, 0) et en introduisant (z, 7).
Version séquentielle
Étape 2 (extension de la route) : Considérez tour à tour chaque route (0, z,... ,
7, 0). Déterminez le premier gain S(ki) ou Sji qui peut être utilisé de manière faisable
pour fusionner la route actuelle avec une autre route contenant l’arc ou l’arête (k, 0) ou
contenant l’arc ou l’arête (0, i). Implémentez la fusion et répétez cette opération pour la
route actuelle. Si aucune fusion faisable n’existe, considérez la route suivante et réappliquez
les mêmes opérations. Arrêtez lorsque aucune fusion de route n’est faisable
Le l’algorithme de Clarke et Wright peut également être chronophage car toutes les
économies doivent être calculées, stockées et triées. Plusieurs améliorations ont été pro-
posées par un certain nombre d’auteurs pour accélérer les calculs et réduire les besoins
en mémoire. La plupart de ce travail a eu lieu dans les années 1970 et au début des
années 1980, lorsque les chercheurs travaillaient avec des ordinateurs beaucoup moins
puissants que les stations de travail actuelles. Des instances impliquant de 200 à 600 som-
mets pouvaient prendre de 25 à 300 secondes sur un ordinateur IBM 4341, en utilisant
une implémentation directe de la méthode d’économies parallèles [25]. Maintenant, une
instance de 200 sommets peut être résolue en 0,3 seconde sur une station de travail Sun
Ultrasparc 10 avec le même type d’implémentation. Par conséquent, ces améliorations ne
sont utiles que pour les instances très grandes (plus de 1000 sommets). Lors de la mise
en uvre de l’heuristique d’économies, deux problèmes principaux doivent être traités : la
détermination de la valeur maximale d’économies et les besoins en stockage.
37
CHAPITRE 3. LES METHODE DE RÉSOLUTION
Une route de véhicule est ensuite obtenue pour chaque cluster en résolvant un TSP.
Certaines implémentations incluent une phase de post-optimisation au cours de
laquelle les sommets sont échangés entre les clusters adjacents, et les routes sont
réoptimisées. À notre connaissance, les premières mentions de ce type de méthode
se trouvent dans un livre de Wren et dans un article de Wren et Holliday , mais
l’algorithme de balayage est généralement attribué à Gillett et Miller , qui l’ont
popularisé. Une mise en uvre simple de cette méthode est la suivante. Supposons
que chaque sommet i est représenté par ses coordonnées polaires (0 i , p), où 0 est
l’angle et p est la longueur du rayon. Assignez une valeur 0 i = 0 à un sommet
arbitraire i* et calculez les angles restants à partir de (0, i*). Classez les sommets
par ordre croissant de leurs angles 0i .
— Étape 1 (initialisation de la route) : Choisissez un véhicule k non utilisé.
— Étape 2 (construction de la route) : En partant du sommet non-routé ayant le
plus petit angle, assignez les sommets au véhicule k tant que sa capacité ou la
longueur maximale de la route n’est pas dépassée. Dans les DVRP fortement
contraints, la méthode 3-opt peut être appliquée après chaque insertion. Si des
sommets non routés restent, passez à l’étape 1.
— Étape 3 (optimisation de la route) : Optimisez chaque route de véhicule séparé-
ment en résolvant le TSP correspondant (exactement ou approximativement).
Fisher and Jaikumar Algorithm
L’algorithme de Fisher et Jaikumar est également bien connu. Au lieu d’utiliser une
méthode géométrique pour former les clusters, il résout un Problème d’Affectation
Généralisée (PAG). Il peut être décrit comme suit.
• Étape 1 (sélection de la graine) : Choisissez des sommets de graine jk dans V
pour initialiser chaque cluster k.
• Étape 2 (allocation des clients aux graines) : Calculer le coût dik de l’allocation
de chaque client i à chaque cluster k comme dik = min{c0i + cij + cjk + ck0 , c0j +
cjk + cki + ci0 } − (c0j + cjk + ck0 ).
• Étape 3 (affectation généralisée) : Résoudre un PAG avec des coûts dIj, des
poids de client qi et une capacité de véhicule Q.
• Étape 4 (solution TSP) : Résoudre un TSP pour chaque cluster correspondant
à la solution PAG.
Le nombre de trajets de véhicules K est fixé a priori dans l’heuristique de Fisher et
Jaikumar. Les auteurs ont proposé une méthode géométrique basée sur la partition
du plan en K cônes en fonction des poids des clients. Les sommets semences sont
des clients fictifs situés le long des rayons qui biseautent les cônes. Une fois que les
clusters ont été déterminés, les problèmes de TSP sont résolus de manière optimale
à l’aide d’une approche basée sur la relaxation de contraintes [23].
Bramel and Simchi-Levi Algorithm
Bramel et Simchi-Levi [8] ont décrit une heuristique en deux phases dans laquelle
les sommets sont déterminés en résolvant un problème de localisation capacité et
les sommets restants sont progressivement inclus dans leur route allouée dans une
deuxième étape. Les auteurs suggèrent tout d’abord de localiser K sommets, appelés
concentrateurs, parmi les n emplacements de clients pour minimiser la distance
totale des clients à leur sommet le plus proche tout en veillant à ce que la demande
totale attribuée à un concentrateur ne dépasse pas Q. Les routes des véhicules sont
38
CHAPITRE 3. LES METHODE DE RÉSOLUTION
Ces dernières années, plusieurs métaheuristiques ont été proposées pour le VRP. Ce
sont des procédures de solution générales qui explorent l’espace de solution pour identi-
fier de bonnes solutions et intègrent souvent certains des heuristiques de construction et
d’amélioration de route standard.
L’algorithme génétique est une technique de recherche globale aléatoire qui résout les
problèmes en imitant les processus observés lors de l’évolution naturelle. Ce paradigme
de résolution de problèmes a été initialement proposé par (Holland) , bien qu’il ait fallu
10 ans avant qu’il ne soit pleinement reconnu par la communauté scientifique. Un AG
pur est une méthode générique de résolution de problèmes qui utilise peu d’informations
heuristiques sur le domaine du problème. Il peut donc être appliqué à une large gamme
39
CHAPITRE 3. LES METHODE DE RÉSOLUTION
de problèmes mal définis qui ne se prêtent pas à des méthodes spécialisées. Fondamen-
talement, un AG fait évoluer une population de chaı̂nes de bits, ou de chromosomes, où
chaque chromosome code une solution à une instance particulière. Cette évolution se pro-
duit grâce à l’application d’opérateurs qui imitent des phénomènes naturels observés dans
la nature (par exemple, la reproduction, la mutation).
En recherche tabou, des séquences de solutions sont examinées comme dans le recuit
simulé, mais le prochain mouvement est effectué vers le meilleur voisin de la solution
courante xt. Pour éviter les cycles, les solutions récemment examinées sont interdites, ou
taboues, pendant un certain nombre d’itérations. Pour alléger les exigences en temps et
en mémoire, il est courant d’enregistrer un attribut des solutions tabou plutôt que les
solutions elles-mêmes. Le mécanisme de base de la recherche tabou peut être amélioré
par plusieurs fonctionnalités informatiques, telles que des stratégies de diversification et
d’intensification, comme décrit par Glover et Laguna [19].
Tabu search est de plus en plus utilisé pour résoudre des instances du VRP ces der-
nières années. Certains des premiers algorithmes de recherche tabou (Willard [31] n’ont
pas donné de résultats impressionnants, mais les implémentations ultérieures ont été beau-
coup plus réussies. Parmi les auteurs qui ont proposé des algorithmes de recherche tabou
efficaces pour le VRP.
40
Chapitre 4
41
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
4.1 introduction
En mettant en oeuvre ces algorithmes, notre objectif est d’améliorer l’efficacité opé-
rationnelle du VRP, en ce qui concerne l’evaluation des résultats obtenus à partir de ces
implémentations, présenté sous forme de tableau de bord convivial, ce tableau de bord
offrira des visualisations claires de l’utilisation des itinéraires. Il sera utilisé comme un
outil de prise de décision pour les responsables afin de les aider à prendre des décisions
adéquates alignées sur les objectifs fixés.
Dans notre cas, nous avons utilisées plusieurs outils pour mettre en oeuvre les méthodes
de résolution du Problème de Routage des Véhicules (VRP)
4.2.1 python
Pour calculer les distances entre les points de livraison, nous avons utilisé une matrice
de distances qui nous permet de déterminer efficacement les distances les plus courtes
entre chaque paire de points. Cette matrice de distances est une composante essentielle
dans la résolution du VRP.
42
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
En ce qui concerne la visualisation des itinéraires, nous avons utilisé l’API de Mapbox,
qui nous permet de générer des cartes interactives et de représenter visuellement les trajets
des véhicules. Cela offre une meilleure compréhension de la planification des itinéraires et
facilite l’analyse des résultats.
Nous avons utilisé HTML (HyperText Markup Language) pour la structure de base
de notre interface web. CSS (Cascading Style Sheets) a été utilisé pour la mise en forme
et la présentation visuelle, permettant ainsi de personnaliser l’apparence de notre tableau
de bord.
Pour ajouter des fonctionnalités interactives et dynamiques, nous avons utilisé JavaS-
cript et la bibliothèque jQuery. Ces outils nous ont permis de manipuler les éléments de
la page, d’effectuer des calculs et des validations en temps réel, ainsi que d’ajouter des
effets et des animations.
Pour améliorer l’expérience utilisateur, nous avons intégré la bibliothèque Font Awe-
some, qui offre une vaste gamme d’icônes et de symboles prêts à être utilisés. Cela nous
a permis d’ajouter des éléments visuels significatifs et attrayants à notre interface.
43
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
nous présenterons en détail l’application que nous avons développée pour résoudre le
problème du VRP. L’application comprend plusieurs composants essentiels :
Nous décrirons l’interface utilisateur de notre application, qui permet aux utilisateurs
de fournir les données nécessaires, telles que les coordonnées des clients et les demandes
de livraison. Nous expliquerons également comment les utilisateurs peuvent visualiser les
résultats de la résolution du VRP.
[Link] (Home) :
image//[Link]
44
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Cette section fournit des informations détaillées sur l’application de VRP, expliquant
en quoi elle consiste, son objectif et ses avantages pour les utilisateurs.
image/[Link]
[Link] (Service) :
Cette section décrit les différents services ou fonctionnalités offerts par l’application
de VRP. Les fonctionnalités principales de résolution du problème de routage de véhicules
peuvent être mentionnées ici, telles que la recherche de la meilleure route pour un ensemble
de camions, la minimisation des coûts de carburant ou des distances parcourues etc.
image//[Link]
45
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
[Link]
image//[Link]
[Link] :
Cette section fournit des informations de contact pour les utilisateurs qui souhaitent
obtenir de l’aide, poser des questions ou fournir des commentaires sur l’application de VRP.
Les informations de contact peuvent inclure une adresse e-mail, un numéro de téléphone.
image//[Link]
46
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
[Link] (Login) :
image//[Link]
Région Est
Composé de 11 clients que nous citons ci-dessous : Tébessa, Souk Ahras, Bordj Bou
Arreridj, Sétif, Constantine, Annaba, Skikda, Guelma, Jijel, Béjaia, Batna.
Région Centre
Composé de 7 clients que nous citons ci-dessous : Tizi Ouzou, Boumerdes, Bouira,
Alger, Blida, M’sila, Tissemsilt.
Région Ouest
Composé de 8 clients que nous citons ci-dessous : Chlef, Tlemcen, Sidi Bel Abbès,
Mostaganem, Oran, Tipaza, Aı̈n Temouchent, Relizane.
47
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Région Sud
Composé de 9 clients que nous citons ci-dessous : Laghouat, El Bayadh, Naama, Tin-
douf, Ghardaia, Biskra, Ouargla, Béchar, El Oued.
image/[Link]
Pendant la durée de notre stage chez Condor Logistique, nous avons constaté que
l’entreprise utilise la méthode de déplacement AB pour l’affectation des camions pour la
distrubition de marchandise, cette méthode fonctionne selon le principe de l’alternance
entre les mouvements allant de l’entrepôt (A) vers les destinations des clients (B). nous
avons élaboré une algorithme pour calculer la distance total, le coût, le taux de pollution
dans le cas de le stratégie adapter par l’entreprise.
1 import itertools
2
3 def calculate_distance ( city1 , city2 , distance_matrix ) :
4 return distance_matrix [ city1 ][ city2 ]
5
6 def calculate_time ( city1 , city2 , time_matrix ) :
7 return time_matrix [ city1 ][ city2 ]+2
8
9 def assign_trucks ( distance_matrix , time_matrix , num_trucks ,
10 depot_city ) :
11 cities =[ 1 , 2 , 4 , 5 , 6 , 7 , 8 , 9 , 11 , 12 , 14 , 15 , 17 ,18 ,
12 20 , 21 , 22 , 23 , 24 , 26 , 27 , 29 , 30 , 31 , 32 , 34 ,
13 36 , 37 , 38 , 39 , 41 , 44 , 45 , 46 , 47 ]
14 total_distance = 0
15 total_time = 0
16 assignment = []
17
48
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
49
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
73 . 0
74 [1428 , 97 , 378 , 754 , 679 , 529 , 629 , 634 , ... , 0 ]
75 ]
76
77
78 # the time matrix
79 time_matrix = [
80 [0.0 , 13.1 , 11.3 , 16.2 , 15.2 , 16.6 , 13.9 , ... 14.3] ,
81 [13.1 , 0.0 , 16.0 , 11.5 , 11.6 , 15.6 , 14.5 , ... 17.6] ,
82 [11.3 , 16.0 , 0.0 , 11.7 , 18.9 , 17.2 , 16.4 , ... 13.3] ,
83 [16.2 , 11.5 , 11.7 , 0.0 , 9.3 , 18.2 , 15.1 , ... 19.4] ,
84 . 0.0
85 . 0.0
86 . 0.0
87 [14.3 , 12.2 , 12.5 , 15.5 , 17.2 , 14.0 , 17.1 , ... 0 ]
88 ]
89
90 num_trucks = 60
91 depot_city = 33
92
93 assignment , total_distance , total_time = assign_trucks (
distance_matrix , time_matrix , num_trucks , depot_city )
94
95 output = format_assignment ( assignment , total_distance , total_time ,
distance_matrix , time_matrix )
96 for line in output :
97 print ( line )
98
99 if __name__ == ’ __main__ ’:
100 main ()
Listing 4.1 – Algorithme affectation AB
50
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Nous avons choisi une journée pour étudier a partir les bons de commande. Au cours
de cette journée, les planificateurs de l’entreprise ont utilisé 35 camions pour effectuer les
livraisons des [Link]-dessous quelques exemples des voyages des camions :
51
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Distance totale Frais de mission Coût du diesel Émissions de gaz Coût total (Da)
(km) (Da) (Da) (kg/km)
31694 95082 275832.88 22185.8 352526.02
image/[Link]
52
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
[Link]
Nous avons développé un programme qui nous permet de donner une solution initiale
sur la base d’une heuristique [Link] allons expliquer le déroulement de cette
heuristique dans ce qui va suivre :
1. Matrice de distances : Une matrice qui représente les distances entre différents
points dans le réseau routier. Cette matrice permet de calculer la distance totale
parcourue par les véhicules lors de leurs itinéraires.
2. Matrice de temps : Une matrice qui indique les temps de déplacement entre les
différents villes.
3. Nombre de véhicules : Le nombre total de véhicules disponibles pour effectuer
les livraisons.
4. Dépôt : Le point de départ commun pour tous les itinéraires. C’est le lieu où
les véhicules sont initialement chargés et où ils doivent revenir après avoir effectué
toutes les livraisons.
5. La capacité des véhicules : Fait référence au nombre maximum de villes ou de
points de livraison qu’un camion peut visiter lors d’une tournée. Cela détermine la
quantité de marchandises ou de colis qu’un camion peut transporter d’un point à un
autre. La capacité est exprimée en termes de limitations physiques telles que l’espace
de chargement disponible, le poids maximal autorisé et d’autres contraintes logis-
tiques spécifiques à chaque véhicule. En optimisant l’utilisation de la capacité des
véhicules, il est possible de planifier des tournées efficaces et de maximiser l’efficacité
du transport de marchandises.
le déroulement de l’algorithme :
nous utilisons un algorithme de recherche heuristique basé sur la méthode des arcs
les moins coûteux pour résoudre le problème de routage de véhicules. Nous utilisons la
bibliothèque OR-Tools pour implémenter cet algorithme.
nous initialisons les paramètres de recherche, tels que la stratégie de première solution
à utiliser. Dans ce cas, nous utilisons la stratégie PATH-CHEAPEST-ARC,qui consiste
à sélectionner les arcs les moins coûteux en termes de distance lors de la construction des
routes initiales.
53
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Le modèle de routage est créé à l’aide de la classe ”Routing Model” et les différentes
contraintes sont ajoutées à l’aide des fonctions telles que ”Add Dimension With Vehicle
Capacity” pour la dimension temporelle et la capacité des véhicules, et ”Set Arc Cost
Evaluator Of All Vehicles” pour définir le coût des arcs.
L’algorithme utilise également des paramètres de recherche spécifiés par la classe ”De-
fault Routing Search Parameters” pour définir la stratégie de recherche. Ensuite, la mé-
thode ”Solve With Parameters” est utilisée pour résoudre le problème de routage.
Une fois la solution obtenue, les itinéraires, les distances et les temps de trajet sont
calculés en parcourant les véhicules et les emplacements. Les résultats sont ensuite affichés
à l’aide de la bibliothèque ”Pretty Table” pour une présentation claire et lisible.
54
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
17 tr an s it _ c a l lba c k _i n d e x = routing . R e g i s t e r T r a n s i t C a l l b a c k (
distance_callback )
18
19 # Define the cost of each arc .
20 routing . S e t A r c C o s t E v a l u a t o r O f A l l V e h i c l e s ( t r an s i t _c a l l b ac k _ i n de x )
21
22 # Define the time callback .
23 def time_callback ( from_index , to_index ) :
24 return time_matrix [ manager . IndexToNode ( from_index ) ][ manager .
IndexToNode ( to_index ) ]
25
55
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
57
58 # Retrieve the routes and their times .
59 routes = []
60 route_distances = []
61 route_times = []
62 total_distance = 0
63 total_time = 0
64 if solution :
65 for vehicle_id in range ( num_vehicles ) :
66 index = routing . Start ( vehicle_id )
67 route = [ manager . IndexToNode ( index ) ]
68 route_distance = 0
69 route_time = 0
70 while not routing . IsEnd ( index ) :
71 previous_index = index
72 index = solution . Value ( routing . NextVar ( index ) )
73 route . append ( manager . IndexToNode ( index ) )
74 route_distance += distance_matrix [ manager . IndexToNode (
previous_index ) ][ manager . IndexToNode ( index ) ]
75 route_time += time_matrix [ manager . IndexToNode (
previous_index ) ][ manager . IndexToNode ( index ) ]
76 if ( route_time +4) > total_time :
77 total_time = route_time +4
78 routes . append ( route )
79 route_distances . append ( route_distance )
80 route_times . append ( route_time )
81 total_distance += route_distance
82
83 # Print the routes and their times
84 table = PrettyTable ()
85 table . field_names = [ " Vehicle " , " Route " , " Distance " , " Time " ]
86 for i , route in enumerate ( routes ) :
87 table . add_row ([ f " Vehicle { i +1} " , route , f " { round (
route_distances [ i ] ,2) } km " , f " { round ( route_times [ i ]+4 , 1) } h " ])
88 print ( table )
89
90 # Print the total distance
91 print ( f " Total Distance :\ t \ t \ t { round ( total_distance ,2) } km " )
92 print ( f " Maximum Time :\ t \ t \ t { total_time :.2 f } h " )
93 print ( f " Frait de mission :\ t \ t \ t \ t { round ( total_distance *3 ,2) } DA " )
94 print ( f " Diesel cost :\ t \ t { round ( total_distance *0.30*29.01 , 2) } DA " )
95 print ( f " Total cost :\ t \ t { round
96 ( total_distance *3+ total_distance *0.28*29.01 , 2) } DA " )
97 print ( f " Emmision :\ t \ t \ t \ t \ t { round ( total_distance *0.7) } Kg / km " )
98 return routes , route_distances , route_times , total_distance
99
100 # une partie de matrice de distance
101 distance_matrix = [
102 [0.0 , 326.9 , 243.6 , 128.3 , 201.5 , 160.2 , ... 184.1] ,
103 [326.9 , 0.0 , 495.3 , 61.1 , 390.7 , 433.8 , ... 669.8] ,
104 [243.6 , 495.3 , 0.0 , 465.5 , 688.6 , 689.9 , ... 716.9] ,
105 [128.3 , 61.1 , 465.5 , 0.0 , 741.2 , 668.1 , ... 681.4] ,
106 . 0.0
107 . 0.0
108 . 0.0
109 [201.5 , 523.9 , 442.7 , 284.0 , 248.1 , 278.1 , ... 0.0 ]
110 ]
111
56
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
[Link]́sultat de l’heuristique
Dans cette section, nous présenterons les résultats issus de la mise en oeuvre de l’heu-
ristique que nous avons programmée.
57
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Distance totale Frais de mission Coût du diesel Émissions de gaz Coût total (Da)
(km) (Da) (Da) (kg/km)
20292.59 60877.76 176606.37 14205 225710.37
image/[Link]
[Link]́taheuristique
Après avoir exploré l’algorithme heuristique, nous avons décidé de passer à l’algo-
rithme métaheuristique en raison de sa capacité à trouver des solutions de qualité supé-
rieure, même dans des situations difficiles, telles que des problèmes de grande taille et
de complexité élevée. Les métaheuristiques offrent une approche avancée pour résoudre
le Problème de Routage des Véhicules (VRP) en explorant de manière efficace l’espace
de recherche complexe. En utilisant l’algorithme métaheuristique, nous visons à améliorer
encore davantage nos solutions et à nous rapprocher de l’optimalité.
58
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
L’outil utilisé :
2 import networkx as nx
3 import math
4 import gurobipy as gp
5 from gurobipy import GRB
6
7 k = 17 # number of vehicles
8 n = 34 # number of demand points
9
10 depot = 0
11 dem_points = list ( range (1 , n +1) ) # nodes 1 , 2 , ... , 20
12
13 G = nx . complete_graph ( n +1)
14 my_pos = {
15 0:( -91.00 , -127.71) , 1:( -31.64 ,487.00) , 2:( -12.42 ,405.09) ,
16 3:(70.67 , 308.33) , 4:(50.78 , 379.00) , 5:(109.04 , 22.47) ,
17 6:( -91.00 , 243.69) , 7:(8.58 , 181.03) , 8:( -40.28 , -220.49) ,
18 9:( -50.25 , -296.95) ,10:(86.83 , 119.47) , 11:( -177.2 , -112.02) ,
19 12:( -202.22 ,508.28) , 13:( -500.73 ,510.81) ,14:( -567.9 , 1827.0) ,
20 15:(638.90 ,10 .94) , 16:(439.14 , -307.36) ,17:(422.03 , -137.49) ,
21 18:(151.65 , -504.69) , 19:(471.20 , -389.16) ,20:(515.95 , -390.22) ,
22 21:(390.51 , -350.21) , 22:(81.93 ,180.43) , 23:( -186.05 , -206.86) ,
23 24:( -312.80 , -314.98) ,25:( -340.53 , -428.6) ,26:( -291.72 , -373.47) ,
24 27:( -301.27 , -383.11) ,28:( -193.19 , -265.5) ,29:( -148.56 , -197.60) ,
25 30:( -18.06 , -85.39) , 31:(0.72 , -54.09) , 32:( -36.60 , -71.19) ,
26 33:(70.13 ,8.21) , 34:(85.42 ,24.57) }
27
28 # coordonées de dépot
29 my_pos [ depot ] = ( -91.00419788 , -127.71268069)
30 nx . draw (G , pos = my_pos )
31
59
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
60
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
85
86 # designate the callback routine
87 m . _callback = r ou n de d_ c ap a ci ty _ in eq
88
89 # add the variables and graph to our model object , for use in the
callback
90 m . _x = x
91 m . _G = G
92 m . _q = q
93 m . _Q = Q
94 m . _depot = depot
95
96
97 # solve the MIP with our callback
98 m . optimize ( m . _callback )
99
100
101 # get the solution and draw it
102 tour_edges = [ e for e in G . edges if x [ e ]. x > 0.5 ]
103 nx . draw ( G . edge_subgraph ( tour_edges ) , pos = my_pos )
104 # end
Listing 4.3 – Algorithme métaheuristique.
Le code fourni implémente une solution au problème de routage des véhicules (VRP) avec
contraintes de capacité. Dans le VRP, une flotte de véhicules doit desservir un ensemble
de points de demande tout en minimisant la distance totale parcourue, utilise le solveur
Gurobi pour trouver une solution optimale.
Ensuite, le code calcule les distances entre les nuds en utilisant la formule de distance
euclidienne. Il attribue ces distances comme longueurs aux arêtes du graphe. Le code
définit également la capacité des véhicules (Q) et la demande de chaque point de demande
(q).
Pour améliorer la solution, le code définit une fonction de rappel qui est exécutée
lorsqu’une solution entière est trouvée pendant le processus d’optimisation. La fonction
de rappel vérifie la solution et identifie les arêtes sélectionnées. Si les arêtes sélectionnées
forment un graphe connecté, la fonction vérifie les composants (sous-tours) qui enfreignent
les contraintes de capacité. Elle ajoute des contraintes tardives pour garantir que certaines
arêtes coupées sont traversées au moins deux fois. Si les arêtes sélectionnées ne forment
pas un graphe connecté, la fonction identifie les composants individuels et ajoute des
contraintes pour garantir que chaque composant est un sous-tour valide.
61
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Le code définit le paramètre Gurobi pour les contraintes tardives et attribue la fonc-
tion de rappel au modèle. Ensuite, il résout le modèle, récupère la solution et visualise
le parcours résultant en sélectionnant les arêtes ayant des valeurs supérieures à 0,5 (la
valeur de 0,5 est utilisée comme seuil pour déterminer quels tronçons sont inclus dans la
visite résultante. Après avoir résolu le problème de routage des véhicules, la solution est
obtenue et les arêtes avec des valeurs supérieures à 0,5 sont considérées comme faisant
partie du circuit optimal. Ce seuil agit comme un point de coupure, indiquant que les
arêtes avec des valeurs supérieures au seuil sont sélectionnées, tandis que celles en dessous
ne sont pas incluses. Le seuil spécifique de 0,5 est arbitraire et peut être ajusté en fonction
des exigences du problème ou des préférences d’interprétation.). Cependant, il est impor-
tant de noter que les résultats obtenus par ce code sont basés sur des hypothèses et des
simplifications.
Résultat de Métaheuristiques
Le programme a trouvé une solution heuristique initiale avec une valeur objective
de 14050,759376. Ensuite, il a utilisé l’optimiseur Gurobi pour résoudre le problème de
routage des véhicules. Le modèle optimisé comportait 1 contrainte, 595 variables et 34
coefficients non nuls. La prérésolution a éliminé 1 contrainte et 34 variables redondantes ou
triviales, laissant le problème avec 0 contrainte, 561 variables entières et aucune valeur non
nulle. L’optimiseur a exploré 0 noeuds supplémentaires pour trouver une solution unique,
satisfaisant toutes les contraintes, avec une valeur objective de 14050,8. Cette solution est
prouvée optimale dans la tolérance donnée, affichant un écart de 0,0000%. En résumé, le
programme a résolu avec succès le problème de routage des véhicules en fournissant une
solution optimale, tout en présentant des détails sur le processus d’optimisation et les
caractéristiques du problème.
Deuxièmement, l’algorithme s’appuie sur les distances euclidiennes entre les empla-
cements pour calculer les longueurs de bord. Cependant, en réalité, les réseaux routiers
sont beaucoup plus complexes et les distances et temps de trajet réels peuvent être très
différents des distances en ligne droite utilisées dans l’algorithme. De plus, l’algorithme
ne tient pas compte d’autres facteurs critiques, tels que la disponibilité des véhicules, la
planification des chauffeurs, les temps de chargement/déchargement des véhicules et les
considérations opérationnelles pratiques. Ces facteurs peuvent avoir un impact considé-
rable sur la faisabilité et l’efficacité de la solution de routage.
Enfin, l’algorithme suppose une solution optimale basée sur le modèle mathématique
62
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Les implémentations dans le monde réel nécessitent un examen approfondi des contraintes
opérationnelles spécifiques, des conditions dynamiques et l’utilisation d’algorithmes plus
sophistiqués ou de logiciels spécialisés capables de gérer plus efficacement les complexités
du problème.
Notre tableau de bord offre une présentation claire et visuelle des résultats des algo-
rithmes utilisés pour résoudre le problème de routage des véhicules (VRP). Nous mettons
l’accent sur les premier et deuxième algorithmes, qui sont les plus pratiques et applicables
dans des scénarios réels. En fournissant des visualisations réalistes des résultats, nous
permettons aux décideurs d’évaluer les performances, les coûts et les émissions associés
à chaque algorithme. Grâce à ces informations, les décideurs peuvent comparer les diffé-
rentes approches, prendre des décisions éclairées et optimiser le routage des véhicules en
fonction de leurs priorités et contraintes. Le tableau de bord est un outil précieux pour les
décideurs, leur offrant une vue d’ensemble complète et facilitant la prise de décisions stra-
tégiques pour améliorer l’efficacité opérationnelle et réduire les coûts dans leurs activités
de transport.
63
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
image//[Link]
Les résultats du premier algorithme, qui utilisait une stratégie d’affectation simpliste,
ont révélé plusieurs problèmes. Les camions ont parcouru une distance totale de 31 694 km
pour desservir les clients, ce qui indique une utilisation inefficace des ressources. Certains
camions ont pris des itinéraires plus longs ou ont subi des retards lors des livraisons,
ce qui a entraı̂né un temps de retour maximal de 49,2 heures. Les coûts associés à cet
algorithme étaient élevés, avec un coût de mission de 95 082 DA et un coût de diesel
de 275 832,88 DA, conduisant à un coût total de 352 526,02 DA. De plus, les émissions
générées lors des missions ont atteint 22 185,8 kg/km de CO2, ce qui souligne un impact
environnemental important. Le tableau de bord fournit une visualisation de ces résultats, y
compris une carte montrant les itinéraires des camions, permettant ainsi aux décideurs de
mieux comprendre le gaspillage des ressources et d’envisager des stratégies d’optimisation
pour améliorer les itinéraires, réduire les coûts et minimiser l’impact environnemental.
image//[Link]
64
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
image//[Link]
65
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
image//[Link]
image//[Link]
66
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Compte tenu des résultats, on peut conclure que l’algorithme heuristique est le choix
le plus approprié pour le problème de routage de véhicules dans les applications pratiques.
Il trouve un équilibre entre l’optimisation des itinéraires, la minimisation des coûts et la
réduction des émissions. La capacité de l’algorithme heuristique à fournir des solutions
quasi optimales avec un nombre réduit de camions et un impact environnemental moindre
en fait le choix préféré pour une mise en oeuvre dans le monde réel. Cependant, l’explo-
ration par l’algorithme métaheuristique d’un espace de solutions plus large et sa capacité
à trouver des solutions globalement optimales peuvent offrir des informations précieuses
et servir de référence pour évaluer l’efficacité d’autres algorithmes.
4.8 Conclusion
En résumé, les résultats mettent en évidence les compromis entre différents algorithmes
en termes de distance, de temps, de coût et d’émissions. Le premier algorithme a entraı̂né
des coûts élevés et des émissions importantes en raison des longues distances parcourues.
En revanche, le deuxième algorithme, qui utilisait une approche heuristique, a réussi à
réduire la distance, les coûts et les émissions en optimisant le routage des camions et en
utilisant moins de véhicules. Le troisième algorithme, basé sur une approche métaheu-
ristique, a démontré sa capacité à trouver une solution optimale, mais il a nécessité un
processus d’optimisation plus complexe.
Ces résultats fournissent des informations précieuses sur l’efficacité et l’efficience des
différents algorithmes pour résoudre le problème de routage des véhicules. Ils permettent
aux décideurs de prendre des décisions éclairées en fonction de leurs priorités et de leurs
contraintes, en tenant compte des compromis entre la distance parcourue, le temps requis,
les coûts engendrés et les émissions générées. Il est important de noter que l’approche
heuristique s’est révélée particulièrement efficace en termes de réduction des coûts et
des émissions, tout en fournissant des résultats acceptables pour le routage des véhicules.
Cependant, l’approche métaheuristique, bien qu’elle puisse trouver des solutions optimales,
peut être plus complexe à mettre en oeuvre dans la réalité en raison de son temps de calcul
plus élevé.
67
Conclusion générale
En second lieu, le problème de VRP (Vehicle Routing Problem) est un défi majeur en
logistique et de la planification des tournées, il consiste à optimiser la création de tournées
de véhicules en tenant compte de contraintes telles que les capacités de chargement, les
contraintes de temps et les variantes du problème de base, exprimé par des VRP avec
fenêtres de temps, avec contraintes de capacité, une fois résolut,il va apporter des solutions
efficaces aux problème ( améliorer l’efficacité et la rentabilité des opérations logistiques).
En troisième lieu, on s’est concentré sur les diverses méthodes de résolution du VRP,
nous avons exploré des algorithmes d’optimisation, les approches heuristiques et les mé-
taheuristiques, en évaluant leurs forces et leurs limites.
Enfin, nous avons réalisé une transition significative de la théorie à la pratique, nous
avons mis en oeuvre des algorithmes heuristique et métaheuristique en utilisant comme
outil principale d’optimisation ” Python” et exploitation de divers outils et bibliothèques
tels que networkx, math, gurobipy et ortools, grâce à des implémentations pratiques, nous
avons pu résoudre des problèmes réels de VRP cas de CONDOR LOGISTICS.
En outre, nous avons développé une application web conviviale utilisant HTML, CSS
et JavaScript, intégrant des frameworks comme jQuery et FontAwesome. Elle permet la
visualisation des itinéraires, l’analyse des ressources et une aide la prise de décisions, avec
l’intégration d’API de cartographie ( Mapbox pour une meilleure expérience utilisateur).
68
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
69
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
70
Annex
image/[Link]
Condor Logistics est une filiale du groupe Condor spécialisée dans le transport de mar-
chandises, le transport de personnel, la location et la maintenance de véhicules et d’engins.
Fondée en 2014, l’entreprise s’est rapidement positionnée comme un acteur majeur dans le
domaine du transport. Avec environ 600 employés, elle offre des services de transport de
marchandises par voie terrestre à ses clients à travers tout le territoire national. Grâce à
sa flotte de véhicules diversifiée, Condor Logistics est en mesure de répondre efficacement
aux besoins de ses clients en matière de transport de cargaison.
historique
1. 2014 : lors de sa création, Condor Logistics disposait déjà d’un important parc
roulant dédié aux filiales du Groupe Condor.
2. 2016 : Dans le cadre de son développement, Condor Logistics a élargi son champ
initial d’expertise de transport de marchandises pour l’étendre aux activités de trans-
port du Personnel, de location et de maintenance de véhicules et d’engins.
3. 2018 : Condor Logistics a délibérément opté pour une démarche ( Qualité - Santé
- Sécurité - Environnement ) en adaptant son Système de Management, et obtenir
une certification SMI : ISO 9001, ISO 14001 et ISO 45001, dans une vision de
développement durable d’Entreprise responsable et citoyenne, non seulement vis-à-
vis de ses collaborateurs, clients et fournisseurs, mais également de ses concurrents.
71
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
domaine d’activité
Transport de marchandises
Une flotte de véhicules nouvelle génération, à faible émission de CO2, et répondant aux
dernières normes en vigueur, est composée de semi-remorques, camions porteurs, porte
engins, camion de dépannage, portes conteneurs... L’ensemble de notre flotte étant doté
de chronotachygraphes et d’un système de géolocalisation GPS.
Transport du personnel
Condor Logistics comme partenaire de confiance, met à disposition des bus et minibus
(12 à 100 places) pour les besoins de transport du personnel.
Pour les opérations de manutention, Condor Logistics dispose d’un Parc d’engins com-
posé de Nacelles Télescopiques, Reach Stackers, Chariots Élévateurs multi-tonnage [2.5T-
35T], camions-nacelles, camions-grues ...
72
CHAPITRE 4. RÉSOLUTION DU PROBLÈME TOURNÉ DE VÉHICULE
Location de véhicules
Condor Logistics comme partenaire de confiance, met à disposition des véhicules uti-
litaires et des véhicules touristiques multimarques, avec ou sans chauffeur.
73
Bibliographie
74
BIBLIOGRAPHIE
75