HAL Id: hal-02087851
https://hal.archives-ouvertes.fr/hal-02087851
Submitted on 2 Apr 2019
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Problème de tournée avec pénalités de départ et de retard
Hugo Chevroton, Yannick Kergosien, Jean-Charles Billaut
To cite this version:
Hugo Chevroton, Yannick Kergosien, Jean-Charles Billaut. Problème de tournée avec pénalités de
départ et de retard. ROADEF 2019, Feb 2019, Le Havre, France. �hal-02087851�
Problème de tournée avec pénalités de départ et de retard
Hugo Chevroton, Yannick Kergosien, Jean-Charles Billaut
Université de Tours
LIFAT EA 6300, CNRS, ROOT ERL CNRS 7002, 64 avenue Jean Portalis, 37200 Tours hugo.chevroton@univ-tours.fr, yannick.kergosien@univ-tours.fr,
jean-charles.billaut@univ-tours.fr Mots-clés : Livraison, matheuristique, modélisation
1 Introduction
Cet article aborde un problème de tournée où un ensemble de clients doit être livré à un ensemble de dates souhaitées. Si cette date est dépassée, le livreur effectuant la tournée verse au client un dédommagement proportionnel à son retard, appelé pénalité de retard. La livraison doit être effectuée en une seule tournée. Le coût de la tournée est égal à la distance totale parcourue.
Comme autre aspect du problème, cette tournée s’effectue dans un contexte plus large qui implique que la date de départ du véhicule n’est pas connue. Celle-ci est une variable de décision à prendre dans une fenêtre de temps [a, b]. Un coût externe s’applique et est fonction de la date de départ choisie.
L’objectif de ce problème est de minimiser le coût total composé des pénalités de retard, du coût de la tournée et du coût externe.
La version de ce problème considérant une date de départ fixe et ne prenant pas en compte le coût de tournée peut être assimilée à un problème d’ordonnancement noté 1|s
ij| P w
iT
iselon la notation de Graham [1] (où T
iest le retard de la tâche i, w
ison poids, et s
i,jindique un temps de setup dépendant de la séquence). Ce problème est prouvé NP-difficile [2].
La prise en compte des pénalités de retard est peu abordée dans la littérature des problèmes de livraison. On peut néanmoins citer quelques articles comme [3] et [4] qui considèrent des fenêtres de temps sur lesquelles les clients doivent être servis et où les dépassements génèrent des pénalités.
Depuis quelque années, les problèmes intégrant simultanément des problématiques d’ordon- nancement et de livraison sont de plus en plus étudiés. Par exemple, dans [5], un fabricant produit des commandes pour ses clients et les fait livrer par une flotte de véhicules. Dans [6], les auteurs abordent un cas concret d’impression et de distribution de journaux aux États-Unis.
Cependant, dans l’état de nos connaissances, il n’existe pas dans la littérature d’article où les auteurs cherchent explicitement à résoudre un problème de tournée sur une fenêtre de date de départ variable.
Le concept général de la méthode est présenté dans la Section 2 de l’article. La Section 3 détaille la deuxième partie de la méthode et présente des heuristiques. La Section 4 détaille les résultats expérimentaux.
2 Approche globale de résolution
La méthode proposée se décompose en deux étapes. La première étape a pour objectif d’éva-
luer l’évolution des coûts de la tournée et des pénalités de retard en fonction de la date de
départ du véhicule. La seconde étape consiste en la résolution d’un problème pour trouver la
date de départ et la tournée qui optimise le critère.
2.1 Première étape : Construction d’une fonction de coût
La date de départ d’un véhicule peut être choisie dans un ensemble discret de dates comprises entre une date de départ a et une date de départ b. Cette discrétisation correspond par exemple à une réalité terrain où le départ d’un véhicule ne se planifie qu’à la minute ou que toutes les 10 minutes. L’efficacité de la livraison est évaluée d’après deux critères. CP représente les coûts dûs aux pénalités de retard versés aux clients. CT représente les coûts de transport. Pour une date de départ t, la tournée optimale selon les critères CP et CT peut être différente de celle optimale à la date de départ t + 1. La courbe CP (t) + CT (t) est une fonction linéaire par morceaux non décroissante. Le but de la première étape est de construire cette fonction. La Fig.(1) présente un profil de cette courbe. La méthode de construction est détaillée dans la Section 3.
CP (t) + CT (t)
Temps
a(t1) c1
c2
α1
c3
α2
α3
t3 b t2
FIG. 1 – Coûts en fonction de la date de départ du véhicule
Soit S le nombre de segments de cette courbe. Chaque segment est associé à une tournée.
Une même tournée peut être également associée à plusieurs segments. On note t
kla date de changement de pente de α
k−1à α
k, ∀k ∈ S. c
kreprésente les coûts de retard et de livraison pour un départ du véhicule à la date t
ket en utilisant la tournée associée au segment.
De nouveaux segments sont créés au fur et à mesure du décalage de la date de départ. Deux événements provoquent la création d’un nouveau segment k :
— la tournée du segment k − 1 génère un nouveau ou plusieurs clients en retard (cette tournée sera associée au nouveau segment mais α
kaugmentera par rapport à α
k−1),
— une nouvelle tournée moins coûteuse est trouvée pour la date de départ t
k.
2.2 Deuxième étape : Résolution du modèle global
La deuxième étape vise à intégrer la fonction de coût établie à la première étape dans la fonction objectif du problème et à résoudre le problème par le programme linéaire en nombres entiers présenté par modèle ci-dessous.
D la variable représentant la date de départ du véhicule. Deux types de variables sont introduites : x
ket d
k, ∀k ∈ {1, . . . , S}. x
kvaut 1 si la date de départ D appartient au k
emesegment de la fonction de coût, 0 sinon. d
kreprésente la position de D sur ce segment.
Dans cette formulation, f(D) représente le coût externe dépendant de la date de départ D.
La contrainte (1) définit D en fonction des x
ket d
k. La contrainte (2) assure que D n’ap- partient qu’à un seul segment. Les contraintes (3) et (4) limitent d
kà la taille du segment k si D appartient à k, ou imposent d
kà 0 sinon.
Ce modèle comporte S variables binaires, S + 1 variables continues et S + 3 contraintes.
min
S
X
k=1
(x
kc
k+ d
kα
k) + f (D)
s.t. D =
S
X
k=1
(x
kt
k+ d
k) (1)
S
X
k=1
x
k= 1 (2)
d
k≤ x
k(t
k+1− t
k− 1) ∀k ∈ {1, . . . , S − 1} (3)
d
S≤ x
S(b − t
S) (4)
a ≤ D ≤ b (5)
d
k≥ 0, x
k∈ [0, 1] ∀k ∈ {1, . . . , S}
3 Calcul de la fonction CP (t) + CT (t)
3.1 Algorithme général
A chaque tournée p
i, on associe une fonction de coût de livraison et de retard donnée par CP
pi(t)+CT
pi(t) et dépendant de la date de départ t de la tournée p
i. Étant donné un ensemble W de tournées, la fonction CP (t) + CT (t) de cette ensemble est définie par :
CP (t) + CT (t) = min
i∈W(CP
pi(t) + CT
pi(t))
On note t
pila plus petite date de départ telle que la tournée p
iest la meilleure selon la fonction de coût suivante : t
pi= min
t∈[a,b](CP
pi(t) + CT
pi(t))
L’algorithme proposé est basé sur un algorithme de voisinage qui explore un ensemble des tournées afin de trouver le meilleur sous-ensemble W selon la fonction CP (t) + CT (t). Chaque nouvelle tournée explorée est ajoutée à l’ensemble W si elle améliore la fonction.
Les figures Fig.(2), Fig.(3) et Fig.(4) illustrent le cas d’un ensemble W constitué de deux tournées p
Aet p
Bet du résultat de la fonction CP (t) + CT (t). Pour une date de départ de tournée comprise dans l’intervalle [1,6] ou dans l’intervalle [12,13], la tournée p
Best la meilleure alors que la tournée p
Aest meilleure sur l’intervalle [6,11].
15 - 20 - 25 - 30 - 35 - 40 -
t 1
+
5
+
10
+p
Ap
AFIG. 2 – CP
pA(t) + CT
pA(t)
15 - 20 - 25 - 30 - 35 - 40 -
t 1
+
5
+
10
+p
Bp
BFIG. 3 – CP
pB(t) + CT
pB(t)
15 - 20 - 25 - 30 - 35 - 40 -
t 1
+
5
+
10
+p
Bp
Ap
BFIG. 4 – CP (t) + CT (t)
L’algorithme de calcul de la fonction CP (t) + CT (t) est décrit dans l’Algo.1.
Tout d’abord, une tournée initiale p
initest déterminée par la fonction Calcul de la tournée initiale() décrite dans la prochaine section. La tournée p
initest ajoutée à l’ensemble W et à un ensemble noté Candidats.
La boucle principale de l’algorithme, décrite de la ligne 4 à 12, extrait une tournée dans la liste Candidats et l’améliore à l’aide d’une recherche locale. La fonction Sélectionner tournée() sélectionne la tournée p
iayant la plus petite date de départ t
pi. La recherche locale, décrite en Section 3.3, est appliquée à la tournée p
i. Chaque tournée explorée dans la recherche locale est ajoutée à W si elle améliore la fonction CP (t)+CT (t). On note p
bestla tournée finale ne pouvant plus être améliorée par la recherche locale. L’ensemble Candidats est alors mis à jour de manière à contenir l’ensemble des tournées de W qui n’ont pas encore été améliorées par la recherche locale. Ainsi, l’ensemble V est déterminé de manière à obtenir l’ensemble des tournées ayant été ajoutées à W lors de la recherche locale à l’exception de la tournée p
best. Cette ensemble V est ajouté à l’ensemble Candidats. Puis l’ensemble des tournées n’appartenant plus à W est retiré de l’ensemble Candidats. Ce processus est répété jusqu’à ce que l’ensemble Candidats soit vide.
Algorithm 1
1: p
init← Calcul de la tournée initiale()
2: Candidats ← {p
init}
3: W ← p
init4: tant que Candidats 6= ∅ faire
5: p
i← Sélectionner tournée(Candidats)
6: Candidats ← Candidats\p
i7: W
0← W
8: {p
best, W } ← Recherche Locale(p
i, W )
9: V ← W \(W
0∪ p
best)
10: Candidats ← Candidats ∪ V
11: Candidats ← Candidats ∩ W
12: fin tant que
3.2 Calcul de la tournée initiale
Deux stratégies sont utilisées pour calculer la tournée initiale :
— La première est basée sur un algorithme de plus proche voisin (PPV).
— La deuxième consiste à visiter les clients par ordre de date de livraison croissante (EDD).
3.3 Recherche locale
La recherche locale part d’une tournée initiale p
i, explore son voisinage à l’aide d’un opérateur de voisinage, sélectionne le meilleur voisin et réitère le processus à partir de ce voisin. La recherche locale prend fin dès qu’elle ne permet plus d’améliorer la tournée courante. Toutes les tournées explorées sont évaluées en considérant une date de départ égale à t
pi. L’opérateur de voisinage consiste à réinsérer un client à n’importe quelle position dans la tournée. Le voisinage est déterminé en testant tous les clients pour toutes les positions possibles. Enfin, chaque tournée explorée est ajoutée à W si elle améliore la fonction CP (t) + CT (t) en un point.
A noter qu’une tournée peut être retirée de W si elle n’améliore plus cette fonction.
3.4 Convergence de la méthode
Étant donné qu’il existe un nombre fini de tournées optimales minimisant la fonction CP (t)+
CT (t), soit l’algorithme converge vers cet ensemble de tournées optimales soit vers un ensemble
de tournées sous optimales qu’il n’est plus possible d’améliorer avec la recherche locale. Le
critère d’arrêt (un ensemble vide de candidats) est nécessairement atteint puisqu’à chaque
itération, l’algorithme s’assure de n’ajouter dans l’ensemble Candidats que des tournées qui ont strictement amélioré l’ensemble W .
4 Résultats expérimentaux
Les résultats expérimentaux ont été réalisés sur ordinateur avec les caractéristiques sui- vantes : processeur Intel Core i7-7820HQ, CPU 2.90GHz et 16,0 Go de RAM. Les algorithmes ont été développés en C++.
Dans un premier temps, nous présentons les instances générées afin de tester l’approche proposée. Puis différentes variantes de l’algorithme sont comparées à une méthode exacte en utilisant un critère de comparaison basé sur le calcul d’une aire entre deux courbes.
4.1 Instances
Un ensemble de 320 instances sont générées de la manière suivante. L’ensemble des clients et le dépôt sont placés aléatoirement dans un carré de taille de 10 unités de temps et la distance de Manhattan est utilisée pour calculer les temps de trajets. Cette distance a du sens en agglomération, où les rues se croisent à angle droit. Les coûts de livraison sont égaux aux temps de trajets. La pénalité à verser à un client par unité de retard est tirée aléatoirement selon une loi normale d’espérance 5 et d’écart type 2. Les dates de livraison souhaitées par les clients sont tirées de manière uniforme dans une fenêtre de temps. La première date de cette fenêtre est fixée à une durée totale de tournée arbitrairement grande, notée M et égale au nombre de clients n multiplié par la plus grand distance entre deux clients de l’instance.
Les dates de livraison sont tirées dans une fenêtre de taille 400, [M, M + 400]. Concernant les bornes de la fenêtre de départ du véhicule, la première date a vaut 0 et la dernière date b correspond à la dernière date de livraison souhaitée par un client. Pour chaque nombre de clients compris entre 5 et 20, 20 instances sont générées.
4.2 Méthodes comparées
Les deux principales tournées initiales utilisées sont les tournées p
v(plus proche voisin) et p
d(ordre de dates de livraison) décrites en Section 3.2.
Plusieurs méthodes de calcul de la fonction CP (t) + CT (t) sont comparées :
— PPV : La fonction est donnée par l’heuristique du plus proche voisin.
— Version 1 : La fonction est donnée par l’Algo.1 en utilisant une stratégie d’initialisation PPV.
— Version 2 : La fonction est donnée par l’union des meilleures tournées obtenues par deux exécutions de l’Algo.1, une première fois initialisée par la stratégie PPV et une deuxième fois initialisée par la stratégie EDD.
— Version 3 : La fonction est donnée par l’union des meilleures tournées obtenues par huit exécutions de l’Algo.1 initialisé de huit manières différentes : par la stratégie PPV, EDD et 6 autres variantes basées sur PPV et EDD. Ces variantes se distinguent par le premier client visité et le sens de parcours des séquences données par PPV et EDD.
— OPT : la fonction optimale calculée par une procédure par séparation et évaluation développée lors de travaux antérieurs.
4.3 Indicateur de comparaison
Afin de comparer les fonctions CP (t) + CT (t) trouvées par les différentes méthodes, nous nous appuierons sur un indicateur de comparaison. Cet indicateur noté EA(X) est basé sur l’aire séparant la courbe de la fonction CP
X(t) + CT
X(t) donnée par une méthode X et celle donnée par la méthode exacte OP T et notée CP
∗(t) + CT
∗(t).
L’indicateur de comparaison EA(X) ne s’applique qu’à un intervalle de temps jugé intéres-
sant [a
∗X, b
∗X], avec a
∗X= min(a
X, a
OP T) et b
∗X= min(b
X, b
OP T) tel que :
— a
Xdésigne la plus grande date de départ à laquelle tous les clients sont livrés à l’heure par une tournée minimisant le coût de livraison.
— b
Xdésigne la plus petite date à laquelle tous les clients sont livrés en retard.
L’indicateur de comparaison EA(X) est donné par la formule suivante :
EA(X ) = P
t∈[a∗X,b∗X]
[(CP
X(t) + CT
X(t)) − (CP
∗(t) + CT
∗(t))]
P
t∈[a∗X,b∗X]