tp3 PDF
tp3 PDF
tp3 PDF
Duhamel - Lacomme
F2 - F3
TP numéro 3 : VRPTW
Durée : 3 séances, noté, à rendre avant le 06/01/2014
Présentation du problème : le problème de tournées de véhicules avec fenêtres de temps (Vehicle
Routing Problem with Time Windows – VRPTW) consiste à définir un ensemble de routes de
manière à satisfaire la demande d’un ensemble de 𝑛 clients. Une flotte de véhicules est disponible
en un dépôt central noté 0 pour effectuer ces livraisons. La flotte est homogène, i.e. chaque véhicule
a la même capacité 𝑄. La demande 𝑑𝑖 de chaque client 𝑖 = 1 … 𝑛 doit être traitée en une seule fois
et par un seul véhicule. De plus chaque client 𝑖 = 1 … 𝑛 possède une fenêtre de temps [𝐴𝑖 ; 𝐵𝑖 ]
(heure d’ouverture 𝐴𝑖 et de fermeture 𝐵𝑖 ) dans laquelle il doit être livré. Si le véhicule arrive avant
l’heure d’ouverture, il doit attendre que le client ouvre. Par contre, il ne peut arriver après l’heure de
fermeture. En outre, la livraison dure un temps 𝑡𝑖 . La fenêtre de temps du dépôt [𝐴0 ; 𝐵0 ] correspond
à la date au plus tôt de sortie du dépôt et la date au plus tard de retour au dépôt. La distance 𝑐𝑖𝑗 pour
aller du client 𝑖 au client 𝑗 est connue. On fait souvent l’hypothèse qu’elle est symétrique et satisfait
l’inégalité triangulaire. L’objectif principal est de minimiser le nombre de véhicules puis, en critère
secondaire, la distance totale parcourue. Ce problème est une des extensions principales du VRP et
il est NP-difficile.
7 2
0 4
1
5
7 2 3 6 7
0 4 0 2 4 0
1 8 1 5
5
2) Manipulations élémentaires
Définir les structures de données adaptées au stockage des données et à la manipulation
efficaces des solutions. La représentation de la solution nécessite de stocker un ensemble de
tournées et, dans chacune, la date de passage du véhicule sur chaque point (pour accélérer
les calculs de faisabilité temporelle). On réfléchira aux informations pertinentes à stocker
sur chaque sommet de manière à faciliter le plus possible les transformations sur la solution
courante.
3) Heuristiques de construction
Les contraintes temporelles compliquent la génération de solution réalisable. Par contre, le
nombre de véhicule est libre. Voici deux heuristiques possibles :
a) réaliser une routine construisant une solution à partir d'une séquence des clients. Une
approche simple consiste à « ouvrir » une tournée et à insérer au mieux possible le client
courant dans cette tournée. Lorsqu'il n'est plus possible d'insérer le client dans cette
tournée, on ouvre une nouvelle tournée et on continue. Une amélioration considère
l'insertion du client courant dans toutes les tournées ayant été ouvertes jusqu'à présent.
b) l'heuristique Savings de Clarke & Wright a été développée pour le VRP. Elle ne change
pas beaucoup pour le VRPTW, mis à part le test de faisabilité temporelle. On crée
initialement une tournée pour chaque client. Pour tout arc (𝑖, 𝑗), on calcule le gain
𝑔𝑖𝑗 = 𝑐𝑖0 + 𝑐0𝑗 − 𝑐𝑖𝑗 . On trie les gains par ordre décroissant. Ensuite, dans cet ordre, 𝑔𝑖𝑗
étant le gain courant, on regarde s'il existe une route (0, 𝑗, … ,0) commençant par le client
𝑗 et une route (0, … , 𝑖, 0) terminant par le client 𝑖. Dans ce cas, on fusionne les deux
routes en supprimant les arcs (0, 𝑗) et (𝑖, 0) et en ajoutant l'arc (𝑖, 𝑗).
4) Heuristiques d'amélioration
Le principe d'amélioration est identique à celui vu en cours. Les tests de validité sont plus
complexes car ils doivent aussi prendre en compte la capacité et la compatibilité temporelle.
Quelques exemples de mouvements intéressants :
a) le 2-Opt* consiste à échanger les derniers clients de deux tournées
b) le Or-Opt consiste à déplacer une séquence de clients (1, 2 ou 3) dans une autre tournée
c) au sein d'une tournée, les opérations de déplacement d'un ou plusieurs sommets (Shift,
Swap) permettent d'optimiser localement la tournée.
5) Métaheuristiques
Choisir une des métaheuristiques vues en cours. GRASP et algorithmes génétiques /
mémétiques sont de bons candidats. Attention à l'efficacité de la recherche locale. Une
bonne recherche globale aura du mal à compenser une mauvaise recherche locale.
6) Analyse comparative
Dans la littérature, il y a un flou dans la définition de la fonction objectif. Certains auteurs
considèrent aussi le nombre de véhicules comme un autre critère. Etudier l’impact des
fonctions objectif suivantes :
Le nombre de véhicules (critère principal) et la distance totale (critère secondaire)
La distance totale
La pondération du nombre de véhicules (coefficient 𝛼) et de la distance totale
(coefficient 1 − 𝛼)
Un coût fixe 𝐾 pour chaque véhicule plus la distance totale.
Modalités de remise du travail : comme pour le travail précédent, nous attendons un rendu
contenant les sources du programme, le rapport décrivant les choix réalisés et présentant les
tableaux de résultats. Ces tableaux sont fournis en annexe et sont à remplir avec vos résultats. Le
programme principal doit accepter en entrée le nom de l'instance à traiter. Il doit ressortir une ligne
contenant le temps de calcul et la valeur de la meilleure solution trouvée (nombre de véhicules et
distance totale). La date limite de remise du travail est fixée au 6 janvier. Au-delà, le rendu
entraînera une pénalité proportionnelle au nombre de jours de retard.
Tableaux de résultats : il y a trois types d’instances, R, C et RC. Le premier type correspond à des
clients répartis aléatoirement sur le plan. Le second correspond à des clients répartis en clusters (par
exemple des villes). Le troisième est une combinaison des deux autres (clients en ville ou en
campagne). Les instances contiennent 100 clients. Pour obtenir les instances à 25 et 50 clients, il
suffit de considérer les 25 premiers ou les 50 premiers. Vous ferez des tableaux de résultats sur le
modèle des tableaux pour le travail précédent.