Vous êtes sur la page 1sur 108

ECOLE NATIONALE DES SCIENCES UNIVERSITE

APPLIQUEES DE TANGER ABDELMALEK ESSAADI

PROJET DE FIN D’ETUDES


Présenté à l’École Nationale des Sciences Appliquées de Tanger
Pour obtenir le diplôme
D’Ingénieur d’Etat en Génie Industriel et Logistique
Intitulé :

Optimisation des trajets de livraison dans la logistique de


distribution

Réalisé par : M. Mohamed SOUFIANI

Année universitaire 2021 – 2022


RESUME
La digitalisation est un levier d’optimisation de processus. Dans cette vision, la société Smart
Automation Technologies pilote un projet de développement d’un écosystème digital,
intelligent et décisionnel en faveur des prestataires logistiques de la chaine de distribution.
Le présent rapport décrit notre contribution à la modélisation de la logistique de transport par la
conception d’un modèle d’optimisation des trajets des véhicules de transport routier de
marchandises.
Au cours de notre stage, nous avons conçu un modèle d’optimisation de trajets tenant en compte
la distance et les facteurs de risque : accidents, dommages, pertes, retards et coûts. En premier,
nous avons élaboré trois modèles de Deep Learning à bases des algorithmes Long Short-Term
Memory (LSTM) pour la prédiction des facteurs de risque. Par la suite, nous avons adopté une
politique de choix multicritères du trajet optimum, grâce à la méthode d’aide à la décision
multicritères Analytic Hierarchy Process (AHP).
Le modèle d’optimisation proposé a prouvé sa robustesse et sa fiabilité dans la prédiction des
facteurs de risque, ainsi que sa souplesse de mise en œuvre et d’exécution. De ce fait, plusieurs
voies d’application se présentent, notamment, permettre aux véhicules, grâce à une intelligence
artificielle, de choisir le meilleur itinéraire de manière automatisée.

Mots clés : Logistique 4.0, Logistique de distribution, Transport, Optimisation, Deep Learning,
Décision multicritère.

ii
ABSTRACT
Digitization is a process optimization lever. In this vision, Smart Automation Technologies is
piloting a project to develop a digital, intelligent and decision-making ecosystem for logistics
services provider in the distribution chain.
This report describes our contribution to the modeling of transport logistics by building a model
for optimizing routes for road freight vehicles.
As part of the internship project, we have designed a routes optimization model taking into
account distance and risk factors: accidents, damages, losses, delays and costs. First, we
developed three Deep Learning models based on LSTM algorithms for the prediction of risk
factors. Subsequently, we adopted a policy of multi-criteria choice of the optimal path thanks to
AHP, the multi-criteria decision aid method.
The optimization model has proven its robustness and reliability in predicting risk factors, as
well as its flexibility in implementation and execution. As a result, several ways of application
present themselves, in particular, providing vehicles with artificial intelligence, which enables
them to choose the best route in an automated manner.

Keywords: Logistic 4.0, Distribution logistics, Transport, Optimization, Deep Learning, Multi-
criteria decision.

iii
‫صخلم‬

‫‪ Smart Automation‬ةكرش رهست ‪،‬راطإلا اذه يفو ‪.‬ةيتسيجوللا تايلمعلا نيسحتل ةيساسأ ةعفار ةنمقرلا دعت‬
‫ةيتسجوللا تامدخلا يمدقم فدهتسي ‪،‬رارقلا عنصل يكذو يمقر يئيب ماظن عورشم ريوطت ىلع ‪Technologies‬‬
‫‪.‬عيزوتلا ةلسلس يف‬

‫‪،‬لقنلا تايتسجول ةجذمن يف انتمهاسم ريرقتلا اذه فصي جذومن ميمصت لالخ نم نيسحتل رايتخا راسملا‬
‫‪.‬عئاضبلل يربلا نحشلا تابكرمل‬

‫ةفاسملا و‬ ‫لماعرابتعالا نيعب ذخأي ‪ ،‬تاراسملا رايتخا نيسحتل جذومن ميمصتب انمق ‪ ،‬بيردتلا عورشم راطإ يف‬
‫ةيلاتلا رطخلا لماوع خأتلاو رئاسخلاو رارضألاو ثداوحلا ‪ :‬ملعتلل جذامن ةثالث ريوطتب ًالوأ انمق ‪.‬فيلاكتلاو ر‬
‫تايمزراوخ ىلع دمتعت قيمعلا ‪ LSTM ،‬ددعتم رايتخالل ةسايس اندمتعا ‪ ،‬كلذ دعب ‪.‬رطخلا لماوعب ؤبنتلل‬
‫ريياعملا ةددعتم رارقلا عنص يف ةد‪AHP.‬‬ ‫ريياعملا كلذو ‪،‬لثمألاراسملل عاسملا ةقيرط لضفب‬

‫‪،‬هئانبب انمق يذلا نيسحتلا جذومن تبثأ هتوق هتعاجن و عب ؤبنتلا يف هقيبطت ةنورم نع ًالضف ‪ ،‬رطخلا لماو‬
‫هلامعتساو ‪،‬كلذل ةجيتنو ‪ .‬جذومنلا لامعتسا قافآ ددعتت ‪ ،‬صوصخلا هجو ىلع ‪ ،‬يربلا نحشلا تابكرم ديوزت‬
‫عئاضبلل ‪.‬ةيلآ ةقيرطب لضفألا راسملا رايتخا نم اهنكمي ‪،‬يعانطصا ءاكذب‬

‫قيمعلا ملعتلا ‪ ،‬نيسحتلا ‪ ،‬لقنلا ‪ ،‬عيزوتلا تايتسجول ‪ 4.0،‬كيتسيجول ‪:‬ةيحاتفملا تاملكلا ‪ ،‬ددعتم رارقلا عنص‬

‫‪iv‬‬
TABLE DE MATIERES
AVANT-PROPOS....................................................................................................................................ii
DEDICACES.......................................................................................................................................... iii
REMERCIEMENTS............................................................................................................................... iv
RESUME.................................................................................................................................................. v
ABSTRACT................................................................................................................................................ vi

‫صخلم‬ .................................................................................................................................................... vii


TABLE DE MATIERES....................................................................................................................... viii
LISTE DES FIGURES..............................................................................................................................x
LISTE DES TABLEAUX........................................................................................................................xi
LISTE DES ACCRONYMES.................................................................................................................. 1
INTRODUCTION GENERALE.............................................................................................................. 2
CHAPITRE 1 : PRESENTATION DE L’ORGANISME D’ACCUEIL ET MANAGEMENT DE
PROJET.................................................................................................................................................... 4
1. Introduction...................................................................................................................................4
2. Présentation de l’organisme d’accueil...........................................................................................4
3. Management de projet...................................................................................................................7
4. Eléments du cahier des charges du projet.................................................................................... 12
5. Diagramme de GANTT – planning du projet.............................................................................. 13
6. Conclusion.................................................................................................................................. 15
CHAPITRE 2 : ETUDE PREALABLE ET PREPARATION DU TERRAIN....................................... 16
1. Introduction.................................................................................................................................16
2. Notions et concepts..................................................................................................................... 16
3. Acteurs de la logistique de distribution....................................................................................... 18
4. Entités logistiques concernées par la logistique de distribution...................................................19
5. Veille technologique................................................................................................................... 24
6. Conclusion.................................................................................................................................. 27
CHAPITRE 3 : ETUDE ANALYTIQUE DE LA CHAINE DE TRANSPORT..................................... 28
1. Introduction.................................................................................................................................28
2. Chaine de valeur du transport routier de marchandises............................................................... 28
3. Problématiques des acteurs logistiques....................................................................................... 29
4. Besoins des acteurs de la chaine de transport.............................................................................. 38
5. Conclusion.................................................................................................................................. 40
CHAPITRE 4 : PREPARATION DE DONNEES ET GENERATION DE BASE DE DONNEES
SYNTHETIQUES.................................................................................................................................. 41
1. Introduction.................................................................................................................................41

v
2. Objectifs du projet et mise en œuvre des solutions...................................................................... 41
3. Architecture du réseau livraison..................................................................................................42
4. Construction du réseau de livraison.............................................................................................43
5. Conclusion.................................................................................................................................. 55
CHAPITRE 5 : ELABORATION DES MODELES D’OPTIMISATION ET POLITIQUE DE
DECISION..............................................................................................................................................56
1. Introduction.................................................................................................................................56
2. Notions et définitions.................................................................................................................. 56
3. Elaboration des modèles LSTM.................................................................................................. 58
4. Optimisation de distance............................................................................................................. 64
5. Politique de décision................................................................................................................... 64
6. Résultats et gains.........................................................................................................................67
7. Conclusion.................................................................................................................................. 68
CONCLUSION GENERALE.................................................................................................................69
REFERENCES BIBLIOGRAPHIQUES ET WEBOGRAPHIES.............................................................I
LISTE DES ANNEXES..........................................................................................................................III
ANNEXES............................................................................................................................................. IV

vi
LISTE DES FIGURES
Figure 1: Valeurs de l'entreprise.................................................................................................. 5
Figure 2 : Diagramme d'expression de besoin............................................................................. 8
Figure 3 : Gantt prévisionnel..................................................................................................... 13
Figure 4 : Gantt réel................................................................................................................... 14
Figure 5: Equipements de l'entrepôt.......................................................................................... 21
Figure 6 : Véhicules poids lourd de TRM..................................................................................22
Figure 7 : Chaine de valeur du transport routier de marchandises............................................. 29
Figure 8: Retard de livraison dans la chaine de transport...........................................................31
Figure 9 : Dommage de fret dans la chaine de transport............................................................ 31
Figure 10 :Perte de fret dans la chaine de transport....................................................................32
Figure 11 : Conséquences de l'insatisfaction client sur le chargeur........................................... 32
Figure 12 : Arbre à problèmes de la rentabilité chez les transporteurs ....................................... 34
Figure 13 : Arbre à problèmes de la prise des risques chez les transporteurs............................. 34
Figure 14 : Prise de risque au niveau du non-respect des mesures de sécurité........................... 36
Figure 15 : Arbre à problèmes de l’interruption d’activité chez le client................................... 37
Figure 16 : Modélisation du réseau de transport routier de marchandises................................. 43
Figure 17 :Architecture du réseau de livraison construit........................................................... 44
Figure 18: Trajet parcouru pendant une livraison entre deux points logistiques........................ 45
Figure 19 : Paramètres liés aux trajets et sont à l’origine des facteurs de risques.......................46
Figure 20: paramètres liés au trajet et ayant contribution dans les accidents............................. 50
Figure 21: Relations de Causes à effets entre les facteurs de risque étudiés ...............................58
Figure 22 : Approche suivie dans la prédiction des facteurs de risques..................................... 58
Figure 23 : Modèle LSTM construit pour la prédiction des accidents....................................... 59
Figure 24 : Implémentation et évaluation du modèle de prédiction des accidents ..................... 60
Figure 25 : Modèle LSTM pour la prédiction des facteurs : dommage, perte et retard.............. 61
Figure 26 : Implémentation et évaluation du modèle de prédiction de : dommage, perte et retard
62
Figure 27 : Modèle construit pour la prédiction du coût ............................................................ 63
Figure 28 : Implémentation et évaluation du modèle de prédiction du coût ...............................64
Figure 29 : Durée d’exécution des trois modèles LSTM (à gauche) et de l’exécution de la
politique de décision AHP (à droite)......................................................................................... 68

vii
LISTE DES TABLEAUX
Tableau 1: Indices d'évaluation de la criticité des risques..........................................................10
Tableau 2 : Niveaux de criticité des risques...............................................................................10
Tableau 3 : AMDEC du projet...................................................................................................11
Tableau 4 : Acteurs logistiques concernés par la logistique de distribution...............................19
Tableau 5 : Classification des entrepôts.....................................................................................20
Tableau 6 : Classification des routes......................................................................................... 22
Tableau 7 : Types des unités de chargement souvent utilisées dans le TRM............................. 23
Tableau 8: Technologies de pointe............................................................................................ 24
Tableau 9 : Applications des technologies de pointe dans de transport..................................... 25
Tableau 10 : Solutions développées à base de nouvelles technologiques.................................. 26
Tableau 11 : Problématiques des acteurs du TRM.....................................................................29
Tableau 12 : Besoins des acteurs logistiques en digitalisation...................................................38
Tableau 13 :Evaluation qualitative des paramètres................................................................... 47
Tableau 14 : Nombre d’échanges en fonction de la distance..................................................... 48
Tableau 15 : Règles probabilistes de la congestion....................................................................48
Tableau 16 : Règles probabilistes de l’état des trajets parcourus............................................... 49
Tableau 17 : Règles probabilistes des vols et de l’estimation du volume volé de marchandise. 49
Tableau 18 : les statistiques adoptées dans la génération des accidents..................................... 50
Tableau 19 : Règles probabilistes du dommage de fret..............................................................50
Tableau 20 : Règles probabilistes de perte de fret......................................................................51
Tableau 21 : Règles probabilistes des retards............................................................................ 52
Tableau 22 : Règles probabilistes de l’estimation du coût de la livraison.................................. 53
Tableau 23 : Paramètres de la base de données synthétiques..................................................... 54
Tableau 24 : Paramètres pris en compte pour la prédiction des accidents..................................59
Tableau 25 : Propriètés du modèle de prédiction des accidents ................................................. 60
Tableau 26 : Paramètres pris en compte pour la prédiction de : dommage, perte et retard......... 61
Tableau 27 : Propriétés du modèle de prédiction de : dommage, perte et retard ........................ 61
Tableau 28 : Paramètres pris en compte pour la prédiction du coût ........................................... 63
Tableau 29 : propriètés du modèle de prédiction du coût ...........................................................63
Tableau 30 : échelle de pondération des critères........................................................................65
Tableau 31 : Pondération des facteurs étudiés........................................................................... 65
Tableau 32 : Politique de pondération des alternatives par rapport au critère............................ 66
Tableau 33 : Cas de figure de pondération des alternatives par rapport aux critères.................. 66

viii
LISTE DES ACCRONYMES
AGV Auto – Guided Vehicles (Véhicules autoguidés)
AHP Analytic Hierarchy Process
ANN Artificial Neural Network
DFS Depth-First Search (Algorithme de parcours en profondeur)
DLSP Digital Logistic Services Provider
EcoDID Ecosystème Digital, Intelligent et Décisionnel
HGV Heavy Goods Vehicle (Véhicule à poids lourd)
IA Intelligence Artificielle
IoT Internet of Things (Internet des Objets)
IT Information technology (technologie d’information)
LGV Light Goods Vehicle (véhiucle à poids léger)
LSTM Long Short Term Memory
MCL Méthode de cadrage logique
PL Point Logistique
RA Réalité Augmentée
RFID Radio Frequency Identification
RNN Recurrent Neural Network
RV Réalité Virtuelle
TRM Transport Routier de Marchandises
UC Unité de Chargement
VU Véhicule Utilitaire
ZL Zone Logistique

1
INTRODUCTION GENERALE
Aujourd’hui, l’industrie connait sa quatrième révolution apportant l’agilité et la réactivité qui
répondent au comportement du client du futur. La logistique, comme étant la discipline qui
s’intéresse à la gestion des flux physique, d’information et financier, a subi une évolution en
parallèle, en modernisant ses fonctions et en intégrant les technologies les plus avancées. Ceci a
abouti à l’Industrie 4.0 et la Logistique 4.0 qui sont fondées principalement sur la connectivité
des processus et ressources, la digitalisation des modes de gestion et l’automatisation. Ces
concepts modernes ont vu le jour grâce à l’essor des nouvelles technologies, notamment
l’Intelligence Artificielle (IA), le Big Data et la Technologie d’Information et de
Communication (TIC). La gestion des flux informatiques de manière massive, réactive et
rapide est alors au cœur de l’évolution de la chaine logistique du futur.

Dans cette approche, l’entreprise Smart Automation Technologies met son expertise en faveur
de l’évolution du secteur logistique en développant son projet Smart DLSP. Il s’agit d’un
écosystème digital, intelligent et décisionnel, qui apporte une panoplie de services et
d’applications informatiques afin de répondre aux questions de qualité et de rendement des
activités logistiques. L’écosystème consiste à associer les acteurs de la logistique dans un
environnement intelligent permettant l’amélioration de leur compétitivité via une gestion
équilibrée de risques et opportunités, et ce, en prenant en considération les aspects
environnemental, social et économique.

Notre projet de fin d’études concerne l’optimisation des processus de la logistique de


distribution, précisément le processus du transport routier de marchandises (TRM). Le travail
réalisé est centré sur l’amélioration de la rentabilité comme étant une problématique chez les
transporteurs, tout en optimisant les itinéraires des véhicules.

Notre intervention s’est focalisée sur la conception d’un modèle d’optimisation de trajets des
véhicules de TRM, à bases des modèles LSTM en relation avec l’apprentissage profond et la
méthode d’aide à la décision multicritère AHP. La mise en œuvre des solutions proposées, a fait
appel à la construction d’une base de données synthétiques, simulant les propriétés réelles des
trajets de livraison de marchandises.

Le présent rapport est divisé en cinq chapitres dans une séquence logique. Dans le premier
chapitre nous présentons l’organisme d’accueil et son projet Smart DLSP, avant d’entamer la
partie du management de projet. Le deuxième chapitre est consacré pour l’étude préalable

2
menée dans le cadre de préparation de terrain et initiation avec le contexte du projet. L’étude
inclut une couverture documentaire et une veille technologique. Le troisième chapitre décrit
l’analyse de la chaine de distribution réalisée par nos soins, pour identifier les problématiques
actuellement rencontrées par les acteurs logistiques, afin de déterminer leurs besoins en termes
d’optimisation et digitalisation. Le quatrième chapitre est dédié à la description de la démarche
de construction de la base de données synthétiques servant l’entrainement des modèles
d’apprentissage élaborés. Le dernier chapitre est consacré à la mise en œuvre des solutions
proposées pour l’optimisation des trajets, ainsi que les résultats apportés.

3
CHAPITRE 1 : PRESENTATION DE L’ORGANISME D’ACCUEIL
ET MANAGEMENT DE PROJET

1. Introduction

Avant d’aller loin dans l’étude du projet, nous présentons d’abord l’organisme d’accueil où
s’est déroulé le projet de fin d’études. Dans ce chapitre on va présenter la société Smart
Automation Technologies et son projet Smart DLSP. Ensuite, on va entamer la partie de
management du projet dans laquelle on mettra l’accent sur l’analyse du besoin, la méthode de
travail adoptée, le management de risques et le planning du projet.

2. Présentation de l’organisme d’accueil

Smart Automation Technologies est une entreprise citoyenne, fondée par un groupe de
consultants seniors, spécialistes des nouvelles technologies à savoir, la technologie de
l’information, le data-science et l’intelligence artificielle.

Smart Automation Technologies fait de l’innovation. Son crédo est investi en recherche et
développement afin d’être à la pointe du progrès dans la technologie de l’information et
l’intelligence artificielle.

Son équipe apporte son expertise et son savoir-faire aux profits des entreprises et des
administrations souhaitant employer des solutions faisant réponse à leurs besoins et à leurs
contraintes.

Elle accompagne sereinement et efficacement ses clients dans l’élaboration, la mise en œuvre,
la mise en place et l’évolution de leur système d’information et de leurs besoins en étude, en
formation et en progiciels intégrés.

L’entreprise veut pérenniser sa relation avec ses clients en se plaçant comme un véritable
partenaire et un maillon de leur chaîne de valeur, en leur apportant les compétences en
informatiques, en apprentissage automatique nécessaires à leur bon fonctionnement et leur
réussite afin de leur permettre de se concentrer sur le cœur de leur métier

4
2.1. Approche et valeurs

L’entreprise Smart Automation Technologies s’applique à cultiver une vision différente, elle
donne une place importante à l’éthique et la déontologie, ce qui lui garantit une relation de
transparence et d’engagement avec ses clients. Elle entretient une relation de proximité fondée
sur la confiance et la compréhension mutuelle, pour mieux connaître les besoins et anticiper les
attentes de ses clients. L’entreprise dispose d’un bon potentiel humain ; ses collaborateurs sont
encadrés, suivis, évalués et formés de manière permanente. La figure 1 présente les valeurs de
l’entreprise Smart Automation Technologies :

Figure 1: Valeurs de l'entreprise

2.2. Métiers et services

Smart Automation Technologies à travers ses différents métiers (services, solutions dédiées,
support et formations), met son expérience dans la conception et la mise en œuvre des systèmes
d’informations au service de ses clients. Elle prend en charge les projets de conception et
d’accompagnement dans les différents secteurs d’activités où son expertise apporte une réelle
valeur ajoutée.

La stratégie conseil de Smart Automation Technologies s’inscrit dans une démarche qui
s’appuie sur l’approche client, projet et méthode. Elle accompagne ses clients dans leurs projets
d’organisation et d’évolution et conduit leur stratégie d’évolution en un plan d’orientation et de
transformation de leur système d’information grâce à des opérations de :

− Gouvernance IT et management de projets,


− Conduite de changement,
− Elaboration d’un schéma directeur informatique,

5
− Urbanisation du système d’information,
− Assistance à maitrise d’ouvrage,
− Architecture logiciel,
− Solution clé en main,
− Benchmarking et audit logiciel.

2.3. Produits et solutions

Smart Automation Technologies s’est attelée à la création de produits répondant à un besoin


réel et s’est intéressée particulièrement à la création des solutions intégrant la technologie de
l’information, le data-science et l’intelligence artificielle, en particulier dans les domaines
industrie, logistique, marketing et finance.

L’entreprise s’intéresse également à la mise en place des processus de l’E-Transformation


autour du principe d’écosystème digitale, intelligent et décisionnel (EcoDID). Elle développe
actuellement plusieurs projets de recherche et développement en partenariat avec le milieu
universitaire, à noter :

− Technologie Edge Box pour la maintenance prédictive,


− Technologie Edge data center,
− Plateforme logistique basée sur le concept EcoDID (Smart DLSP),
− Plateforme marketing basée sur le concept EcoDID,
− Plateforme éducative basée sur le concept EcoDID.

2.4. Projet Smart DLSP

Smart Digital Logistic Services Provider (Smart DLSP) ou Fournisseur de Services Logistiques
Numériques Intelligents, est un projet qui vise la mise à la disposition des acteurs logistiques
d’un écosystème numérique intelligent proposant une panoplie de services et d’applications
informatiques et agrégeant plusieurs méthodes, techniques et algorithmes issus de l’intelligence
artificielle, afin de faciliter et d’améliorer la qualité et le rendement des activités des chaînes
logistiques.

L’objectif général du projet consiste à améliorer la gestion du fret dans le contexte de la


transformation digitale, en concevant un écosystème associant tous les acteurs du fret.
L’écosystème intègre également les approches sociales et environnementale dans une logique

6
de développement durable en prenant en compte un grand nombre de paramètres d’ordres
économique, politique ou législatif, social, sociétal et environnemental. La finalité est d’assurer
une gestion équilibrée des risques et des opportunités à tous les acteurs logistiques da la chaine
de distribution.

3. Management de projet

Après avoir présenté l’organisme d’accueil, nous allons décrire dans cette partie la
méthodologie suivie en ce qui concerne la gestion du projet.

3.1. Contexte du projet

Le transport de marchandises est un volet essentiel dans le développement économique et


social. D’ailleurs, il est un levier d’amélioration de la compétitivité des échanges commerciaux
à l’intérieur du pays bien qu’à l’extérieur.

Tenant en compte l’importance du TRM et les défis qui empêchent la meilleure rentabilité du
service, l’entreprise Smart Automation Technologies est en cours de développement du projet
Smart DLSP. Il s’agit d’un écosystème digital, intelligent et décisionnel qui répond aux besoins
des acteurs logistiques de transport en termes de digitalisation. Le projet vise l’optimisation des
processus de la chaine de transport et l’amélioration de leur qualité et rendement.

Dans le cadre de ce projet, nous avons réalisé notre stage de fin d’études (PFE) d’une grande
utilité, pour renforcer une équipe logistique jeune, travaillant sur les différents aspects du
projet. L’ordonnancement intelligent des activités de transport, la prédiction de risques et
opportunités, la maintenance prédictive des engins sont parmi les axes de développement du
projet. Notre projet qui s’étale sur 6 mois, se répartie en trois phases principales : la préparation
du terrain, l’analyse de la chaine de transport et puis la conception d’un modèle d’optimisation
des trajets des véhicules.

3.3. Analyse de besoin

Pour mieux cerner le projet du stage, on fait appel au diagramme d’expression de besoin qui
présente le sujet de stage et donne justification de son existence. La figure 2 présente le
diagramme d’expression du besoin (diagramme de bête à cornes) :

7
Figure 2 : Diagramme d'expression de besoin

8
3.4. Objectifs du projet

Le projet de stage a pour mission majeure, le développement d’un modèle d’optimisation des
trajets des véhicules de TRM. Ce modèle doit satisfaire à la fois l’optimisation de la distance
parcourue et la minimisation des facteurs de risque tout au long de l’exécution de la livraison.

Les technologies actuelles, notamment, le big data et l’intelligence artificielle favorisent la


prédiction des imprévus et permet ainsi d’éviter les incidents et les sources de problèmes.

L’objectif de stage est atteignable en tirant profite des algorithmes d’optimisation et ceux de
l’apprentissage automatique.

Il est prévu de cultiver le fruit de ce projet dans une durée de 6 mois. Surmonter ce défi est
techniquement faisable, avec le travail sérieux et la discipline.

3.5. Méthodologie de travail

Pour bien mener le projet du stage, nous avons organisé le travail suivant une démarche logique
et structurée. En fait, le travail méthodique permet la compréhension de la problématique posée,
ce qui facilite son analyse et la mise en œuvre des voies de solutions pour sa résolution.

Dans notre approche, nous avons suivi la méthode de cadrage logique (MCL). C’est une
méthode de planification de projets ciblées sur les objectifs. Elle permet la planification,
l’analyse, le suivi et l’évaluation du projet. La méthode contient neuf étapes qui ne suivent pas
forcément un ordre précis. En plus, il n’est pas nécessaire d’intégrer toutes les étapes durant un
projet. Les neuf étapes de la démarche MCL sont :

1. Analyse du contexte du projet


2. Analyse des parties prenantes
3. Analyse des problèmes / analyse de la situation
4. Formulation des objectifs
5. Elaboration du plan d’activités
6. Planification des ressources
7. Définition des indicateurs de mesure de la réalisation des objectifs
8. Analyse des risques
9. Analyse des conditions préalables à la réalisation des objectifs

9
Pour adapter cette démarche à notre projet de stage, nous avons réalisé les étapes 1, 3, 4, 5 et 8
qui sont en ordre chronologique de réalisation :

− Analyse du contexte du projet


− Analyse des risques
− Analyse des problèmes/l’analyse de la situation
− Formulation des objectifs
− Plan d’activités

3.6. Management des risques

Pour assurer le bon déroulement du projet de stage, la gestion des risques semble indispensable.
De ce fait, nous avons élaboré une analyse des éventuels aléas et menaces pouvant affecter le
projet, tant au niveau organisationnel qu’au niveau technique. Pour ce faire, nous avons mis en
place la démarche AMDEC (Analyse des Modes de Défaillances, de leurs Effets et de leur
Criticité). Cette méthode permet de définir les éventuelles risques qui peuvent pénaliser le
projet et causer l’insatisfaction du client (maitre d’ouvrage).

La criticité des risques est évaluée en fonction de leur gravité, probabilité d’occurrence et
détectabilité sur les échelles définies par le groupe du travail (équipe logistique). La
qualification de ces indices est comme présentée dans le tableau 1 :

Tableau 1: Indices d'évaluation de la criticité des risques

G : Gravité P : Probabilité d’occurrence D : Détectabilité

1. Négligeable 1. Négligeable 1. Fortement détectable

2. Mineur 2. Peu probable 2. Détectable


3. Majeur 3. Probable 3. Peu détectable
4. Catastrophique 4. Fortement probable 4. Non détectable

La criticité se définit comme étant le produit des trois indices (C = G * P * D). Plus sa valeur est
élevée, plus le risque est important. On distingue ainsi trois niveaux de risque, comme présenté
dans le tableau 2 :
Tableau 2 : Niveaux de criticité des risques

Valeur de C Niveau de criticité Alerte


C > 18 Risque important Vert
8 ≤ C ≤ 18 Risque moyen Jaune
C≤8 Risque faible Rouge

10
La liste des risques identifiés ainsi que les actions proposés pour les anticiper sont présentés
dans le tableau 3 :
Tableau 3 : AMDEC du projet

Risque Causes Effets Evaluation de Actions préventives


risque
G P D C
Mauvaise définition Mauvaise Déviation du projet par 3 2 2 12 Planification préalable
de projet formulation de rapport aux objectifs des phases de stage
besoin. attendus. (missions et délais).
Mauvaise Manque de Déviation du projet par 3 1 2 6 Suivi régulier des
coordination avec communication. rapport aux objectifs tâches par l’encadrant.
l’encadrant attendus.
Communication
Retard des tâches. régulière de l’état
d’avance à la Co-
encadrante.
Non-respect de Mauvaise gestion de Retards des phases de 3 3 1 6 Planification des
délais de tâches temps de tâches. projets. tâches quotidienne.

Contraintes liés au Mauvaise qualité de travail Révision régulière des


manque réalisé. délais.
d’information.
Perturbation de l’ordre de Réalisation de
tâches. diagramme GANTT
au fur et à mesure.

Non atteinte des Mauvaise gestion de Non atteinte des objectifs 4 1 2 8 Révisons régulières de
objectifs dans les projet. attendus du projet. l’état d’avance.
délais prévus.
Problèmes majeurs. Affectation du déroulement
de projet Smart DLSP

3.7. Outils et méthodes employés

La résolution de problématiques fait appel à différents outils et méthodes, issus des domaines
différents. Dans cette partie nous allons citer ceux que nous avons employé pour l’élaboration
des solutions du projet :

Carte mentale – Outil informatique MindManager :

Un outil fréquemment utilisé pour structurer les idées et établir les relations entre les éléments
d’un sujet, est la carte mentale. Cette méthode consiste à schématiser les informations et les
relations entre elles, de façon simple à retenir et à exploiter. Elle est utilisée surtout dans la
phase de l’étude préalable et préparation de terrain. L’outil informatique MindManager permet
de réaliser, entre autres, des cartes mentales professionnelles.

Arbre à problèmes :

11
L’arbre à problème est un outil méthodologique qui permet de schématiser pour mieux analyser
une situation problématique. Ayant la même logique que la méthode des cinq pourquoi (5W) et
la méthode d’Ishikawa (5M), Elle consiste à surmonter les relations de causes à effet entre les
différents problèmes qui sont à l'origine d’une problématique.

Comme son nom l’indique, l’arbre à problèmes est un outil graphique similaire à un arbre, dont
le tronc est la problématique, les racines de l’arbre sont les causes principales et secondaires
tandis que les branches représentent les conséquences et les effets de la problématique.

Apprentissage automatique – Python – Anaconda (Jupyter) – Google Colab :

Pendant la conception des modèles d’optimisation du trajet, nous avons utilisé les algorithmes
de Deep Learning pour la prédiction des facteurs de risques. Le logiciel Anaconda met à
disposition un environnement de développement en langage de programmation Python qui est
le « Notebook Jupyter ». L’atout majeur du langage Python est la disponibilité des
bibliothèques prédéfinies pour l’apprentissage automatique, inclut les algorithmes de Deep
Learning utilisés.

4. Eléments du cahier des charges du projet

Le projet de stage comprend quatre phases successives : une étude préalable et préparation de
terrain, une analyse approfondie de la chaine de transport pour aboutir à la phase d’intervention
qui consiste à la conception d’un modèle d’optimisation de trajets.

▪ Etude documentaire

Etude préalable qui consiste à faire le tour des concepts et notions de la logistique de
distribution, à savoir, la chaine de valeur de transport routier de marchandises, les prestataires
de services logistiques intégrés dans la logistique de transport ainsi que les connaissances
nécessaires à propos des entrepôts, des véhicules et des marchandises comme étant des entités
logistiques intégrées dans le processus de transport.

▪ Veille technologique

L’entreprise Smart Automation Technologies développe ses solutions à bases des nouvelles
technologies. De ce fait, une veille technologique visant la connaissance des technologies de
pointe et leurs applications dans le domaine logistique est établie afin de se mettre au courant
des technologies appliquées dans le projet.

12
▪ Analyse de la chaine de transport

Le développement d’un écosystème digitale, intelligent et décisionnel (EcoDID) donne priorité


à apporter des solutions convaincantes aux problématiques rencontrées par les prestataires
logistiques. À cet fin, l’analyse de la chaine de transport fait partie de notre projet de stage. Elle
porte sur l’identification des problématiques et des problèmes à leurs origines, l’analyse des
risques encourus dans la chaine de transport et la mise en évidence des besoins des acteurs
logistiques.

▪ Intervention et proposition de solutions

Le projet de stage consiste à la conception d’un modèle d’optimisation des trajets. La solution
proposée dans ce sens, repose sur la prédiction des facteurs de risque et la conception d’une
politique de décision fiable.

5. Diagramme de GANTT – planning du projet

Le projet de stage est très sensible en ce qui concerne le temps de réalisation. Et ce, car la durée
est limitée en quelques mois pour apporter des solutions à la problématique posée. D’ailleurs la
planification et l’estimation de la durée des phases de chaque projet permet une grande maitrise
de son déroulement. En réalité les tâche s ne respectent pas à la lettre le planning provisoire. Un
écart peut apparaitre entre la durée provisoire et celle réelle d’une phase de projet, à cause de la
non maitrise de temps et/ou la survenue des évènements imprévus. Dans cette partie on va
présenter les deux diagrammes de Gantt décrivant le planning prévisionnel et le déroulement
réel des phases du projet de stage.

La figure 3 présente le diagramme de Gantt prévisionnel :

13
Figure 3 : Gantt prévisionnel

14
La figure 4 présente le diagramme de Gantt réel :

Figure 4 : Gantt réel

15
6. Conclusion

Dans ce chapitre, nous avons présenté l’organisme d’accueil, ainsi que son projet Smart DLSP,

dans lequel s’est déroulé notre stage. Par la suite, nous avons entamé la partie management de

projet, dans laquelle nous avons mis l’accent sur les objectifs du stage et les outils techniques et

organisationnels mis en œuvre pour les atteindre.

16
CHAPITRE 2 : ETUDE PREALABLE ET PREPARATION DU
TERRAIN

1. Introduction

Le présent chapitre est consacré à l’étude préalable, qui a pour objectif de déterminer le
périmètre du projet et sa bonne compréhension. Dans ce chapitre, on va entamer une étude
documentaire attaquant les différents concepts liés à la logistique de transport, accompagnée
d’une veille technologique sur l’exploitation des technologies de pointe dans la chaine
logistique.

2. Notions et concepts

En premier lieu, nous allons définir les notions qui vont nous servir à comprendre le contexte
du projet.

2.1. Logistique

La logistique est l’intégration de plusieurs activités dans le but d'établir des plans, de mettre en
œuvre et de contrôler un flux efficace de matières premières, produits semi-finis et produits
finis, de leur point d’origine au point de consommation. Ces activités peuvent inclure – sans que
la liste soit limitative – le type de service offert aux clients, la prévision de la demande, les
communications liées à la distribution, le contrôle des stocks, la manutention des matériaux, le
traitement des commandes, le service après-vente et des pièces détachées, les achats,
l'emballage, le traitement des marchandises retournées, la négociation ou la réutilisation
d'éléments récupérables ou mis au rebut, l'organisation des transports ainsi que le transport
effectif des marchandises, ainsi que l'entreposage et le stockage.

2.2. Logistique 4.0

La logistique 4.0 est un concept qui a eu naissance suite à l’essor de l’industrie 4.0, pour
désigner la logistique moderne basée sur la mise en réseau, la numérisation et le cloud
computing. Les systèmes de mise en réseaux intelligents et numériques mettent en connexion
l'Homme, les machines, les installations et les produits pour leur permettre une communication
directe et en temps réel.
25
2.3. Transport

Le transport est la fonction qui permet de déplacer la marchandise entre les différentes zones
géographiques depuis l’entrepôts du fournisseur jusqu’à l’arrivé au client final. Le choix du
mode de transport pour l’acheminement de marchandises dépend essentiellement des facteurs :
Coût, délai, qualité de service et rentabilité. Dans ce qui suit, nous allons décrypter les
différents modes de transport qui existent.

▪ Transport aérien

Le transport aérien (fret aérien) est l’acheminement de marchandises par avion. Ce mode est le
plus rapide par rapport aux autres modes de transport. Par contre, il est le plus cher. Pour cette
raison, il est souvent consacré pour l’acheminement des produits à forte valeur ajoutée et les
produits périssables.

▪ Transport maritime

Dominant les trois quarts du volume des échanges internationaux, le transport maritime est le
principal mode de transport de marchandises. Cela se justifie par le volume des flux de
marchandises échangés entre les pays du continent. Le transport maritime présente un mode
peu coûteux. D’ailleurs, il est largement fiable ; les axes de transport maritime ne sont pas
congestionnés.

▪ Transport fluvial

Le transport fluvial s’agit de l’acheminement des marchandises sur un réseau de voies


navigables telles que les rivières, les lacs naturels, les canaux et réservoirs artificiels et les cours
d’eaux. Le transfert peut être à la fois national et international.

Le réseau fluvial est desservi par des ports assurant la fonction de transbordement, menés d’un
espace de stockage de marchandises (au minimum un terre-plein) et peut être équipé d’autres
installations spécifiques (silos à céréales, réservoirs d’hydrocarbures, etc.).

▪ Transport ferroviaire

Le transport ferroviaire désigne l’acheminement des marchandises par chemin de fer (voies
ferrées). La livraison par train est généralement utilisée pour transporter des produits à grande
masse tels que le charbon, l’acier, les voitures, etc.

26
▪ Transport routier

Le transport routier définit un mode de transport terrestre utilisant la route pour acheminer les
marchandises ou les personnes. Le transport routier est le seul mode qui effectue les livraisons
de porte à porte. Par conséquent, la plupart des expéditions qui s’effectuent initialement par un
autre mode de transport sont complétées par le transport routier.

▪ Transport multimodal

Le transport multimodal (transport combiné) est une combinaison d’au moins deux modes
différents de transport pour acheminer le fret. Cela peut être dans le territoire du même pays
comme à l’échelle internationale. L’Organisation pour Coopération et Développement
Economiques (OCDE) définit le transport multimodal comme : « La circulation des
marchandises, dans une seule et même unité de chargement ou véhicule, par des modes de
transport successifs sans manipulation des marchandises elles-mêmes en changeant de mode. »

2.4. Logistique de distribution

La logistique de distribution est la pratique des méthodes de la logistique pour gérer les flux des
commandes de l’entrepôt du fournisseur jusqu’au client. Elle s’intéresse à la fois à la circulation
des flux physiques à travers le réseau de distribution, notamment, la gestion des transports et la
gestion des stocks, mais aussi à la gestion des infrastructures logistiques qui composent ce
réseau comme les plateformes logistiques et les entrepôts.

3. Acteurs de la logistique de distribution

Différents prestataires de services logistiques faites partie de la chaine de distribution de fret.


Le tableau 4 présente les principaux acteurs concernés :

27
Tableau 4 : Acteurs logistiques concernés par la logistique de distribution

Acteur logistique Définition


Chargeur Entreprise propriétaire d’une certaine marchandise, qui commande un service logistique
à un prestataire, un transporteur, pour acheminer la marchandise dont il dispose auprès
de ses clients. Le terme chargeur désigne les entreprises industrielles et commerciales
qui vendent leurs produits à autrui.
Transporteur Personne ou entreprise commerciale spécialisée dans le transport de personnes, de
marchandises, de fonds ou d'énergie, en exploitant des moyens de transport.
Commissionnaire Prestataire de services dont la fonction consiste exécuter le transport de fret, sous sa
de transport propre responsabilité. Il est donc libre d’engager n’importe quel transporteur et d’utiliser
n’importe quel moyen de transport pour cela.
Affréteur Intermédiaire entre les transporteurs et les clients ayant des marchandises à expédier. Il
assure le contact entre les deux parties. Ses responsabilités se limitent au choix du mode
de transport adapté ainsi que le transporteur adéquat avec qui il est chargé de négocier les
prix et de préparer les documents nécessaires.
Ce qui fait différence avec le rôle du commissionnaire qui se charge d’assurer tout le
processus de transport sur sa responsabilité entière.
Entreposeur Personne ou entreprise qui conserve dans un entrepôt des marchandises pour le compte
d'autrui, pendant une durée de temps.
L'entrepôt désigne un bâtiment logistique qui peut prendre la forme d'un espace couvert
ou non et qui sert à stocker des biens.
Distributeur Entreprise qui s’agit d’acteur intermédiaire entre le producteur et le consommateur. Le
distributeur s'occupe de la distribution de fret tout en effectuant le financement, le
rassemblement, le stockage, la promotion et l'envoi des produits à un commerçant ou à
l'utilisateur final.
Grossiste On désigne par grossiste, le distributeur qui achète des produits de grandes quantités. Il
est généralement client direct du fabricant, mais il pourrait également acheter auprès d'un
revendeur. Le grossiste vend les produits en vrac aux détaillants.
Détaillant Un détaillant est un commerçant qui vend au consommateur final des quantités de
marchandises adaptées à son usage, généralement en petites quantités. Le détaillant
exerce son activité dans le domaine du commerce de détail.
Client Un client, au sens économique, désigne la personne ou l'entité qui prend la décision
d'acheter un bien ou un service.
Le client ne désigne pas forcement le consommateur final, pour la raison qu’il ne fait pas
forcément l’acte direct de consommation.

4. Entités logistiques concernées par la logistique de distribution

On désigne par entité logistique, toute infrastructure, ressource ou bien exploités durant la
chaine de distribution. Cette définition couvre principalement les entrepôts, les véhicules, les
réseaux routiers et la marchandise transportée.

28
▪ Entrepôt

L’entrepôt est une infrastructure logistique dont la fonction est le stockage des biens

pendant une certaine durée, jusqu’à leur utilisation suivante. Il existe plusieurs types

d’entrepôts, qui peuvent être classifiés selon plusieurs critères. Le tableau présente les

classifications des entrepôts :

Tableau 5 : Classification des entrepôts

Critère de classification Types d’entrepôt


Construction − Entrepôt ouvert
− Entrepôt semi ouvert
− Entrepôt fermé
Hauteur de stockage − Entrepôt à basse hauteur
− Entrepôt à hauteur moyenne
− Entrepôt à grande hauteur
Activité − Entrepôt de régulation (ou de réserve)
− Entrepôt de transbordement (plateforme logistique)
− Entrepôt de conservation (ou de sécurité)
− Entrepôt de maturation
− Entrepôt de distribution
− Entrepôt industriel (ou d’une unité de production)
− Entrepôt de conteneurs
− Entrepôt de consignation
− Entrepôt terminal
Classification A, B, C − Entrepôt de type A
− Entrepôt de type B
− Entrepôt de type C : Messagerie, Entrepôt frigorifique, etc.
Propriété (appartenance) − Entrepôt privé
− Entrepôt public

▪ Equipement de l’entrepôt

L’exercice des opérations liées à l’entreposage nécessite l’existence des équipements spéciaux
et adaptés. Les principaux équipements sont ceux de stockage et de manutention. La figure 5
illustre les différents équipements pouvant exister dans les entrepôts :

29
Figure 5: Equipements de l'entrepôt

▪ Véhicules

Le transport routier de marchandise se fait par des véhicules spécialisés. Il existe plusieurs de
types de ces véhicules. On distingue principalement entre véhicules à poids lourd et véhicules à
poids léger.

Les véhicules à poids lourd (en anglais Heavy Goods Vehicles ou HGV) sont le segment de
véhicules délimité par un poids à vide supérieur à 3,5 tonne. Les HGV se présentent sous deux
formes principales : les porteurs et les véhicules articulés.

Les porteurs possèdent sur le même châssis la cabine et une caisse ou un plateau pour charger
les marchandises. Les véhicules porteurs sont aussi appelés véhicules isolés.

Les véhicules articulés sont des véhicules composés d'un tracteur routier et d'une ou plusieurs
semi-remorques attachée(s).

Un tracteur routier est un véhicule à moteur, sans caisse, indépendant et munis d’un dispositif
de traction.

Quant aux semi-remorques, ce sont des véhicules sans moteurs, qui portent des roues
uniquement sur la partie arrière. La partie antérieure est sans roues et s’adapte au dispositif de
traction présent sur les tracteurs routiers.

Lorsque le véhicule articulé est composé d’un tracteur et de plusieurs semi-remorques tractées,
il s’appelle : train routier.

La figure 6 illustre les différents types des poids lourds :

30
Figure 6 : Véhicules poids lourd de TRM

Les véhicules utilitaires légers (en anglais Light Goods Vehicles ou LGV) ont la particularité

de poids à vide moins de 3,5 tonnes.

▪ Réseau routier

Le réseau routier est l’ensemble des voies de circulation terrestres permettant la circulation par
véhicules routiers motorisés (automobiles, motos, autocars, camions, etc.). Un réseau routier est
composé des voies carrossables. Il existe plusieurs types de routes, comme illustré dans le
tableau 6 :
Tableau 6 : Classification des routes

Types du réseau routier Types des routes


− Autoroutes urbaines
− Voies express (voies rapides)
− Boulevards
Réseau urbain
− Avenues
− Rues
− Ruelles
− Autoroutes de liaison (autoroutes)
− Rocades
Réseau interurbain / extra-
− Routes nationales (RN)
urbain
− Routes régionales (RR)
− Routes provinciales (RP)
Réseau rural − Pistes communales, forestières,…

▪ Marchandise

Une marchandise est un objet qui est produit ou acheté pour être revendu avec un bénéfice. Elle
peut être un produit tangible ou un service. Les produits tangibles peuvent être une matière
première, des produits intermédiaires ou encore des produits finis.

31
▪ Unité de chargement (UC) :

Une unité de charge (en anglais Unit Load Device ou ULD) est la combinaison de plusieurs
articles de marchandises en une seule unité. Les UC apportent la flexibilité en déplaçant une
grande quantité d’articles. Ainsi, elles réduisent les coûts de manutention et d’expédition.

Les unités de chargement souvent utilisés dans le secteur du TRM sont les caisses, les
conteneurs, les futs et les conteneurs de vrac intermédiaires (IBC). Le tableau 7 illustre les types
des UC :
Tableau 7 : Types des unités de chargement souvent utilisées dans le TRM

Caisses Conteneurs Fut IBC

32
5. Veille technologique

Dans les dernières années, des nouvelles technologies ont eu naissance. Ces technologies ont
apporté des solutions puissantes pour les industriels et les prestataires logistiques en termes de
performance et d’optimisation des processus et de satisfaction clients.

Ces technologies ont trouvé un large champ d’application dans le domaine de la logistique.
Dans le cadre du projet Smart DLSP, nous avons intérêt à faire le tour des technologies
moderne, actuellement exploitables dans la chaine logistique.

Dans un premier temps, on va mettre en lumière les technologies de pointe existant


actuellement, comme présenté dans le tableau 8 :

Tableau 8: Technologies de pointe

Technologie Définition
Cinquième génération des standards pour la téléphonie mobile qui se caractérise par un débit
La 5G
important et une couverture plus large des terminaux connectés sans risque de saturation.
Internet des Infrastructure mondiale, qui permet d’interconnecter les objets (physiques ou virtuels) grâce
objets (IoT) aux technologies de l'information et de la communication existantes ou en évolution
Intelligence Technologie de mise en œuvre des techniques d’apprentissage permettant aux machines
artificielle (IA) d'imiter l'intelligence humaine.
Ensemble de données numériques produites par l’utilisation des technologies : données
Big Data
d’entreprises, données venant des capteurs, contenu web, transactions électroniques, etc.
Ou encore informatique en nuage, c’est une infrastructure dans laquelle la puissance de
Cloud
calcul et le stockage de données sont gérés par des serveurs distants auxquels les usagers se
computing
connectent via une connexion Internet.
Fabrication Impression 3D, c’est une technique de fabrication qui procède par ajout de matière en se
additive basant sur un fichier informatique représentant l’objet à fabriquer en 3D.
Maquettes Représentation géométrique d'un produit, généralement en 3D, réalisée sur ordinateur en
numériques vue de l'analyser, de le contrôler et d'en simuler certains comportements. Il s’agit
(Digital Mock- concrètement d’un objet complètement virtuel sous forme d’un fichier informatique.
up)
Machine équipée de capteurs, d'actionneurs et d'un système logique qui effectue des tâches
Robots
avec autonomie complète ou partielle.
Une forme de robots coopératifs sans autonomie, dédiés pour effectuer des tâches en
Cobots
collaboration avec l’être humain
Interface virtuelle, en 2D ou en 3D, qui vient enrichir la réalité en y superposant des
Réalité informations complémentaires, par l'intermédiaire d'un terminal qui filme le monde réel et y
augmentée (RA) incruste en direct des objets virtuels, animations, textes, données, sons que l'utilisateur
visionne à partir de l'écran.
Technologie qui permet de plonger une personne dans un monde artificiel créé
Réalité virtuelle numériquement. Il peut s'agir d'une reproduction du monde réel ou bien d'un univers
(RV) totalement imaginaire. L'expérience est à la fois visuelle, auditive et, dans certains cas,
haptique avec la production d'un retour d'effets.
Aéronefs sans passager ni pilote qui peut voler de façon autonome en suivant une trajectoire
Drones
prédéfinie ou être contrôlé à distance depuis le sol.
33
Le terme désigne la conjonction et la coordination entre les ressources informatiques et les
Systèmes cyber-
entités physiques. Il s’agit d’un système où des éléments informatiques qui collaborent pour
physiques
le contrôle et la commande d'entités physiques.
Technologie qui utilisent les ondes radio pour identifier automatiquement des objets ou des
RFID personnes menés d’une étiquette qui mémorise et récupère les informations à distance et qui
les communique à travers des ondes radio.
Un registre partagé et immuable qui facilite le processus d'enregistrement des transactions et
Block Chain
de suivi des actifs (tangibles ou incorporels) dans un réseau.

L’intégration des nouvelles technologies dans la chaine de distribution a apporté des atouts au
niveau du transport et de l’entreposage. Le tableau 9 présente les principales applications des
technologies modernes en faveur du transport routier de marchandises :
Tableau 9 : Applications des technologies de pointe dans de transport

Technologies Applications et atouts


− Optimisation de gestion de flotte à l’aide des capteurs IoT de surveillance.
− Suivi de marchandises tout au long des itinéraires par l’installation des capteurs IoT sur
les véhicules, les conteneurs et/ou la marchandise : Les capteurs transmettent des
informations sur le temps de voyage, les points de ralentissement, les éventuels
changements d’itinéraire, les modifications de température, les problèmes, les
accidents et l’état de fret.
IoT − Communication véhicule – véhicule en temps réel : échange de données entre deux
véhicules sur la route en juxtaposant à propos des conditions de trafic, des installations
logistiques à proximité, de leur état de santé, etc.
− Repérage des livraisons et ainsi optimisation des durées de livraison.
− Communication de la date de disponibilité de fret et la durée de stockage.
− Suivi et supervision des performances des chauffeurs qui sont centralisées et
transmises en temps réel aux acteurs concernés.
Dans le transport de fret, il y a deux types d’AGV ; les AGV terrestres et ceux aériens.
Les AGV terrestres sont dédiés pour la livraison des colis dans le cadre de la logistique du
dernier kilomètre. Ils se distinguent en ceux roulant sur la route et sous sur le trottoir.
Véhicules Le terme AGV aériens concerne principalement les drones assistants du livreur lors de la
autoguidés AGV tournée de livraison. Le déploiement de ce type de drones nécessite un terminal de
décollage et d’atterrissage et un support de réception où le client, en coordination avec le
livreur, vient prendre son colis.

Pour aller plus loin dans l’étude, nous avons mis l’accent sur les solutions développées par des
entreprises internationales spécialisées dans le secteur logistique et celles technologiques à base
des nouvelles technologies. Le tableau 10 suivant présente certaines solutions technologiques
développées mise en place par des entreprises logistiques mondiales :

34
Tableau 10 : Solutions développées à base de nouvelles technologiques

Société Solutions développées


− Picking par voix « Pick-by-Voice »
− Picking par voyant lumineux « Pick-by-Light »
− Picking par terminal RF « Pick-by-RF terminals »
Swisslog − Picking robotisé
− Palettisation robotisée
− Guidage de véhicules par GPS interne construit à base des capteurs fixés sur les
engins, des codes-barres et du système de gestion d’entrepôt (WMS).

Robots à pattes ayant capacité de marcher, monter des escaliers, éviter des obstacles,
traverser des terrains difficiles et suivre de manière autonome des itinéraires prédéfinis.
Ils peuvent assurer les fonctions suivantes :

− Communication, en temps réel, des données thermiques, acoustiques et visuels.


− Inspection des détails environnants (les installations, les zones, les objets, etc.)
− Cartographie du terrain
− Transport de charge utile pesant jusqu’à 14 kg
− Exécution autonome et planifiée de missions : collecte de données, surveillance,
Boston Dynamics
Intervention face aux incidents et évaluation de situations, inspection des
installations (jauges, machines, tuyaux…) pour détecter et vérifier les anomalies.

Bras robotisée pour la manutention et le déchargement de véhicules. Il s’agit d’un bras


robotisé à sept degrés de libertés ayant la capacité de perception assurée par
l’intelligence artificielle. Il est adaptable à variété de tailles, de types d’emballage et de
configurations d’empilage. Le bras est conçu pour faire :

− La manutention
− Le déchargement de véhicules
− Fourches intelligentes qui intègrent des balances de poids pour les transpalettes. La
palette envoie des alertes au conducteur lorsque la capacité de chargement a été
dépassée ou lorsque le centre de chargement est inégal. La solution est appliquée
Ravas aux chariots élévateurs et aux transpalettes.
− Pick by weight : Synchronisation des informations sur le poids de la commande avec
le WMS en temps réel via un terminal connecté. Le WMS alerte l’employé en cas
d’erreurs de poids.
− Navigation numérique : optimisation de localisation des articles sur les racks ainsi
que l’itinéraire à parcourir pour l’atteindre, par l’assistance de terminal mené de
réalité augmenté (RA).
− « Complete Check » : Achèvement de la livraison suivie par les appareils RA :
reconnaissance des colis non endommagés et confirmation automatique du
DHL
ramassage une fois le bon nombre atteint.
− Commerce international : Des dispositifs de RA vérifient les documents
commerciaux et détectent la classification des codes de marchandises, la traduction
des termes du commerce extérieur ou des étiquettes de colis.

35
− Intégration des dispositifs RA sur les pare-brise des véhicules. Ces dispositifs
analysent les données de circulation actuelles et affichent des informations dans le
champ de vision du conducteur, afin d’optimiser l’itinéraire, améliorer la sécurité
routière et minimiser la distraction du conducteur.
− DHL Resilience360 : Une solution qui fournit une visualisation multifournisseur de
la chaîne d’approvisionnement de bout en bout.
Toute perturbation à l’échelle mondiale est vérifiée pour estimer ses effets sur les
principales voies commerciales ; si elle présente un risque élevé, des stratégies
d’atténuation appropriées sont automatiquement déclenchées.
− Gestion intelligente de la consommation d’énergie grâce à des capteurs intégrés à
l’infrastructure d’entrepôt reliant les réseaux, les services publics et les lumières
Transwestern LED connectées. Ce système fait la gradation automatique de l’éclairage selon
l’activité et régule la consommation d’énergie des appareils, du chauffage et de la
ventilation, ce qui permet la réduction de la consommation d’énergie.
− Agheera propose une plateforme ouverte pour connecter divers dispositifs
télématiques et matériels de capteurs afin de consolider les données, permettant
Agheera
ainsi aux fournisseurs de logistique et aux clients de suivre tous les actifs et leurs
différents appareils à la fois.
− Surveillance du conducteur sur la route pour prévention des collisions potentielles,
via des caméras fixées dans le véhicule qui faites la surveillance des indicateurs clés
de fatigue, comme la taille des pupilles et la fréquence des clignotements des yeux.
Caterpillar Le conducteur reçoit alors des alertes lorsqu’il doit prendre une pause. En cas de
perte de l’attention sur la route, la solution active les alarmes audio et les vibrations
du siège. La caméra infrarouge est capable d’analyser les yeux d’un conducteur à
travers des lunettes et dans l’obscurité.
− Développement d’un camion commercial capable de décider de manière autonome
quand et comment il doit être entretenu. La technologie de capteurs a été intégrée
MoDe dans les systèmes d’huile et d’amortisseurs pour identifier la dégradation ou les
(maintenance à la dommages matériels. Les données sont transmises d’abord à une unité centrale dans
demande) le camion via un réseau sans fil, puis à une plate-forme de maintenance pour
l’analyse. Le conducteur ou les équipes de maintenance reçoivent donc
l’avertissement des problèmes potentiels.

6. Conclusion

Dans ce chapitre, nous avons réalisé un cadrage du périmètre scientifique et technologique du


projet Smart DLSP, via une étude documentaire et une veille technologique. Cette phase a
permis de clarifier l’environnement du travail, sur lequel on se base dans les phases suivantes
du projet.

36
CHAPITRE 3 : ETUDE ANALYTIQUE DE LA CHAINE DE
TRANSPORT

1. Introduction

Après avoir élaboré l’étude documentaire de la chaine de transport, on va entamer ici son
analyse, afin d’identifier les problématiques des acteurs logistiques et de déterminer leurs
besoins. D’abord, nous allons présenter la chaine de valeur du TRM. Ensuite, nous allons
diagnostiquer les problèmes rencontrés par les acteurs logistiques. Et vers la fin du chapitre,
nous allons identifier leurs besoins.

2. Chaine de valeur du transport routier de marchandises

Le TRM est la fonction qui assure le déplacement de la marchandise d’un lieu à un autre via des
véhicules routiers sur des trajets terrestres. La marchandise, souvent désignée par unité de
chargement (UC), peut être chargée et transportée directement vers sa destination finale,
comme elle peut passer par plusieurs lieux de stockage intermédiaires avant d’arriver au
destinataire final. De manière globale, la marchandise subit sur son trajet les manipulations
suivantes :

− Chargement : Cette opération consiste à placer les UC dans la caisse du véhicule en faisant
appel aux manutentionnaires et aux moyens de manutention spécialisés. Le chargement
nécessite certaines opérations au préalable notamment, le conditionnement, l’emballage, le
tri, la préparation de commande, la vérification et le contrôle et la manutention.
− Transport : acheminement de la marchandise par le véhicule.
− Entreposage : Stockage de la marchandise dans un entrepôt pour une période de temps.
− Transbordement : transfert de la marchandise d’un moyen de transport à un autre, par
l’intermédiaire des endroits e dédiés (plateformes d’échange, entrepôts).
Le transbordement trouve son utilité pour plusieurs raisons, à savoir entre autres :
o Changement de mode de transport (maritime –routier, ferroviaire – routier, etc.),
o Répartition de fret en plusieurs commandes ayant des destinations différentes,
o Groupage de frets ayant la même destination,

37
− Déchargement : Pareil au chargement, cette opération fait appel aux manutentionnaires et
aux moyens de manutentions.

La figure 7 illustre la chaine de valeur du TRM en se focalisant sur le flux de marchandises, les
acteurs contribuant ainsi que les opérations effectuées dans chaque étape. Le transfert de fret
entre le véhicule à l’entrepôt se fait en boucle selon le nombre de transbordements effectués :

Figure 7 : Chaine de valeur du transport routier de marchandises

3. Problématiques des acteurs logistiques

Les acteurs logistiques intervenant dans le TRM rencontrent des problématiques qui affectent
l’efficacité de leurs processus et diminuent leur rentabilité.

Dans le cadre du projet Smart DLSP, on s’intéresse à identifier les problématiques majeures
dans la chaine de transport pour proposer par la suite des solutions. Nous avons procédé à faire
le cadrage logique de ces problématiques, en réalisant l’arbre à problèmes. Le tableau 11
présente certaines problématiques chez les professionnels de la logistique de distribution :

Tableau 11 : Problématiques des acteurs du TRM

Acteurs Chargeur Transporteur Entreposeur Client


• Insatisfaction • Rentabilité • Investissement • Retard production / de
Problématiques
client • Investissement • Prise de risque distribution
• Prise de risque • Insatisfaction des clients du
client

38
3.1. Chargeur

Le chargeur est à l’origine de la marchandise à transporter. Il peut être un industriel, un


distributeur intermédiaire ou le client du fret lui-même.

La problématique majeure que rencontre les chargeurs est l’insatisfaction de leurs clients. Le
client se comporte insatisfait, principalement à cause des retards de réception, des dommages
affectant la qualité de la marchandise transportée et/ou la perte de cette dernière.

En ce qui concerne le retard de livraison, il existe deux formes de retards :

1. Les retards récurrents, qui résultent de la mauvaise exécution du planning et du sous-


engagement des acteurs en amont de la chaine de transport.
2. Les retards trop longs, qui sont souvent conséquence des problèmes survenus (les
imprévus).

Les retards peuvent survenir tout au long des phases de la livraison. Premièrement au niveau du
chargement de fret. Le non-respect du planning, le manque d’infrastructure et des moyens
adéquats pour la manutention et les incidents sont les principales causes de ces retards.

La marchandise est sur la route sous la responsabilité du transporteur. Le mauvais état du


véhicule et/ou des routes, la mauvaise exécution du planning, la mauvaise optimisation du trajet
ou aussi les mauvaises pratiques de conduction du chauffeur sont des générateurs de retards.

Au niveau de l’entrepôt, la mauvaise exécution des plannings, la mauvaise gestion des


opérations (manutention, stockage, préparation de commandes, etc.) ainsi que le retard de
chargement-déchargement sont générateurs de retards. La figure 8 résume les causes du retard
tout au long de la chaine de transport :

39
Figure 8: Retard de livraison dans la chaine de transport

La sensibilité de la marchandise aux manipulations qu’elle subit tout au long de son trajet, rend
le dommage fort probable. Le non-respect des conditions de manipulation et la chute de
marchandise (horizontalement ou verticalement) sont des causes de dommage de fret. Et ce,
lors du conditionnement, chargement-déchargement, entreposage ou transport. La figure 9
présente les causes racines du dommage de fret :

Figure 9 : Dommage de fret dans la chaine de transport

La perte de fret est plus grave que le dommage. C’est une situation à conséquences lourdes que
ce soit financièrement ou encore sur la continuité de l’activité du client. La perte peut être
causée par les erreurs de gestion et de documentation, le vol, la chute ou encore l’expiration de
la date d’utilisation de la marchandise, favorisant sa détérioration. La figure 10 résume les
situations de perte possibles :

40
Figure 10 :Perte de fret dans la chaine de transport

L’insatisfaction client est donc une problématique importante à gérer par le chargeur, pour ainsi
atténuer les conséquences potentielles qui en résultent. Des dépenses supplémentaires qui
absorbent les gains et atténuent la marge bénéficiaire, l’affectation de la réputation de
l’entreprise ou, le pire, la perte des clients sont toutes des conséquences potentielles de
l’insatisfaction de client. La figure 11 présente les conséquences de l’insatisfaction des clients :

Figure 11 : Conséquences de l'insatisfaction client sur le chargeur

41
3.2. Transporteur

Le transporteur est l’acteur logistique disposant des moyens de transports. Il s’occupe de la


livraison du fret. Les problématiques que rencontrent les transporteurs sont l’atténuation de la
rentabilité, la prise de risques et la nécessité des investissements lourds.

▪ Rentabilité

La rentabilité du service du transporteur reste souvent dans des seuils bas ; La multitude des
coûts et taxes, les volumes réduits de frets par rapport à la capacité des véhicules, le retour à
vide et la concurrence par le transport informel sont tous des problèmes qui absorbent les gains.

Le problème de la gestion des palettes s’ajoute aux causes de la chute de rentabilité, du fait qu’il
représente un processus coûteux pour le transporteur : En fait, les professionnels se mettent
d’accord sur deux manières de gestion des palettes :

1. Échange de palettes nombre par nombre, ce qui exige au transporteur de déposer autant de
palettes vides chez le chargeur que celles palettisant le fret qu’il va transporter.
2. Comptabilisation des palettes de telle sorte qu’il y aura un seuil de tolérance de débit et de
crédit des palettes entre les chargeurs et les transporteurs.

Le processus de gestion des palettes devient coûteux pour le transporteur, pour les raisons
suivantes :

− La dégradation des palettes à causes des manipulations multiples nécessite l’achat de


nouvelles palettes ou l’entretien des palettes dégradées pour compenser les palettes
obsolètes. Les deux solutions apportent des coûts supplémentaires.
− En adoptant le mode de débit – crédit des palettes, le transporteur souvent dépasse le seuil
de crédit négocié avec le chargeur. Ce dernier alors, procède à acheter autant de palettes
pour réguler l’écart. Ces palettes sont comptabilisées à prix standard des palettes neuves sur
le compte du transporteur.
− La règlementation de crédit des palettes nécessite leur transport vers le site du chargeur
débiteur. Ce trajet parcouru est souvent non remboursable par le chargeur et compté alors
comme étant un trajet à vide.
− La mauvaise traçabilité des palettes cause souvent leur perte, ce qui nécessite la
compensation des palettes perdues.

42
Tous sont des facteurs absorbant une grande marge du revenu généré. Il en résulte, l’atténuation
de la rentabilité et la multiplication des dépenses ce qui peut conduire à la suspension de
l’activité. La figure 12 présente l’arbre à problèmes de la problématique de la rentabilité des
transporteurs, tout en présentant les causes et les conséquences :

Figure 12 : Arbre à problèmes de la rentabilité chez les transporteurs

▪ Prise de risque

La deuxième problématique chez le transporteur est la prise de risque. Que ce soit par manque
de prudence ou manque de contrôle et suivi, la prise des risques est toujours existante au niveau
de la manière de traitement de fret et au cours du trajet. Cela peut avoir des conséquences
importantes surtout l’affectation du planning et le dommage voire la perte du fret. La figure 13
présente l’arbre à problèmes de la prise des risques chez les transporteurs :

43
Figure 13 : Arbre à problèmes de la prise des risques chez les transporteurs

▪ Investissement

La troisième problématique que rencontre le transporteur est la nécessité permanente


d’investissement afin d’améliorer la qualité de service face à la concurrence.

Un parc véhicules vieux, un système de gestion de flotte obsolète et une absence de visibilité de
fret tout au long du trajet sont des axes qui nécessitent un investissement lourd.

La vétusté du parc véhicules génère en permanence des coûts non souhaitables pour couvrir les
dépenses en maintenance. En plus, les véhicules deviennent de plus en plus moins performants ;
La consommation de carburant augmente bien que le tonnage à charger est de plus en plus
réduit.

D’autre part, la gestion de la flotte, l’exécution du planning et le suivi de fret nécessitent tous la
disposition d’une solution informatique moderne de gestion de transport (TMS) et des
terminaux intelligents de suivi de fret en temps réel à savoir les capteurs IoT et la technologie
RFID. Plusieurs prestataires de transport utilisent encore des systèmes de gestion obsolètes qui
ne favorisent pas le traitement de données en temps réel et n’assurent pas la prédiction des
évènements. En plus, malgré le suivi de véhicule sur route, l’état du fret dedans reste inconnu ce
qui empêchent la prévention des problèmes.

Dans un contexte évolutif, la modernisation de la flotte et du système de gestion de transport


ainsi que l’intégration des technologies de pointes sont des voies d’investissement à la fois
pertinentes et lourdes qui misent en jeu la trésorerie du transporteur et sa position
concurrentielle.

3.3. Entreposeur

L’entreposeur est l’acteur logistique disposant d’un entrepôt et assurant ainsi le stockage de
marchandises. L’entreposeur a deux problématiques principales : la prise des risques, et
l’investissement.

▪ Prise de risque

La prise de risques dans l’entrepôt se traduit souvent par le non-respect des conditions de
sécurité et la mauvaise gestion des flux et des ressources. Les conséquences potentielles sont de
gravité variante, de l’affectation du planning jusqu’à la suspension de l’activité.

44
Une mauvaise gestion de flux physiques dans l’entrepôt peut entrainer des perturbations sur les
la circulation des flux physique et sur le planning de l’activité. Plusieurs facteurs peuvent être à
l’origine, à savoir, les erreurs qui peuvent être commis lors de la réglementation de la
documentation des marchandises ou par le stockage de fret dans un mauvais endroit ou encore
par le mélange de commande.

La prise de risque se manifeste aussi dans la négligence des mesures de sécurité. Ce qui peut
générer plusieurs problèmes, perturbant ainsi l’activité normale de l’entrepôt. La figure 14
illustre les sources potentielles de problèmes liées au non-respect de mesures de sécurité :

Figure 14 : Prise de risque au niveau du non-respect des mesures de sécurité

Les conséquences de la prise de risque dans l’entrepôt sont principalement : l’affectation de


l’exécution du planning, générant ainsi des retards, la perturbation de l’activité de l’entrepôt et
la génération des dépenses supplémentaires.

▪ Investissement

Pour moderniser son offre et adopter les dernières technologies, l’entreposeur se trouve amener
à faire des investissements importants. Cela fait appel à :

− La modernisation des engins et des équipements,


− L’adaptation des zones logistiques pour satisfaire la diversité de besoins de stockage,
− L’implication des technologies favorisant la prédiction des évènements l’automatisation
des processus et la traçabilité des flux.

45
3.4. Client

Dans une chaine logistique étendue, le flux physique débute chez le premier fournisseur passant
par les professionnels intermédiaires jusqu’au client final (consommateur). Par conséquent, le
client de fret rencontre la problématique de l’interruption d’activités, qui provoque le retard
d’exécution son planning d’activité et/ou l’affectation de l’activité de ses clients (clients du
client). Les problèmes à l’origines sont principalement en amont de la chaine de transport. La
figure 15 présente l’arbre à problèmes de l’interruption de l’activité chez le client de fret :

Figure 15 : Arbre à problèmes de l’interruption d’activité chez le client

L’interruption de l’activité de clients du client peut avoir des conséquences comme


l’augmentation des dépenses couvrant les dégâts et les pénalités et l’insatisfaction des clients du
service fournit, voire leur perte.

46
4. Besoins des acteurs de la chaine de transport

Dans la section précédente, nous avons souligné les problèmes engendrés tout au long de la
chaine de transport par les acteurs logistiques. Le retard d’exécution des plannings, absence de
cartographie / traçabilité des processus et l’apparition des événements imprévus sont des
problèmes dominants et communs entre les acteurs logistiques.

Dans cette section, on va éclairer les besoins actuels des acteurs logistiques, principalement en
digitalisation et technologies de pointe.

4.1. Visibilité et traçabilité de fret

La traçabilité est le pouvoir de retrouver l'identification, l’historique et l'utilisation de la


marchandise en tout moment, tout au long de la chaîne de distribution. Alors que la visibilité se
traduit par le suivi en temps réel de la localisation du fret.

La mise en place d’un système qui favorise une bonne traçabilité de la marchandise fournit aux
acteurs logistiques une visibilité de leurs processus ainsi que l’avancement de l’exécution.
Aujourd’hui, tous les acteurs de transport ont intérêt à savoir en temps réel la localisation de la
marchandise et son état (dit état de santé).

4.2. Optimisation de processus

L’exécution des activités liées au transport trouve encore des contraintes d’optimisation. La
digitalisation des processus présente un atout important pour répondre à ce besoin. Le tableau
12 présente les besoins en digitalisation des acteurs logistiques dans la chaine de transport :
Tableau 12 : Besoins des acteurs logistiques en digitalisation

Acteur Besoins en digitalisation


Chargeur - Gestion des clients et des transporteurs
- Affectation de fret
- Optimisation du chargement
- Gestion des retours et des palettes
Transporteur - Gestion des commandes et clients
- Planification des envois
- Gestion de flotte
- Optimisation de itinéraires
Entreposeur - Gestion des commandes et des clients
- Gestion des flux entrées – sorties
- Gestion des zones logistiques
- Gestion des accès
- Gestion des engins et du parc matériel
- Optimisation de la circulation des flux physiques et des engins dans l’entrepôt
47
- Optimisation de l’inventaire
- Exécution omnicanale des activités
Client - Optimisation du déchargement
- Gestion des retours et des palettes

4.3. Inventaire moderne

L’inventaire est une activité nécessaire dans l’entrepôt pour le décompte des marchandises en
stocks et des parcs matériels des engins, des équipements et des installations. Cela permet
l’intervention au bon moment en cas d’anomalies. Cette mission est assez complexe à cause des
grands volumes des entités à décompter et de leur diversité.

L’inventaire informatique grâce au système d’information présente un atout dans l’entrepôt ;


via des terminaux connectés au SI, à chaque opération exécutée, la marchandise est identifiée
par le code-barres ou par la puce RFID y intégrée. Les informations sont synchronisées en
temps réel avec le système d’information. Cependant, la limite de ce mode d’inventaire se
manifeste par certains évènements non saisis sur le système (vols, erreurs, dégradation de stock,
opérations non saisies, etc.).

L’inventaire physique est donc essentiel pour confirmer les résultats digitaux et corriger les
erreurs. L’intégration des technologies modernes optimise l’inventaire physique à savoir
l’inventaire par des drones menés de la technologie RFID.

4.4. Prédiction des évènements et gestion des imprévus

Les acteurs de la chaine de transport ont besoin de prédire les opportunités et les risques ; d’une
part, la prédiction des commandes permet une meilleure planification de l’activité et une
optimisation de processus. D’autre part, elle permet la prédiction et la prévention des
évènements indésirables pouvant affecter délais et marchandises, comme les risques et les
crises.

A ce stade, les technologies de l’intelligence artificielle et la big data trouvent application ; la


construction des modèles d’apprentissage automatiques, capables de prédire les opportunités et
les risques, permet aux acteurs logistiques d’ajuster leurs processus pour tenir en compte les
évènements au préalable.

48
5. Conclusion

L’analyse de la chaine de transport a permis de mettre en lumière les points faibles de la chaine
de transport et les éléments qui menacent la fluidité de ses activités. Par conséquent, nous avons
pu éclairer les besoins des acteurs logistiques de la chaine de transport. Dans ce qui suit, on va
entamer la phase d’intervention qui vise l’optimisation du processus de transport de
marchandises.

49
CHAPITRE 4 : PREPARATION DE DONNEES ET GENERATION
DE BASE DE DONNEES SYNTHETIQUES

1. Introduction

Après avoir analysé la chaine de transport et avoir mis l’accent sur les défis des prestataires
logistiques (transporteurs), on s’est focalisé sur l’optimisation des trajets des véhicules de
TRM. Ce chapitre est consacré pour la description de la démarche suivie afin d’élaborer une
base de données synthétiques sur les trajets. En premier, on va construire un réseau de livraison.
Ensuite, on va préparer des règles statistique et probabilistes des données. Vers la fin, on va
réaliser une base de données qui va servir pour l’apprentissage des modèles de prédiction des
facteurs de risque.

2. Objectifs du projet et mise en œuvre des solutions

2.1. Objectifs du projet

L’objectif du projet de stage est de développer un modèle d’optimisation de trajets, qui tient en
compte les facteurs suivants :

− L’optimisation de la distance à parcourir


− Le choix du trajet ayant moins de risques : accidents, dommages / pertes de fret, retards et
surcoût engendré.

Le surcoût englobe tous les frais supplémentaires engendrés pendant une livraison et qui sont
hors du coût standard prévu. Les accidents, les dommages et les pertes de fret ainsi que les
retards sont souvent à l’origine des surcoûts.

En réalité, les transporteurs souscrivent à des assurances sur leurs livraisons. Pourtant, les
facteurs étudiés sont à optimiser quel que soit le cas et ce, pour au moins les deux raisons
suivantes :

− Les retards, les pertes et les dommages de fret affectent directement la satisfaction du client.
− Les assurances sont souvent typiques et ne couvrent pas tous les risques.

50
On a divisé le travail en deux volets : l’optimisation du trajet en fonction des facteurs de risque à
savoir : accidents, dommages, pertes, retards et coûts d’une part et l’optimisation de la distance
d’autre part. par la suite, le choix du trajet optimum va prendre en considération tous les
facteurs à la fois.

2.2. Mise en œuvre

La mise en œuvre du projet est faite sous le langage de programmation Python. Les outils
informatiques exploités sont le logiciel Anaconda, plus précisément le « Notebook Jupyter » et
le service « Google Colab » qui permet de développer et d’exécuter des algorithmes python en
ligne.

Le choix du langage Python justifié par le fait qu’il est mieux adapté pour l’implémentation des
modèles de l’apprentissage automatique grâce à ces bibliothèques dédiées.

Le fond de ce chapitre est consacré pour l’explication de la démarche suivie pour la résolution
de la problématique, en point de vue démarches et algorithmes employés. Les codes pythons
seront présentés explicitement et avec commentaires dans les annexes.

3. Architecture du réseau de livraison

Dans le cadre du projet Smart DLSP, on considère le réseau de livraison comme étant des zones
logistiques (ZL), chacune contient des points logistiques (PL).

On définit un point logistique, tout lieu qui peut incuber des opérations de chargement et/ou de
déchargement de fret. Le terme inclut les entrepôts, les plateformes logistiques, les unités/zones
industrielles, les ports, les magasins, les zones d’activité, etc.

Les PL sont interconnectés par des routes, dans une configuration ou en distingue entre
connexions internes entre les PL de la même ZL et connexions interzones qui lient entre des PL
appartenant à deux zones, souvent, géographiquement adjacentes.

L’infrastructure du transport est modélisée, par un graphe connexe et pondéré : la connexité est
justifiée par l’existence d’un trajet liant chaque paire de PL. En ce qui concerne la pondération,
elle peut être le nombre de kilomètres à parcourir (distance). Selon la direction des routes (un
sens de circulation, ou bien deux sens), le graphe peut être orienté ou non orienté. On considère
ainsi :

51
− Les sommets du graphe sont les PL,
− Les arêtes entre les sommets représentent les routes qui relient les PL ; une arête peut être
dans la réalité une route, un tronçon de route, plusieurs routes ou plusieurs tronçons de
routes.

La figure 16 présente la modélisation du réseau de transport :

Figure 16 : Modélisation du réseau de transport routier de marchandises

4. Construction du réseau de livraison

4.1. Construction du réseau

Suivant l’architecture expliquée ci-dessus ce concept, nous avons construit un modèle de réseau
de livraison, qui contient 12 ZL, chacune contient 13 PL. La configuration des PL est identique
dans les 12 ZL, cependant, les distances ne le sont pas.

Pour simuler les propriétés réel d’un réseau de distribution, nous avons considéré qu’un PL est
connecté seulement avec les PL voisins. Pareil pour les ZL ; les connexions existent entre les
ZL géographiquement adjacentes (Voir annexes A et B). La figure 17 présente une
schématisation du modèle de réseau de transport construit :

Connexions entre ZL : Chaque connexion représente un Chaque ZL contient 12 PL :


nombre de routes entre 1 et 4 :

52
Figure 17 :Architecture du réseau de livraison construit

4.2. Extraction des trajets

Pour simuler des livraisons entre les différents PL du réseau, nous avons besoin d’une base de
données des trajets. Pour cette raison, nous avons appliqué l’algorithme de parcours en
profondeur (en anglais Depth-First Search ou DFS). Cet algorithme permet de déterminer
l’existence d’un chemin entre deux sommets d’un graphe. Son application de manière récursive
permet d’extraire tous les trajets possibles entre deux sommets du graphe (PL).

Le principe de l’algorithme DFS consiste à explorer un parcours depuis le sommet de départ, en


profondeur en suivant un chemin jusqu’à atteindre le sommet de destination, ce qui marque
l’obtention du premier chemin. Il revient sur le sommet précédent pour suivre un autre chemin
jusqu’à atteindre le sommet de destination. L'exploration s'arrête quand tous les sommets
depuis le sommet de départ ont été visités.

On a utilisé cet algorithme en deux étapes : En premier, nous avons extrait tous les trajets
possibles entre les 13 PL dans une ZL (les trajets dans toutes les ZL sont identiques), ce qui
représente la base de données de trajets intérieurs des ZL. Par la suite, nous avons appliqué
l’algorithme pour extraire les connexions interzones (Voir annexe C).

L’exécution de l’algorithme DFS de manière récursive nécessite un traitement intense de


données, cela requiert un temps d’exclusion important (plusieurs heures voire quelques jours).
Pour cette raison, le réseau construit est restreint (12 ZL, chacune contient 13 PL de
configuration identique).

La base de données de trajets entre les 13 PL d’une ZL respecte les règles suivantes :

− Un point logistique PL i a une connexion avec chacun des deux points logistiques adjacents
PL i+1 et PL i+2, cette condition est choisie pour les raisons de complexité de calcul.
− Le graphe est non orienté : la matrice d’adjacence est symétrique par rapport à la diagonale.
Cela désigne que la circulation se fait dans les deux sens.

53
− La distance entre deux PL connectés dans une zone est entre 1 et 50 km.

L’exécution de l’algorithme DFS deux fois a permis d’obtenir :

− Tous les trajets entre chaque paire de points logistiques PL i et PL j dans une ZL k.
− Tous les trajets entre chaque paire de zones logistiques ZL p et ZL q.

4.3. Base de données des itinéraires des véhicules

La livraison de fret dans un réseau de distribution s’effectue entre les différents PL. les
itinéraires empruntés par les véhicules sont largement diversifiés. Pour simuler cette propriété,
nous avons élaboré un algorithme qui choisit aléatoirement un point de départ (PL dpr) et un
point de destination (PL dst) dans le réseau de distribution construit. Par la suite il construit un
chemin entre les deux points et il calcul la distance parcourue. Le but de cette phase est de
retourner une base de données de trajets empruntés avec leurs distances parcourues. Nous avons
généré une base de données de 30 milles trajets de livraison aléatoires dans le réseau de
distribution. La figure 18 illustre un exemple de trajet emprunté :

Figure 18: Trajet parcouru pendant une livraison entre deux points logistiques

4.4. Base de données synthétiques

La mise en œuvre des algorithmes de l’apprentissage automatique nécessite une démarche bien
structurée :

1. Identification du besoin / but de l’entreprise : L’entreprise a besoin d’optimiser les trajets


des véhicules de TRM, à travers la prédiction des facteurs de risque sur ces trajets.

54
2. Collecte de données : l’apprentissage automatique nécessite un historique de données.
Pourtant, il n’est pas évident de trouver des données utiles sur internet à propos du TRM.
Pour cette raison, nous avons généré une base de données synthétiques à base des données
statistiques conclues, à travers une investigation dans la littérature.
Les données synthétiques sont des données générées artificiellement, tout en simulant les
propriétés et les tendances statistiques d'un processus/phénomène réel.
3. Préparation de données : identification des paramètres en relation de causes à effets avec
les facteurs de risque étudiés et génération de la base de données synthétiques.
4. Choix du modèle – Entrainement et évaluation du modèle – Test du modèle: pour le choix
du modèle le plus adapté, nous avons essayé la régression multivariée « multivariate
regression », les réseaux de neurones artificiels « ANN » et la variante des réseaux de
neurones récurrents : « LSTM ». La « multivariate regression » n’a pas donné des
prédictions fiables. Même chose pour les « ANN », dont la précision reste inférieure à 65%.
Seuls les « LSTM » qui ont dépassé 70% en précision. Donc on a adopté les modèles
LSTM.

Les paramètres ayant relation de causalité avec les facteurs de risque (accidents, retards, pertes,
dommages et coûts), doivent être directement dépendants du trajet ; Ce qui exclut l’influence du
facteur humain et l’état de santé de véhicule. Les paramètres pris en compte sont explicité dans
la figure 19 :

Figure 19 : Paramètres liés aux trajets et sont à l’origine des facteurs de risques

55
▪ Evaluation qualitative des paramètres

Pour bien exprimer l’influence de chaque paramètre dans l’optimisation de trajet, nous avons
proposé une évaluation qualitative des différents paramètres. Le tableau 13 présente sur une
échelle de 0 à 5, la signification de chaque nombre pour les différents paramètres :

Tableau 13 :Evaluation qualitative des paramètres

échelle 0 1 2 3 4 5
élément
distance _ très courte (de courte (de 50 à moyenne (de longue (de 500 très longue
1 à 50 km) 250 km) 250 à 500 km) à 1000 km) (plus de 1000
km)
état de route en bon route peu route à route très route
l’infrastructure état dégradée dégradation dégradée impraticable
moyenne
accident pas d’accident accident léger accident grave accident très _ _
grave
congestion pas de congestion très congestion congestion congestion congestion
congestion courte courte moyenne longue très longue
dommage de pas de dommage de 0 de 5 à 15% de 15 à 30% de 30 à 50% de 50 à 100%
fret dommage à 5% du
volume totale
de fret
perte de fret pas de perte perte de 0 à de 5 à 15% de 15 à 30% de 30 à 50% de 50 à 100%
5% du volume
totale de fret
retard de pas de retard retard faible retard moyen grand retard très grand annulation de
livraison retard commande
coût coût standard surcoût faible surcoût moyen surcoût cher surcoût très _
cher

▪ Distance parcourue – nombre d’échanges et nombre de chargements/déchargement

À base de la distance totale à parcourir pendant une livraison, on estime le nombre d’échanges
possible. D’une manière générale, plus la distance augmente, plus il est probable d’effectuer
plusieurs échanges. Donc, pour un trajet emprunté, on suppose que le nombre d’échanges
possibles varie entre 0 et 6 échanges.

La livraison par échanges est souvent adoptée pour les livraisons à longues distances où un
véhicule transporte le fret jusqu’un point d’échange (plateforme d’échanges, entrepôt), alors
qu’un autre véhicule se charge de continuer le reste de livraison jusqu’à la destination suivante
du fret (destination finale ou un autre point d’échange).

Bien entendu, le nombre d’échanges n’est pas une fonction linéaire de la distance et prend un
aspect aléatoire. Alors, nous avons proposé les règles probabilistes présentées dans le tableau

56
14 pour l’affectation du nombre d’échanges en fonction de la distance totale du trajet. A titre
d’exemple, pour une distance totale entre 250 et 500 km, la probabilité de ne pas faire un
échange est de 95% alors que la probabilité d’effectuer un seul échange est de 5% :

Tableau 14 : Nombre d’échanges en fonction de la distance

nb d’échanges 0 échange 1 échange 2 3 4 entre 5 et 6


échanges échanges échanges échanges
distance

entre 10 et 250 km 99% 1% 0% 0% 0% 0%

entre 250 et 500 km 95% 5% 0% 0% 0% 0%

entre 500 et 1000 km 70% 25% 5% 0% 0% 0%

entre 1000 et 2000 km 28% 46% 13% 7% 4% 2%

plus de 2000 km 10% 34% 27% 16% 9% 4%

Avec chaque échange effectué, on réalise un déchargement et un chargement. En ajoutant le


premier chargement chez le chargeur et le dernier déchargement chez le client, la relation entre
le nombre d’échanges et le nombre de chargements/déchargements est linéaire, suivant la
formule :

▪ Congestion

La congestion (embouteillage) arrive souvent dans les agglomérations et pendant les heures de
pointes. Les accidents et les mauvaises conditions météorologiques peuvent aussi générer des
congestions. Dans l’absence des données statistiques, on suppose que pendant un trajet de
livraison, le véhicule peut tomber en congestion une ou plusieurs fois. Du point de vue
macroscopique, on propose les règles présentés dans le tableau 15 comme évaluation globale
d’un trajet :
Tableau 15 : Règles probabilistes de la congestion

état 0 pas de congestion 1 très courte 2 courte 3 moyenne 4 longue 5 très longue
probabilité 16% 20% 19% 15% 16% 14%

57
▪ Etat de l’infrastructure routière

L’état de la route est un paramètre important qui peut être à l’origine des accidents, des retards
et du dommage de fret. On suppose que les routes dans le réseau de distribution obéissent aux
probabilités présentées dans le tableau 16 :

Tableau 16 : Règles probabilistes de l’état des trajets parcourus

état 0 bon état 1 peu dégradée 2 moyennement dégradée 3 très dégradée 4 impraticable
probabilité 81% 7% 5% 4% 3%

▪ Vols

Le vol de fret est une forme de la perte. Le vol souvent se fait lors de la manipulation de fret
surtout lors de l’échange. En cas de vol, on suppose que la quantité de fret volée, par rapport aux
fret total, obéit aux règles présentées dans le tableau 17 :

Tableau 17 : Règles probabilistes des vols et de l’estimation du volume volé de marchandise

Probabilité de 2 de 5 à 3 de 15 à 4 de 30 à 5 de 50 à
Quantité volée 1 de 0 à 5%
commettre un vol 15% 30% 50% 100%
97% pas de
3% vol probabilité 90% 5% 3% 1% 1%
vol

▪ Accidents

Les accidents routiers de manière générale sont résultats de :

− Conditions météorologiques,
− Conditions techniques du véhicule et de l’infrastructure routière,
− Facteur humain,
− Congestion.

Les paramètres directement liés au trajet sont les conditions météorologiques, l’état de
l’infrastructure et la congestion.

A base de certaines statistiques sur internet, nous avons estimé la contribution de chaque
paramètre dans les accidents. A noter, un accident peut être résultat d’une ou plusieurs causes à
la fois. La figure 20 présente les paramètres pris en compte pour prédire les accidents avec un
58
pourcentage estimé de la contribution de chaque paramètre dans les accidents :

Figure 20: paramètres liés au trajet et ayant contribution dans les accidents

D’après des statistiques inspirées des données statistiques en France, nous avons pu conclure un
ratio de 1% signifiant que pour un parc de n véhicules poids lourds, 1% commissent des
accidents.

D’autre part, d’après les statistiques des accidents commis par les poids lourds en France
pendant l’année 2018, la gravité des accidents suit la distribution suivante : Pour un nombre
d’accidents p commis, 52% sont des accidents légers, 33% sont graves et 14% sont très graves.

Ainsi la répartition des accidents prise en considération est présentés dans le tableau 18 :

Tableau 18 : les statistiques adoptées dans la génération des accidents

véhicule pas Gravité d’accident (en cas d’accident)


élément accidenté d’accident 1 : accident léger 2 : accident grave 3 : accident très grave
pourcentage 1% 90% 52% 33% 14%

▪ Dommage de fret

Le dommage de fret concerne la qualité de la marchandise transportée. Une marchandise peut


être endommagée pendant la livraison à cause des manipulations multiples (chargements /
déchargements), le mauvais état de l’infrastructure routière ou aussi à cause des accidents. Le
tableau 19 présente les règles statistiques proposées pour le dommage de fret :

Tableau 19 : Règles probabilistes du dommage de fret

Dommage de fret à cause de l’état de l’infrastructure routière :


0 pas de dommage 1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 50% 5 de 50 à 100%
0 bon état 100% 0% 0% 0% 0% 0%
1 peu dégradée 99% 1% 0% 0% 0% 0%

59
2 moyennement 95% 3% 1% 1% 0% 0%
dégradée
3 très dégradée 90% 5% 3% 2% 0% 0%
4 impraticable 70% 15% 7% 4% 3% 1%
Dommage de fret à cause des accidents :
0 pas de dommage 1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 50% 5 de 50 à 100%
Léger 99% 1% 0% 0% 0% 0%
Grave 40% 18% 13% 14% 10% 5%
Très Grave 35% 19% 14% 15% 11% 6%
Dommage de fret à cause de nombre de chargements – déchargements
nb de 0 pas de dommage 1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 50% 5 de 50 à 100%
charg/decharg
2 99% 1% 0% 0% 0% 0%
4 98% 2% 0% 0% 0% 0%
6 98% 2% 0% 0% 0% 0%
8 97% 2% 1% 0% 0% 0%
10 97% 2% 1% 0% 0% 0%
plus de 10 96% 2% 2% 0% 0% 0%

▪ Perte de fret

La perte de fret signifie que la marchandise n’est plus en disposition. La perte peut arriver à
cause de la destruction de la marchandise, en cas d’accidents par exemple. Elle peut être volée
pendant le transport, l’échange ou la manipulation. Les erreurs humaines sont aussi à l’origine
de la perte, notamment, le manque de traçabilité, les erreurs de stockage et de préparation de
commandes, oublie etc. le tableau 20 présente les règles adoptées pour la perte de fret :

Tableau 20 : Règles probabilistes de perte de fret

Perte causée par le nombre d’échanges


nb d'échanges 0 Pas de Perte 1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 5 de 50 à 100%
50%
0 100% 0% 0% 0% 0% 0%
1 99% 1% 0% 0% 0% 0%
2 99% 1% 0% 0% 0% 0%
3 99% 1% 0% 0% 0% 0%
4 99% 1% 0% 0% 0% 0%
plus de 4 98% 2% 0% 0% 0% 0%
Perte causée par les accidents
Gravité 0 pas de perte 1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 5 de 50 à 100%
d’accident 50%
Léger 99% 1% 0% 0% 0% 0%
Grave 40% 18% 13% 14% 10% 5%
Très Grave 35% 19% 14% 15% 11% 6%
Parte causée par les vols

60
1 de 0 à 5% 2 de 5 à 15% 3 de 15 à 30% 4 de 30 à 50% 5 de 50 à 100%
Vols 90% 5% 3% 1% 1%

▪ Retard

Le retard signifie que le véhicule exerçant la livraison dépasse le délai prévu pour la réception
de fret. Les retards ont plusieurs origines, notamment : les congestions, les accidents, l’état de
l’infrastructure routière et le nombre d’échanges (transbordements). Le tableau 21 présente les
règles proposées pour le retard de livraison :

Tableau 21 : Règles probabilistes des retards

Retard causé par le nombre d’échanges effectués :


nb d'échanges 0 pas de retard 1 retard faible 2 retard moyen 3 retard 4 retard très 5 annulation de la
important grand livraison
0 100% 0% 0% 0% 0% 0%
1 90% 3% 3% 2% 1% 1%
2 90% 3% 3% 2% 1% 1%
3 70% 12% 10% 4% 2% 2%
4 70% 12% 10% 4% 2% 2%
plus de 4 49% 22% 14% 8% 4% 3%
Retard causé par la congestion :
Congestion 0 pas de retard 1 retard faible 2 retard moyen 3 retard 4 retard très 5 annulation de la
important grand livraison
1 Très courte 99% 1% 0% 0% 0% 0%
2 Courte 97% 2% 1% 0% 0% 0%
3 Moyenne 43% 35% 12% 7% 3% 0%
4 Longue 8% 27% 35% 20% 9% 1%
5 Très longue 0% 3% 40% 30% 20% 7%
Retard causé par l’état de l’infrastructure :
Etat de la route 0 pas de retard 1 retard faible 2 retard moyen 3 retard 4 retard très 5 annulation de la
important grand livraison
0 bon état 100% 0% 0% 0% 0% 0%
1 peu dégradée 99% 1% 0% 0% 0% 0%
2 95% 2% 2% 1% 0% 0%
moyennement
dégradée
3 très dégradée 70% 20% 7% 1% 1% 1%
4 impraticable 26% 30% 20% 9% 9% 6%
Retard causé par les accidents :
Gravité 0 pas de retard 1 retard faible 2 retard moyen 3 retard 4 retard très 5 annulation de la
d’accident important grand livraison
Léger 30% 58% 6% 3% 2% 1%
Grave 4% 20% 10% 30% 29% 7%
Très Grave 4% 20% 10% 30% 29% 7%

61
▪ Coût

Le surcoût engendré pendant un trajet de livraison est le cumul des surcoûts générées par les
facteurs : accident, perte, dommage et retard. Le tableau 22 présente les règles d’estimation du
coût :

Tableau 22 : Règles probabilistes de l’estimation du coût de la livraison

coût engendré par les accidents


gravité d’accident 0 coût standard 1 surcoût faible 2 surcoût moyen 3 surcoût cher 4 surcoût très
cher
léger 80% 19% 1% 0% 0%
grave 6% 36% 28% 24% 6%
très grave 4% 26% 34% 27% 9%
coût engendré par la perte :
perte 0 coût standard 1 surcoût faible 2 surcoût moyen 3 surcoût cher 4 surcoût très
cher
0 pas de perte 100% 0% 0% 0% 0%
1 de 0 à 5% 90% 10% 0% 0% 0%
2 de 5 à 15% 85% 6% 5% 3% 1%
3 de 15 à 30% 2% 65% 25% 6% 2%
4 de 30 à 50% 0% 0% 55% 35% 10%
5 de 50 à 100% 0% 0% 10% 60% 30%
coût engendré par le dommage :
dommage 0 coût standard 1 surcoût faible 2 surcoût moyen 3 surcoût cher 4 surcoût très
cher
0 pas de dommage 100% 0% 0% 0% 0%
1 de 0 à 5% 99% 1% 0% 0% 0%
2 de 5 à 15% 97% 2% 1% 0% 0%
3 de 15 à 30% 20% 35% 36% 6% 3%
4 de 30 à 50% 3% 23% 33% 30% 11%
5 de 50 à 100% 1% 13% 16% 40% 30%
coût engendré par le retard :
retard 0 coût standard 1 surcoût faible 2 surcoût moyen 3 surcoût cher 4 surcoût très
cher
0 pas de retard 100% 0% 0% 0% 0%
1 retard faible 90% 9% 1% 0% 0%
2 retard moyen 40% 50% 7% 2% 1%
3 retard important 16% 24% 32% 20% 8%
4 retard très grand 3% 10% 33% 43% 11%
5 annulation de la 1% 1% 3% 40% 55%
livraison

▪ Superposition de degré

62
Dans la réalité, les effets des paramètres sur les facteurs étudiés peuvent se superposer à titre
d’exemples : pendant un trajet, la perte est survenue deux fois : à cause d’accident et vol. Donc
les quantités perdues doivent s’ajouter. Pareil pour le retard total qui peut être la superposition
de plusieurs retards causés par plusieurs paramètres. A ce stade, nous avons adopté une
politique d’addition des effets.

Soient y la variable « Target » qui dépend des paramètres (x1, …, xp) et Ef : l’effet du paramètre
actuel xk sur y. selon la valeur de y et la valeur de tmp, on décide la nouvelle valeur de y :

− Si y = Ef = 5 : la valeur de y ne change pas : effet très grave + effet très grave = effet très
grave
− Si y = Ef = 0 : la valeur de y ne change pas
− Si 0 < y = Ef < 5 alors y reçoit EF + 1. Exemple : retard long + retard long = retard très long
− Si y ! = Ef alors y reçoit la valeur la plus grande : max (y, EF). Exemple : retard court +
retard long = retard long.

Les règles statistiques proposées sont construites dans le but de simuler les propriétés réelles du
processus de transport. Nous avons par la suite réalisé un code Python (Voir annexe D), qui
génère une base de données de 3 millions d’observations tout en redoublant les 30 milles
distances trouvées précédemment. L’aspect aléatoire de l’algorithme assure la diversité de
valeurs des paramètres pour un trajet traversé plusieurs fois. Le tableau 23 présente les
paramètres de la base de données générée :

Tableau 23 : Paramètres de la base de données synthétiques

63
5. Conclusion

La disposition d’un grand nombre de données significatives sur un phénomène permet de


construire des modèles d’apprentissage automatique capable d’en faire sortir des informations
pertinentes. Ce chapitre a été consacré pour la démarche suivie pour la génération d’une base de
données synthétiques, simulant les propriétés réels du processus de transport.

64
CHAPITRE 5 : ELABORATION DES MODELES
D’OPTIMISATION ET POLITIQUE DE DECISION

1. Introduction

La phase d’optimisation consiste à élaborer un modèle d’optimisation de trajet, en tenant


compte les facteurs : distance, accident, dommage, perte, retard et coût. Dans ce chapitre, on va
détailler la démarche suivie et les modèles développés. En premier, on va entamer les modèles
de Deep Learning élaborés pour la prédiction des facteurs de risques, par la suite l’optimisation
de la distance et vers la fin on va proposer une politique de décision multicritère par la méthode
AHP.

2. Notions et définitions

La mise en œuvre du projet a fait appel aux algorithmes de l’apprentissage profond « Deep
Learning ». Plus précisément la variante LSTM des réseaux de neurones récurrents. Dans cette
section, on va définir les notions.

▪ Apprentissage automatique

L’apprentissage automatique « en anglais Machine Learning ou ML » est une technologie


d’intelligence artificielle permettant aux machines d’apprendre sans avoir été au préalablement
programmées spécifiquement à cet effet. Le processus d’apprentissage se fait sur un ensemble
de données. Le modèle d’apprentissage automatique apprend le comportement des données qui
représentent un certain phénomène.

▪ Apprentissage profond

L’apprentissage profond « en anglais Deep Learning » ou encore apprentissage en profondeur,


est un sous-ensemble de l'apprentissage automatique. Le terme fait référence essentiellement
aux réseaux de neurones. Les réseaux de neurones sont une sorte de simulation du
comportement du cerveau humain, bien que loin de correspondre à ses capacités. Leur structure
permet d’apprendre à partir de grandes quantités de données. L’apprentissage profond est un
sous ensemble de l’apprentissage automatique qui est à son tour partie de l’intelligence
artificielle.

65
▪ Réseaux de neurones artificielles

Les réseaux de neurones artificiels « Artificial neural network ou ANN » sont des systèmes
informatiques procédant par imitation du fonctionnement des neurones du cerveau humain. Un
réseau de neurones est composé d’au moins deux couches de neurones - une couche d’entrée et
une couche de sortie - et comprenant généralement des couches intermédiaires « hidden
layers ». (Voir annexe I)

▪ Réseaux de neurones récurrents

Les réseaux de neurones récurrents « en anglais Recurrent Neural Networks ou RNN) sont une
catégorie des réseaux de neurones caractérisés par le fait que l’information peut se propager
dans les deux sens en avant et en arrière « Forward and Backward Propagation ». Ces réseaux
possèdent des connexions récurrentes au sens où elles conservent des informations en mémoire
: ils peuvent prendre en compte à un instant t un certain nombre d’états passés. Pour cette
raison, les RNN sont mieux adaptés aux applications faisant intervenir le contexte, et plus
particulièrement au traitement des séquences temporelles.

Il existe plusieurs variantes des RNN, à savoir « Gated Reccurent Units ou GRUs », « Long
Short Term Memory ou LSTM » et « Bidirectional Recurrent Neural Networks ou BRNN ».
Dans le cadre du projet, an a fait appel aux réseaux LSTM. (Voir annexe I)

▪ Long Short-Term Memory ou LSTM

LSTM est un sous-type de Recurrent Neural Networks (RNN). Les LSTM sont explicitement
conçus pour répondre au problème de dépendance à long terme, par leur capacité de mémoriser
les informations pendant de longues périodes. Cette propriété est assuré grâce à une cellule
mémoire interne menée et contrôlée par trois portes :

− Porte d’entrée « Input gate » : décide si l’entrée doit modifier le contenu de la cellule.
− Porte d’oubli « Forget gate » : décide s’il faut remettre à 0 le contenu de la cellule.
− Porte de sortie « Output gate » : décide si le contenu de la cellule doit influer sur la
sortie du neurone.

66
3. Elaboration des modèles LSTM

A ce stade, l’objectif est de prédire les facteurs : accident, dommage, perte, retard et coût. Pour
cela, nous avons généré la base de données contenant les paramètres à leur origine. Pourtant, il
y a une interdépendance entre eux, comme schématisé dans la figure 21 :

Figure 21: Relations de Causes à effets entre les facteurs de risque étudiés

De ce fait, afin de prédire les facteurs de risque du trajet, nous avons élaboré trois modèles
LSTM : Le premier pour prédire les accidents, le deuxième pour prédire une sortie multiple :
dommage, perte et retard et le dernier modèle consiste à estimer le coût du trajet. La figure 22
présente un schéma explicatif :

Figure 22 : Approche suivie dans la prédiction des facteurs de risques

3.1. Prédiction des accidents

La prédiction des accidents revient à estimer le risque de commettre l’accident. Il s’agit


d’estimer une valeur sur l’échelle de 0 à 3 pour estimer s’il y aura un risque d’accident et si c’est
le cas, estimer sa gravité. Le tableau 24 présente les paramètres pris en compte pour la

67
prédiction des accidents :

Tableau 24 : Paramètres pris en compte pour la prédiction des accidents

Pluie Pluie Neige / Brouillard vent / Etat de Congestion Accidents


légère forte grêle tempête l'infrastructure

0 0 0 0 0 1 0 2

0 0 0 0 0 0 2 1

0 0 0 0 0 1 2 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Pour cette raison, nous avons élaboré un modèle LSTM simple ou encore nommé « Vanilla
LSTM ». Il s’agit d’un réseau LSTM de deux couches‫ ة‬sans couches intermédiaires ; la couche
d’entrée est de type LSTM, bien que la couche de sortie est de type « Dense » c-à-d une couche
ANN. Le modèle construit contient 10 neurones dans la couche d’entrée et un seul neurone dans
la couche de sortie, comme illustré dans la figure 23 :

Figure 23 : Modèle LSTM construit pour la prédiction des accidents

Le modèle est implémenté sous Python (Voir annexe E), à l’aide de la bibliothèque Keras : c’est
une bibliothèque Python dédiée pour l’apprentissage automatique, permettant ainsi de créer et
d'entraîner des modèles de Deep Learning. Le tableau 25 présente les caractéristiques du
modèle LSTM construit :

Tableau 25 : Propriètés du modèle de prédiction des accidents

68
Elément Désignation
Dimension de l’entrée : input_shape (1,f) ou ( None, 1, f), avec f = 7 est le nombre de paramètres
«Features ».
Couche Dropout Couche ajouté pour gérer le problème d’explosion / atténuation du
gradient.
Fonction d’activation Couche LSTM : « relu »
Couche Dense : « linear »
Optimiseur « adam »
Type d’erreur calculée « mean squared error »
Métrique calculée « accuaracy »

Après l’entrainement du modèle sur 3 millions de données, le modèle est devenu capable de
prédire les accidents avec une précision de 77%. La figure 24 illustre l’implémentation du
modèle LSTM sous Python ainsi que ses performances après l’entrainement (précision et
erreur) :

Figure 24 : Implémentation et évaluation du modèle de prédiction des accidents

3.2. Prédiction des dommages, pertes et retards

Les accidents sont parmi les causes des trois facteurs : dommage, perte et retard. Donc, le
facteur accident va être injectée dans la matrice des paramètres du deuxième modèle qui a trois
sorties indépendantes : dommage, perte et retard. Le tableau 26 présente les paramètres pris en
compte pour réaliser cette prédiction :

Tableau 26 : Paramètres pris en compte pour la prédiction de : dommage, perte et retard

Distance Nb Nb chargements Etat de Congestion Vols Accidents Dommage Perte Retard


échanges - déchargements l'infrastructure

4 1 4 1 0 0 2 1 3 0

69
5
1 4 0 2 0 1 1 0 4

5 1 4 1 2 1 0 0 1 1

5 1 4 0 0 0 0 0 0 0

5 1 4 0 0 0 0 0 5 0

A ce stade, nous avons élaboré un modèle LSTM plus complexe, composé d’une couche
d’entrée de 10 neurones et deux couches intermédiaires « hidden layers » de type LSTM la
première de 8 neurones alors que la deuxième contient 5 neurones, ainsi qu’une couche de
sortie de type « Dense » contenant 3 neurones, comme montré dans la figure 25 :

Figure 25 : Modèle LSTM pour la prédiction des facteurs : dommage, perte et retard

Dans la phase de l’implémentation du modèle sous Python (Voir annexe F), nous avons adopté
les propriétés présentées dans le tableau 27 :

Tableau 27 : Propriétés du modèle de prédiction de : dommage, perte et retard

Elément Désignation
Fonction d’activation Pour les trois couches LSTM : « relu »
Pour la couche Dense : « linear »
Optimiseur « adam »
Type d’erreur calculée « mean squared error »
Métrique calculée « accuaracy »

De même que le premier modèle, le modèle a été entrainé sur 3 millions de données. Après son
entrainement, le modèle est devenu capable de prédire les dommages, les pertes et les retards
d’une précision de 70%. La figure 26 illustre l’implémentation du modèle sous Python ainsi que

70
ses performances après l’entrainement :

Figure 26 : Implémentation et évaluation du modèle de prédiction de : dommage, perte et retard

3.3. Prédiction du coût

Afin d’estimer les surcoûts pendant un trajet de livraison, nous avons prédit les facteurs de
risques à l’origine. Ces derniers ont exploité comme matrice de paramètres dans la prédiction
du coût. Le tableau 28 présente les paramètres utilisés :

Tableau 28 : Paramètres pris en compte pour la prédiction du coût

Accidents Dommage Perte Retard Coût

2 1 3 0 0

1 1 0 4 2

0 0 1 1 1

0 0 0 0 0

0 0 5 0 0

Le modèle d’apprentissage construit pour cette raison, s’agit d’un LSTM simple « Vanilla
LSTM » d’une couche d’entrée de 25 neurones et une couche de sortie formée d’un seul

71
neurone. La figure 27 présente une schématisation du modèle :

Figure 27 : Modèle construit pour la prédiction du coût

Quant à son implémentation sous Python (Voir Annexe G), nous avons adopté les propriétés
présentés dans le tableau 29 :

Tableau 29 : propriètés du modèle de prédiction du coût

Elément Désignation
Fonction d’activation Pour la couche LSTM : « relu »
Pour la couche Dense : « linear »
Optimiseur « adam »
Type d’erreur calculée « mean squared error »
Métrique calculée « accuaracy »

Son implémentation est réalisée sous Python et son entrainement est fait sur les 3 millions de
données. Après l’entrainement, le modèle est devenu capable d’estimer le coût d’un trajet d’une
précision de 89%. La figure 28 illustre l’implémentation du modèle ainsi que ses performances
après l’entrainement :

Figure 28 : Implémentation et évaluation du modèle de prédiction du coût

72
4. Optimisation de distance

En ce qui concerne la distance parcourue pour exécuter une livraison, on s’intéresse à générer
une base de données restreinte contenant que les n meilleurs trajets (soit n = 20 plus courts
chemins) entre chaque paire de points logistiques (PL i , PL j) dans le réseau de distribution. Les
algorithmes du plus court chemin comme Dijkstra et Floyd – Warshall permettent de trouver le
plus court chemin entre deux points logistiques. Pourtant, le plus court chemin n’est pas
toujours le meilleur trajet à emprunter. Les autres facteurs étudiés précédemment rendent le
choix du trajet multicritère.

D’autre part, dans la réalité, on ne tient pas compte de tous les trajets entre deux PL comme
candidats à choisir pour livrer une commande. Les trajets ayant une distance assez grande par
rapport au plus court chemin sont automatiquement éliminés. De ce fait, on tient compte que
des n meilleurs chemins (n = 20 trajets), ayant une distance optimale.

5. Politique de décision

Pour choisir le meilleur trajet pour une livraison, nous avons procédé à une décision
multicritère entre les n trajets candidats (n = 20). Les critères de la décision sont : Distance,
Accident, Dommage, Perte, Retard et Coût. Pour le faire on a fait appel à la méthode d’aide à la
décision multicritère AHP « Analytic Hierarchy Process ».

La méthode AHP, est une méthode d'organisation et d'analyse de décisions. Elle contient trois
parties: le but ultime ou le problème à résoudre, toutes les solutions possibles, appelées
alternatives, et les critères sur lesquels se fait l’évaluation des alternatives. L'AHP fournit un
cadre rationnel pour une décision, en quantifiant ses critères et ses options alternatives, et en
reliant ces éléments à l'objectif global. La méthode AHP repose sur l’évaluation des alternatives
2 à 2.

En adoptant la méthode AHP, on définit les éléments suivants :

− Objectif, but ultime : choix du trajet le plus optimal


− Critères d’évaluation : Distance, Accident, Dommage, Perte, Retard et Coût
− Alternatives : les n trajets candidats

La première étape de la méthode AHP consiste à évaluer les critères de décision deux à deux
suivant une échelle allant de 1 à 9. Le tableau 30 présente l’échelle de comparaison :
73
Tableau 30 : échelle de pondération des critères

Degré d’importance Désignation

1 Importance égale

3 Faible importance

5 Importance essentielle ou forte

7 Importance démontrée

9 Importance absolue
A ce point, nous avons
2, 4, 6, 8 Valeurs intermédiaires entre deux jugements adjacents
réalisé la pondération
des critères deux à deux d’une manière rationnelle logique, du point de vue des Transporteurs.
Ainsi, La matrice de comparaison par paire pour les 6 critères est de dimensions : A(6 x 6) =
[aij], où aij représente l'importance relative du critère i par rapport au critère j. Le tableau 31
présente la comparaison des critères étudiés, deux à deux :

Tableau 31 : Pondération des facteurs étudiés

Distance Accident Dommage Perte Retard Coût


Distance 1 1/9 1/9 1/9 1/5 1/3
Accident 9 1 3 3 7 7
Dommage 9 1 1 1/3 7 9
Perte 9 1 3 1 7 9
Retard 3 1/9 1/7 1/7 1 3
Coût 3 1/9 1/9 1/9 1/3 1

La deuxième phase consiste à réaliser une pondération des alternatives deux à deux, et ce, par
rapport à chaque critère. Il s’agit d’une comparaison entre les deux alternatives par rapport à
chaque critère sur une échelle de 1 à 9. Pour le faire, nous avons adopté une politique de
pondération basée sur la différence de valeurs du critère entre deux alternatives tout en
transformant la différence en pondération.

Ainsi, pour chaque paire d’alternatives, on associe une pondération équivalente à la différence
de leurs valeurs du critère étudié, comme expliqué dans le tableau 32 :

Tableau 32 : Politique de pondération des alternatives par rapport au critère

Valeur absolue de la différence entre Pondération équivalente


valeur_critère (alternative i) et valeur_critère
(alternative j)
Echelle de 0 à 3 0 1 2 3 1 3 5 7
Echelle de 0 à 4 0 1 2 3 4 1 3 5 6 7
Echelle de 1 à 5 0 1 2 3 4 1 3 5 6 7
Echelle de 0 à 5 0 1 2 3 4 5 1 3 4 5 6 7

74
En appliquant ce principe, Soient deux alternatives A et B évalués par rapport au critère Cr_k.
Soient leurs valeurs de critère respectivement v1, v2. La différence |v1 – v2| est équivalente à la
pondération p. trois cas de figure existent, comme expliqué dans le tableau 33 :

Tableau 33 : Cas de figure de pondération des alternatives par rapport aux critères

Critère Cr_k … B …
… … …


– 2
1         1sivv 0 


A …          1 – 2
psivv 0  …

1
         1sivv
– 20 
p

… … … …
L’implémentation de la méthode AHP est réalisée sous Python (Voir Annexe H). Elle reçoit en
entrée la pondération des critères (distance, accident, dommage, perte, retard et coût) deux à
deux et les trajets candidats (alternatives) avec leurs valeurs de critères étudiés. Elle donne
comme sortie le meilleur trajet à emprunter. Puisqu’on s’intéresse au choix du trajet optimal
(minimisation des valeurs de critères), donc le trajet ayant le score minimal est le meilleur
trajet.

En ce qui concerne l’exploitation de la politique de décision, elle revient à exécuter l’algorithme


pour chaque livraison entre deux PL.

75
6. Résultats et gains

Vers la fin de ce projet de stage, nous avons pu développer un modèle d’optimisation de trajets

pour le transport routier de marchandises, tout en employant les algorithmes de Deep Learning

(LSTM), les algorithmes classiques (DFS) et la méthode d’aide à la décision multicritères

(AHP).

Ce modèle d’optimisation présente un ensemble d’atouts pour l’entreprise, à savoir:

− Prédiction précise des évènements garce à un certain nombre d’informations sur les

conditions des trajets : les modèles construits ont des précisions qui dépassent 70%.

Cela signifie que les modèles sont robustes et fiables.

− Rapidité de traitement et optimisation des calculs : après la phase d’entrainement du

modèle. La durée d’exécution des modèles de prédiction dure moins d’une seconde sur

Google Colab (ce qui équivaut à une machine de puissance normale). Pareils pour

l’exécution de l’algorithme de décision à base de AHP, comme montre la figure 29.

− Le modèle est opérationnel, que ce soit le cas de figure :

o Planification préalable du trajet,

o Ajustement du planning, en cours d’exécution d’un trajet (mode dynamique),

o Modèle valide avec les données d’historique (hors ligne) et les données en temps

réel (en ligne).

− Le modèle permet de déployer une intelligence qui rend le véhicule il même capable de

choisir et d’ajuster son trajet selon les données qu’il collecte en ligne.

76
Figure 29 : Durée d’exécution des trois modèles LSTM (à gauche) et de l’exécution de la politique de décision AHP (à

droite)

7. Conclusion

Ce dernier chapitre a présenté les solutions apportées pendant la période de stage.


Premièrement, nous avons élaboré trois modèles de Deep Learning à base de la variante LSTM
des réseaux de neurones récurrents, pour prédire les facteurs de risques d’un trajet. Ensuite nous
avons proposé une optimisation de distance entre chaque paire de PL à base de l’algorithme
DFS. Enfin, nous avons élaboré une politique de décision pour le choix du trajet optimum à
base de la méthode AHP.

77
CONCLUSION GENERALE
Le processus de la livraison de marchandises présente certaines problématiques, qui affectent la
rentabilité des transporteurs. Dans le projet Smart DLSP, l’optimisation des processus est au
cœur de leurs solutions proposées aux prestataires logistiques.

Dans cette approche, notre projet de stage consistait à développer un modèle d’optimisation des
trajets des véhicules, tout en optimisant la distance et en minimisant les facteurs de risques.
Pour répondre à cette problématique, nous avons développé trois modèles de Deep Learning à
base des réseaux de neurones récurrents LSTM : Le premier pour la prédiction des accidents sur
les trajets, le deuxième prédit les facteurs de risque dommages/pertes de fret et retards et le
troisième pour l’estimation du cout du trajet. Ensuite, nous avons nous avons adopté une
politique de choix du trajet optimal à base de la méthode AHP, tenant en compte l’optimisation
de la distance et la minimisation des facteurs de risques.

Les solutions proposées répondent aux exigences requises en termes de fiabilité, robustesse et
souplesse d’implémentation et d’exécution. Ce qui ouvre la voie à plusieurs applications plus
intelligentes. Le modèle d’optimisation développé peut être intégré aux véhicules comme
intelligence permettant l’auto-optimisation des itinéraires lors de leur circulation dans un réseau
de distribution. D’ailleurs, l’utilité du modèle a été restreinte sur l’optimisation des trajets des
véhicules. Pourtant, il peut être intégré dans une stratégie plus large d’optimisation de livraison
de fret, qui tient en compte aussi l’état du véhicule et le facteur humain. Cela permet la
conception d’une intelligence artificielle, optimisant le choix du triplet (Conducteur x Véhicule
x Trajet).

Comme limites des solutions proposées, le modèle d’optimisation est conçu à base d’un
ensemble restreint de données, générées artificiellement. La disposition des données réelles des
trajets lors du lancement du projet, nécessiterait peut-être des ajustements sur le modèle,
notamment, le renforcement de la base de données par des nouveaux paramètres et
l’entrainement du modèle sur un historique de données réelles.

78
REFERENCES BIBLIOGRAPHIQUES ET WEBOGRAPHIES
Bibliographie

1. Michel ROUX. Entrepôts & magasins 4ème édition. 2008.


2. Bruno MEIGNIEN (Cerema). Transport de marchandises Caractéristiques de l’offre
et capacité des modes de transport. 2014
3. Kawtar AKOUDAD, Fouad JAWAB. 2018. Road Transport Problems in Morocco:
Discernment and Classification. Proceedings of the International Conference on
Industrial Engineering and Operations Management Bandung, Indonesia
4. Kawtar AKOUDAD, Fouad JAWAB. 2018. Difficultés De Transport International De
Marchandises : Proposition D’un Cadre D’étude; Cas Du Maroc. European Scientific
Journal
5. Bernard Stepien. Problèmes de Transport. 1970
6. Guillaume Saint-Cirgue. Apprendre le machine learning en une semaine. 2019

Webographie

1. http://www.logistiqueconseil.org/Articles/Entrepot-magasin/Classes-entrepots-
logistiques.htm, consulté le 14/02/2022. Classification des entrepôts
2. http://www.logistiqueconseil.org/Articles/Entrepot-magasin/Type-entrepot-logistique.htm,
consulté le 14/02/2022. Classification des entrepôts
3. https://www.faq-logistique.com/Inventaires-Logistiques.htm, consulté le 15/02/2022.
Inventaire
4. https://www.44tonnes.com/types-de-semi-remorque-178, consulté le 19/02/2022.
Classification des véhicules TRM
5. http://www.logistiqueconseil.org/Fiches/Transport-routier/Types-de-camions.pdf, consulté
le 19/02/2022. Classification des véhicules TRM
6. http://maroc-maps.blogspot.com/search/label/Routes%20Nationales?&max-results=7,
consulté le 21/02/2022. Classification du réseau routier
7. http://maroc-maps.blogspot.com/2016/11/Routes-Provinciales.html, consulté le
21/02/2022. Classification du réseau routier
8. http://www.wcoomd.org/fr/topics/nomenclature/instrument-and-tools/hs-nomenclature-
2017-edition/hs-nomenclature-2017-edition.aspx, consulté le 23/02/2022. Catégories des
marchandises
9. https://www.iata.org/en/programs/cargo/unit-load-devices, consulté le 23/02/2022.
Catégories des marchandises
10. https://www.mecalux.fr/blog/logistique-intelligente, consulté le, 14/03/2022. Logistique
4.0

I
11. https://www.pwc.fr/fr/decryptages/transformation/limpact-de-la-technologie-et-du-digital-
dans-le-secteur-du-transport-et-de-la-logistique.html, consulté le 14/03/2022. Application
des nouvelles technologies dans la logistique
12. https://adameo.com/blog/sitl2021-les-solutions-et-innovations-supply-chain-a-retenir/,
consulté le 15/03/2022. Application des nouvelles technologies dans la logistique
13. https://adameo.com/blog/les-nouvelles-technologies-qui-revolutionnent-la-logistique-2/,
consulté le 15/03/2022. Application des nouvelles technologies dans la logistique
14. https://www.dpd.com/fr/fr/expedier-des-colis/nos-services-innovants/livraison-drone,
consulté le 17/03/2022. Livraison par drones
15. https://www.mecalux.fr/blog/inventaire-par-drones, consulté le 17/03/2022. Inventaire par
drones
16. https://www.dhl.com/content/dam/dhl/global/core/documents/pdf/glo-core-internet-of-
things-trend-report.pdf, consulté le 18/03/2022. Application de l’internet des objets dans
le transport et l’entreposage
17. https://www.acteos.fr/blog/problematique-tracabilite-produits/, consulté le 28/03/2022.
Manque de traçabilité des marchandises
18. https://docshipper.fr/logistique/supply-chain-problemes-courants-comment-limiter-
risques/#Etapes_de_la_chaine_dapprovisionnement, consulté le 28/03/2022.
19. https://www.lavieeco.com/economie/transport-routier-au-maroc-les-problemes-perdurent-
depuis-2003-21262, consulté le 28/03/2022. Problématiques des transporteurs
20. https://www.chaingotech.com/freight-transportation-problems/, consulté le 29/03/2022.
Problématiques des transporteurs
21. https://www.data.gouv.fr/fr/datasets/bases-de-donnees-annuelles-des-accidents-corporels-
de-la-circulation-routiere-annees-de-2005-a-2020, consulté le 24/04/2022. Accidents
routiers en France en 2018
22. https://www.statistiques.developpement-durable.gouv.fr/sites/default/files/2018-12/2018-
parc-vehicules-routiers-0PF1.xls, consulté le 01/05/2022. Parc véhicules en France en
2018
23. https://www.justifit.fr/b/guides/droit-routier/causes-accidents-de-la-route, consulté le
05/05/2022. Statistiques de la contribution des phénomènes dans les accidents
24. https://www.codespeedy.com/implementing-an-lstm-cell-in-python, consulté le
22/06/2022. Implémentation de LSTM en Python
25. https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-
networks-python-keras, consulté le 23/06/2022. Implémentation de LSTM en Python
26. https://www.youtube.com/watch?v=B08baRr2LlY&ab_channel=MuratKarakayaAkademi
. Consulté le 26/06/2022. Les paramètres du modèle LSTM
27. https://machinelearningmastery.com/reshape-input-data-long-short-term-memory-
networks-keras, consulté le 26/06/2022. Redimensionnement des données en 3 dimensions
28. https://machinelearningmastery.com/save-load-keras-deep-learning-models, consulté le
05/07/2022. Sauvegarde du modèle LSTM
29. https://machinelearningmastery.com/diagnose-overfitting-underfitting-lstm-models,
consulté le 09/07/2022. Gestion du problème overfiiting / underfitting du modèle LSTM

II
LISTE DES ANNEXES
ANNEXE A : Génération de la matrice d’adjacence des 13 PL...........................................IV

ANNEXE B : Génération des 12 ZL et de leur matrice d’adjacence................................... IV

ANNEXE C : Implémentation de l’algorithme de parcours en profondeur (DFS).......... VII

ANNEXE D : Construction de la base de données synthétiques....................................... VIII

ANNEXE E : Implémentation du modèle LSTM pour la prédiction des accidents ........ XVI

ANNEXE F : Implémentation du modèle LSTM pour la prédiction des facteurs de


risque : dommage, perte et retard......................................................................................XVII

ANNEXE G : Implémentation du modèle LSTM pour la prédiction des coûts ...............XIX

ANNEXE H : Implémentation de la politique de décision à base de AHP ........................ XX

ANNEXE I : Revue littérature des réseaux de neurones................................................ XXIII

III
ANNEXES
ANNEXE A : Génération de la matrice d’adjacence des 13 PL

# ----------------- Matrice d'adjacence des 13 PL ------------------------


def gen_zone() :
gen_z = np.eye(13,13)
for i in range (len(gen_z)):
for j in range (len(gen_z)):
if i == j :
gen_z[i][j] = 0
elif abs(i-j) <= 2 : # Définir des connexions qu'avec les PL adjacents

gen_z[i][j] = random.randint(1,50) # distances dans les ZL : entre 1 et 50 km


gen_z[j][i] = gen_z[i][j] # circulation dans les deux sens

# Codage des zones :


gen_z = pd.DataFrame(gen_z)
codes = []
for i in range (13) :
codes.append('PL {}'.format(i + 1))
gen_z.index = gen_z.columns = codes

return gen_z # retourner la matrice d'adjacence

ANNEXE B : Génération des 12 ZL et de leur matrice d’adjacence

En premier, on génère une DataFrame (forme de tableau) qui contient les 12 ZL, les connexions existantes
entre elles et les détails de ces connexions. Un petit jeu d’indices (i, j) permet de préciser les cases ou on saisit
les zones (i et j sont pairs), les zones qui contiennent les connexions et leurs détails (un indice pair, l’autre
impair).

nz = 12 # nombre totale de zones


nzv = 4 # nombre de zones verticalement
z = 0 # variable pour la codification des ZL
nzh = 3 # nombre de zones horizontalement
tmp = [] # variable temporelle

LXXXII
inter_z = pd.DataFrame(np.eye(2*nzv - 1,2*nzh - 1)) #Allouer un nb de cases suffisant pour les
zones et les détails des connexions
#_________________________________________________________________________________________
for i in range (2*nzv - 1):
for j in range (2*nzh - 1) :

if j % 2 == 0 and i % 2 == 0: # Cases de la df contenant les zones


inter_z[j][i] = z
z = z + 1

elif i % 2 !=0 and j%2 != 0 : # Cases vides


inter_z[j][i] = ''

for i in range (2*nzv - 1):


for j in range (2*nzh - 1) :

if i % 2 == 0 and j % 2 != 0 : # Cases contenant les détails des connexions


tmp = []
cnx = random.randint(1,4) # Nb de routes entre deux zones connectées
tmp.append(cnx)
for k in range (cnx):
tmp.append([ inter_z[j-1][i],random.randint(0,12), random.randint(10,150),
inter_z[j+1][i],random.randint(0,12) ])
# Pour chaque route tmp reçoit les infos, dans l'ordre, suivantes :
[ZL i, PL assistant dans la cnx, Distance, ZL j, PL assistant]
inter_z[j][i] = tmp
tmp = []

if i % 2 != 0 and j % 2 == 0 : # Meme traitement que : if i % 2 == 0 and j % 2 != 0


tmp = []
cnx = random.randint(1,4)
tmp.append(cnx)
for k in range (cnx):
tmp.append([ inter_z[j][i-1],random.randint(0,12), random.randint(10,150),
inter_z[j][i+1],random.randint(0,12) ])
inter_z[j][i] = tmp
tmp = []

LXXXIII
A titre d’exemple la case inter_z[1][0] du DataFrame inter_z, contient les détails des connexions entre ZL0

et ZL1 : il existe 3 routes liant les deux ZL comme suivant :

PL de la part de PL de la part de
ZL i Distance ZL j
ZL i ZL j
ZL0 PL3 132 km ZL1 PL7
ZL0 PL6 98 km ZL1 PL7

ZL0 PL1 40 km ZL1 PL1

On conclut la matrice d’adjacence du graphe des ZL, par l’algorithme suivant :

exis_cnx = pd.DataFrame(np.eye(nz,nz)) # nz est le nombre des ZL


#____________________________________________________________________________________
________________________________________
for i in range (len(inter_z.index)) :
for j in range (len (inter_z.columns)) :

if (i%2 == 0 and j%2 != 0):


Z1 = inter_z[j][i][1][0]
Z2 = inter_z[j][i][1][3]
exis_cnx[Z1][Z2] = 'exist'
exis_cnx[Z2][Z1] = exis_cnx[Z1][Z2]

if (i%2 != 0 and j%2 == 0):


Z1 = inter_z[j][i][1][0]
Z2 = inter_z[j][i][1][3]
exis_cnx[Z1][Z2] = 'exist'
exis_cnx[Z2][Z1] = exis_cnx[Z1][Z2]

for i in exis_cnx :
for j in exis_cnx :
if exis_cnx[j][i] != 'exist' :
exis_cnx[j][i] = ''

La matrice d’adjacence est comme suivant, « exist » signifie tout simplement qu’il y a une connexion entre les
deux zones :

LXXXIV
LXXXV
ANNEXE C : Implémentation de l’algorithme de parcours en profondeur (DFS)

L’algorithme DFS prend en entrée la matrice d’adjacence z, le point de départ et le point d’arrivée et il donne
comme sortie, tous les trajets possibles entre les deux points. On fait appel à un fichier Excel de manière
itérative, pour enregistré au fur et à mesure chaque trajet trouvé.

L’algorithme est formé de deux fonctions. La fonction Paths que l’on fait appel pour la génération des trajets et
la fonction DiscoverPaths qui prend en entrée la matrice d’adjacence (matrix), le point de départ(s), le point
d’arrivée (d), la liste de l’état des sommets (visités = True, non visités = False) et la liste Path qui sauvegarde
les sommets empruntés lors de chaque parcours en profondeur.

def DiscoverPaths(matrix, s, d , visited, path):


l = len(matrix)
visited[s] = True
path.append(s)
if s == d:
wb = load_workbook('trajets.xlsx')
ws = wb['Sheet1']
ws.append(path)
wb.save('trajets.xlsx')

if s != d :
for i in range (l):
if visited[i] == False and matrix[s][i] == 'exist' :
DiscoverPaths(matrix, i, d, visited, path)

path.pop()
visited[s] = False

# : --------------------------------------------------------------------
def Paths(matrix, src, dst):
path = []
l = len(matrix)
visited = [False] * l
DiscoverPaths(matrix, src, dst, visited, path )

L’extraction de tous les trajets entre chaque paire de PL se fait l’appel de la fonction pour chaque paire de PL
(i, j) avec i différent de j.

l = len(z) # taille de la matrice d'adjacence de 13 PL

for i in range (l) :


for j in range (l) :
if i!=j :
Paths (z, i, j) # Extraction de tous les trajets entre chaque
paire (PL i , PL j)

LXXXVI
LXXXVII
ANNEXE D : Construction de la base de données synthétiques

En exploitant la base de données de trajets de livraison empruntés (30 milles trajets), on retient leur distance
totale parcourue et on ajoute les paramètres significatifs.

# Initialisation des données :

db_tr = pd.read_excel('db_tr 30k.xlsx') # fichier Excel contenant les


trajets avec leurs distances

db_tr.fillna('',inplace=True) # Remplacer les valeurs “NaN”


l = len(db_tr) # nombre de lignes dans la db

print(db_tr.columns) # Affichage des paramètres


db_tr.head(5)

Pour générer un nombre important de données, nous avons dupliqué les lignes de la DataFrame (les trajets) :

# Préparation d'une base de données de 3 millions de lignes

print ('taille de la db initiale : {}'.format(len(db_tr)))


tmp = db_tr.head(0)
for i in range (100) :
tmp = pd.concat([tmp, db_tr] , axis = 0) # duplication des 30 milles
lignes jusqu'à atteindre
3M de lignes
print ('la nouvelle taille de la db : {}'.format(len(tmp)))

db_tr = tmp # Considérer la nouvelle db de 3M de données


l = len(db_tr)

Une fois la DataFrame est prête, on exécute l’algorithme de génération de données, en appliquant les règles
probabilistes explicitées dans le fond du chapitre 4, l’algorithme est long, mais basé sur une logique
conditionnelle simple :

LXXXVIII
# Evaluation de la distance :
-------------------------------------------------------------------------------------
-
for i in range (l) :
if db_tr['Distance totale parcourue'][i] in range (10,50) :
db_tr['Distance'][i] = 1

if db_tr['Distance totale parcourue'][i] in range (50,250) :


db_tr['Distance'][i] = 2

if db_tr['Distance totale parcourue'][i] in range (250,500) :


db_tr['Distance'][i] = 3

if db_tr['Distance totale parcourue'][i] in range (500,1000) :


db_tr['Distance'][i] = 4

if db_tr['Distance totale parcourue'][i] >= 1000 :


db_tr['Distance'][i] = 5
#____________________________________________________________________________________
______________________________

# Nombre d'échanges dans le trajet en fonction de la distance :


--------------------------------------------------
for i in range (l) :
if db_tr['Distance totale parcourue'][i] in range (10,250) :
db_tr['Nb échanges'][i] = random.choice([0]*99 + [1]*1)

if db_tr['Distance totale parcourue'][i] in range (250,500) :


db_tr['Nb échanges'][i] = random.choice([0]*95 + [1]*5)

if db_tr['Distance totale parcourue'][i] in range (500,1000) :


db_tr['Nb échanges'][i] = random.choice([0]*70 + [1]*25 + [2]*5)

if db_tr['Distance totale parcourue'][i] in range (1000,2000) :


db_tr['Nb échanges'][i] = random.choice([0]*28 + [1]*46 + [2]*13 + [3]*7 + [4
]*4 + [random.randint(5,6)]*2)

if db_tr['Distance totale parcourue'][i] >= 2000 :


db_tr['Nb échanges'][i] = random.choice([0]*10 + [1]*34 + [2]*27 + [3]*16 + [
4]*9 + [random.randint(5,6)]*4)
#____________________________________________________________________________________
______________________________

# La relation entre nb d'échanges et nb de chargements déchargements :


--------------------------------------------
db_tr['Nb chargements - déchargements'][i] = 2 * db_tr['Nb échanges'][i] + 2

#____________________________________________________________________________________
______________________________

# Accidents :
-------------------------------------------------------------------------------------
----------------

LXXXIX
for i in range (l) : # Existence des accidents (accident = 1)
db_tr['Accidents'][i] = random.choice([0]*98 + [1]*2 )

if db_tr['Accidents'][i] == 1 : # En cas d'existence, préciser sa gravité (


1:Léger, 2:Grave, 3:Très Grave)
db_tr['Accidents'][i] = random.choice ([1]*53 + [2]*33 + [3]*14)

if db_tr['Accidents'][i] in [1,2,3] : # En ca d'existence, identifier les causes


dérrière
while not 1 in [db_tr['Pluie légère'][i], db_tr['Pluie forte'][i], db_tr[
'Neige/grèle'][i], db_tr['Brouillard'][i],db_tr['vent / tempete'][i],db_tr['Etat de l
\'infrastructure'][i],db_tr['Congestion'][i]] :
db_tr['Pluie légère'][i] = random.choice([1]*12 + [0]*88)
db_tr['Pluie forte'][i] = random.choice([1]*3 + [0]*97)
db_tr['Neige/grèle'][i] = random.choice([1]*1 + [0]*99)
db_tr['Brouillard'][i] = random.choice([1]*1 + [0]*99)
db_tr['vent / tempete'][i] = random.choice([1]*1 + [0]*99)
db_tr['Etat de l\'infrastructure'][i] = random.choice([1]*24 + [0]*76)
db_tr['Congestion'][i] = random.choice([1]*7 + [0]*93)
#____________________________________________________________________________________
______________________________

# Vols :
-------------------------------------------------------------------------------------
---------------------

for i in range (l) : # Existence des vols (vol = 1)


db_tr['Vols'][i] = random.choice([0]*97 + [1]*3)

if db_tr['Vols'][i] == 1 : # En cas d'existence , estimer le volume de fret perdu


db_tr['Perte'][i] = random.choice([1]*90 + [2]*5 + [3]*3 + [4]*1 + [5]*1)
#____________________________________________________________________________________
______________________________

# Perte de fret :
-------------------------------------------------------------------------------------
------------

for i in range (l) : # Perte à cause des accidents


if db_tr['Accidents'][i] == 0 :
tmp = 0

elif db_tr['Accidents'][i] == 1 :
tmp = random.choice([0]*99 + [1]*1)

elif db_tr['Accidents'][i] == 2 :
tmp = random.choice([0]*40 + [1]*18 + [2]*13 + [3]*14 + [4]*10 + [5]*5)

elif db_tr['Accidents'][i] == 3 :
tmp = random.choice([0]*35 + [1]*19 + [2]*14 + [3]*15 + [4]*11 + [5]*6)

# Superposition : Perte par vol & Perte par Accidents


if db_tr['Perte'][i] in [1,2,3,4,5] :
XC
if db_tr['Perte'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Perte'][i] = tmp + 1
else :
db_tr['Perte'][i] = tmp
else :
db_tr['Perte'][i] = max(tmp, db_tr['Perte'][i])

else : # si perte = 0
db_tr['Perte'][i] = tmp

# Perte par Nb d'échanges :


if db_tr['Nb échanges'][i] == 0 :
tmp = 0

elif db_tr['Nb échanges'][i] == 1 :


tmp = random.choice([0]*99 + [1]*1)

elif db_tr['Nb échanges'][i] in [2,3] :


tmp = random.choice([0]*98 + [1]*1 + [2]*1)

elif db_tr['Nb échanges'][i] in [4,5,6] :


tmp = random.choice([0]*97 + [1]*1 + [2]*1 + [3]*1)

if db_tr['Perte'][i] in [1,2,3,4,5] : # Superposition : Perte ( par vols & par


accidents ) & par nb d'échanges
if db_tr['Perte'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Perte'][i] = tmp + 1
else :
db_tr['Perte'][i] = tmp
else :
db_tr['Perte'][i] = max(tmp, db_tr['Perte'][i])

else :
db_tr['Perte'][i] = tmp

#____________________________________________________________________________________
______________________________

# Etat de l'infrastructure routière :


-----------------------------------------------------------------------------

for i in range (l) :


db_tr['Etat de l\'infrastructure'][i] = random.choice([0]*81 + [1]*7 + [2]*5 +[3
]*4 + [4]*3)

#____________________________________________________________________________________
______________________________

# Dommage de fret :
-------------------------------------------------------------------------------------
XCI
-----------

for i in range (len(db_tr)) : # Dommage par infrastructure


if db_tr['Etat de l\'infrastructure'][i] == 0 :
db_tr['Dommage'][i] = 0
if db_tr['Etat de l\'infrastructure'][i] == 1 :
db_tr['Dommage'][i] = random.choice([0]*99 + [1]*1)
if db_tr['Etat de l\'infrastructure'][i] == 2 :
db_tr['Dommage'][i] = random.choice([0]*95 + [1]*3 + [2]*1 + [3]*1)
if db_tr['Etat de l\'infrastructure'][i] == 3 :
db_tr['Dommage'][i] = random.choice([0]*90 + [1]*5 + [2]*3 + [3]*2)
if db_tr['Etat de l\'infrastructure'][i] == 4 :
db_tr['Dommage'][i] = random.choice([0]*70 + [1]*15 + [2]*7 + [3]*4 + [4]*3 +
[5]*1)

# Dommage par par Nb chargements / dechargemnts


if db_tr['Nb chargements - déchargements'][i] == 2 :
tmp = 0

if db_tr['Nb chargements - déchargements'][i] in [2,4,6,8,10] :


tmp = random.choice([0]*94 + [1]*3 + [2]*2 + [3]*1)

if db_tr['Nb chargements - déchargements'][i] in [12,14] :


tmp = random.choice([0]*92 + [1]*3 + [2]*2 + [3]*1 + [4]*1)

# Superposition : Dommage par etat infrastructure & par nb charg/decharg :


if db_tr['Dommage'][i] in [1,2,3,4,5] :
if db_tr['Dommage'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Dommage'][i] = tmp + 1
else :
db_tr['Dommage'][i] = tmp
else :
db_tr['Dommage'][i] = max(tmp, db_tr['Dommage'][i])

else :
db_tr['Dommage'][i] = tmp

# Dommage par accidents


if db_tr['Accidents'][i] == 0 :
tmp = 0

if db_tr['Accidents'][i] == 1 :
tmp = random.choice([0]*99 + [1]*1)

if db_tr['Accidents'][i] == 2 :
tmp = random.choice([0]*40 + [1]*18 + [2]*13 + [3]*14 + [4]*10 + [5]*5)

if db_tr['Accidents'][i] == 3 :
tmp = random.choice([0]*35 + [1]*19 + [2]*14 + [3]*15 + [4]*11 + [5]*6)

XCII
# Superposition : Dommage par etat infrastructure & par nb charg/decharg & accidents
if db_tr['Accidents'][i] in [1,2,3] :
if db_tr['Dommage'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Dommage'][i] = tmp + 1
else :
db_tr['Dommage'][i] = tmp
else :
db_tr['Dommage'][i] = max(tmp, db_tr['Dommage'][i])

else :
db_tr['Dommage'][i] = tmp

#____________________________________________________________________________________
______________________________

# Congestion :
-------------------------------------------------------------------------------------
---------------

for i in range (l) : # (existence = 1)


if db_tr['Congestion'][i] != 1 :
db_tr['Congestion'][i] = random.choice([0]*85 + [1]*15)

# Evaluation de la congestion (courte, longue, etc...)


if db_tr['Congestion'][i] == 1 :
db_tr['Congestion'][i] = random.choice([1]*51 + [2]*32 + [3]*12 + [4]*3 + [5
]*2)
#____________________________________________________________________________________
______________________________

# Retard de livraison :
-------------------------------------------------------------------------------------
------

# Retard par accidents


for i in range (l) :
if db_tr['Accidents'][i] == 1 :
db_tr['Retard'][i] = random.choice([0]*30 + [1]*58 + [2]*6 + [3]*3 + [4]*2 +
[5]*1)

if db_tr['Accidents'][i] == 2 :
db_tr['Retard'][i] = random.choice([0]*4 + [1]*20 + [2]*10 + [3]*30 + [4]*29
+ [5]*7)

if db_tr['Accidents'][i] == 3 :
db_tr['Retard'][i] = random.choice([0]*4 + [1]*20 + [2]*10 + [3]*30 + [4]*29
+ [5]*7)

# Retard par congestion :


if db_tr['Congestion'][i] == 1 :
tmp = random.choice([0]*99 + [1]*1)
if db_tr['Congestion'][i] == 2 :

XCIII
tmp = random.choice([0]*97 + [1]*2 + [2]*1)
if db_tr['Congestion'][i] == 3 :
tmp = random.choice([0]*43 + [1]*35 + [2]*12 + [3]*7 + [4]*3)
if db_tr['Congestion'][i] == 4 :
tmp = random.choice([0]*8 + [1]*27 + [2]*35 + [3]*20 + [4]*9 + [5]*1)
if db_tr['Congestion'][i] == 5 :
tmp = random.choice([1]*3 + [2]*40 + [3]*30 + [4]*20 + [5]*7)

# Superposition : Retard par accidents & par congestion :


if db_tr['Congestion'][i] in [1,2,3,4,5] :
if db_tr['Retard'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Retard'][i] = tmp + 1
else :
db_tr['Retard'][i] = tmp
else :
db_tr['Retard'][i] = max(tmp, db_tr['Retard'][i])

else :
db_tr['Retard'][i] = tmp

# Retard par Nb échanges (Nb chargements - déchargements):


if db_tr['Nb échanges'][i] == 0 :
tmp = random.choice([0]*93 + [1]*2 + [2]*2 + [3]*1 + [4]*1 + [5]*1)
if db_tr['Nb échanges'][i] in [1,2] :
tmp = random.choice([0]*90 + [1]*3 + [2]*3 + [3]*2 + [4]*1 + [5]*1)

if db_tr['Nb échanges'][i] in [3,4] :


tmp = random.choice([0]*70 + [1]*12 + [2]*10 + [3]*4 + [4]*2 + [5]*2)

if db_tr['Nb échanges'][i] in [5,6] :


tmp = random.choice([0]*49 + [1]*22 + [2]*14 + [3]*8 + [4]*4 + [5]*3)

# Superposition : Retard par accidents & Congestion & par Nb d'échanges :


if db_tr['Congestion'][i] in [1,2,3,4,5] :
if db_tr['Retard'][i] == tmp :
if tmp> 0 and tmp < 5 :
db_tr['Retard'][i] = tmp + 1
else :
db_tr['Retard'][i] = tmp
else :
db_tr['Retard'][i] = max(tmp, db_tr['Retard'][i])

else :
db_tr['Retard'][i] = tmp

#____________________________________________________________________________________
______________________________

# Estimation de coût :
-------------------------------------------------------------------------------------
------

# Coût par Accidents :

XCIV
for i in range (l) :
if db_tr['Accidents'][i] == 0:
db_tr['Coût'][i] = 0

if db_tr['Accidents'][i] == 1:
db_tr['Coût'][i] = random.choice([0]*80 + [1]*19 + [2]*1)

if db_tr['Accidents'][i] == 2:
db_tr['Coût'][i] = random.choice([0]*6 + [1]*36 + [2]*28 + [3]*24 + [4]*6)

if db_tr['Accidents'][i] == 3:
db_tr['Coût'][i] = random.choice([0]*4 + [1]*26 + [2]*34 + [3]*27 + [4]*9)

# Coût par Perte :


if db_tr['Perte'][i] == 0:
tmp = 0
if db_tr['Perte'][i] == 1:
tmp = random.choice([0]*90 + [1]*10)
if db_tr['Perte'][i] == 2:
tmp = random.choice([0]*85 + [1]*6 + [2]*5 + [3]*3 + [4]*1)
if db_tr['Perte'][i] == 3:
tmp = random.choice([0]*2 + [1]*65 + [2]*25 + [3]*6 + [4]*2)
if db_tr['Perte'][i] == 4:
tmp = random.choice([2]*55 + [3]*35 + [4]*10)
if db_tr['Perte'][i] == 5:
tmp = random.choice([2]*10 + [3]*60 + [4]*30)

# Superposition : Coût par Accidents & par Perte


if db_tr['Perte'][i] in [1,2,3,4,5] :
if db_tr['Coût'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Coût'][i] = tmp + 1
else :
db_tr['Coût'][i] = tmp
else :
db_tr['Coût'][i] = max(tmp, db_tr['Coût'][i])

else :
db_tr['Coût'][i] = tmp

# Coût par Dommage :


if db_tr['Dommage'][i] == 0:
tmp = 0
if db_tr['Dommage'][i] == 1:
tmp = random.choice([0]*99 + [1]*1)
if db_tr['Dommage'][i] == 2:
tmp = random.choice([0]*97 + [1]*2 + [2]*1)
if db_tr['Dommage'][i] == 3:
tmp = random.choice([0]*20 + [1]*35 + [2]*36 + [3]*6 + [4]*3)
if db_tr['Dommage'][i] == 4:
tmp = random.choice([0]*3 +[1]*23 + [2]*33 + [3]*30 + [4]*11)
if db_tr['Dommage'][i] == 5:
tmp = random.choice([0]*1 +[1]*13 + [2]*16 + [3]*40 + [4]*30)
XCV
# Superposition : Coût par Accidents & Perte & Dommage
if db_tr['Dommage'][i] in [1,2,3,4,5] :
if db_tr['Coût'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Coût'][i] = tmp + 1
else :
db_tr['Coût'][i] = tmp
else :
db_tr['Coût'][i] = max(tmp, db_tr['Coût'][i])

else :
db_tr['Coût'][i] = tmp

# Coût par Retard


if db_tr['Retard'][i] == 0:
tmp = 0
if db_tr['Retard'][i] == 1:
tmp = random.choice([0]*90 + [1]*9 + [2]*1)
if db_tr['Retard'][i] == 2:
tmp = random.choice([0]*40 + [1]*50 + [2]*7 + [3]*2 + [4]*1)
if db_tr['Retard'][i] == 3:
tmp = random.choice([0]*16 + [1]*24 + [2]*32 + [3]*20 + [4]*8)
if db_tr['Retard'][i] == 4:
tmp = random.choice([0]*3 +[1]*10 + [2]*33 + [3]*43 + [4]*11)
if db_tr['Retard'][i] == 5:
tmp = random.choice([0]*1 +[1]*1 + [2]*3 + [3]*40 + [4]*55)

# Superposition : Coût par Accidents & Perte & Dommage & Retard
if db_tr['Retard'][i] in [1,2,3,4,5] :
if db_tr['Coût'][i] == tmp :
if tmp > 0 and tmp < 5 :
db_tr['Coût'][i] = tmp + 1
else :
db_tr['Coût'][i] = tmp
else :
db_tr['Coût'][i] = max(tmp, db_tr['Coût'][i])

else :
db_tr['Coût'][i] = tmp

ANNEXE E : Implémentation du modèle LSTM pour la prédiction des accidents

L’implémentation des modèles LSTM nécessite l’importation de la bibliothèque Keras dédiée pour les
algorithmes de Deep Learning. Le code suivant sert pour importer toutes les bibliothèques utilisées pendant
cette phase :

XCVI
# Importer les bibliothèques nécessaires
import pandas as pd
import numpy as np
import random

from sklearn.model_selection import train_test_split

from keras.layers import Dropout, LSTM, Dense, Embedding, Activation


from keras.models import Sequential

# Importer la base de données synthétiques


data = pd.read_excel('db_tr 3M.xlsx')

La prédiction des accidents nécessite une préparation de données avant l’entrainement du modèle. C’est
notamment le cas du redimensionnement des données en 3 dimensions (3D) pour les ajuster à la forme de
l’entrée des modèles LSTM. Le code suivant présente l’implémentation du modèle LSTM pour la prédiction
des accidents :

#________ Accidents prediction_________________

# Define X : Features & y : target


X_acc = data[['Pluie légère','Pluie forte','Neige/grèle','Brouillard','vent /
tempete','Etat de l\'infrastructure','Congestion']]

y_acc = data['Accidents']
y_acc = pd.DataFrame(y_acc)

# Split data : 80% train dataset & 20% test dataset


X_train_acc, X_test_acc, y_train_acc, y_test_acc = train_test_split(X_acc, y_acc,
test_size=0.2, random_state=0)

L = len(X_train_acc) # nb rows of train dataset


l = len(X_test_acc) # nb rows of test dataset
f = len(X_train_acc.columns) # nb columns of train dataset

# reshape data to 3D format : (nb_sequences, nb_timesteps = 1, nb_features)


X_train_acc = X_train_acc.values.reshape((L, 1 , f))
X_test_acc = X_test_acc.values.reshape((l, 1, f))
y_train_acc = y_train_acc.values.reshape((L,1, 1))
y_test_acc = y_test_acc.values.reshape((l, 1, 1))

# Build LSTM model for accidents prediction


m_acc = Sequential()
m_acc.add(LSTM(units=10, return_sequences = True, input_shape = (1, f), activation =
'relu'))
m_acc.add(Dropout(0.2))
m_acc.add(Dense(1))

# Compile model

XCVII
m_acc.compile(optimizer = 'adam', loss = 'mean_squared_error', metrics =['accuracy'])

# Fit model to train data set


history_m_acc = m_acc.fit( X_train_acc, y_train_acc, epochs = 10 , verbose = 1)

# Predict tarjet for test data set


pred_acc = m_acc.predict(X_test_acc)

# Evaluate model
precision_m_acc = m_acc.evaluate(X_test_acc, y_test_acc)
print('loss:', precision_m_acc[0])
print('accuracy:', precision_m_acc[1])

# Convert data to DataFrame to show results :


y_test_acc = y_test_acc.reshape((l))
y_test_acc = pd.DataFrame(y_test_acc)
y_test_acc.reset_index(drop = True, inplace = True)

pred_acc = pred_acc.reshape((l))
pred_acc = pd.DataFrame(pred_acc)

pred_acc = pd.concat([y_test_acc,pred_acc], axis = 1)


pred_acc.columns = ['Coût','Coût predit']

ANNEXE F : Implémentation du modèle LSTM pour la prédiction des facteurs de risque : dommage,

perte et retard

Pareil, pour le deuxième modèle, on suit les mêmes étapes :

#_________________ Dommage, loss & delay prediction _________________

# Define X : Features & y : target


X_dpr = data[['Distance totale parcourue', 'Distance', 'Nb échanges', 'Nb chargements
- déchargements', 'Etat de l\'infrastructure', 'Congestion', 'Vols', 'Accidents' ]]

y_dpr = data[['Dommage', 'Perte', 'Retard']]


y_dpr = pd.DataFrame(y_dpr)

# Split data : 80% train dataset & 20% test dataset


X_train_dpr, X_test_dpr, y_train_dpr, y_test_dpr = train_test_split(X_dpr, y_dpr,
test_size=0.2, random_state=0)

L = len(X_train_dpr) # nb rows of train dataset


l = len(X_test_dpr) # nb rows of test dataset
f = len(X_train_dpr.columns) # nb columns of train dataset
t = len(y_train_dpr.columns) # target dimension (3 outputs)

# Reshape data
X_train_dpr = X_train_dpr.values.reshape((L, 1 , f))
X_test_dpr = X_test_dpr.values.reshape((l, 1, f))
y_train_dpr = y_train_dpr.values.reshape((L,1, t))
y_test_dpr = y_test_dpr.values.reshape((l, 1, t))
XCVIII
# Build LSTM model for Dommage, loss & Delay prediction : m_dpr
m_dpr = Sequential()
m_dpr.add(LSTM(units=10, return_sequences = True, input_shape = (1, f), activation =
'relu'))
m_dpr.add(Dropout(0.2))

m_dpr.add(LSTM(units=8, return_sequences = True, activation = 'relu'))


m_dpr.add(Dropout(0.2))

m_dpr.add(LSTM(units=5, return_sequences = True, activation = 'relu'))


m_dpr.add(Dropout(0.2))

m_dpr.add(Dense(3))

# Compile model
m_dpr.compile(optimizer = 'adam', loss = 'mean_squared_error', metrics =['accuracy'])

# Fit model to train data set


history_m_dpr = m_dpr.fit( X_train_dpr, y_train_dpr, validation_data=(X_test_dpr,
y_test_dpr), epochs = 1 , verbose = 1)

# Predict tarjet for test data set


pred_dpr = m_dpr.predict(X_test_dpr)

# Evaluate model
precision_m_dpr = m_dpr.evaluate(X_test_dpr, y_test_dpr)
print('loss:', precision_m_dpr[0])
print('accuracy:', precision_m_dpr[1])

# Convert data to DataFrame to show results


y_test_dpr = y_test_dpr.reshape(l, t)
y_test_dpr = pd.DataFrame(y_test_dpr)
y_test_dpr.reset_index(drop = True, inplace = True)

pred_dpr = pred_dpr.reshape((l,t))
pred_dpr = pd.DataFrame(pred_dpr)

pred_dpr = pd.concat([y_test_dpr, pred_dpr], axis = 1)


pred_dpr.columns = ['Dommage', 'Perte', 'Retard', 'Dommage_pred', 'Perte_pred',
'Retard_pred']

ANNEXE G : Implémentation du modèle LSTM pour la prédiction des coûts

Pareil, pour le troisième modèle, on suit les mêmes étapes :

#__________________________ Cost _______________________


# Define X : Features & y : target
X_coût = data[['Accidents', 'Perte', 'Dommage', 'Retard']]
XCIX
y_coût = data['Coût']
y_coût = pd.DataFrame(y_coût)

# Split data : 80% train dataset & 20% test dataset


X_train_coût, X_test_coût, y_train_coût, y_test_coût = train_test_split(X_coût,
y_coût, test_size=0.2, random_state=0)

L = len(X_train_coût) # nb rows of train dataset


l = len(X_test_coût) # nb rows of test dataset
f = len(X_train_coût.columns) # nb columns of train dataset

# Reshape data
X_train_coût = X_train_coût.values.reshape((L, 1 , f))
X_test_coût = X_test_coût.values.reshape((l, 1, f))
y_train_coût = y_train_coût.values.reshape((L,1, 1))
y_test_coût = y_test_coût.values.reshape((l, 1, 1))

# Build LSTM model for Cost prediction


m_coût = Sequential()
m_coût.add(LSTM(units=25, return_sequences = True, input_shape = (1, f), activation =
'relu'))
m_coût.add(Dropout(0.2))
m_coût.add(Dense(1))

# Compile model
m_coût.compile(optimizer = 'adam', loss = 'mean_squared_error', metrics =['accuracy'
])

# Fit model to train data set


history_m_coût = m_coût.fit( X_train_coût, y_train_coût,
validation_data=(X_test_coût, y_test_coût), epochs = 10 , verbose = 1)

# Predict tarjet for test data set


pred_coût = m_coût.predict(X_test_coût)

# Evaluate model
performance_m_coût = m_coût.evaluate(X_test_coût, y_test_coût)
print('loss:', performance_m_coût[0])
print('accuracy:', performance_m_coût[1])

# Convert data to DataFrame to show results


y_test_coût = y_test_coût.reshape((l))
y_test_coût = pd.DataFrame(y_test_coût)
y_test_coût.reset_index(drop = True, inplace = True)

pred_coût = pred_coût.reshape((l))
pred_coût = pd.DataFrame(pred_coût)

pred_coût = pd.concat([y_test_coût,pred_coût], axis = 1)


pred_coût.columns = ['Coût','Coût predit']

ANNEXE H : Implémentation de la politique de décision à base de AHP

def Best_Path_AHP (candidats, p_criteria) :

# Inisialize parameters :----------------------------------------------


p_criteria = pd.DataFrame(p_criteria)
C
l = len(p_criteria) # nb de critères
nbc = len((candidats)) # nb de trajets candidats
# L'indice RI de Saaty dépend du nb de critères :
lis_ri = [[0,1], [0,2], [0.52,3], [0.89,4], [1.11,5], [1.25,6], [1.35,7], [1.4,8], [1.45,9
], [1.49,10]]
RI = [lis_ri[i][0] for i in range(len(lis_ri)) if lis_ri[i][1] == l]
RI = RI[0] # [value] --> value
consistency = p_criteria.copy() #La matrice d'évauation de consistence de la pondération
des critères

# Criteria Weights (Poids normalisés) : ------------------------------


for i in range (len(p_criteria)) :
p_criteria[i] = p_criteria[i] / p_criteria[i].sum() #diviser chaque columnne i par
la somme de ses valeurs
Criteria_weights = pd.DataFrame(p_criteria.sum(axis = 1) / l, columns = ['Cr_w']) #
moyenne de chaque ligne

# Consistency :-------- ---------------------------------------------


for i in range (len(consistency)) :
consistency[i] = consistency[i] * Criteria_weights['Cr_w'][i]

weighted_sum_value = pd.DataFrame(consistency.sum(axis = 1), columns = ['wsm']) #weighted


sum values
ratio = pd.DataFrame(weighted_sum_value['wsm'] / Criteria_weights['Cr_w'], columns = [
'ratios'])
Lampda_max = ratio['ratios'].sum() / l
CI = (Lampda_max - l) / (l-1)
CR = CI / RI
if CR < 0.1 :
print ('p_criteria consistent!')

# Evaluer les candidats % à chaque critère : ------------------------

# Selon l'échelle, l'équivalence entre la différence de valeurs de critères et la


pondération est comme suivant :
ddpr_equivalent = [[0,1], [1,3], [2,4], [3,5], [4,6], [5,7]] #Pour les facteurs :
distance, dommage, perte & retard
coût_equivalent = [[0,1], [1,3], [2,5], [3,6], [4,7]] # Pour le coût
acc_equivalent = [[0,1], [1,3], [2,5], [3,7]] # Pour l'accident

# 1 Ponderation % Distance : -------------------------------------------------


p_distance = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_distance[j][i] = 1
else :
tmp = abs(candidats['Distance'][i] - candidats['Distance'][j])
p = [ddpr_equivalent[i][1] for i in range (len(ddpr_equivalent)) if
ddpr_equivalent[i][0] == tmp]
p = p[0]
CI
if candidats['Distance'][i] > candidats['Distance'][j] :
p_distance[i][j] = p
p_distance[j][i] = 1/p
else :
p_distance[i][j] = 1/p
p_distance[j][i] = p
p_distance = pd.DataFrame(p_distance)
for i in range (nbc) :
p_distance[i] = p_distance[i] / p_distance[i].sum() #diviser la columnne i par la
somme de ses valeurs
d_weights = pd.DataFrame(p_distance.sum(axis = 1) / nbc, columns = ['d_w'])

# 1 Ponderation % Dommage : ---------------------------------------------------


p_dommage = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_dommage[j][i] = 1
else :
tmp = abs(candidats['Dommage'][i] - candidats['Dommage'][j])
p = [ddpr_equivalent[i][1] for i in range (len(ddpr_equivalent)) if
ddpr_equivalent[i][0] == tmp]
p = p[0]

if candidats['Dommage'][i] > candidats['Dommage'][j] :


p_dommage[i][j] = p
p_dommage[j][i] = 1/p
else :
p_dommage[i][j] = 1/p
p_dommage[j][i] = p
p_dommage = pd.DataFrame(p_dommage)
for i in range (nbc) :
p_dommage[i] = p_dommage[i] / p_dommage[i].sum() #diviser la columnne i par la somme
de ses valeurs
dam_weights = pd.DataFrame(p_dommage.sum(axis = 1) / nbc, columns = ['dam_w'])

# 1 Ponderation % Perte :
p_perte = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_perte[i][j] = 1
else :
tmp = abs(candidats['Dommage'][i] - candidats['Dommage'][j])
p = [ddpr_equivalent[i][1] for i in range (len(ddpr_equivalent)) if
ddpr_equivalent[i][0] == tmp]
p = p[0]

if candidats['Perte'][i] > candidats['Perte'][j] :


p_perte[i][j] = p
p_perte[j][i] = 1/p
else :
p_perte[i][j] = 1/p
p_perte[j][i] = p

CII
p_perte = pd.DataFrame(p_perte)
for i in range (nbc) :
p_perte[i] = p_perte[i] / p_perte[i].sum() #diviser la columnne i par la somme de
ses valeurs
perte_weights = pd.DataFrame(p_perte.sum(axis = 1) / nbc, columns = ['perte_w'])

# 1 Ponderation % Retard : ------------------------------------------------------


p_retard = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_retard[i][j] = 1
else :
tmp = abs(candidats['Retard'][i] - candidats['Retard'][j])
p = [ddpr_equivalent[i][1] for i in range (len(ddpr_equivalent)) if
ddpr_equivalent[i][0] == tmp]
p = p[0]

if candidats['Retard'][i] > candidats['Retard'][j] :


p_retard[i][j] = p
p_retard[j][i] = 1/p
else :
p_retard[i][j] = 1/p
p_retard[j][i] = p
p_retard = pd.DataFrame(p_retard)
for i in range (nbc) :
p_retard[i] = p_retard[i] / p_retard[i].sum() #diviser la columnne i par la somme de
ses valeurs
retard_weights = pd.DataFrame(p_retard.sum(axis = 1) / nbc, columns = ['retard_w'])

# 1 Ponderation % Accident : -------------------------------------------------------


p_accident = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_accident[i][j] = 1
else :
tmp = abs(candidats['Accidents'][i] - candidats['Accidents'][j])
p = [acc_equivalent[i][1] for i in range (len(acc_equivalent)) if
acc_equivalent[i][0] == tmp]
p = p[0]

if candidats['Accidents'][i] > candidats['Accidents'][j] :


p_accident[i][j] = p
p_accident[j][i] = 1/p
else :
p_accident[i][j] = 1/p
p_accident[j][i] = p
p_accident = pd.DataFrame(p_accident)
for i in range (nbc) :
p_accident[i] = p_accident[i] / p_accident[i].sum() #diviser la columnne i par la
somme de ses valeurs
accident_weights = pd.DataFrame(p_accident.sum(axis = 1) / nbc, columns = ['accidents_w'])

# 1 Ponderation % Coût : ----------------------------------------------------

CIII
p_coût = np.eye(nbc,nbc)
for i in range (nbc) :
for j in range (nbc) :
if i == j :
p_coût[i][j] = 1
else :
tmp = abs(candidats['Coût'][i] - candidats['Coût'][j])
p = [coût_equivalent[i][1] for i in range (len(coût_equivalent)) if
coût_equivalent[i][0] == tmp]
p = p[0]

if candidats['Coût'][i] > candidats['Coût'][j] :


p_coût[i][j] = p
p_coût[j][i] = 1/p
else :
p_coût[i][j] = 1/p
p_coût[j][i] = p
p_coût = pd.DataFrame(p_coût)
for i in range (nbc) :
p_coût[i] = p_coût[i] / p_coût[i].sum() #diviser la columnne i par la somme de ses
valeurs
coût_weights = pd.DataFrame(p_coût.sum(axis = 1) / nbc, columns = ['coût_w'])

# Calcul du score total (TS) de chaque condidat : -------------------------------------


S = pd.concat([d_weights, accident_weights, dam_weights, perte_weights, retard_weights,
coût_weights], axis = 1)
S.columns = [i for i in range (l)]
for i in range (l):
S[i] = S[i] * Criteria_weights['Cr_w'][i]
TS = pd.DataFrame(S.sum(axis = 1)/l, columns = ['Score_total'])

# retenir le(s) meilleur(s) trajet : --------------------------------------------------


Best_path = [[i,TS[i:i+1].values.tolist()[0][0]] for i in range(nbc) if TS['Score_total'
][i] == min(TS['Score_total']) ]
Best_path = pd.DataFrame(Best_path, columns = ['Path', 'Score'])
return Best_path

Ainsi, la fonction retourne le meilleur trajet (ayant score minimal).

ANNEXE I : Revue littérature des réseaux de neurones

Réseaux de neurones artificiels :

CIV
Les réseaux de neurones artificiels (ANN) sont constitués de différentes couches de nœud (ou neurone
artificiel), contenant une couche en entrée, une ou plusieurs couches cachées et une couche en sortie.

Chaque couche se compose d’un ou plusieurs neurones artificiels ou aussi nommées perceptrons. Chaque
neurone artificiel, se connecte à un autre et possède un poids et un seuil associés. Si la sortie d'un nœud est
supérieure à la valeur de seuil spécifiée, ce nœud est activé et envoie des données à la couche suivante du
réseau. Sinon, aucune donnée n'est transmise à la couche suivante du réseau.

Neurone artificiel – perceptron :

Le perceptron prend en entrée des valeurs X = (x1, x2, ..., xn). il fait un calcul double et de renvoie une valeur en
sortie y. le premier calcul se fait par une fonction linéaire f, suivi par un deuxième calcul à travers une fonction
d’activation φ.

Il existe différents types de la fonction d’activation qu’on choisit selon la sortie souhaitée, parmi lesquelles :

CV
Sigmoid Tanh Relu

Linear

Descente graduelle « Gradient descent » :

La descente de gradient est un algorithme d'optimisation itératif de l'apprentissage automatique pour réduire la
fonction de coût. Cela aidera les modèles à faire des prédictions précises. Le gradient indique la direction de
l'augmentation. Comme on veut trouver le point minimum dans la vallée, on doit aller dans la direction
opposée du gradient. On met à jour les paramètres dans la direction du gradient négatif pour minimiser la
perte. Il existe différents types descente graduelle, à savoir :

− Descente dégradée par lots ou Descente dégradée vanille


− Descente de gradient stochastique
− Descente de dégradé en mini lot

Optimiseur « Optimizer » :

L’optimisateur sert pour mettre à jour les paramètres de pondération (coefficients synaptiques) pour minimiser
la fonction de coût. La fonction de coût sert de guide au terrain indiquant à l'optimiseur s'il se déplace dans la
bonne direction pour atteindre le minimum global.

Types d'optimiseurs :

CVI
− Momentum
− Gradient accéléré de Nesterov « Nesterov accelerated gradient : NAG »
− Adagrad — Adaptive Gradient Algorithm
− Adadelta
− RMSProp
− Adam — Adaptive Moment Estimation

Epoques « epochs » :

Le nombre d’époques représente le nombre d’itérations de la procédure d'entraînement du réseau de neurones


artificiels. Autrement dit, une fois que tous les vecteurs de l’ensemble d'entraînement ont été utilisés par
l’algorithme d'entraînement, une époque s'est écoulée.

Bach vs séquentiel :

« Batch » ou la taille du lot, est un hyperparamètre qui définit le nombre d'échantillons à traiter avant de mettre
à jour les paramètres du modèle interne. Un lot doit contenir un nombre de séquences supérieur à 1 est
inférieur au nombre maximal des données. Au contraire, l’exécution du réseau de neurones en « séquentiel »,
traite les données observation par observation.

Réseaux de neurones récurrents :

Un réseau neuronal récurrent (RNN) est un type de réseaux de neurones artificiels. Les RNN se distinguent

des ANN par le fait que la sortie RNN dépend des éléments antérieurs de la séquence, alors que les ANN

supposent que les entrées et les sorties sont indépendantes les unes des autres. D’ailleurs, la propagation des

données dans les RNN se fait en avant et en arrière « forward and backward probagation ».

RNN vs ANN
CVII
Le nombre des entrées et sorties peuvent varier en longueur. Donc, différents types de RNN sont utilisés pour
différents cas d'utilisation. Les types de RNN sont généralement exprimés à l'aide des diagrammes suivants :

One – to – one One – to – many Many – to – one

Many – to – many

CVIII

Vous aimerez peut-être aussi