Nouvelles matheuristiques en tournée
Nouvelles matheuristiques en tournée
Département Informatique
64 avenue Jean Portalis
37200 Tours, France
Tél. +33 (0)2 47 36 14 14
www.polytech.univ-tours.fr
Nouvelles matheuristiques:
implémentations et expérimentations
Application aux problèmes de tournée
Entreprise Étudiants
Laboratoire Informatique Yan LI (DI5)
UTOP
UIIAO
Tuteurs académiques
ATRI
YTRU
Jean-Louis Bouquard
Tuteurs entreprise
Jean-Louis Bouquard
26 septembre 2016
Liste des intervenants
Entreprise
Laboratoire Informatique UTOP
UIIAO
ATRI
YTRU
http://polytech.univ-tours.fr
Introduction 1
I Projet de Recherche 2
1 État de l’art 3
1 Matheuristique .......................................................................................................................... 3
2 Problèmes de tournée ................................................................................................................ 4
3 Aperçu de matheuristiques proposées pour problème de tournée .......................................... 5
4 Exemples d’utilisation de matheuristiques .............................................................................. 7
4.1 A matheuristic for the truck and trailer routing problem............................................ 7
4.1.1 Définition du problème.................................................................................. 7
4.1.2 Une formulation set-partitioning du TTRP ................................................... 8
4.1.3 Matheuristique proposée................................................................................ 9
4.2 A matheuristic approach for the Pollution-Routing Problem ...................................... 10
4.2.1 Description du problème................................................................................ 10
4.2.2 ILS-SP-SOA matheuristic................................................................................ 11
4.3 A matheuristic approach for solving a home health care problem .............................. 13
i
Table des matières
II Projet de Développement 20
3 Nouvelles matheuristiques 21
1 Aperçu de l’algorithme.............................................................................................................. 21
2 Déroulement de l’algorithme .................................................................................................... 22
2.1 Génération d’une solution initiale ................................................................................ 22
2.2 Déduction du problème original ................................................................................... 23
2.2.1 La première matheuristique........................................................................... 23
2.2.2 La deuxième matheuristique.......................................................................... 25
2.3 Résolution avec Cplex.................................................................................................... 27
2.3.1 Le modèle........................................................................................................ 27
2.3.2 Mise en oeuvre ................................................................................................ 27
4 Expérimentations 29
1 Les instances .............................................................................................................................. 29
2 Les résultats ............................................................................................................................... 29
5 Gestion de projet 32
1 La planification du projet.......................................................................................................... 32
2 Méthodologies et outils ............................................................................................................. 34
2.1 Environnement de développement ............................................................................... 34
2.2 Les outils ........................................................................................................................ 34
Conclusion 36
ii
Table des figures
1 État de l’art
1 Une carte des variantes du VRP ................................................................................................ 4
2 Nombre d’articles par an ........................................................................................................... 6
3 Types de routes dans une solution de TTRP ............................................................................. 8
3 Nouvelles matheuristiques
1 Première méthode de sélection des arcs ................................................................................... 24
2 Deuxième méthode de sélection des arcs.................................................................................. 25
5 Gestion de projet
1 Les tâches réaliées...................................................................................................................... 32
2 Gantt des tâches réaliées ........................................................................................................... 33
3 Les tâches à réaliser ................................................................................................................... 33
4 Gantt des tâches à réaliser......................................................................................................... 33
5 Logo de CPlex ............................................................................................................................ 34
6 Logo de Eclipse .......................................................................................................................... 34
7 Logo de Git ................................................................................................................................ 35
8 Logo de Trello ............................................................................................................................ 35
iii
Liste des tableaux
4 Expérimentations
1 Résultats des instances dans Classe 2 ....................................................................................... 30
2 Résultats des instances dans Classe 3 ....................................................................................... 31
iv
Introduction
Ceci est le rapport du Projet de Recherche & Développement que j’ai réalisé au cours de ma dernière
année dans le cadre du cycle Ingénieur Informatique à Polytech Tours.
Ce projet intitulé “Nouvelles matheuristiques : implémentations et expérimentations” a été encadré par
Monsieur Jean-Louis Bouquard.
Les objectifs de ce projet sont les suivants :
— D’abord je dois prendre connaissance de l’état de l’art pour comprendre les méthodes et les
algorithmes existants. Cela nécessite la lecture d’un grand nombre d’articles.
— Puis je vais choisir un problème entre pleins de problèmes de tournée pour l’étude plus approfon-
die et le développement après.
— Ensuite je vais étudier et implémenter certaines variantes de matheuristique sur ce problème
choisi en utilisant un solveur.
— Et je vais aussi essayer de proposer une nouvelle matheuristique ou améliorer une matheuristique
existante pour ce problème.
— Enfin je dois effectuer des expérimentations numériques pour évaluer et apprécier ces différentes
méthodes.
Au premier semestre, nous nous concentrons plutôt sur le Projet de Recherche, donc le travail réalisé
porte plutôt sur l’étude bibliographique. Nous avons choisi le problème one-to-one m-PDTSP (Multi-
Commodity One-to-One Pickup-and-Delivery Traveling Salesman Problem) pour une étude plus approfondie
ainsi que pour le Projet de développement suivant.
Au deuxième semestre, nous avons proposé une nouvelle matheuristique avec plusieures variantes
pour résoudre ce problème. Nous avons les implémentées et fait des expérimentations pour évaluer ces
différentes méthodes.
Ce rapport détaille le travail que j’ai effectué tout au long de l’année 2015-2016, il se compose de deux
grandes parties, la première partie présente la recherche, il contient dans un premier temps un état
de l’art, pour définir ce qu’est une matheuristique et montrer comment nous pouvons l’utiliser pour
résoudre des problèmes de tournée. Puis une étude plus approfondie pour le problème one-to-one
m-PDTSP est menée, et nous présentons en détail la description et la modélisation de ce problème, ainsi
que deux algorithmes existants pour résoudre le problème one-to-one m-PDTSP.
La deuxième partie porte sur les propositions, les implémentations et les expérimentations. D’abord,
nous allons présenter en détail les algorithmes que nous avons proposé, puis comment nous avons fait les
expérimentations et les résultats expérimentaux. Il y aura un autre chapitre pour présenter les téchniques
et le planning du développement. Enfin, nous finirons avec un chapitre de conclusion.
1
Première partie
Projet de Recherche
1 État de l’art
1 Matheuristique
3
1 État de l’art
2 Problèmes de tournée
Le problème de tournées de véhicules (VRP) est un nom générique donné à une classe de problèmes
comportant la visite des “clients” par les “véhicules”. Le nom vient d’un problème pratique de base, où
les gens essayent de fournir des clients qui sont géographiquement dispersés avec des marchandises en
utilisant un certain nombre de véhicules à partir d’un dépôt commun. Ce problème est une extension
classique du problème du voyageur de commerce, et il fait partie de la classe des problèmes NP-complets.
Généralement, le but d’un problème de tournée est de minimiser le coût ou le temps ou la distance de
livraison des biens. Mais en fait, le VRP apparaît très fréquemment dans des situations pratiques non
directement liées à la livraison des marchandises. Par exemple, la levée du courrier des boîtes aux lettres,
le ramassage des enfants par des autobus scolaires, les tours de visite par un médecin, la livraison de
linge etc. sont tous des VRP, où l’opération “livraison” peut être un ramassage, un ramassage et une
livraison, ou d’autres opérations, et où les “marchandises” et “véhicules” peuvent prendre une variété de
formes dont certaines peuvent même ne pas être d’une nature physique.
Compte tenu de l’énorme nombre de situations pratiques qui peuvent être vues comme des VRP, ce n’est
pas un surprise de constater qu’un aussi grand nombre de contraintes et objectifs apparaissent dans
ces problèmes. Nous avons toutes ces variantes en modifiant certaines contraintes ou l’objectif, dans
Figure 1 1 , nous voyons une carte des plusieurs variantes classiques. Le VRP et ses variantes ont été un
sujet considérable dans le domaine de recherche au cours de ces dernières années, principalement en
raison du grand nombre de contraintes et des objectifs supplémentaires découlant des applications dans
le monde réel.
Traditionnellement, les méthodes de résolution pour les VRP ont été classées en trois groupes : méthodes
exactes, heuristiques et métaheuristiques. Plus récemment, les matheuristiques sont apparues comme
une quatrième option. Dans la section suivante, nous allons choisir certains problèmes VRP classiques
pour voir schématiquement comment on peut résoudre ces problèmes avec une matheuristique.
4
1 État de l’art
En raison de progrès des méthodes exactes et de la technologie du matériel, plusieurs modèles de mixte
programmation linéaire en nombres entiers (MILP) peuvent être résolus à l’optimalité ou à proximité
de l’optimalité dans une durée raisonnable. Cela a encouragé un nombre de chercheurs à concevoir des
heuristiques qui intègrent des phases où des modèles de programmation mathématique sont résolus.
C’est ce que nous appelons matheuristiques.
Nous pouvons classifier les matheuristiques proposées en trois grandes familles en analysant une grande
variété d’approches et de problèmes.
2. Heuristique d’amélioration
Les matheuristiques appartenant à cette classe utilisent des modèles de programmation mathématique
pour améliorer une solution trouvée par une approche heuristique. Ils sont très fréquents, car nous
pouvons combiner le modèle de programmation mathématique avec toutes sortes de heuristique. Nous
voyons souvent les deux utilisations suivantes :
a) Une approche “one-shot” où un modèle MILP est résolu une seule fois dans le but d’améliorer une
solution réalisable trouvée par une heuristique.
b) Des approches avec des modèles MILP pour l’optimisation locale où un modèle MILP est utilisé
pour l’optimisation locale, ce sont comme des opérateurs de voisinage à l’intérieur d’une procédure
de recherche locale.
3. Approches de décomposition
En général, dans une approche de décomposition, un problème est divisé en sous-problèmes plus petits
et plus simples, et puis une méthode de résolution spécifique est appliquée à chaque sous-problème.
Dans ces matheuristiques, certains ou tous ces sous-problèmes sont résolus grâce à des modèles de
programmation mathématique à l’optimalité ou suboptimalité.
5
1 État de l’art
La littérature récente est principalement concentrée sur les approches basées sur la génération de colonne
et les heuristiques d’amélioration. Dans les deux cas, il existe un grand nombre de contributions couvrant
une grande variété de problèmes. Cela prouve que ces approches sont efficaces et peuvent être facilement
adaptées aux différents problèmes. Dans la section prochaine, nous allons voir trois exemples d’applica-
tion, dont le premier exemple A matheuristic for the truck and trailer routing problem [19] appartient à la
première famille, tandis que la deuxième A matheuristic approach for the Pollution-Routing Problem [11]
combine les deux car il comprend une procédure d’amélioration utilisant la programmation en nombres
entiers (IP) sur une formulation “Set-partitioning”.
Les approches de décomposition sont encore appréciées dans les problèmes complexes qui impliquent
différents types de décisions, cela est dû au fait qu’il est naturel et simple de décomposer ces problèmes
en sous-problèmes. L’exemple A matheuristic approach for solving a home health care problem [1] appartient
à cette classe.
La Figure 2 2 indique le nombre d’articles consacrés aux matheuristiques pour des problèmes de tournée
chaque année jusqu’à 2014. Nous avons également compté les articles utilisant une méthode similaire,
mais avant l’apparition du concept de matheuristique. Nous pouvons voir que l’intérêt pour cette
technique a eu une croissance remarquable au cours des dernières années.
6
1 État de l’art
Dans le problème TTRP(truck and trailer routing problem) [19], une flotte de camions et remorques sert un
ensemble de clients. Certains clients avec des contraintes d’accessibilité doivent être servis simplement
par un camion, tandis que d’autres peuvent être servis par camion ou par un véhicule complet (un camion
tirant une remorque). Le classique TTRP initialement introduit par Chao [6].
Les applications du monde réel de la TTRP apparaissent dans les opérations de distribution et de
collecte dans les régions rurales et les villes. Par exemple, dans certains pays européens, la collecte du
lait est effectuée par un petit camion avec remorque de grande capacité. Certaines fermes ne sont pas
accessibles par les gros véhicules, de sorte que la remorque doit être détachée sur les routes principales
avant de visiter ces fermes. Gerdessen [9] a signalé deux autres applications de TTRP aux Pays-Bas. La
première application concerne la distribution d’alimentation animale dans les régions rurales, tandis que
la seconde émerge dans le contexte de la distribution de produits laitiers.
Les données :
mt : le nombre de camions
mr : le nombre de remorque (Nous supposons mr < mt )
N = {1, ...n} : les sommets, c’est l’ensemble des clients
0 : le sommet 0 représente le dépôt
qi : chaque client i ∈ N a une demande qi > 0
Qt : la capacité de camion
Qr : la capacité de remorque
cij : la distance entre les deux sommets i, j ∈ N ∪ 0
Nt : sous-ensemble des clients qui sont accessibles uniquement par un camion
Nv : sous-ensemble des clients qui sont accessibles par un camion ou par un véhicule complet
Un trait distinctif de l’TTRP est que les emplacements des véhicule-clients (les clients dans Nv ) peuvent
être utilisées pour garer la caravane avant de servir les camion-clients (les clients dans Nt ). Cette
possibilité donne lieu à des itinéraires complexes avec un trajet principal de premier niveau et un ou
plusieurs trajets de second niveau comme indiqué dans la Figure 3 3 .
L’objectif :
En somme, l’objectif du TTRP est de trouver un ensemble de chemins de distance totale minimale de
sorte que chaque client est visité par un véhicule compatible ; la demande totale des clients visités sur
une route ne dépasse pas la capacité du véhicule attribué ; et le nombre de camions et de remorque
nécessaires ne dépasse pas mt et mr respectivement.
7
1 État de l’art
Comme nous pouvons voir dans la Figure 3, il y a trois types de route dans une solution de TTRP. Nous
définissons :
Ω : ensemble de circuits faisables dans un TTRP
Γ ⊆ Ω : ensemble de circuits camions purs
Ψ ⊆ Ω : ensemble de circuits véhicules purs
Π ⊆ Ω : ensemble de circuits à deux niveaux
Les variables :
aij : un paramètre binaire, il prend la valeur 1 si le client i ∈ N est visité sur un circuit camion pur j ∈ Γ ,
sinon il prend la valeur 0
bik : égale 1 si le client i ∈ Nv est visité sur un circuit véhicule pur , 0 sinon
eil : égale 1 si le client i ∈ Nv est visité sur un circuit à deux niveaux, 0 sinon
xj : variable binaire, il prend la valeur 1 si le circuit j ∈ Γ est sélectionnée dans la solution du problème,
sinon il prend la valeur 0
yk : égale 1 si le circuit k ∈ Ψ est sélectionnée dans la solution, 0 sinon
zl : égale 1 si le circuit l ∈ Π est sélectionnée dans la solution, 0 sinon
cr : représente le coût (e.i. la distance totale) de tous les circuits r ∈ Ω(= Γ ∪ Ψ ∪ Π)
Donc nous avons modélisé ce problème par un MILP, vu comme un problème de partitionnement. La
fonction objective est :
X X X
z= cj xj + ck yk + cl Zl (1)
j∈Γ k∈Ψ l∈Π
8
1 État de l’art
X X X
aij xj + bik yk + eil Zl = 1, ∀i ∈ Nv (2)
j∈Γ k∈Ψ l∈Π
X X
aij xj + eil Zl = 1, ∀i ∈ Nt (3)
j∈Γ l∈Π
X X X
xj + yk + Zl 6 mt (4)
j∈Γ k∈Ψ l∈Π
X X
yk + Zl 6 mr (5)
k∈Ψ l∈Π
La fonction objective Equation 1 minimise la distance totale de la solution. Equation 2 assure que
chaque véhicule-client est visité exactement une fois ; Equation 3 assure que chaque camion-client est
visité exactement une fois soit par une pure camion route soit par une route avec un deuxième niveau.
Equation 4 et Equation 5 imposent une limite supérieure sur le nombre de camions et de remorques
utilisées.
En fait, pour les petites instances, cette formulation peut être résolue directement par un solveur
à l’optimalité, mais pour les plus grandes instances, nous avons un nombre exponentiel de circuits
possibles, c’est pas efficace de résoudre le modèle directement par un solveur. Donc ils proposent une
matheuristique en deux phases. Dans la premiere phase, il génère un sous-ensembles de circuits, et dans
la deuxième phase, au lieu de résoudre la formulation sur tous les circuits possibles, on résout cette
formulation sur ce sous-ensemble.
Phase 1
Nous utilisons une méthode GRASP × ILS pour remplir un sous-ensemble de circuits (colonnes) Ω.
1. GRASP(Greedy randomized adaptive search procedure), une tournée géante T qui visite tous les clients
est calculée en utilisant une version randomisée de la bien connue heuristique plus proche voisin pour le
problème du voyageur de commerce. A partir de l’entrepôt, à chaque itération, nous ajoutons un client
après la dernière noeud i de la tournée émergeante.
2. Une solution du problème est dérivée de T par une procédure de séparation de tournée Split. (Nous
devons séparer la tournée T en plusieurs circuits parce que nous avons plusieurs camions.)
3. Améliorer cette solution en utilisant ILS (Iterated Local Search). L’ILS proposé tente d’améliorer une
solution S en effectuant itérativement quatre étapes :
— Utiliser la procédure Concat pour obtenir une tournée géante T de la solution S
— Échanger au hasard p paires de clients de T pour obtenir une nouvelle tournée géante T0
— Dériver une nouvelle solution S0 en appliquant le procédure de séparation (plit) à T0
— Appliquer une VND (variable neighborhood descent) à S0
4. Mettre les circuits améliorés de la solution dans un sous-ensemble de circuits
Le processus 1-4 est répété pour créer plus de circuit.
Phase 2
Nous résolvons le MILP Equation 1 – Equation 5 sur ce sous-ensemble Ω au lieu de sur tous les circuits
dans le graphe. Le solveur sera beaucoup plus efficace avec cette plus petite instance.
9
1 État de l’art
Cet article [11] présente le problème “Pollution-Routing” (PRP). C’est un VRP avec des considérations
environnementales, récemment introduit dans la littérature par Bektas et Laporte (2011) dans leur article
[Transportation Research Part B : Methodological 45 (8), 1232–1250] [3]. L’objectif est de réduire les
coûts opérationnels et environnementaux tout en respectant les contraintes de capacité et des fenêtres de
temps de service.
Les données :
G = (V, A) : un graphe complet et orienté
V = {0, 1, 2, ..., n} : l’ensemble des sommets
n o
A = (i, j) ∈ V2 , i , j : l’ensemble des arcs
0 : représente l’entrepôt où il y a une flotte de m véhicules identiques avec une capacité de Q
V − {0} : des clients
qi : un client i a une demande qi non-négative pour un seul produit
τi : durée de service τi et une fenêtre du temps spécifiée [ai , bi ] pour le service
Nous supposons que q0 = 0 et τ0 = 0.
dij : chaque arc (i, j) ∈ A représente une possibilité de voyage du noeud i à j pour une distance dij
R : l’ensemble de tous les circuits possibles
σ ∈ R, σ = (σ1 , ..., σ|σ| ) : un circuit commence et se termine à l’entrepôt, i.e. σ1 = 0 et σ|σ| = 0.
fσi σi+1 : le chargement du véhicule sur le circuit σ lorsque il voyage sur l’arc (σi , σi+1 )
[vMIN , vMAX ] : les vitesses possibles pour les véhicules
Les variables :
vij : la vitesse sur chaque arc (i,j), elle est entre [vMIN , vMAX ]
R0 ⊂ R : un sous-ensemble des circuits
L’objectif :
Le PRP vise à trouver une matrice de vitesse (v)ij et un sous-ensemble de circuits R’ (tel que |R0 | ≤ m, m :
le nombre de véhicules) pour servir tous les clients, tout en minimisant les coûts environnementaux et
opérationnels.
w1 , w2 , w3 , w4 sont les paramètres basés sur des propriétés du fuel, les véhicules et les caractéristiques du
réseau.
La consommation de fuel est convexe, le minimum vF∗ sur cette fonction, i.e. la valeur de vitesse qui
minimise les coûts de fuel est :
!1/3
dFσFi σi+1 w1
(vF∗ ) = 0 ⇒ vF∗ = (7)
dvσi σi+1 2w4
10
1 État de l’art
!
w1 dσ σ
FσFD
i σi+1
(vσi σi+1 ) = ωFC dσi σi+1 + w2 + w3 fσi σi+1 + w4 vσ2i σi+1 + ωFD i i+1 (8)
vσi σi+1 vσi σi+1
∗
le minimum vFD sur cette fonction, i.e. la valeur de vitesse qui minimise les coûts de fuel est :
ωFD 1/3
dFσFD
i σi+1 ∗ ∗
ωFC + w1
(vFD ) = 0 ⇒ vFD = (9)
dvσi σi+1 2w4
vF∗ et vFD
∗
sont indépendants.
Considérant à la fois la consommation de fuel et les coûts de conduite, fonction objective du PRP est :
X |σ|−1
X
ZPRP (R, v) = ωFC FσFi σi+1 (vσi σi+1 ) + ωFD tσ|σ| (10)
σ∈R i=1
Première étape :
la construction de la solution initiale et la recherche locale visent à minimiser le coût en tenant compte
des décisions de routage mais sans changer les vitesses. Ce sous-problème peut être considéré comme un
VRPTW (Vehicle Routing Problem with Time Windows) avec la fonction objective Equation 10.
La recherche est complétée par une procédure récursive d’optimisation de vitesse, qui est appliquée sur
chaque optimale solution locale de la “routage” recherche locale. Nouvelles décisions de vitesse sont
incluses dans une matrice de vitesse dynamique, qui est à son tour utilisée dans les sous-problèmes
VRPTW ultérieures.
Deuxième étape :
Enfin, les routes associées aux solutions optimales locaux sont stockées dans un sous-ensemble, et utilisées
par une procédure d’optimisation de la programmation en nombres entiers sur une set-partitioning
formulation pour générer des meilleures solutions possibles. Dans ce processus, chaque circuit peut
être associée à une matrice de vitesse différente, et donc cette procédure exacte ajoute un niveau
supplémentaire de l’intégration entre les circuits et la vitesse des décisions.
11
1 État de l’art
12
1 État de l’art
Il s’agit de Home Health Care Problem (HHCP) [1], l’objectif consiste à construire des circuits et des listes
de personnel optimales pour soins de santé. La difficulté est la combinaison de problème de tournées et
problème de “personnel rostering” qui sont deux problèmes d’optimisation difficiles bien connus. L’objet
est de minimiser le nombre de staff.
Ils proposent une formulation de programmation linéaire en nombres entiers (ILP). Ce modèle peut être
utilisé directement pour résoudre des petites instances en utilisant un solveur, ici ils ont utilisé le solveur
Cplex-IBM.
Pour les instances plus grandes, ils développent une matheuristique basée sur la décomposition de la
formulation ILP en deux problèmes. Le premier est un problème modélisé comme un partitioning-like
problem et il représente la partie ordonnancement de personnel. Le second problème consiste à la partie
de tournée de véhicule. Ce dernier est équivalent à un problème Traveling Salesman Multi-dépôt avec
Windows Time (MTSPTW).
X
yl 6 1, ∀k ∈ P (13)
l∈Rk
yl ∈ {0, 1} , ∀l ∈ R (14)
La fonction objective Equation 11 est de minimiser le nombre de circuits (i.e. le nombre de personnel).
Nous résolvons cette formulation avec Cplex IBM.
Remarque : J’ai appris beaucoup d’autres exemples d’application, mais je vais pas présenter toutes en
détail ici, vous pouvez les trouver dans les comptes rendus hebdomadaires.
13
2 Étude approfondie du pro-
blème one-to-one m-PDTSP
Dans ce chapitre, nous allons nous concentrer sur une variante du problème de tournée de véhicule
appelée Multi-Commodity One-to-One Pickup-and-Delivery Traveling Salesman Problem (one-to-one m-
PDTSP). Ce problème a été initialement introduit par Hipólito Hernández-Pérez et Juan-José Salazar-
González en 2009 [10], il généralise plusieurs problèmes ramassage-et-livraison reconnus.
1 Description du problème
Un véhicule d’une capacité limitée sert un groupe de clients qui peuvent fournir ou commander certains
produits. Le véhicule doit transporter ces produits de leurs origines à leurs destinations (ce sont des
clients). Chaque produit a un poids connu, et il a exactement une origine et une destination.
Tous les clients doivent être visités exactement une fois par le véhicule, même si certains sont ni l’origine,
ni la destination de la marchandise. Donc l’objectif est de trouver une tournée Hamiltonian de longueur
minimal qui satisfait toutes les demandes sans jamais violer la contrainte de capacité du véhicule.
Les données :
0 et n + 1 : le dépôt
i ∈ {1, 2, ..., n} : ensemble des clients
G = (V, A) : un graphe orienté complet
V = {0, 1, 2, ..., n, n + 1} : le dépôt et les clients
A = {(i, j), i ∈ V, j ∈ V} : des arcs entre les clients
cij : le coût de voyage de (i, j)
k ∈ K = {1, ..., m} : on a m différents produits
qk : chaque produit a un poids qk
sk ∈ {0, 1, ..., n} : l’origine de produit k
dk ∈ {0, 1, ..., n} : la destination de produit k
Nous supposons sk , dk and qk > 0
Q : la capacité de véhicule
14
2 Étude approfondie du problème one-to-one m-PDTSP
2 Modélisation du problème
Nous utilisons un modèle de mixte programmation linéaire en nombre entiers (MILP) pour résoudre ce
problème. D’abord, nous définissons :
P ⊂ A : une route (composé par un certain nombre des arcs) dans le graphe
Pk : l’ensemble de toutes les routes possibles dans G de sk à dk
Nous devons trouver une route qui correspond toutes les conditions :
θ(0) = 0 : la route du véhicule commence au dépôt
θ(n + 1) = n + 1 : la route du véhicule termine au dépôt
θ(sk ) < θ(dk ) pour chaque k ∈ K : l’origine doit être visitée avant la destination
P
k∈K:θ(sk )6i<θ(dk ) qk 6 Q pour chaque i ∈ V\n + 1 : la capacité du véhicule est une limite supérieure de la
charge du véhicule à travers tout le parcours.
La source et la destination de chaque produit implique une contrainte de précédence entre certaines
paires de sommets dans V. Parce que chaque sommet dans le graphe G doit être visité exactement une
fois, il est fondamental pour l’existence d’une solution de one-to-one m-PDTSP que les contraintes de
précédence induisent un sous-graphe acyclique de G.
Si chaque sommet est la source d’au plus un produit et/ou la destination d’au plus un produit et les
contraintes de précédence induisent un sous-graphe
n acycliqueode G, alors la condition
Q > max qi+ , qi− : i ∈ V
est une condition nécessaire et suffisante pour l’existence d’une solution de one-to-one m-PDTSP.
2.2 Le modèle
Ci-dessous, nous présentons le modèle pour résoudre le one-to-one m-PDTSP. Ce modèle fait usage de la
classique 2-indice formulation de la TSP, adaptés pour calculer le plus court chemin Hamiltonien de 0 à
n + 1 dans G.
Les variables mathématiques de cette formulation :
1 si a est choisi
xa =
Pour tous les a ∈ A
0
sinon
15
2 Étude approfondie du problème one-to-one m-PDTSP
La fonction objective :
X
ca xa (1)
a∈A
soumis aux :
La fonction objective Equation 1 consiste à minimiser le coût total des arcs sur la route. Equation 2 et
Equation 3 assurent que le véhicule visite chaque sommet exactement une fois. Equation 4 assure que le
chemin connecte tous les sommets en une seule route.
Nous pouvons voir que Equation 2 – Equation 5 assurent que nous obtenons un chemin Hamiltonien,
mais quelques chemins Hamiltonian peuvent être infeasibles pour le one-to-one m-PDTSP, comme nous
avons aussi les contraintes de précédence et la contrainte de capacité du véhicule.
Donc nous allons ajouter certains nouvelles contraintes pour créer un modèle modifié pour one-to-one
m-PDTSP, ce modèle peut éviter les tournées infaisables. Pour faire ça, nous avons deux choix :
Formulation de chemin
Nous associons le chemin Hamiltonian avec un chemin P ∈ Pk pour tout k ∈ K. Les poids au long de tous
ces chemins doivent être inférieurs ou éguals à la limitation de la capacité du véhicule. On va formuler
ces conditions d’une manière linéaire.
1 si la véhicule va de sk à dk par chemin P
Pour tout k ∈ K et tout P ∈ Pk .
λP =
0
sinon
X X
qk λP 6 Qxa pour tout a ∈ A (6)
k∈K a∈P∈Pk
X
λP = 1 pour tout k ∈ K (7)
P∈Pk
16
2 Étude approfondie du problème one-to-one m-PDTSP
Formulation de flux
Un modèle alternatif pour one-to-one m-PDTSP est basé sur le flux de produit.
Pour chaque arc a ∈ A et chaque produit k ∈ K, nous définissons la variable fak qui représente le poids de
produit k dans la véhicule quand la véhicule passe par l’arc k. Donc nous avons :
qk si i = sk
X X
k k
fa − fa = (9)
−qk
si i = dk
a∈δ+ ({i}) a∈δ− ({i})
0 autrement
X
fak 6 Qxa pour tout a ∈ A (11)
k∈K
Contraintes Equation 9 et Equation 10 imposent que, pour chaque produit k, il devrait y avoir un chemin
de sk à dk qui envoye qk unités de k. L’inégalité Equation 11 assure la limitation de la capacité du véhicule
à chaque arc.
Il est bien connu que les bornes inférieures et supérieures serrés sur les variables de flux ont un impact
crucial sur la valeur optimale de l’ensemble du modèle. Par exemple, c’est mieux de remplacer Equation 10
par Equation 12
q k xa si a ∈ δ+ ({sk }) ou a ∈ δ− ({dk })
0 si a ∈ δ+ ({0}) et sk , 0
X X
k k
fa − fa = si a ∈ δ− ({n + 1}) et dk , n + 1 (12)
0
a∈δ− ({i})
si a ∈ δ+ ({dk })
0
0 si a ∈ δ− ({sk })
Notez que qj+ − qj− est le poids net collecté par le véhicule du client j, et qi− − qi+ est le poids net obtenu du
véhicule par le client i.
Ces deux modèles ont deux perspectives différentes, mais la méthode pour les résoudre sont assez
similaires, donc nous allons utiliser le deuxième modèle dans les algorithmes suivants.
17
2 Étude approfondie du problème one-to-one m-PDTSP
Hipólito Hernández-Pérez et Juan-José Salazar-González qui ont soulevé ce problème ont proposé un
algorithme exact appelé Single Benders Decomposition [10] implémenté dans un branch-and-cut cadre,.
Comme nous pouvons voir que le modèle Equation 1 – Equation 5, Equation 9 – Equation 11 a un nombre
polynôme de variables continues, nous peuvons développer une technique de décomposition où un
problème de maître (master problem) fonctionne uniquement avec les variables xa .
La décomposition : Nous résolvons d’abord un problème simplifié appelé relaxed master problem qui
considére plutôt les contraintes dans Equation 1 – Equation 5. Ensuite, nous vérifions la faisabilité
par un subproblem, dans ce problème, nous allons déterminer une contrainte qui n’a pas été
respectée dans la solution précédente, nous l’ajoutons au master problème et nous recommencons
la entière procédure. La procédure est répétée jusqu’à le relaxed master problem est infaisable, ou
zéro est la solution optimale du subproblem.
Le branch and cut : Dans ce dernier cas où la solution optimale est zéro, nous remplons la variable xa
avec une variable 0 < xa < 1, et répétons les procédures de cut-generation dans chaque nœud de
l’arbre de décision de branche dans un cadre branch-and-cut.
Cet algorithme peut juste résoudre les instances jusqu’à 24 clients et 15 produits.
En 2011, I. Rodríguez-Martín et Juan-José Salazar-González [17] ont proposé une matheuristique appelée
MIP-based GRASP pour le one-to-one m-PDTSP qui peuvent résoudre des instances avec un maximum
de 300 clients et 600 produits. Et ils ont comparé les résultats des deux algorithmes sur les instances pas
très grandes.
MIP-based greedy randomized adaptive search procedure (GRASP), cette méthode combine les techniques de
programmation mathématique avec des ingrédients typiques de métaheuristiques et il peut donc être
considérée comme une matheuristique
MIP(Mixed integer programming) est la programmation linéaire où certaines variables sont contraintes
d’être entiers.
GRASP est un multi-démarrage algorithme métaheuristique, où chaque itération se compose de deux
phases :
Phase 1 – la construction d’une solution faisable. Pour générer une solution initiale, nous appliquons
une heuristique gloutonne randomisés comme l’heuristique “les plus proches voisins” pour le TSP.
C’est un chemin simple où c’est pas obligatoire de visiter l’origine avant de la destination d’un
produit. Si aucunne solution faisable est trouvée, la procédure recommence à partir du dépôt.
Phase 2 – l’amélioration. La phase d’amélioration commence à partir d’une solution faisable donnée et
essaie de l’améliorer en utilisant une modification de l’algorithme branch-and-cut.
La modification consiste à fixer les variables pour obtenir un modèle plus facile à résoudre. Plus
précisément, un pourcentage donné de variables binaires, correspondant à des arcs de la solution
initiale, sont fixés à 1. Ensuite, le modèle MIP détendue est résolu en utilisant l’approche branch-
and-cut avec une limite de temps.
Le processus qui combine de la fixation de variables avec la résolution du modèle MIP correspon-
dant est répété jusqu’à ce que il n’y a aucune amélioration ou la limite de temps est atteinte.
18
2 Étude approfondie du problème one-to-one m-PDTSP
Les deux phases sont répétées jusqu’à ce qu’un critère d’arrêt soit satisfait. Dans notre cas, le critère
d’arrêt est une limite de temps.
En outre, chaque solution trouvée, soit par l’algorithme de construction ou par l’algorithme branch-
and-cut, est soumis à des “edge-exchange” procédures comme 2-opt et 3-opt pour le standard TSP. Ces
procédures d’échange ont été modifiées afin de maintenir la faisabilité des solutions.
repeat
s0 ← GenerateInitialSol();
s0 ← 2-and-3-opt(s0 );
sbest ← s0 ;
slocal_best ← s0 ;
while Il y a une solution améliorée et LS_timeLimit pas encore arrivé do
Fix_variables(slocal_best );
s0 ← solveMIP();
s0 ← 2-and-3-opt(s0 );
if s0 est mieux que slocal_best then
slocal_best ← s0 ;
end
end
if slocal_best est mieux que sbest then
sbest ← slocal_best ;
end
until timeLimit arrivé;
return sbest ;
Algorithme 2 : MIP-based GRASP for the m-PDTSP
19
Deuxième partie
Projet de Développement
3 Nouvelles matheuristiques
Après toutes les études du premier semestre, nous voulons créer nos propres matheuristiques en mettant
en oeuvre les méthodes et surtout les principes que nous avons appris. Dans ce chapitre, nous présentons
les algorithmes que nous avons proposés pour résoudre le problème one-to-one m-PDTSP présenté dans
Chapitre 2.
1 Aperçu de l’algorithme
En utilisant le modèle matheuristique présent dans Section 2 (Chapitre 2), nous pouvons résoudre les
petites instances à optimalité directement par un solveur, par exemple Cplex, mais malheureusement,le
solveur ne peut pas résoudre des plus grandes instances qui sont avec plus que 1000 constraintes.
Pour explorer un algorithme efficace pour les grandes instances, nous avons fait beaucoup d’essayes.
Mais l’idée principale de nos algorithmes est de trouver une solution initiale utilisant une heuristique et
puis utiliser le modèle MLP et un solveur pour l’améliorer. Les améliorations sont faites par déduire le
problème en plus petit problème et le résoudre à l’optimalité ou à proximité de l’optimalité. Ça veut dire
que le modèle mathématique ici sert à l’optimisation locale, donc nos matheuristiques appartiennent à
la deuxième grande familles de matheuristique “Heuristique d’amélioration” présentée dans Section 3
(Chapitre 1).
Comme nous avons essayé de différentes façons pour réaliser ces trois phrases, nous avons beaucoup de
versions de l’algorithme, certains marchent bien mais certains sont moins bien. Nous avons gardé les
deux meilleures versions pour la comparaison des résultats.
Dans la section suivante, nous allons vous présenter en détail les déroulements des trois phases, y
compris les deux différentes vesions de matheuristique que nous allons faire comparer avec les résultats
de Hipólito Hernández-Pérez et Juan-José Salazar-González dans leur article [10].
21
3 Nouvelles matheuristiques
2 Déroulement de l’algorithme
Pour faciliter la compréhension de l’algorithme, nous nous faisons rappeler ici les significations des
symboles dans le problème :
0 et n + 1 : le dépôt
i ∈ {1, 2, ..., n} : ensemble des clients
G = (V, A) : un graphe orienté complet
V = {0, 1, 2, ..., n, n + 1} : le dépôt et les clients
A = {(i, j), i ∈ V, j ∈ V} : des arcs entre les clients
k ∈ K = {1, ..., m} : on a m différents produits
sk ∈ {0, 1, ..., n} : l’origine de produit k
dk ∈ {0, 1, ..., n} : la destination de produit k
Nous avons utilisé trois méthodes pour générer une solution initiale :
1. Génération aléatoire Nous créons un circuit qui part du dépôt et se termine au dépôt, et tous les
clients à visiter, nous les mettons au hasard dans ce circuit.
2. Le plus proche voisin classique Pour trouver un circuit concernant le dépôt et tous les clients, nous
partons du dépôt, et chaque fois nous choisissons le client qui est le plus proche de la position
actuelle pour visiter. Après nous avons visité tous les clients, nous revenons au dépôt.
3. Le plus proche voisin considérant les contraintes de précédence En respectant les contraintes de
précédence, c’est-à-dire pour tous les produits, son origine doit être visitée avant sa destinations,
nous choisissons le client qui est le plus proche de la position actuelle pour visiter. Identiquement,
nous départons et arrivons au dépôt.
Par conséquent, la troisième méthode est la meilleure, non seulement d’améliorer la qualité des résultats,
mais aussi gagner de temps pour le calcul ultérieur.
Le pseudo code de la troisième méthode :
s[0] ← 0 ;
O ← les k origines des produits;
D ← les k destinations des produits;
Adispo ← A − D;
for each i ∈ [1, n] do
(s[i − 1], j) ← le plus court chemin entre s[i − 1] et les sommets dans Adispo ;
s[i] ← j;
Adispo ← Adispo − j;
while s[i] est l’origine d’un produit k do
Supprimer la destination dk du produit k dans D;
if il n’y a aucun de dk dans D then
Ajouter dk dans Adispo ;
end
end
end
return s;
Algorithme 3 : Génération d’une solution initiale
De cette façon, nous obtenons une solution qui respecte les contrainte de précédence mais qui ne respecte
pas forcément la contrainte de la capacité du véhicule, du coup, c’est une solution qui ne garantit pas la
faisabilité.
22
3 Nouvelles matheuristiques
Pour déduire le problème original, nous comptons fixer des arcs à partir de la solution initiale. Après fixer
des arcs, nous allons calculer les données pour obtenir une nouvelle instance, mais plus petite que l’ori-
ginal et l’adaptons à notre modèle mathématique. Puis nous allons lancer le solveur et résoudre ce modèle.
A partir de sa solution qui est forcément faisable à local, nous pouvons obtenir une nouvelle solution
pour le problème original en intégrant la solution initiale. Comme la solution initiale respecte toutes
les contraintes sauf la contrainte de capacité du véhicule, nous devons revérifier cette contrainte sur
la nouvelle solution pour assurer sa faisabilité. Alors, nous ajoutons une étape de vérification après
l’intégration de la solution locale et la solution initiale, et nous gardons juste des solutions bien faisables.
De cette façon, nous avons la possibilité d’avoir des améliorations locales et d’avoir des bonnes solutions.
Nous avons proposé deux méthodes pour fixer des arcs et c’est selon ces méthodes nous distinguons nos
deux différentes matheuristiques. Pour chaque méthode, nous appliquons différentes stratégies pour
sélectionner les arcs à fixer et différentes façons correspondante pour recalculer les données dans la
nouvelle instance, bien sûr que les critères de l’arrêt de l’algorithme sont différents. Nous allons vous
présenter séparément comment marchent ces deux méthodes de réduction.
Critères de l’arrêt
Chaque fois nous obtenons une nouvelle solution à partir d’une résoulution locale, nous vérifions sa
faisabilité et décidons si nous la gardons ou non. Après que nous avons fait un “tour” complet sur la
solution initiale, les ordres de certains sommets seront changés, si nous commençons une autre fois à
partir du dépôt, peut-être que nous pouvons avoir des nouvelles améliorations. Alors, quand nous devons
23
3 Nouvelles matheuristiques
arrêter l’algorithme ? Comme nous utilisons les mêmes façons de sélection des sommets pour créer des
nouvelles instances, si il n’y aucune amélioration dans un “tour” ou il n’y aucune solution faisable, il
n’y aura pas de amélioration dans les “tour” après ni de solution faisable, du coup, nous arrêtons de
rechercher dans cette situation.
24
3 Nouvelles matheuristiques
25
3 Nouvelles matheuristiques
Les calculs de matrice de demandes sont plus simples. La demande ou l’offre sur certain produit de
sommet x seront la somme des demandes ou l’offres des tous les sommets qui sont contenus dans x sur
ce produit.
Par exemple, si le sommet i est la source de produit k1 et le sommet j est la source de produit k2, donc
le nouveau sommet x seront les sources de produit k1 et k2, et si i est la source de produit k et j est la
destination de k, alors la demande et l’offre du nouveau sommet x sur produit k sont mise à zéro.
Critères de l’arrêt
Dans cette méthode, il n’y a pas de situation où nous pouvons être sur qu’il n’y aura plus d’amélioration,
alors comment nous définissons la critère d’arrêt ? Nous allons compter la fois de lancements du solveur
où nous obtenons des solutions faisables et nous n’obtenons pas d’amélioration, si nous arrivons à n fois
consécutives sans amélioration, alors nous allons arrêter de rechercher. n est un paramètre très important
pour la performance de cette méthode, si il est trop petit, nous pouvons manquer une mieux solution,
mais il est trop petit, ça sera un perdu du temps.
Selon nos expérimentations, pour les instances ayant 10 sommets, nous le fixons à 50, pour les instances
de 15 sommets, nous le fixons à 100, il égale à 300 pour les instances avec 20 sommets et 10 produits, et
il égale à 400 pour les plus grandes instances.
26
3 Nouvelles matheuristiques
2.3.1 Le modèle
Dans cette partie, nous allons présenter le modèle mathématique dans un premier temps. Nous avons
utilisé le modèle de flux proposé par Hipólito Hernández-Pérez et Juan-José Salazar-Gonzélez, et la
présentation de ce modèle se trouve dans subsection 2.2 (Chapitre 2). Avec la fonction objective Equation 1
(Chapitre 2), nous ajoutons des contraintes Equation 2 (Chapitre 2) – Equation 5 (Chapitre 2) et Equation 9
(Chapitre 2) – Equation 11 (Chapitre 2).
Au cours de notre recherche, mon encadrant a trouvé un erreur du modèle de Hipólito Hernández-Pérez
et Juan-José Salazar-Gonzélez, cet erreur se trouve dans la contrainte Equation 4 (Chapitre 2) qui est écrit
comme :
Cette contrainte est destinée à forcer l’ensemble des arcs choisis à former un chemin hamiltonien. Cette
contrainte évite de constituer un chemin de 0 à n + 1 avec certains sommets mais pas tous, les autres
sommets étant dans des circuits.
Mais avec ses conditions : pour tout S ⊂ V : 0 ∈ S, n + 1 < S, cette contrainte ne marche pas comme il faut,
nous prenons une instance de 6 sommets comme un exemple, le sommet 0 et 5 sont le dépôt, supposons
que la matrice X des résultats sont comme suivant, X[0][1] = 1 implique la sélection de l’arc (0, 1).
1 2 3 4 5
0 1 0 0 0 0
1 0 0 0 0 1
2 0 0 1 0 0
3 0 0 0 1 0
4 0 1 0 0 0
Nous pouvons voir que matrice X respecte tous les autres contraintes, et la Equation 1 est également
vérifiée : tout sous-ensemble contenant 0 et pas n + 1 a au moins un arc sortant. Mais en fait, avec cette
matrice de résultats, les arcs correspondants forment le chemin (0, 1, 5) et le circuit (2, 3, 4), c’est pas du
tout un chemin hamiltonien.
Il faut donc modifier la Equation 1 en la nouvelle :
Pour mettre en oeuvre ce modèle avec Cplex, nous avons choisi la langue Java en ses deux packages
ilog.concert et ilog.cplex.
Pour gagner du temps, nous ne créons le modèle qu’une seule fois, chaque fois quand nous voulons
l’adapter sur une nouvelle instance, nous utilisons les données calculées (la matrice de distances et la
matrice de demandes) pour modifier les coeffients des contraintes et de la fonction objective dans le
modèle, et puis lance Cplex pour le résoudre.
Comme nous savons, le modèle est difficile à résoudre, principalement à cause de la Equation 2, parce
que il a une croissance exponentielle, du coup, nous devons faire de notre mieux pour réduire le nombre
de variables xa . Premièrement, nous créons (n + 1) × (n + 1) variables xa au lieu de (n + 2) × (n + 2), parce
qu’il n’y pas de arc qui part du sommet n + 1, et il n’y a pas de arc qui arrive au sommet 0. Nous pouvons
27
3 Nouvelles matheuristiques
Après la création du modèle, il y a aussi certains fixations des variables à faire pour diminuer le temps de
calcul de Cplex.
1. Fixer les variables représentant les arcs (i, j) où i = j à 0, parce que nous pouvons pas partir d’un
sommet et arriver au même sommet.
2. Chaque produit induit une contrainte de précédence : sk ≺ dk . On peut donc fixer à 0 toutes les
variables xi,j telles que i = dk et j = sk .
3. Si le sommet i est la destination du produit k, alors fak = 0 pour tous les a ∈ δ+ ({i}), ça veut dire
qu’il n’y pas de produit k part de i. Au contraire, si i est la source du produit k, alors il n’y aura pas
de produit k qui arrive à i, fak = 0 pour tous les a ∈ δ− ({i}).
5. Si un des 4 cas suivants est vrai, alors les 2 variables xi,j et xj,l ne peuvent pas être égales simulta-
nément
P à 1 et on peut poser la contrainte supplémentaire : xi,j + xj,l ≤ 1.
— Psk =i or dk =j or (dk =l and sk ,j) qk > Q
— Psk =j or dk =l or (sk =i and dk ,j) qk > Q
— Pdk =i or (dk =j and sk ,i) or (dk =l and sk ,i) and sk ,j) qk > Q
— sk =l or (sk =j and dk ,l) or (sk =i and dk ,j and dk ,l) qk > Q
28
4 Expérimentations
1 Les instances
Pour les expérimentations, nous utilisons les instances de deux familles qui sont présentées par Hipólito
Hernández-Pérez et Juan José Salazar-González dans leurs articles [10] en 2009. Comme il n’y a pas de
instances de référence dans la littérature pour la m-PDTSP, ils ont généré trois familles de instances et ce
que nous utilisons sont les deux dernières familles : Classe 2 et Classe 3.
Pour créer les instances dans la Classe 2, ils ont généré n points aléatoirement dans le carré [−500, 500] ×
[−500, 500], le dépôt est situé au point (0, 0). Le coût de voyage cij entre les points i et j a été calculé
comme la distance euclidienne entre les deux points de localisation, donc la matrice de distance de
chaque instance de la Classe 2 est symétrique. Pour les produits, ils choisissent au hasard des arcs et
définissent un objet k pour chaque arc choisi sans créer un cycle avec ceux précédemment choisis. Le
nombre de produits m a été pris en compte dans 5, 10, 15. Pour chaque valeur de m, on prend également
différentes capacités Q.
Les instances de la Classe 3 ont été créées comme les instances dans la Classe 2, mais dans la Classe
3 chaque point est l’origine ou la destination d’un objet. Plus précisément, le nombre de produits de
l’instance est n/2 et pour chaque k = 1, ..., n/2, sk = 2k − 1 et dk = 2k. Les quantités qk sont générés
aléatoirement entiers dans [1, 5]. Différentes capacités Q ont été envisagées.
Pour conduire des expérimentations, nous avons écrit aux auteurs Hipólito Hernández-Pérez et Juan José
Salazar-González, ils nous ont répondu gentiment et nous ont envoyé toutes les instances générées, donc
nous utilisons exactement les mêmes instances comme ce qu’ils ont utilisées pour l’article [10], dans ce
cas, la comparaison des résultats sera plus efficace et fiable.
2 Les résultats
Les résultats des expérimentaion des intances dans la Classe 2 sont listés dans la Table 1 et les résultats
des expérimentation des instances dans la Classe 3 sont listés dans la Table 2. Voici les significations dans
les tableaux :
n : le nombre de clients + un dépôt
m : le nombre de produit
Q : la capacité du véhicule
29
4 Expérimentations
Comme nous pouvons voir dans les tableaux, la deuxième matheuristique que nous proposons dans
subsubsection 2.2.2 (Chapitre 3) est bien efficace, il peut toujours trouver la meilleure solution comme
Hernández-Pérez et Salazar-González ont trouvée, et pour certains instances très grandes, il même
améliore leur résultat, mais en plus de temps bien sûr.
Mais la première matheuristique que nous avons proposons dans subsubsection 2.2.1 (Chapitre 3) ne
marche pas bien pour les grandes instances. Pour moi, c’est parce que nous utilisons une façon déterminée
pour générer la solution initiale, ainsi que une façon déterminée pour attirer les nouvelle petites instances
de la solution initiale, donc l’espace de rechercher est trop petit. Si la solution initiale est loin de la
meilleure solution, alors on est difficile à arriver. De toute façon, elle est efficace pour les instances de
moyenne taille.
30
4 Expérimentations
31
5 Gestion de projet
Ce Projet Recherche & Développement se compose de deux parties principales, la première partie se
concentre sur l’étude de la littérature, la deuxième partie contient les propositions et les expérimentations.
Dans la section suivante, je vais lister toutes les tâches réalisées séparément pendant le premier semestre
et pendant le deuxième semestre ainsi qu’une planifications des tâches pour chaque semestre.
1 La planification du projet
Afin de mener à bien ce projet, j’ai découpé le projet entier en tâches au début, et j’ai aussi estimé le
temps de réalisation afin de planifier les tâches. Cette planification a presque été bien respectée pendant
le permier semestre.
Voici une représentation de la liste des tâches que j’ai réalisées et un diagramme de Gantt associé à cette
liste.
32
5 Gestion de projet
La liste des tâches réalisées au deuxième semestre. En fait, j’ai commencé à faire la deuxième partie du
projet un mois avant la fin du premier semestre.
33
5 Gestion de projet
2 Méthodologies et outils
La méthodologie adoptée pour l’implémentation des algorithmes c’est une méthode Agile. Pour la gestion
du projet, deux outils seront été utilisés : Trello, un site web de gestion des tâches et GIT un gestionnaire
de versions du code.
Les algorithmes sont développés en Java et Cplex. J’ai utilisé Eclipse comme éditeur. Les expérimentation
sont menées dans un système d’exploitation Macintosh sur un MacBook Air individuel.
CPLEX est un outil informatique d’optimisation commercialisé par IBM depuis son acquisition de
l’entreprise française ILOG en 2009. Son nom fait référence au langage C et à l’algorithme du simplexe. Il
est composé d’un exécutable (CPLEX interactif) et d’une bibliothèque de fonctions pouvant s’interfacer
avec différents langages de programmation : C, C++, C#, Java et Python.
34
5 Gestion de projet
Git est un logiciel de gestion de versions décentralisé. C’est un logiciel libre créé par Linus Torvalds,
auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2.
Trello est un outil de gestion de projet en ligne, lancé en septembre 2011, et inspiré par la méthode
Kanban de Toyota. Il est basé sur une organisation des projets en planches listant des cartes, chacune
représentant des tâches. Les cartes sont assignables à des utilisateurs et sont mobiles d’une planche à
l’autre, traduisant leur avancement.
35
Conclusion
C’est la première fois que je travaille sur un projet de recherche et il m’a permi d’apprendre énormément
de choses et de développer plusieurs capacités importantes. Premièrement, la matheuristique est une
domaine très large et très riche, il existe plein d’articles dans la littérature. Donc la première capacité que
j’ai obtenue est de chercher et comprendre des articles de recherche, ainsi que je dois trouver rapidement
des informations utiles dans un article, pour ne pas perdre du temps sur les choses peu importantes.
Deuxièmement, c’est la capacité de comprendre des algorithmes complexes. Un algorithme complexe
peut combiner de nombreuses autres méthodes existantes et utiliser des notions qui sont pas expliquées
dans l’article. Ça sera difficile à comprendre si nous sommes pas familière avec des concepts et des
méthodes dans cette domaine.
Sur la partie de développement, dans un premier temps, ce sont des difficultés de passer d’un algorithme
qui fonctionne sur le papier, à un programme exécutable. Et puis pour proposer un nouveau algorithme,
il faut vraiment beaucoup de essayes. Avec l’aide de mon encadrant, qui discute les détails de l’algorithme
chaque semaine avec moi et qui propose beaucoup d’idées importantes pour moi, nous avons conçu deux
nouvelles matheuristiques qui fonctionnent bien et atteint les objectifs fixés au début.
Enfin, je suis très contente d’avoir pu travailler sur un projet qui m’a permis de beaucoup progresser.
36
Comptes rendus hebdoma-
daires
37
Comptes rendus hebdomadaires
1. Une heuristique est approximativement dans le sens qu’elle fournit une bonne solution
pour relativement moins d’efforts, mais il ne garantit pas l’optimalité. Heuristiques sont
des critères, méthodes ou principes pour décider qui, parmi plusieurs cours alternatifs
d’action, promet d’être le plus efficace afin d’atteindre un objectif.
2. Heuristiques gloutonnes sont des approches itératives simples disponibles pour tout
type de problème d’optimisation. Une bonne caractérisation est leur comportement
myope.
3. Une métaheuristique est une stratégie de haut niveau qui guide une heuristique sous-
jacente résolvant un problème donné.
4. Le principe de base de la recherche locale est de modifier les solutions successivement
et localement.
Dans ce livre, il y a aussi des problèmes spécifiques utilisant algorithme matheuristique, y compris
“The problem of balancine transfer lines”, “Mixed intègre non-linear programming” etc... Mais comme
on s’intéresse plutôt les problèmes de tournée, j’ai pas pris du temps pour lire tous ça.
Algorithmes heuristiques :
38
Comptes rendus hebdomadaires
39
Comptes rendus hebdomadaires
Il nous présente deux modèle mathématique possible et les résout avec un solveur MILP.
Pour les plus large instances, il les décomposés par détendant les constraintes. Bien que ces problèmes
décomposés sont encore NP-difficile, les tailles sont suffisamment petits pour être résolu par un solveur.
40
Comptes rendus hebdomadaires
41
Comptes rendus hebdomadaires
42
Webographie
43
Bibliographie
[1] Hanane Allaoua, Sylvie Borne, Lucas Létocart et Roberto Wolfler Calvo. « A
matheuristic approach for solving a home health care problem ». In : Electronic Notes
in Discrete Mathematics 41 (2013), p. 471–478.
[2] Claudia Archetti et M. Grazia Speranza. « A survey on matheuristics for routing
problems ». In : EURO J Comput Optim 2 (août 2014), p. 223–246.
[3] T. Bektas et G. Laporte. « The pollution-routing problem ». In : Transportation
Research Part B : Methodological 45 (2011), p. 1232–1250.
[4] Marco A. Boschetti, Vittorio Maniezzo, Matteo Roffilli et Antonio Bolufé Röhler.
« Matheuristics : Optimization, Simulation and Control ». University of Bologna,
Bologna, Italy. 2009.
[5] Berit Dangaard Brouer, Guy Desaulniers et David Pisinger. « A matheuristic for
the liner shipping network design problem ». In : Transportation Research Part E 72
(2014), p. 42–59.
[6] I.-M. Chao. « A tabu search method for the truck and trailer routing problem ». In :
Computers and Operations Research 29 (2002), p. 33–51.
[7] Nicos Christofides. « The Vehicle Routing Problem ». In : R.A.I.R.O Recherche
opérationnelle 59.2 (1976), p. 345–358.
[8] Federico Della Croce et Fabio Salassa. A variable neighborhood search based mat-
heuristic for nurse rostering problems. Published online. Springer Science+Business
Media New York 2012, nov. 2012.
[9] J.C. Gerdessen. « Vehicle routing problem with trailers ». In : European Journal of
Operational Research 93 (1996), p. 135–147.
[10] Hipólito Hernández-Pérez et Juan-José Salazar-González. « The multi-commodity
one-to-one pickup-and-delivery traveling salesman problem ». In : European Journal
of Operational Research 196 (2009), p. 987–995.
[11] Raphael Kramer, Anand Subramanian, Thibaut Vidal et Lucídio dos Anjos F. Ca-
bral. « A matheuristic approach for the Pollution-Routing Problem ». In : European
Journal of Operational Research 243 (2015), p. 523–539.
[12] Gilbert Laporte. « The Vehicle Routing Problem : An overview of exact and ap-
proximate algorithms ». In : European Journal of Operational Research 10 (fév. 1992),
p. 55–70.
44
BIBLIOGRAPHIE
[13] Vittotio Maniezzo, Thomas Stützle et Stefan VoB. Matheuristics : Hybridizing Meta-
heuristics and Mathematical Programming. 1re éd. T. 10. Library of Congress Control
Number : 2009935392. Springer New York Dordrecht Heidelberg London : Springer
Science+Business Media, 2009. isbn : 978-1-4419-1305-0.
[14] Sophie N. Parragh, Karl F. Doerner et Richard F. Hartl. « A survey on pickup and
delivery problems ». In : JfB 58 (2008), p. 21–51.
[15] Birger Raa, Wout Dullaert et El-Houssaine Aghezzaf. « A matheuristic for aggre-
gate production–distribution planning with mould sharing ». In : Int. J. Production
Economics 145 (2013), p. 29–37.
[16] Righini, G. et M. Salani. « Decremental state space relaxation strategies and initia-
lization heuristics for solving the orienteering problem with time windows with
dynamic programming ». In : Computers and Operations Research 36 (2009), p. 1191–
1203.
[17] I. Rodríguez-Martín et Juan José Salazar-González. « The Multi-Commodity
One-to-One Pickup-and-Delivery Traveling Salesman Problem : A Matheuristic ».
DEIOC, Universidad de La Laguna, Spain. 2011.
[18] Patrick Schittekat, Kenneth Sörensen, Marc Sevaux et Johan Springael. « A mat-
heuristic for the school bus routing problem ». RESEARCH PAPER. Mém.de mast.
University of Antwerp, City Campus, Prinsstraat 13, B-2000 Antwerp, Belgium
Research Administration – room B.213 : UNIVERSITY OF ANTWERP, oct. 2009.
[19] Juan G. Villegas, Christian Prins, Caroline Prodhon, Andrés L. Medaglia et Nubia
Velasco. « A matheuristic for the truck and trailer routing problem ». In : European
Journal of Operational Research 230 (avr. 2013), p. 231–244.
45
Projet Recherche & Développement
UIIAO
ATRI
YTRU
Objectifs
— Comprendre comment utiliser des
matheuristiques pour résoudre les
problèmes de tournée de véhicule
— Choisir un problème de tournée
— Implémenter différentes matheuris-
tiques sur le problème choisi
— Evaluer et apprécier les différentes
problème de tournée
matheuristiques
Matheuristique
Nous pouvons classifier les matheuris-
tiques en trois grandes familles:
— Approches basées sur la génération
de colonnes (Set-Partitioning)
— Heuristiques d’amélioration
— Approches de décomposition
Résultats attendus
— Compréhension des trois grandes fa-
milles de matheuristique par plu-
sieurs exemples d’utilisation.
— Une étude plus approfondie sur le
problème one-to-one m-PDTSP
Multi-Commodity One-to-One Pickup-
and-Delivery Traveling Salesman Pro-
IBM ILOG CPLEX
blem
Résumé
Rapport du Projet de Recherche & Développement, Au début de ce projet, nous étudions l’état de l’art
des matheuristiques pour les problèmes de tournée de véhicules, ce qui nous permet de mieux com-
prendre les notions de base dans ce domaine et de nous familiariser avec certains grandes familles de
problèmes et d’algorithmes. Ensuite, nous nous concentrons sur le problème one-to-one m-PDTSP (The
Multi-Commodity One-to-One Pickup-and-Delivery Traveling Salesman Problem), qui est une extension du
problème classique du voyageur de commerce. Une étude approfondie, de la modélisation à l’expéri-
mentation, est menée sur ce problème. Dans la partie développement du projet, nous avons proposé
deux nouvelles matheuristiques pour le problème one-to-one m-PDTSP, nous avons les implémenté en
utilisant Java et Cplex. A la fin de ce rapport, nous avons comparé les résultats expérimentaux des nos
deux algorithmes avec les résultats optimaux qui sont déjà connus.
Mots-clés
Matheuristique, problème de tournée, one-to-one m-PDTSP, Cplex
Abstract
This is the report of the project R&D. In this part of the project, first of all, we study the state of the art
of matheuristics for routing problems, this allows us to understand the basic concepts in this area and
to become familiar with several major categories of routing problems and algorithms. Then we focus
on the Multi-Commodity One-to-One-Pickup and Delivery Traveling Salesman Problem (one-to-one m-
PDTSP), this is an extension of classical Travelling Salesman Problem. A thorough study from modeling
to experiments is conducted on this problem. In the development part of the project, we have proposed
two new matheuristics for the problem one-to-one m-PDTSP, we have implemented them using Java and
Cplex. At the end of this report, we compared the experimental results of the two algorithms with the
optimal results that are already known.
Keywords
Matheuristic, routing problem, one-to-one m-PDTSP, Cplex
Entreprise Étudiants
Laboratoire Informatique Yan LI (DI5)
UTOP
UIIAO
ATRI
YTRU
Tuteurs académiques
Jean-Louis Bouquard
Tuteurs entreprise
Jean-Louis Bouquard