Transcript soutenance

Optimisation des tournées de véhicules et de
personnels de maintenance : application à la
distribution et au traitement des eaux
Thèse de Doctorat de
l’Université de Nantes
Fabien Tricoire
Encadrants
: Nathalie Bostel (U. Nantes)
Pierre Dejax (EMN)
Pierre Guez (Veolia)
14 février 2006
Directrice
1
:
Christelle Jussien (EMN)
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
2
1. Présentation des problèmes traités

Situation de départ : Veolia souhaite optimiser ses
tournées !
–
–
–

Spécialisation : tournées en clientèle
–
–
3
Tournées en usines  « trop tôt »
Tournées de travaux  « pas assez de points »
Tournées en clientèle  candidat idéal !
Nécessité de définir clairement l’entrée du problème,
Nécessité de définir clairement la cible de l’entreprise
Enquêtes sur le terrain des tournées
Enquêtes sur les procédures connexes (prise de rendezvous, etc)
Résultat : cahier des charges
1. Les tournées en clientèle





4
L'optimisation des tournées de service est un
problème émergent
La compagnie génère des demandes (préventif)
Les clients génèrent des demandes (préventif et
curatif)
Toutes ces demandes sont satisfaites via des
tournées
Optimiser ces tournées permet d'améliorer le service
et la productivité
1. Les tournées en clientèle : motivations
5
1. Description des problèmes :
contraintes






6
Pas de contrainte de capacité, mais la durée totale
d'une tournée est bornée
Certaines demandes sont soumises à des fenêtres
de temps (TW)
Horizon de planification : 5 jours
Flotte limitée: Pour chaque jour, un ensemble de
techniciens
Horizon = ensemble de ressources {jour-technicien}
Les points de départ, repas et arrivée sont
spécifiques à ces ressources
1. Description des problèmes :
contraintes (suite)



Période de validité : chaque demande doit être
satisfaite dans un sous-ensemble des jours de
l'horizon (i.e. par un sous-ensemble des ressources)
Contrainte de repas : chaque tournée comporte une
pause repas (avec TW) ; le lieu est choisi parmi un
ensemble de points de restauration
Types de demandes:
–
–
7
Les rendez-vous sont liés à une journée précise
Les différables ont une période de validité plus large, et pas
de fenêtre de temps
1. Description des problèmes :
Objectifs

Deux types de problèmes
–
–

Deux objectifs différents :
–
–


8
Satisfaisable : Le personnel permet de satisfaire chaque
demande
Insatisfaisable : Volonté de surcharger l’entrée du problème
pour « donner plus de choix »
Satisfaisable : Min(distance)
Insatisfaisable : Max(# demandes satisfaites)
Dans les deux cas, satisfaire les rendez-vous est une
contrainte forte
La surcharge se fait sur les différables
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
9
2. Génération des instances de
test

Choix de départ :
–
–
–
–

Sur ces bases, 3 classes de problèmes :
–
–
–

10
Horizon de 5 jours (une semaine de travail)
Chaque instance comporte 3 techniciens (véhicules) travaillant
chaque jour de l’horizon
Les départs et arrivées se font aux domiciles des techniciens
Chaque technicien a le choix entre deux restaurants
100 clients (problèmes faciles, C1)
180 clients (cible de l’industriel, C2)
300 clients (cas insatisfaisable, C3)
Chaque classe = 5 instances
2. Génération des instances de
test

Environnement :
–
–
–


Chaque demande respecte des données statistiques fournies par
l’entreprise : 20% de changements de compteur, etc
C1 et C2 :
–
–
–

11
Carte carrée de 41 km de côté (répartition aléatoire)
Vitesse constante = 35 km/h
Journée = 8 heures
30% de rendez-vous,
Dont 75% de fenêtres de temps,
Durant deux (67%) ou quatre heures (33%)
C3 : instance C2 complétée avec 120 différables
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
12
3. Revue de la littérature (VRPTW) :
méthodes approchées


Construction : Best Insertion (Solomon 87) est adaptée aux fenêtres de
temps
1994-1999 : l’ère du Tabou !
–
–
–

1999-2005 : montée des méthodes évolutionnaires
–
–
–

1999 : Stratégie d’évolution très efficace (Homberger et Gehring)
2001 : « pure genetic algorithms are not competitive with the best published
results » (Bräysy)
2004 : Méthodes efficaces = algorithmes évolutionnaire hybridés (Bräysy et al.
)
Tendances actuelles :
–
–
13
Rochat & Semet (94), Rochat & Taillard (95), Taillard et al. (97)…
Méthodes efficaces = recherche taboue + autre heuristique
Algorithmes génétiques inefficaces
Problèmes de grande taille (jusqu’à 1000 demandes)
Méthodes hybrides ou parallélisées
3. Revue de la littérature (VRPTW) :
méthodes exactes

Génération de colonnes et Branch & Price
–
Desrochers et al. (92) : programmation dynamique pour le plus
court chemin avec contraintes de ressources (SPPRC)
–
Feillet et al. (04) : plus court chemin élémentaire avec contraintes
de ressources (ESPPRC)
–

Nécessaire pour des problèmes de tournées avec arcs profitables

Bon comportement pour des contraintes de ressources « faibles »
Rousseau et al. (04) : Programmation par contraintes pour
l’ESPPRC
Relaxation Lagrangienne
–
14

Fisher (97) : sous-problème = ESPPRC
3. Revue de la littérature (problèmes
avec flotte limitée)




Problème récent (Lau et al. 03)
Objectif : Max(# clients satisfaits)
Lau et al. (03) : Recherche Taboue
Lim & Zhang (05) : deux phases
–
–

Eglese & McCabe (05) : alternances de recherches
locales
–
15
Alternance suppression (de tournées) / insertion
Recherches locales
But à long terme : Optional Order Problem (OOP) = satisfaire
l’ensemble des demandes sur un horizon donné
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
16
4. Résolution par métaheuristique :
principes

Population de taille μ

Produire λ enfants en recombinant/mutant (λ>µ)

Les µ meilleurs enfants deviennent la nouvelle population

Les parents ne sont pas impliqués dans la sélection
 dégradations autorisées
Selection des
 meilleurs
 parents
Recombinaison
+ Mutation
enfants
17
 enfants
4. Métaheuristique : population de
départ

Heuristique constructive : adaptation de Best Insertion (Solomon
87)
–
–

Voisinages pour amélioration des solutions :
–
–
–
–


2-opt
Échange de 2 nœuds
Rotation de 3 nœuds
Déplacement de nœud
Sept variantes basées sur ces voisinages
Caractéristiques de la population :
–
–
18
Insertion seulement si demande et tournée sont compatibles
Deux phases : rendez-vous, puis différables
–
Petite taille
Relativement diverse
Solutions d’assez bonne qualité
4. Métaheuristique : réflexions autour
des opérateurs

Concepts clés :
–
–
–

Solution :
–
–
19
Un croisement « basique » pose des problèmes de faisabilité
(contraintes temporelles)
Flotte limitée  confiance limitée dans les mouvements
aléatoires (impossible de créer de nouvelles tournées)
Les ressources sont identiques pour tous les individus
Constituer un enfant à partir de tournées des parents
Produire une diversification efficace mais conservant la
faisabilité
4. Recombinaison : cas « particuliers »
Parent 1
Parent 2
Enfant 1
20
Enfant 2
4. Problématiques




21
Les tournées copiées en dernier seront probablement
modifiées
 Copier les tournées dans un ordre aléatoire
Des demandes satisfaites deviennent insatisfaites
 Besoin d’une réinsertion efficace
Entité pour la recombinaison = tournée
 L’entité pour la mutation doit aussi être la tournée
Mouvements aléatoires peuvent violer des contraintes
 Une heuristique peut être mieux adaptée
4. Opérateur original :
Algorithme :
1) Pour chaque ressource du fils,
copier la tournée associée dans
un des parents choisis
aléatoirement, ou la laisser vide
(avec une probabilité )
2) Appliquer une heuristique de
construction/amélioration à cette
solution partielle : best insertion
+ échange de nœuds
22
4. Taux de mutation
• Métaphore évolutionnaire :  = force de diversification
• Plusieurs choix:
– Fixe
– Hérité des parents ( = (1+2)/2)
– Fonction du temps ( = f(n), n = # génération)
– Autres possibilités non testées
• 4 fonctions testées :
23
4. Résultats expérimentaux (C2)
Instance
Meilleur coût
métaheuristique
,
Gain
C2_1
32390 (2,5 s)
28641 (12 min)
5,30
13,1%
C2_2
32918 (1,9 s)¹
30160 (14 min)
7,50
9,1%
C2_3
32649 (1,8 s)
27134 (19 min)
7,50
20,3%
C2_4
35032 (1,5 s)¹
29969 (9 min)
5,40
16,9%
C2_5
35302 (1,9 s)¹
27485 (19 min)
7,50
28,4%
•N = 60
24
Meilleur coût
heuristique
¹ Pas de solution réalisable
•Pentium IV CPU 2.8 GHz, Java HotSpot 1.4.2, Linux 2.4
4. Résultats expérimentaux (C3)
Instance
Demandes
insatisfaites
heuristique
Demandes
insatisfaites
métaheuristique
,
C3_1
89 (5.4 s)
68 (38 min)
7,50
31%
C3_2
108 (6.3 s)
84 (29 min)
7,50
29%
C3_3
98 (6.3 s)
85 (30 min)
7,50
15%
C3_4
93 (6.0 s)
75 (34 min)
7,50
24%
C3_5
97 (6.0 s)
74 (35 min)
7,50
31%
•N = 60
25
gain
•Pentium IV CPU 2.8 GHz, Java HotSpot 1.4.2, Linux 2.4
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
26
5. Modèle mathématique
Ω l' ensembledes tournéesréalisables
cr le coût de la tournéer
1 si la tournéer visitele client i
air  
0 sinon
1 si la tournéer est réalisée
yr  
0 sinon
1 si la tournéer utilise la ressourcet
utr  
0 sinon
Objectif :
Min yr cr
Ω
27
Sous les contrainte
s:
y a
1
i
(1.6)
y u
1
t
(1.7)
r ir
Ω
r tr
Ω
5. Résolution exacte par Branch-andPrice
28
5. Programmation dynamique pour le
sous-problème : algorithme classique

Algorithme d’extensions de labels basé sur
celui de Bellman
L : nombre de ressources
Label associé à un chemin allant de 0 à j :

Règle de dominance :


29
5. Programmation dynamique pour le
sous-problème : gestion des repas(1)
Version « basique » : ajout d’une ressource booléenne r
pour le repas
30

L.r = vrai  L n’est extensible à aucun point de
repas

Un label sans repas ne peut pas dominer un label
avec repas

Un label sans repas n’est pas extensible au nœud
d’arrivée
5. Programmation dynamique pour le
sous-problème : gestion des repas(2)
Amélioration : décomposition du problème en deux
ESPPRC plus contraints
31

Premier ESPPRC : plus court chemin entre le départ
et les points de repas  réduction de la ressource
temps

Second ESPPRC : extension des chemins ainsi
trouvés, jusqu’au point d’arrivée

Facteur temps : entre 0,5 et 15 ; 2 en moyenne
5. Programmation dynamique pour le sousproblème : résultats expérimentaux



Algorithme utilisé après exécution d’une heuristique,
pour dépister d’éventuels chemins de coût négatif
Objectif de départ : instances à 100 clients
Objectif révisé : instances à 40 clients
Instance
32
Opt
Nb colonnes
générées
Nb appels
ESPPRC
Temps
calcul
3151
495
26 s
Gap LB
C4_1
11523,99
C4_2
X
C4_3
7678,84
22185
140880
9j
1,65%
8,75%
C4_4
9598,77
6036
5955
11,52 h
0,45%
2,00%
C4_5
8807,51
7880
690
149 s
0,00%
0,00%
X
X
> 10 j
0,00%
Gap UB-LB
X
0,00%
10,31%
5. Heuristique pour le sous-problème



Alternance Descente en profondeur / Diversification
Solutions de départ = (départ, repas, arrivée)
Voisinage = insertion, suppression, déplacement,
échange
–
–


33
Déplacement : changer la position d’un nœud dans le
chemin
Échange : permutation des positions de deux nœuds
Diversification : k mouvements aléatoires
Paramètres : k et n (# itérations)
5. Heuristique pour le sous-problème :
résultats expérimentaux (40 clients)


Utilisation exclusive de l’heuristique dans le cadre du
Branch-and-Price
k = 10, n = 5000
Instance
C4_1
C4_2
34
Best
Nb colonnes
générées
Nb appels
ESPPRC
Temps
calcul
4682
135
9 mn
11523,99
X
X
X
>24h
Gap LB
0,00%
X
Gap UB-LB
0,00%
10,61%
C4_3
7678,84
33294
22815
9h
1,65%
1,59%
C4_4
9598,77
6489
1095
21 mn
0,45%
1,35%
C4_5
8807,51
5778
345
9 mn
0,00%
0,00%
5. Heuristique pour le sous-problème :
résultats expérimentaux (100 clients)



Utilisation exclusive de l’heuristique dans le cadre du Branch-andBound
k = 10, n = 5000
Best = borne supérieure fournie par le Branch-and-Bound
Instance
35
Best
Nb colonnes
générées
Nb appels
ESPPRC
Temps
calcul
(secondes)
Gap LB
Gain
meilleure
solution
mémétique
C1_1
17795,68
15375
825
57 mn
1,71%
0,55%
C1_2
15647,57
15742
795
71 mn
1,16%
2,11%
C1_3
16656,87
17213
870
52 mn
0,96%
0,34%
C1_4
16773,58
12197
750
46 mn
1,87%
4,27%
C1_5
15759,83
14726
840
4,5 h
4,39%
1,69%
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
36
6. Planification sur horizon glissant :
principes de fonctionnement




Une solution = une semaine de travail
Chaque jour, des demandes sont satisfaites
De nouvelles demandes surgissent
Données disponibles en fin de période n :
–
–
–

37
Ensemble de demandes satisfaites
Ensemble de nouvelles demandes
Solution partielle
Idée clé : Réutiliser la solution partielle pour construire
une solution à la période n+1
6. Planification sur horizon glissant :
algorithme mémétique




Chaque individu de la population (période n) est une
solution partielle
Application : constituer la nouvelle population à partir
de l’ancienne
Chaque individu est « complété » (recherche locale)
Expérimentations sur instance C2 :
Écart relatif moyen
38
Type de
résolution
N=10
N=20
N=30
N=40
N=50
N=60
Avec
réutilisation
0,97%
0%
-0,32%
-0,50%
-0,62%
-0,63%
Sans
réutilisation
4,53%
2,17%
1,10%
0,85%
0,68%
0,63%
6. Planification sur horizon glissant :
génération de colonnes




39
Générer de nouvelles colonnes est coûteux
Certaines colonnes déjà générées à la période
précédente sont toujours valides, voire nécessaires
Application : réinjecter les colonnes toujours valides
dans le nouveau problème-maître
Expérimentations sur C1 (Branch and Bound) :
Type de
résolution
Temps calcul
(secondes)
# appels
ESPPRC
# colonnes
générées
# total de
colonnes
Avec réutilisation
1682,40
481,80
6541,56
10123,56
Sans réutilisation
3395,52
763,20
14414,92
14414,92
Plan
1.
2.
3.
4.
5.
Description et positionnement du problème
Présentation des données de test
Revue de la littérature
Résolution par métaheuristique
Modèle de recouvrement et résolution par
génération de colonnes
6. Planification sur horizon glissant
7. Conclusions et perspectives
40
7. Conclusion


Introduction d’un nouveau problème
Résolution par métaheuristique
–
–
–

Modèle de recouvrement
–
–
–

Résolution exacte pour des instances très faciles
Méthode approchée pour des instances de taille 100
Méthode améliorable
Réutilisation de solutions partielles
–
–
–
41
Opérateur original
Solutions de qualité
Temps acceptable pour l’entreprise
Correspond à une problématique industrielle
Principe très simple
Efficacité probante pour l’algorithme mémétique comme pour la
génération de colonnes
7. Autres travaux

Simulations sur les politiques d’organisation
–
–
–

Interface graphique d’aide à la décision
–
–
–
42
Gestion des contraintes de compétence
Tests sur 4 politiques différentes
Recommandations de bonnes pratiques pour l’entreprise
Visualisation globale de l’horizon de planification, ou zoomée
sur un jour
Filtres d’affichage des informations
Modification manuelle et sauvegarde des solutions modifiées
7. Autres travaux : interface graphique
43
7. Perspectives

Élargir le champ d’action de l’algorithme mémétique :
–
–

Améliorer les performances du Branch and Price :
–
–
–

44
Appliquer au VRPTW (instances de Solomon)
Appliquer à des problèmes d’ordonnancement
Stabilisation du problème maître (point intérieur)
Résolution « intelligente » des sous-problèmes
Stratégie de branchement plus efficace
Validation des méthodes : agrandir l’échantillon de
tests
Questions !
45