Você está na página 1de 47

C.

PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #1

Algorithmes mémétiques pour les


problèmes de tournées de véhicules

Christian PRINS*

Institut Charles Delaunay, FRE CNRS 2848


Université de Technologie de Troyes (UTT), Troyes

christian.prins@utt.fr
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #2

Plan

1. Un algorithme mémétique (MA) pour le VRP


2. Adaptation aux tournées sur arcs (CARP et MCARP)
3. Une extension de la structure: MA|PM
4. Cas des flottes hétérogènes (HVRP)
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #3

Partie 1

Un algorithme mémétique
pour le VRP
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #4

GA classique – Version incrémentale


1: initialiser population Pop de nc chromosomes
2: répéter
3: choisir deux parents P1, P2 dans Pop
4: croiser P1 et P2 → enfants C1, C2
5: pour chaque enfant C faire
6: muter C (petite probabilité)
7: remplacer une solution B de Pop par C
8: fin pour
9: jusqu'à (critère d'arrêt).

ƒ Pas assez agressif pour l'optimisation combinatoire.


ƒ Peu compétitif avec méthodes taboues, par exemple.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #5

Algorithme mémétique (MA)


Avec recherche locale LS. Structure de Moscato (1989) :

1: initialiser la population Pop


2: améliorer chaque solution s de Pop : s ← LS(s)
3: répéter
4: choisir deux parents P1, P2 dans Pop
5: croiser P1 et P2 → enfants C1, C2
6: pour chaque enfant C faire
7: améliorer : C ← LS(C)
8: muter C (petite probabilité)
9: remplacer une solution B de Pop par C
10: fin pour
11: jusqu'à (critère d'arrêt).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #6

VRP (Vehicle Routing Problem)


Données:
ƒ réseau avec n + 1 nœuds
ƒ nœud 0: dépôt avec véhicules de capacité W
ƒ nœuds 1 à n: "clients" avec des demandes connues qi
ƒ matrice D des "coûts" de déplacement entre nœuds.

But: trouver un ensemble de tournées de coût total min.

Notes:
ƒ nombre de tournées libre.
ƒ pas de livraisons partielles
ƒ NP-difficile : TSP si demande totale ≤ W.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #7

Point de départ du travail


Années 90: GA efficaces pour le TSP et le VRPTW
(Potvin et Bengio, 1996), mais pas pour le VRP.
Gendreau (1998): "The published GAs for the VRP cannot
compete with the best TS methods".
Chromosomes avec délimiteurs de tournées :

1 5 4 0 2 7 3 0 6 8

ƒ Réparation des violations de capacité des véhicules.


ƒ Perturbe l'hérédité des bonnes séquences.

Idée-clé : chromosomes sans délimiteurs de tournées.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #8

Chromosome et croisement
Chromosome :
ƒ permutation S des n clients
ƒ plus courts chemins implicites entre clients
ƒ sans délimiteurs de tournées : "tour géant" avec W=∞
Tout croisement pour le TSP est utilisable, exemple LOX:
2 points de coupure aléatoires
↓ ↓
P1 : 1 3 2|6 4 5|9 7 8
P2 : 3 6 8|1 4 9|2 5 7
C1 : 3 8 1 6 4 5 9 2 7
Mais comment en déduire une solution pour le VRP ?
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #9

Evaluation : procédure SPLIT 1/2


Chromosome S → graphe auxiliaire H = (V,A,C) :
ƒ V = (0, 1, 2, …, n), nœud fictif 0
ƒ un arc (i,j) ∈ A pour chaque tournée Si+1…Sj :
j

∑ q( S
k =i +1
k) ≤W

ƒ Cij coût de la tournée :


j −1
Cij = d (0, Si +1 ) + ∑d (S , S
k =i +1
k k +1 ) + d ( S j ,0)

ƒ Découpage optimal: chemin optimal de 0 à n dans H.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #10

Evaluation : procédure SPLIT 2/2


c(4) c
b(4) 30 25 d (2) d
b

10 30 40 15
25 T2
T1:55 60 T3:90
a(5) 20 35 e(7) a e

Chromosome S = (a,b,c,d,e) Découpe optimale, coût 205

ab:55 cd :95
40 55 115 150
a:40 b:50 c:60 d:80 e:70
0 205
bc:85
bcd:120 de:90

Graphe auxiliaire des tournées pour W=10. Chemin optimal en gras.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #11

Avantages de SPLIT
Simplicité :
ƒ pas de problèmes avec les délimiteurs de tournées
ƒ réutilisation possible de croisements pour le TSP.

Pas de perte d'information :


ƒ le MA explore l'espace des permutations
ƒ SPLIT évalue chaque permutation optimalement.
ƒ il existe un chromosome optimal.

Rapidité :
ƒ algorithme de Bellman pour graphes sans circuit
ƒ complexité O(m) pour m arcs dans H et m = O(n2).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #12

Deux extensions simples de SPLIT


Contraintes au niveau tournée (temps de conduite max):
ƒ les tournées infaisables sont exclues de H
ƒ ensuite, le calcul du chemin optimal n'est pas affecté!

Flotte limitée de p véhicules:


ƒ chemin optimal d'au plus p arcs
ƒ algorithme général de Bellman
 F0 (0) = 0; ∀j ≠ 0 : F0 ( j ) = +∞

 Fk ( j ) = min ( Fk −1 (i ) + Cij : i prédécesse ur de j )
L'itération k donne les chemins d'au plus k arcs.
→ on stoppe à l'itération p, complexité: O(pm).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #13

Population
Table Pop de nc chromosomes distincts :
ƒ pour éviter convergence prématurée (clones)
ƒ meilleure dispersion (et donc exploration) des solutions

Règle de dispersion simple :


ƒ ∀ P1, P2 ∈ Pop : |cost(P1) – cost(P2)| ≥ ∆
ƒ tout enfant violant cette règle est rejeté
ƒ taux de rejet peu élevé si nc petit, exemple nc = 30

Composition initiale de Pop:


ƒ 3 bonnes solutions (heuristiques classiques du VRP)
ƒ nc-3 permutations aléatoires, évaluées par SPLIT.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #14

Recherche locale du MA 1/2

a b
a b
u v u v Or-OPT
Déplacement de chaînes
Depot y y
x x

u v u v
2-OPT
x y x
Croisement de deux arêtes y

Des échanges de nœuds sont aussi considérés.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #15

Recherche locale du MA 2/2

u v u v Mouvements appliqués
aussi à deux tournées,
T1 T2
x y x y exemple 2-OPT.

L'ensemble des
mouvements est
évaluable en O(n2).
u v u v

T1 T2 Première amélioration
x y y
x
au lieu de meilleure
amélioration.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #16

Résumé du MA pour le VRP


1: construire Pop avec nc chromosomes dispersés
2: trier Pop par coûts croissants (meilleure soln Pop(1))
3: répéter
4: choisir P1, P2 par tournoi binaire
5: croisement OX sur P1, P2 → enfant C
6: si random < PLS alors C ← LS(C) finsi
7: choisir B au hasard dans la pire moitié de Pop
8: si (Pop\{B})∪{C} vérifie règle de dispersion alors
9: B←C
10: finsi
11: jusqu'à (critère d'arrêt).

NB: différences avec modèle de MA de Moscato.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #17

Exemples de résultats
14 instances de Christofides, n=50-199

Type Auteurs Année Ecart aux


meilleures solns
TS Taillard 1993 0.05 %
MA Prins 2001 0.08 %
TS Gendreau et al. 1994 0.20 %
TS Taillard 1992 0.39 %
TS Rego et Roucairol 1996 0.55 %
TS Gendreau et al. 1991 0.68 %
TS Rego et Roucairol 1996 0.77 %
TS Gendreau et al. 1994 0.86 %
TS Osman 1993 1.01 %
SA Osman 1993 2.09 %
Source: Crainic & Laporte, Fleet Management and Logistics, Kluwer, 1998.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #18

Références
Ce travail :
Prins, A simple and effective evolutionary algorithm for
the VRP, Comp. Oper. Res. 31(12), p. 1985-2002, 2004.

Références générales sur le VRP :


Crainic et Laporte, Fleet management and logistics,
Kluwer, 1998.
Toth et Vigo, The vehicle routing problem, SIAM, 2002.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #19

Adaptations à d'autres problèmes


En résumé :
ƒ MA très efficace pour le VRP
ƒ Structure générale assez simple et flexible.
ƒ Chromosomes sans séparateurs de tournées (SPLIT).

Extensions déjà traitées :


ƒ Problèmes de tournées sur arcs (CARP, MCARP)
ƒ MA avec gestion de population (MA|PM)
ƒ Flottes hétérogènes de véhicules (HFVRP)
ƒ Tournées périodiques (PVRP, PCARP)
ƒ Demandes aléatoires (SVRP, SCARP)
ƒ Problème de tournées multi-objectifs.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #20

Partie 2

Adaptation aux problèmes


de tournées sur arcs
En collaboration avec :
J.M. Belenguer, E. Benavent (Univ. Valencia, Espagne)
P. Lacomme (Univ. Blaise Pascal, Clermont-Ferrand)
W. Ramdane-Chérif (Ecole des Mines de Nancy)
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #21

CARP et CARP mixte (MCARP)


NB: CARP = Capacitated Arc Routing Problem. Données :
ƒ graphe mixte G = (V,E,A) pour le MCARP
ƒ graphe non-orienté G = (V,E) pour le CARP (A = ∅)
ƒ n nœuds dont un dépôt de véhicules de capacité W
ƒ m liens (arcs ou arêtes) dont t tâches (liens à traiter)
ƒ chaque lien e a un coût de traversée c(e)
ƒ si tâche, demande q(e) et coût de traitement s(e)

But: traiter les tâches par des tournées de coût minimal.


NP-difficile: Problème du Postier Rural en cas particulier.
Applications: collecte de déchets urbains, déneigement …
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #22

Un petit exemple de CARP: gdb1


T1 : 99 T2 : 30
2 3
2 18

9 20
9 13 4 5
17 T3 : 66 T4 : 71
16
4 11
1 12 5
14 19
19 18 7
12 10 7 3
3
8 4 T5: 50
11
10
8 6 Optimum:
20 5 trips
total cost 316

n=12 (dépôt : 1), m=t=22, demandes=1, capacité W=5


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #23

Utilité du MCARP

Modèle très général avec 2 types de liens: arcs et arêtes.


Cas de la collecte de déchets, entre deux nœuds i et j:
j j j

i i i

Un arc 2 arcs opposés Une arête


Rue à sens unique Rue à double sens Rue à double sens
Côtés indépendants Collecte bilatérale

Complications gérables : liens //, interdictions de tourner etc.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #24

Codage du réseau: graphe orienté


Une arête = 2 arcs. Arcs indexés de 1 à m' = 2.|E|+|A|.
Deux arcs u,v codant la même arête sont liés par un
pointeur inv: inv(u)=v et inv(v)=u.
Matrice des distances entre arcs D, m'×m'.

7 8 6
i j

no 10 10 no
u v

D(u,v)=21: distance de l'arc u à l'arc v (u,v non inclus),


tenant compte des interdictions de tourner.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #25

Chromosome et croisement
Après ce codage, le MA ressemble à celui pour le VRP,
mais avec des index d'arcs au lieu d'index de nœuds.

Chromosome:
ƒ suite de t indices d'arcs (1 par tâche).
ƒ plus courts chemins implicites entre tâches.
ƒ pas de délimiteurs de tournées (tour géant avec W=∞)
ƒ chaque tâche figure sous forme d'un de ses deux arcs!

Adaptation des croisements LOX et OX :


ƒ on copie un arc u d'un parent dans un enfant
seulement si u et inv(u) ne sont pas déjà dans C.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #26

2
Evaluation: procédure SPLIT in O(t )
c(5)
20 20
b(3) 5 d(1) 5
5 Trip 3
20 15 5 5 5
10 11 13 9 20 15
10 11 13 9
11 14
Trip 1
a(4) 5 12 10 7 e(6) 5 7
20 16
20 16
depot

Chromosome S = (a,b,c,d,e) Découpe optimale, coût 141

bcd(80)

bc(56) de(50)
a(37) b(27) c(40) d(32) e(33)
0 37 51 91 115 141

ab(51) cd(64)

Graphe auxilaire des tournées pour W=9. Chemin optimal en gras.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #27

Recherche locale du MA 1/2


2-OPT + Or-opt + échanges, dans 1 ou 2 tournées.
Les deux directions d'une arête doivent être gérées!

Exemple avec 2-OPT: des arêtes peuvent être inversées.

u y u y u y
T1 T1 T1 T2
T2
x T2 v
x v inv (x) inv (v)
depot

Before After (case 1) After (case 2)


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #28

Recherche locale du MA 1/2

Complications soulevées dans le cas du MCARP :

ƒ suite de liens NON inversible si elle contient des arcs.


ƒ la matrice des distances D n'est PAS symétrique.
ƒ le coût d'une suite peut changer après inversion si on
accepte les arêtes "venteuses" (windy : cij ≠ cji).

Il est quand même possible d'évaluer l'ensemble des


mouvements en O(t2) seulement…
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #29

Résultats pour le CARP


Comparaison avec méthode taboue de Hertz et al. (2000)

Instances DeArmon Belenguer Eglese


23 pbs, t ≤ 55 34 pbs, t ≤ 97 24 pbs, t ≤ 190
TS MA TS MA TS MA
Ecart moy BI % 0.48 0.15 1.90 0.61 4.74 2.47
Ecart max BI % 4.62 1.78 8.57 4.26 8.61 4.46
BI atteinte 18 21 15 22 0 0
Meilleures solns 19 23 17 32 0 19
Durée (s) 1 GHz 9.0 5.3 63.9 38.3 ? 527.0

BI: borne inférieure de Belenguer et Benavent (2003).


Longo (2006): le MA résoud tous les DeArmon optimalement!
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #30

Résultats pour le MCARP


Borne inférieure BI basée sur une formulation linéaire en
nombres entiers et une méthode polyédrale.

34 instances de taille moyenne (disponibles)


ƒ Obtenues en orientant des arêtes dans des instances
classiques du CARP: 24-50 nœuds, 43-138 tâches.
ƒ Ecart moyen à BI = 0.49%, 24 optima prouvés.

15 instances de très grande taille (disponibles)


ƒ Imitant la collecte de déchets, jusqu'à 1200 arcs.
ƒ Ecart moyen à BI = 0.32%, 6 optima prouvés.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #31

Exemple de MCARP: n=28, m=68, t=50


240-33-273 264-18-282 183-20-203 214-21-235 047-22-069
1 2 3 4 5 6
265-33-298 097-18-115 325-20-345 000-21-021 207-22-229

000 000 122 324 112 285 453 453


22 22 19 20 21 21 19 19
022 022 141 344 133 306 472 472

066-21-087 014-18-032
205
7 187-44-231 8 41 9 10 11
246 000-18-018

101 311 153 300 088 000 379


18 18 23 17 21 17 17
119 329 176 317 109 017 396
depot and dumping site
172-40-212 000-18-018 301-15-316
12 13 14 15 16 17
014-21-035 372-19-391

381 390 000 000 000 000 139 110 377


20 20 19 19 27 17 26 15 15
401 410 019 019 027 017 165 125 392

18 343-37-380 19 000-19-019 20 094-18-112 21 308-19-327 22 349-21-370 23

478 478 238 204 000 707 707 159 053 146
22 22 17 25 204 14 17 17 26 18 18
500 500 255 229 25 014 724 724 185 071 164
229

334-39-373 000-18-018 247-21-268 715-37-752


24 25 26 27 28
147-39-186 054-18-072 368-21-389 715-37-752
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #32

Références
Lacomme, Prins, Ramdane-Chérif, Competitive memetic algo-
rithms for arc routing problems, Annals of OR, 131, p. 159-
185, 2004.

Belenguer, Benavent, Lacomme, Prins, Lower and upper


bounds for the mixed CARP, Comp. Oper. Res., 33(12), p.
3363-3383, 2006.

Prins, Bouchenoua, An MA solving the VRP, the CARP, and


more general routing problems with nodes, edges and arcs. In
Hart et al. (éd.): Recent advances in memetic algorithms,
Springer, 2004.

NB: nous sommes les seuls à avoir publié sur le MCARP.


C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #33

Partie 3

Renforcement des MA :
MA|PM
En collaboration avec :
K. Sörensen (Univ. Anvers, Belgique)
M. Sevaux (Univ. Bretagne-Sud, Lorient)
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #34

MA|PM (Sörensen, 2003)


Memetic Agorithm with Population Management.

Principe. MA avec :
ƒ petite population de bonnes solutions bien diversifiées
ƒ gestion de la population pour contrôler la diversité.

Gestion de population :
ƒ distance d(x,y) dans l'espace des solutions
ƒ distance à une population P: dP(s) = min {d(s,x): x∈P}
ƒ nouvelle solution s ajoutée à P seulement si dP(s) ≥ ∆
ƒ ajustement dynamique du seuil de diversité ∆
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #35

MA|PM pour les pbs de tournées


1: initialiser population P et seuil de diversité ∆
2: répéter
3: choisir deux parents P1, P2 dans P
4: croisement OX sur P1, P2 → enfant C
5: si random < PLS alors C ← LS(C) finsi
6: choisir B au hasard dans la pire moitié de P
7: tant que dP(C) < ∆ ou | si dP(C) ≥ ∆ alors
8: muter C | B← C
9: fintantque | finsi
10: B←C | //sinon ignorer C
11: mettre à jour le seuil ∆
12: jusqu'à (critère d'arrêt).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #36

Quelques avantages de MA|PM

Chaînon manquant entre MA et Scatter Search (SS).


Contrôle actif de diversité avec la gestion de population.
Structure de type MA : plus facile à implémenter que SS.
Peut s'appliquer à tout MA existant (upgrade).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #37

Exemples de distances possibles 1/2


Deux chromosomes X,Y pour le VRP (n clients), sans
délimiteurs de tournées : distances entre permutations.
Distance de Hamming :
ƒ DH(X,Y) = nb de positions avec valeurs ≠ dans X, Y.
DH ( X , Y ) = ∑ ( X (i ) ≠ Y (i ))
i =1, n
ƒ Valeurs dans [0,n]. Calculable en O(n).
ƒ Inconvénient: DH(X,Y) = n si Y est une "rotation" de X.

Distance des "paires cassées" :


ƒ DR(X,Y)=nb de paires {Xi,Xi+1} non adjacentes dans Y.
ƒ Valeurs dans [0,n-1]. Calculable en O(n).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #38

Exemples de distances possibles 2/2


Distance de Levenshtein ("edit distance") DL :
ƒ X et Y vus comme des chaînes de symboles
ƒ DL(X,Y) nb min d'opérations pour changer X en Y.
ƒ Autorisées : effacer, insérer ou remplacer un symbole.
ƒ Valeurs dans [0,n].
ƒ Calculable en O(n2) par programmation dynamique.

Exemple. DL("fruits","brutes") = 4:
fruits → bruits → bruts → brutes
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #39

Politiques de contrôle du seuil ∆


MA|PM accepte un enfant C si dP(C) ≥ ∆. Politiques :
ƒ ∆ = constante, exemple ∆=1 ⇔ pas de clones
ƒ augmenter ∆ depuis 1 jusqu'à une valeur maximale
ƒ idem, mais reset si la meilleure solution est améliorée.

New best soln found Stop

max value:
0.7 x dmax

min value: 1
Crossovers
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #40

Résultats

Etude sur le CARP présentée à TRISTAN 5 (2004) :

ƒ meilleurs résulats avec distance des paires cassées


ƒ résultats un peu meilleurs que le MA de base
ƒ mais 5 fois moins de croisements (converge plus vite)
ƒ et temps de calcul divisés par 3.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #41

Partie 4

VRP à flotte hétérogène


(HVRP)
En collaboration avec :
P. Lacomme (Univ. Blaise Pascal, Clermont-Ferrand)
N. Labadi (UTT)
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #42

Le HVRP
VRP mais t types de véhicules. Type k défini par :
ƒ capacité Qk et disponibilité ak
ƒ coût fixe Fk
ƒ "coût variable" Vk (= coût par unité de distance)

Coût d'une tournée de longueur L faite par le type k:


C = Fk + Vk . L

But: minimiser le coût total des tournées, chacune


étant affectée à un véhicule compatible.
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #43

Comment adapter SPLIT ? 1/2


Chromosome S et une tournée faisable T de longueur L.
VRP classique :
ƒ cost(T) = L
ƒ découpe en O(m) pour m arcs (algorithme de Bellman)
ab:55 cd :95
40 55 115 150
a:40 b:50 c:60 d:80 e:70
0 205
bc:85
bcd:120 de:90

Vehicle Fleet Mix Problem (VFMP, disponibilités infinies) :


ƒ cost(T)=F(k)+V(k).L, k type compatible le moins cher.
ƒ le calcul du chemin optimal ne change pas!
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #44

Comment adapter SPLIT ? 2/2


Vrai HVRP. Les disponibilités a(k) sont limitées :
ƒ le coût de T dépend du véhicule utilisé
ƒ ceci peut se modéliser avec des arcs parallèles
ƒ chemin faisable: au plus a(k) véhicules par type k

Chemin optimal à contraintes de ressources!


ƒ NP-difficile si une seule resource et si chaque arc a
besoin de plusieurs unités (Meggido, 1979).
ƒ Nous avons prouvé qu'il reste NP-difficile dans notre
cas (réduction de PATH WITH FORBIDDEN PAIRS).
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #45

Programmation dynamique
Soit F(j,x1,x2,…,xt) :
ƒ le coût d'une découpe optimale de S1…Sj
ƒ avec 0 ≤ xk ≤ ak véhicules de chaque type k.

Notre but est de calculer F(n,a1,a2,…,at) et nous avons :


ƒ F(0,x1,x2,…,xt)=0, pour tout type k et tout 0 ≤ xk ≤ ak
ƒ ∀j > 0, F(j,x1,x2,…,xt) =
min {F(i,x1,x2,…,xk-1,…,xt): i ≤ j, load(i,j) ≤ Qk, xk>0)

Peut être résolu en O(mnt) si t ≤ n.


SPLIT est donc NP-difficile, mais pseudo-polynomial.
Elle est même polynomiale pour t fixé!
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #46

Quelques résultats
8 instances de Taillard, n=50-100
Meilleures solutions connues (BKS) dans Tarantilis et al.
Un seul réglage de parameters - PC à 2.4 GHz

Auteurs Année Méthode Ecart BKS Durée (s)


Li et al. à paraître RTR -0.49% 286
Lacomme et al. en cours MA|PM -0.45% 75
Lacomme et al. en cours MA -0.04% 50
Tarantilis et al. 2004 TA 0.09% 86
Taillard 1999 HCG 0.40% 26
Le MA améliore 4 meilleures solutions connues.
Le RTR et le MA|PM en améliorent 6!
C. PRINS - Algorithmes mémétiques pour les problèmes de tournées de véhicules - Slide #47

Conclusion
Nos MA sans délimiteurs de tournées sont des outils
efficaces pour les problèmes de tournées de véhicules.

La procédure SPLIT est très flexible, tant que le problème


de chemin optimal est polynomial (VRP, CARP, MCARP,
PCARP) ou au moins pseudo-polynomial (HVRP) !

Point de vue du génie logiciel : l'extension progressive


GA → MA → MA|PM est (relativement) facile.

Remarques confirmées par d'autres applications non


citées ici (Stochastic CARP, tournées multi-objectifs…).