• Aucun résultat trouvé

Méthodes de résolution exactes et heuristiques pour un problème de tournées de techniciens

N/A
N/A
Protected

Academic year: 2021

Partager "Méthodes de résolution exactes et heuristiques pour un problème de tournées de techniciens"

Copied!
106
0
0

Texte intégral

(1)
(2)
(3)

Université de Montréal

Méthodes de résolution exactes et heuristiques pour

un problème de tournées de techniciens

par

Ines Mathlouthi

Département d’informatique et de recherche opérationnelle Faculté des arts et des sciences

Thèse présentée à la Faculté des études supérieures en vue de l’obtention du grade de

Philosophiæ Doctor (Ph.D.) en informatique

5 mars 2018

c

(4)
(5)

SOMMAIRE

Les problèmes de tournées de techniciens (TRSPs pour Technician Routing and Sche-duling Problems) consistent à planifier les routes d’un groupe de techniciens afin de servir des requêtes de clients à moindre coût. Ce sont des problème d’optimisation NP-difficiles rencontrés dans plusieurs domaines d’application, tels que les télécommunications, les ser-vices publics et les opérations de maintenance. Chaque application a ses propres attributs, contraintes et objectifs. Malgré la place qu’occupent les TRSPs dans l’industrie, ils n’ont pas été beaucoup étudié par les chercheurs. En effet, modéliser et résoudre de tels problèmes pour des entreprises posent d’importants défis.

Cette thèse s’intéresse ainsi à la modélisation et à la résolution d’un TRSP multi-attributs (MATRSP) motivé par une application où différents types d’équipements permettant de réaliser des transactions électroniques doivent être servis par des techniciens. Il s’agit de répartir et ordonnancer les appels de service pour la maintenance de ces systèmes, en tenant compte de différents attributs, soit les compétences des techniciens, les priorités des tâches, les fenêtres de temps multiples pour le service, l’inventaire des pièces de rechange, ainsi que les pauses et les heures supplémentaires des techniciens.

Nous présentons tout d’abord un modèle de programmation linéaire en nombres entiers mixtes pour ce problème, qui est ensuite résolu avec un solveur commercial. Puis, un algorithme exact de branch-and-price est proposé pour traiter des problèmes de plus grande taille. Enfin, une méta-heuristique est développée combinant des idées provenant de différentes sources et intégrant en particulier une recherche tabou, une mémoire adaptative et une évaluation des solutions basée sur leur coût et leur contribution à la diversité des solutions dans la mémoire.

Mots clés : Logistique, problème de tournées de techniciens, programmation linéaire en nombres entiers mixtes, branch-and-price, recherche tabou.

(6)
(7)

SUMMARY

Technician Routing and Scheduling problems (TRSPs) involve the routing and scheduling of a group of technicians in order to serve requests at minimum cost. These NP-Hard problems are encountered in different domains, like telecommunications, public services, maintenance operations and many others. Each application brings its own attributes, constraints and objectives. Despite the importance of TRSPs in practice, they have not received much attention from researchers, because modeling and solving these problems pose important challenges.

This thesis is about modeling and solving a multi-attribute TRSP (MATRSP) motivated from an application in which various types of electronic transaction equipments must be serviced by technicians. This problem consists of routing technicians to serve maintenance requests, while taking into account many attributes like technician skills, task priorities, multiple time windows, parts inventory, breaks and overtime.

We first develop a mixed integer linear programming model (MIP) for this problem which is then solved directly with a commercial solver. Then, medium-sized problem instances are tackled through a column generation scheme embedded in a branch-and-price algorithm. For instances of practical size, we finally propose a metaheuristic approach that combines ideas from several sources, including a tabu search, an adaptive memory and a solution evaluation based on its cost and its contribution to the memory diversity.

Mots clés: Logistics, technician routing and scheduling problem, mixed integer linear programming, branch-and-price, tabu search.

(8)
(9)

TABLE DES MATIÈRES

Sommaire. . . . iii

Summary. . . . v

Liste des tableaux. . . . xi

Liste des figures. . . . xiii

Dédicaces. . . . xv

Remerciements . . . . xvii

Introduction. . . . xix

Chapitre 1. État de l’art. . . . 1

1.1. Le problème du voyageur de commerce. . . 1

1.2. Le problème de tournées de véhicules. . . 2

1.2.1. VRPs statiques. . . 2

1.2.2. VRPs dynamiques. . . 3

1.2.3. VRPs multi-attributs. . . 3

1.2.4. Quelques méthodes de résolution . . . 4

1.3. Problème de Tournée de Réparateur. . . 7

1.4. Problèmes de Tournées de Techniciens. . . 7

1.4.1. TRSPs classiques. . . 8

1.4.2. TRSPs dynamiques. . . 14

1.4.3. TRSPs avec temps de service stochastiques. . . 15

Chapitre 2. Programmation Linéaire en nombres entiers pour un problème multi-attribut de tournées de techniciens . . . . 17

2.1. Introduction. . . 18

(10)

2.3. Problem Statement. . . 20 2.4. Mathematical Model. . . 22 2.4.1. Parameters. . . 22 2.4.2. Variables. . . 23 2.4.3. Model. . . 23 2.5. Test instances. . . 28 2.6. Computational results. . . 30 2.7. Concluding remarks. . . 31

Chapitre 3. Un algorithme de branch-and-price pour un problème multi-attributs de tournées de techniciens . . . . 39

3.1. Introduction. . . 40 3.2. Related Work. . . 41 3.3. Problem Definition. . . 42 3.4. Branch-and-Price. . . 43 3.4.1. Column generation. . . 43 3.4.1.1. Master problem. . . 43 3.4.1.2. Pricing problem. . . 44

3.4.1.3. Decremental State-Space Relaxation. . . 46

3.4.2. Branching. . . 46

3.5. Computational results. . . 48

3.5.1. Test instances. . . 49

3.5.2. Experiments. . . 49

3.5.3. Comparison with CPLEX. . . 58

3.6. Conclusion. . . 58

Chapitre 4. Une métaheuristique basée sur la recherche tabou pour résoudre un problème de tournées de techniciens . . . . 59

4.1. Introduction. . . 60

4.2. Literature review. . . 61

(11)

4.4. Problem-solving methodology. . . 63 4.4.1. Construction heuristics. . . 64 4.4.2. Tabu search. . . 65 4.4.2.1. Solution space. . . 65 4.4.2.2. Neighborhoods. . . 66 4.4.3. Adaptive Memory. . . 66 4.4.3.1. Biased fitness. . . 67

4.4.3.2. Storing and updating. . . 67

4.4.3.3. Fetching. . . 68

4.5. Computational experiments. . . 69

4.5.1. Test instances. . . 69

4.5.2. Results. . . 70

4.5.2.1. Impact of parameter η. . . 70

4.5.2.2. Comparison with three other variants. . . 70

4.5.2.3. Served tasks. . . 72

4.5.3. Comparison with optimal solutions. . . 72

4.6. Conclusion. . . 72

Conclusion. . . . 75

(12)
(13)

LISTE DES TABLEAUX

2.1 Basic parameter values. . . 29

2.2 New parameter values. . . 29

2.3 Basic configurations . . . 33

2.4 Special parts. . . 34

2.5 Skills. . . 35

2.6 Repair times. . . 36

2.7 Number of technicians. . . 37

2.8 Warm start results . . . 38

3.1 Characteristics of the test instances. . . 50

3.2 Basic parameter values. . . 51

3.3 Other parameter values. . . 51

3.4 Basic Configurations. . . 53 3.5 Special parts. . . 54 3.6 Skills. . . 55 3.7 Service times. . . 56 3.8 Number of technicians. . . 57 3.9 CPLEX vs Branch-and-Price. . . 58 4.1 Impact of parameter η. . . 71

4.2 Comparison of three different variants. . . 73

(14)
(15)

LISTE DES FIGURES

2.1 Example with two technician routes . . . 21

2.2 An example with 20 tasks, 3 technicians and 2 depots . . . 29

(16)
(17)

DÉDICACES

À mes chers parents,

C’est à vous que je dois cette thèse et c’est à vous que je la dédie Je vous aime

(18)
(19)

REMERCIEMENTS

Madeleine Ferron disait «dans la vie, les Hommes sont tributaires les uns des autres. Il y a donc toujours quelqu’un ... à remercier ». Je suis tout à fait d’accord car la présence de certaines personnes a été indispensable pour l’aboutissement de ce travail et j’aimerais bien les mettre en avant dans ces remerciements.

Tout d’abord, je remercie messieurs les membres du jury pour le grand honneur qu’ils me rendent d’évaluer ce travail, qu’ils trouvent tous ici l’expression de mon profond respect et de ma gratitude. Je remercie également mes directeurs de thèse Jean-Yves Potvin et Michel Gendreau, qui m’ont guidé et qui n’ont jamais lésiné afin de me gratifier de leurs précieux conseils. Par leur amabilité et leur modestie de grands hommes, ils me resteront un modèle.

Je tiens à remercier le CIRRELT et le DIRO pour leur accueil et les conditions de travail ainsi que leurs équipes administratives et techniques. En particulier Nath, Lucie, Johanne, Éric, Céline et Véronique pour leur serviabilité et leur écoute. Ce fut un grand plaisir d’échanger avec vous. Mes remerciements vont aussi aux indispensables Serge, Guillaume et Pierre pour leur aide, et surtout leur patience quand certaines de mes tâches causaient des débordements à la grille.

Un grand MERCI à ma famille, mes amis et mes collègues qui, avec leur question, « quand est-ce que tu soutiens cette thèse ? », m’ont permis de ne pas dévier de mon but final. Merci à Ilyes, Nahla, Ghada, Chedlia, Amira, Dorsaf, Fatma, Khadija, Zizou, Khalil et Chahd, qui par leur présence ont égayé mes longues nuits de labeur. Qu’ils trouvent ici l’expression de ma reconnaissance.

À Mohamed pour son soutien et son encouragement. Que ce travail soit un témoignage de ma reconnaissance et de mon grand amour.

(20)
(21)

INTRODUCTION

Contexte et défis

Plusieurs industries offrent un service de maintenance ou un service après-vente pour leurs clients et c’est souvent ce qui témoigne de la qualité d’une entreprise aux yeux du client. Offrir ces services peut toutefois se révéler une arme à double tranchant, car d’un côté elle séduit les clients et les fidélise et d’un autre côté elle engendre des coûts importants. C’est ainsi que les problèmes de tournées de techniciens (TRSPs pour Technician Routing and Scheduling Problems) sont apparus afin de fidéliser les clients en leur offrant un service de maintenance efficace et rapide tout en minimisant les couts engendrés.

Les TRSPs font partie de la classe des problèmes de tournées de véhicules (VRPs pour Vehicle Routing Problems) et s’apparentent en particulier aux VRPs avec fenêtres de temps (VRPTWs pour Vehicle Routing Problems with Time Windows). Ils ont cependant leurs caractéristiques propres comme les compétences des techniciens pour les différentes tâches, l’inventaire des pièces de rechange et les temps de service qui sont assez longs en comparaison des temps de déplacement.

Les VRPs sont des problèmes NP-difficiles dont l’étude a mené à des milliers de publica-tions dans la littérature scientifique. Certains chercheurs ont opté pour des méthodes exactes tels que le branch-and-bound ou le branch-and-price. D’autres ont sacrifié l’optimalité pour l’efficacité en proposant des méta-heuristiques. Ces dernières se sont révélées très perfor-mantes. Malgré l’intérêt des chercheurs pour les VRPs, et leurs similitudes avec les TRSPs, malgré aussi l’importance des TRSPs en pratique, ils n’ont fait l’objet que de peu de travaux.

Chaque problème de type TRSP rencontré en pratique a ses caractéristiques spécifiques et les algorithmes développés doivent en tenir compte, que ce soit en rapport avec l’objectif (coût, temps, distance, gain total associé aux tâches desservies) ou les attributs présents comme les priorités des clients, les temps de service, l’inventaire des pièces de rechange, les pauses, les fenêtres de temps, les compétences des techniciens, etc. Les problèmes de

(22)

tournées de techniciens multi-attributs (MATRSP) posent ainsi des défis majeurs, tant par leur variété que leur difficulté intrinsèque.

Objectif, démarche et contributions

L’objectif principal de cette thèse et de résoudre un TRSP inspiré d’une application réelle. Pour y arriver, plusieurs étapes intermédiaires ont été nécessaires en commençant par une définition et une modélisation appropriées du problème. C’est ainsi que les contributions de cette thèse se divisent en trois axes principaux.

La première contribution présente un modèle de programmation en nombres entiers mixtes (MIP pour Mixed Integer Program) intégrant les principales caractéristiques de l’ap-plication réelle. Ce modèle est ensuite résolu avec un solveur commercial. Cette contribution met l’accent sur la difficulté du problème et sur l’impact des différents attributs sur sa complexité.

La deuxième contribution présente un algorithme de branch-and-price pour le problème. Lors de la génération de colonnes, le problème maître est un problème de set-packing (étant donné qu’il n’est pas nécessaire de servir toutes les tâches) où les variables de décision correspondent aux routes des techniciens. Chaque sous-problème est ensuite associé à un technicien et correspond à un problème de plus court chemin élémentaire avec contraintes de ressources (ESPPRC pour Elementary Shortest Path Problem with Resource Constraints). Deux approches ont été utilisées afin de résoudre les ESPPRCs, qui sont des problèmes NP-difficiles, soit l’algorithme classique de programmation dynamique de Feillet [22] et une relaxation de ce dernier appelée DSSR (pour Decremental State-Space Relaxation) [57]. Afin d’obtenir l’intégralité des variables, nous proposons deux types de branchements qui exploitent les particularités de notre problème.

La dernière contribution propose une méta-heuristique capable de résoudre des problèmes de taille plus réaliste. Cette méta-heuristique repose sur une recherche tabou et inclut une mémoire adaptative ainsi qu’une évaluation des solutions qui tient compte de leur coût et de leur contribution à la diversité de la mémoire. Cette dernière évaluation a été proposée par Vidal [70] dans le cadre d’un algorithme génétique pour résoudre des problèmes de VRPs et elle a donné d’excellents résultats.

(23)

Organisation du document

L’organisation de ce document correspond à la démarche présentée plus haut. Le Cha-pitre 1 présente d’abord une revue des problèmes apparentés aux TRSPs, en commençant par le problème canonique du voyageur de commerce (TSP pour Traveling Salesman Pro-blem), suivi de quelques variantes du VRP pour arriver enfin aux problèmes de tournées de techniciens. Le Chapitre 2 correspond au premier article accepté dans la revue Information Systems and Operational Research. On y présente la modélisation mathématique de notre problème et sa résolution avec un solveur commercial sur des instances de différents types. Le Chapitre3correspond au second article soumis à Journal on Vehicle Routing Algorithms. Il présente tous les détails de notre algorithme de branch-and-price et compare les résultats obtenus avec ceux du premier article. Le Chapitre 4 correspond au troisième article soumis à Computers and Operations Research. On y présente les différentes composantes de notre approche métaheuristique et on y rapporte des résultats sur des instances de tailles plus réalistes. Enfin, le document se termine par une conclusion qui propose différentes avenues de recherche.

(24)

Chapitre

1

ÉTAT DE L’ART

Ce chapitre présente un survol des problèmes de tournées qui intéressent les chercheurs depuis des décennies. Nous commençons par le problème classique du voyageur de commerce et poursuivons avec les problèmes de tournées de véhicules avant d’aborder le problème de tournées de techniciens qui fait l’objet de cette thèse. Le chapitre décrit brièvement ces problèmes tout en mettant l’accent sur quelques méthodes de résolution.

1.1. Le problème du voyageur de commerce

Le problème du voyageur de commerce (TSP pour Traveling Salesman Problem) est l’un des problèmes les plus anciens et les plus connus en optimisation combinatoire. Sa définition est la suivante : un commerçant, partant de sa ville de résidence, doit visiter un certain nombre de clients, chacun situé dans une ville différente, avant de revenir à son point de départ. L’objectif du commerçant est de minimiser la distance totale parcourue.

Plus formellement, le TSP est défini sur un graphe non orienté où les nœuds représentent les villes (clients) et les arêtes liant deux villes sont pondérées par une distance ou longueur. L’objectif est de trouver un cycle Hamiltonien (où chaque nœud est visité exactement une fois) de longueur minimale. Une première description théorique du problème est donnée par J.B. Robinson [58] à la fin des années 40. Plus tard, G.B. Dantzig et al. [14] proposent en 1954 une solution pour ce problème sur une instance de 49 villes en faisant appel à la programmation linéaire.

Pour résoudre un TSP, qui est un problème NP-difficile, on peut procéder de trois façons : — utiliser une approche énumérative qui consiste à considérer tous les cycles Hamilto-niens et à identifier celui qui est de longueur minimale. Cette approche est toutefois de complexité O(n!) (où n est le nombre de nœuds) ce qui devient vite prohibitif ; — utiliser une méthode exacte, comme la programmation dynamique qui permet de

(25)

— sacrifier l’optimalité pour l’efficacité en appliquant des approches heuristiques telles que l’heuristique d’amélioration de Lin et Kernighan [20] ou encore des métaheuris-tiques, comme la recherche tabou ou les algorithmes génétiques [10].

1.2. Le problème de tournées de véhicules

Un problème de tournées de véhicules VRP (pour Vehicle Routing Problem) peut être vu comme plusieurs TSPs où chaque commerçant est représenté par un véhicule. En effet, il s’agit ici d’identifier un ensemble de tournées de coût minimal permettant de desservir l’ensemble des clients tout en satisfaisant un certain nombre de contraintes. Le coût peut correspondre à la distance totale parcourue par les véhicules, au temps de parcours, au nombre de véhicules utilisés, etc. (ou à une combinaison de ces critères). Le VRP est évidemment un problème NP-difficile, puisqu’il s’agit d’une généralisation du TSP.

Formellement, le VRP est défini sur un graphe orienté G=(V,A) avec [30] :

— V = {V0, .., Vn} un ensemble de nœuds ou V0 représente le dépôt central et V \{V0}

représente l’ensemble des clients ;

— A = {(vi,vj) : vi,vj ∈ V, i 6= j} un ensemble d’arcs.

La flotte de véhicules est homogène et le nombre de véhicules disponibles k est fixé a priori, laissé libre ou majoré par une constante. Une matrice des coûts C = {cij} est également

définie sur A. Le VRP consiste alors à identifier un ensemble de tournées de coût minimal, où chaque véhicule exécute au plus une tournée, tel que :

— chaque tournée commence et se termine au dépôt ; — chaque client est visité une et une seule fois ;

— la demande totale des clients d’une tournée n’excède pas la capacité du véhicule. La présence d’une contrainte de capacité fait en sorte qu’on appelle aussi ce problème le CVRP (pour Capacitated VRP). Parfois, une contrainte portant sur la longueur maximale des tournées s’ajoute ou remplace la contrainte de capacité.

Le VRP, tel que décrit, est à la source de nombreux problèmes réels en transport de marchandises ou de personnes. D’une application à l’autre, de nouvelles contraintes et de nouveaux besoins surgissent. C’est ainsi que différentes variantes du VRP sont apparues. Pour les fins de la discussion, nous les divisons en trois grandes familles, soit les VRPs statiques, les VRPs dynamiques et les VRPs Multi-Attributs (MAVRPs).

1.2.1. VRPs statiques

Les VRPs classiques sont statiques et déterministes [4], étant donné que toutes les données du problème, tels que les clients et leur demande, sont supposées connues à l’avance (statique) et avec certitude (déterministe). Parmi les VRPs statiques et déterministes les plus connus, il vaut la peine de mentionner :

(26)

VRP avec fenêtres de temps Il s’agit ici de problèmes de type CVRP où une fenêtre de temps [ai, bi] est associée à chaque client i ∈ V \{V0}. On retrouve donc la contrainte

de capacité des CVRPs et une contrainte qui impose que le début du service à chaque client i ait lieu entre les instants ai et bi. Le VRPTW (pour Vehicle Routing Problem

with Time Windows) est équivalent à un CVRP lorsque ai = 0 et bi = +∞ [38]. Une

extension du VRPTW consiste à considérer plusieurs fenêtres de temps disjointes à chacun des clients. De telles fenêtres de temps multiples sont couramment rencontrées dans les problèmes réels. Du point de vue du temps de passage du véhicule, cette caractéristique peut être avantageuse, car elle offre davantage de choix. Du point de vue modélisation et résolution, toutefois, les fenêtres de temps multiples compliquent les choses.

VRP avec retours Le VRPB (pour Vehicle Routing with Backhauls) est un CVRP ou l’ensemble des clients est divisé en deux sous-ensembles. Un premier sous-ensemble où l’on doit livrer la marchandise et un deuxième sous-ensemble où l’on recueille la marchandise [66]. Dépendant de la variante considérée, différentes contraintes de précédence entre les deux sous-ensembles de clients doivent être respectées.

VRP avec collectes et livraisons Dans le PDVRP (pour Pickup and Delivery VRP), chaque client est associé à un point de collecte (pickup) et un point de livraison (delivery) avec une contrainte de précédence entre les deux points [61, 65].

1.2.2. VRPs dynamiques

De nos jours, l’exploitation de l’information en temps réel est de plus en plus importante dans le domaine des transports. Ainsi, les DVRPs (pour Dynamic VRPs) sont les équivalents dynamiques des VRPs statiques. La différence vient de ce qu’une partie des informations, telle que l’arrivée d’un nouveau client, ne devient disponible qu’au cours de la journée d’opérations et doit être intégrée dans les routes courantes des véhicules.

Pour exploiter de façon pertinente l’information disponible en temps réel, il faut recourir à de nouveaux outils technologiques comme les GPSs (pour Global Positioning Systems) [35] qui permettent de localiser les véhicules, ainsi que les GPRSs (pour General Packet Radio Services)[42] ou téléphones portables 4G qui assurent une communication continue à un coût peu élevé. Pour plus de détails, le lecteur est référé à [49].

1.2.3. VRPs multi-attributs

De nombreux problèmes dans le monde réel peuvent être modélisés comme des VRPs. Toutefois, chaque nouvelle application apporte de nombreuses caractéristiques et contraintes additionnelles qui lui sont propres, telles des contraintes de non compatibilité entre les di-verses entités du problème (clients, marchandises, chauffeurs, véhicules), la présence d’une

(27)

flotte hétérogène, des fenêtres de temps multiples pour le service, etc. Ces problèmes très complexes sont appelés Multi-Attribute VRPs (MAVRPs) ou encore Rich VRPs (RVRPs). De tels problèmes posent des défis importants pour les chercheurs.

1.2.4. Quelques méthodes de résolution

Le nombre de méthodes de résolution proposées pour résoudre les différentes variantes des VRPs a explosé au fil des ans. Entre méthodes exactes, heuristiques et méta-heuristiques, chaque chercheur essaie de répondre au mieux aux exigences de son problème (par exemple, temps de calcul versus qualité de la solution).

Dans ce qui suit, nous allons nous concentrer sur quelques méthodes exactes ou heuris-tiques parmi les plus efficaces pour certaines variantes mentionnées précédemment.

VRP avec contraintes de capacité — Baladacci et al. [3] ont présenté une nouvelle formulation pour ce problème de type two-commodity network flow. La relaxation linéaire induit une borne inférieure qui est ensuite intégrée dans un algorithme de branch-and-cut ;

— Lysgaard et al. [43] présentent un nouvel algorithme de branch-and-cut intégrant différents types de coupes : capacité, capacité généralisée, coupes de Gomory clas-siques, etc.

— Fukasawa et al. [25] combinent l’algorithme de Lysgaard et al. avec un algorithme de génération de colonnes obtenant ainsi une approche hybride de type branch-and-cut-and-price ;

— Baladacci et al. [2] proposent une formulation de partitionnement d’ensemble qui est résolue avec une méthode de génération de colonnes intégrant des coupes de type capacité et cliques ;

— Gendreau et al. [29] résolvent un CVRP avec restriction sur la longueur de chaque route à l’aide d’une recherche tabou. L’espace de recherche autorise les solutions non réalisables qui sont toutefois pénalisées de façon dynamique : la pénalité est augmentée si la solution courante est non réalisable pour un certain nombre d’ité-rations et elle est diminuée dans le cas contraire.

VRP avec fenêtres de temps — Desrochers et al. [17] proposent un algorithme de branch-and-price pour résoudre ce problème. Des routes ou colonnes sont générées en résolvant un problème de plus court chemin avec contraintes de capacité et fenêtres de temps à l’aide de la programmation dynamique ;

— Kohl et al. [40] proposent un algorithme de branch-and-bound où la borne infé-rieure est calculée par une méthode de sous-gradient ;

— Irnich et Villeneuve [36] présentent un algorithme de branch-and-price où le sous-problème est résolu par une méthode d’élimination de k-cycles ;

(28)

— Feillet et al. [22] résolvent de manière exacte le problème de plus court chemin élémentaire avec contraintes de ressources (ESPPRC pour Elementary Shortest Path Problem with Resource Constraints) à l’aide d’une extension de l’algorithme d’étiquetage précédemment développé pour une version relaxée du problème avec chemins non élémentaires (SPPRC) [36]. Les algorithmes de résolution pour les ESPPRCs et SPPRCs constituant la colonne vertébrale des méthodes de géné-ration de colonnes, Chabrier [9] a par la suite proposé certains raffinements afin d’accélérer la résolution des ESPPRCs, comme une réduction de la taille du graphe et des techniques de sauvegarde des étiquettes. Ces raffinements ont permis de ré-soudre certaines instances classiques rapportées dans la littérature.

— Jepsen et al. [37] présentent un algorithme de branch-and-cut-and-price, en ajou-tant au problème maître certaines inégalités valides ;

— Desaulniers et al. [16] modifient l’algorithme de Jepsen et al. [37] en utilisant dans un premier temps la recherche tabou plutôt que la programmation dynamique afin de générer plus rapidement des colonnes de coût réduit négatif.

Il faut noter que toute méthode exacte pour le VRPTW basée sur une formulation de partitionnement d’ensemble peut s’adapter facilement au CVRP (en relaxant la contrainte temporelle lors de la phase de génération de colonnes). Malheureusement, cette adaptation n’est pas vraiment efficace.

VRP avec fenêtres de temps multiples — Wouter et al. [72] optimisent des tour-nées de sites touristiques (musées, théâtres, etc.) en fonction des intérêts des voya-geurs, de leur budget, de la distance, du temps disponible, etc. Il faut aussi prendre en compte les temps d’ouverture et de fermeture des sites qui peuvent être multiples au cours d’une même journée. Le problème est modélisé comme un Orienteering Problem (OP) [68] où il faut trouver le meilleur chemin permettant d’atteindre plusieurs balises dispersées sur un territoire. Chaque balise (site touristique) cor-respond à un nœud du graphe auquel est associé un score (intérêt du voyageur). Le but est de maximiser le score total à l’intérieur de contraintes temporelles. Les auteurs abordent ce problème à l’aide d’une méthode de recherche locale ité-rative. Une hybridation avec la méthode GRASP (Greedy randomized adaptive search) permet de renforcer la diversification de la recherche dans l’espace des solutions.

— Doerner et al. [19] s’attaquent à un problème de collecte de sang à différents sites (clients) avec fenêtres de temps multiples et interdépendantes. Ce problème est un VRPTW, mais avec deux particularités. D’abord, le sang est produit de façon continue à chacun des sites au cours de la journée. Ensuite une contrainte est introduite afin que le sang produit à chacun des sites soit retourné au dépôt

(29)

à l’intérieur d’un certain temps limite, le sang étant un produit périssable. Cette dernière contrainte crée une interdépendance entre les collectes aux différents sites. Pour calculer le nombre minimum de collectes à un site dans une journée, nous avons :

— ai et bi le début et la fin de la journée de production au site i ;

— fi la durée du service au site i ;

— ti0 le temps de parcours entre le site i et le dépôt 0 ;

— τ la durée de conservation du sang.

Ainsi, ti = τ − fi− ti0− f0 est le temps maximal entre deux services consécutifs au

site i, en supposant que le véhicule se rend directement au dépôt par la suite. Pour construire les tournées, les auteurs utilisent la mesure ri = dbi−ait

i e qui correspond

au nombre minimum de collectes au site i durant la journée de production. Cette mesure permet de déterminer des fenêtres de temps à chaque site i pour chaque collecte. Après la création des tournées, la concaténation de certaines tournées est ensuite envisagée, menant ainsi à une nouvelle mise à jour des fenêtres de temps.

VRPs multi-attributs — Dayarian et al. [15] résolvent un problème de collecte et de distribution du lait au Québec. Les auteurs proposent une formulation de type partitionnement d’ensemble où chaque variable correspond à une route (colonne) réalisable. Cette formulation est ensuite résolue à l’aide d’un algorithme de branch-and-price. Les sous-problèmes de type ESPPRC sont résolus avec un algorithme de programmation dynamique intégrant une méthode de relaxation à l’étape de l’étiquetage (DSSR pour Discrete State-Space Relaxation) [57]. Plus précisément, cette méthode permet la génération de chemins avec des cycles lors de la procédure d’étiquetage. Cette relaxation est progressivement renforcée en identifiant de plus en plus de nœuds dits critiques à chaque itération et en interdisant les visites multiples à ces derniers. Essentiellement, si un chemin ne contient pas de cycles à la fin d’une itération, alors il s’agit d’une solution à l’ESPPRC et la procédure se termine, sinon les nœuds qui sont visités plus d’une fois dans le chemin le moins coûteux sont ajoutés à l’ensemble des nœuds critiques et on passe alors à l’itération suivante ;

— Vidal et al. [70] proposent un algorithme génétique hybride unifié pour les MA-VRPs. Une particularité de cet algorithme est une évaluation des solutions qui combine leur coût et leur contribution à la diversité de la mémoire adaptative. L’approche proposée permet aussi d’ajouter facilement de nouvelles contraintes ou de relaxer les contraintes existantes. Avec une seule implémentation et un seul jeu de paramètres, cet algorithme a égalé ou surpassé les meilleures solutions connues pour 26 variantes de problèmes de tournées de véhicules.

(30)

DVRPs Gendreau et al. [28] résolvent un VRP dynamique provenant d’une application pour la livraison du courrier qui doit être livré à l’intérieur de fenêtres de temps bien précises. Les auteurs ont proposé une recherche tabou intégrant une nouvelle structure de voisinage appelée CROSS exchanges. Au fur et à mesure que la recherche progresse, les routes des meilleures solutions rencontrées sont stockées dans une mémoire adap-tative. Cette mémoire est ensuite utilisée pour créer de nouvelles solutions de départ pour la recherche tabou lorsque cette dernière stagne et ne parvient plus à identifier une meilleure solution.

Pour plus de détails le lecteur peut se référer à la revue de littérature de Pillac et al. [51].

1.3. Problème de Tournée de Réparateur

Le Problème de Tournée de Réparateur (ou TRP pour Traveling Repairman Problem) est un problème apparenté au TRSP car il s’intéresse à la visite de clients par un réparateur. Le problème de base n’implique qu’un seul réparateur qui doit répondre à des appels de clients avec pour objectif de minimiser la somme de leurs temps d’attente. Le TRP est un problème NP-difficile en général, mais il peut être résolu en un temps polynomial sur des exemples bien particuliers, comme le TRP défini sur un graphe linéaire [1].

Plusieurs variantes du TRP classique ont été décrites dans la littérature :

WTRP : C’est le TRP où un poids w (pour weight) est affecté à chaque client afin de

refléter son importance. L’objectif est alors de minimiser la somme des temps d’attente pondérés par les poids [26] ;

TRPTW Dans cette variante, un intervalle temps doit être respecté pour le service à

chaque client [24] ;

k-TRP : Il s’agit d’un TRP avec plusieurs réparateurs [21] ;

k-TRP à dépôts multiples : c’est un k-TRP où les tournées des réparateurs débutent à des points de départ différents [21] ;

DTRP : C’est un TRP défini dans un environnement dynamique. Ici, les appels des

clients sont reçus tout au cours de la journée et doivent être intégrés à la tournée courante du réparateur [18].

1.4. Problèmes de Tournées de Techniciens

Dans plusieurs domaines, les entreprises offrent des services après-vente, comme la main-tenance de leurs produits. Or, gérer de tels services de façon efficace n’est pas évident. C’est pourquoi le Problème de Tournées de Techniciens (TRSP pour Technician Routing and Sche-duling Problem) a séduit certains chercheurs [73].

(31)

Le TRSP peut être défini comme suit. Soit un ensemble de techniciens ayant chacun des compétences pour des tâches bien définies auxquelles on attache possiblement des niveaux de priorité différents. Soit aussi un ensemble de clients où chaque client requiert les services d’un technicien ayant la compétence pour effectuer la tâche demandée. L’objectif est alors d’affecter les techniciens aux tâches et de construire la route de chaque technicien en ordon-nançant les tâches qui lui sont affectées de façon à minimiser un certain objectif, comme la distance totale parcourue. Il faut aussi que les routes soient réalisables et qu’elles satis-fassent les contraintes touchant aux compétences des techniciens, ainsi que des contraintes additionnelles comme le nombre d’heures de travail maximal dans une journée et les fenêtres de temps pour le service aux clients. Parfois, les compétences des techniciens pour les diffé-rentes tâches s’expriment par des degrés d’habileté (plutôt que par des contraintes) et sont alors intégrées à l’objectif. La prise en compte des compétences est ce qui distingue princi-palement les TRSPs des TRPs. Aussi, les articles traitant du TRP s’intéressent la plupart du temps à la tournée d’un seul réparateur (bien qu’on retrouve quelques articles traitant du k-TRP où plusieurs réparateurs sont disponibles).

Les problèmes de tournées de techniciens font donc partie de la classe des problèmes de tournées de véhicules et s’apparentent en particulier aux VRPTWs dû à la présence de fenêtres de temps. Ils ont aussi des caractéristiques distinctes comme les compétences des techniciens pour les différentes tâches à réaliser, la disponibilité ou non de pièces de rechange et les temps de service qui sont souvent assez longs en comparaison des temps de déplacement. Les TRSPs sont des problèmes NP-difficiles pour lesquels la résolution d’instances de grande taille en un temps raisonnable constitue un défi.

Dans la suite, nous divisons les TRSPs en trois grandes variantes, soit les TRSPs clas-siques, de nature statique, les TRSPs dynamiques et les TRSPs avec temps de service sto-chastiques.

1.4.1. TRSPs classiques

Nous avons choisi cette appellation pour les problèmes comprenant les caractéristiques spécifiées dans la définition de base du problème, telles que mentionnées plus haut. Nous allons présenter les approches rapportées dans la littérature pour les résoudre.

(a) Méthodes exactes

Cortes et al. [8] présentent un problème de tournées de techniciens pour des imprimantes Xerox. L’entreprise reçoit des appels de service de ses clients et doit leur affecter des réparateurs en tenant compte de la priorité de l’appel. Celle-ci dépend de l’importance du client et de la nature de la fenêtre de temps (e.g., fenêtre de taille réduite). Dû à un trop grand nombre de variables, les auteurs ont mis de côté une formulation basée sur les arcs, optant plutôt pour une approche de partitionnement d’ensemble. Une méthode de

(32)

génération de colonnes s’inspirant de [74] a donc été développée où le sous-problème est résolu à l’aide de la programmation par contraintes.

Zamorano et Stolletz [75] ont étudié un problème où des équipes de techniciens doivent assurer une maintenance quotidienne de certains équipements sur une période d’une semaine. Un algorithme de branch-and-price est proposé pour résoudre le problème. Ce dernier fait appel à deux approches de décomposition : la première repose sur les journées tandis que la deuxième repose sur les équipes.

(b) Méthodes de recherche locale

Tsang et al. [67] ont proposé une méthode de descente locale rapide ainsi qu’une recherche locale guidée pour résoudre un problème rencontré par la compagnie British Telecom où les compétences des techniciens sont représentées par des facteurs d’habileté qui influencent le temps de service. Weigel et al. [71] ont aussi utilisé une descente locale basée sur un voisinage de type Or-Opt [48] pour un problème d’assistance technique. De leur côté, Blackley et al. [5] ont fait appel à une descente locale rapide pour un problème de maintenance périodique des escaliers mécaniques et des élévateurs.

(c) Méthode hybride

Xu et Chiu [73] présentent un problème de tournées de techniciens rencontré dans le domaine des télécommunications. Il s’agit ici d’affecter un ensemble de techniciens ayant différentes compétences à des tâches, tout en tenant compte des plages horaires disponibles. Dans ce problème, il n’est pas nécessairement possible de servir toutes les tâches. Quatre algorithmes sont proposés, en l’occurrence un algorithme glouton, un algorithme glouton amélioré, une méthode de recherche locale et une méthode GRASP.

— Algorithme Glouton

Cet algorithme traite l’ensemble des tâches une à une et insère chaque tâche à coût minimal dans la route d’un technicien. À la fin, le résultat est un ensemble S de triplets (j,k,t). Chaque triplet indique que la tâche j ∈ J est affectée au technicien k ∈ K et commence à l’instant t. Dans cet algorithme, wj est le poids, pj la durée

et lj la borne supérieure de la fenêtre de temps pour la tâche j. De plus Sjk est la

compétence du technicien k pour la tâche j.

(33)

1. Trier en ordre croissant l’ensemble des tâches J selon le critère wj/pj (les tâches

ayant la même valeur wj/pj sont triées en ordre décroissant selon lj− pj) ;

2. Pour chaque tâche j ∈ J faire :

2.1 Trier l’ensemble des techniciens K selon la valeur Sjk (les techniciens ayant la

même valeur Sjk sont triés en ordre croissant selon la distance qui les sépare

de l’endroit où doit s’effectuer la tâche) ;

2.2 Tant qu’on n’a pas affecté un technicien à la tâche j et il reste un technicien à considérer faire :

Si la route du technicien k est réalisable pour la tâche j Insérer j dans la route du technicien k à coût minimal ; S ←− S ∪ (j,k,t) ;

Sinon passer au technicien suivant. — Algorithme Glouton Plus

Pour améliorer l’algorithme glouton de base, on exploite le fait qu’un technicien ne peut accomplir plus de six tâches par jour. L’algorithme Glouton Plus prend donc la solution initiale produite par l’algorithme Glouton, puis identifie la route optimale pour chaque technicien à l’aide d’un algorithme exact de Branch-and-Bound.

— Méthode de recherche locale

La méthode de recherche locale modifie la solution obtenue par l’algorithme Glouton Plus à l’aide de quatre opérateurs de voisinage qui modifient la composition des routes des techniciens. Plus précisément, les opérateurs sont :

Ajouter : ajouter une tâche (non encore affectée) à la route d’un technicien ;

Échanger : étant donné deux tâches i et j affectées respectivement aux techniciens

k et k0, réaffecter j à k et i à k0;

Déplacer : étant donné une tâche i affectée à un technicien k, réaffecter i à un

technicien k0 6= k ;

Troquer : remplacer une tâche i affectée à un technicien k par une tâche non encore

affectée. — GRASP

La méthode GRASP a donné de bons résultats pour la résolution de plusieurs variantes du problème de tournées de véhicules [55]. C’est pour cette raison que les auteurs l’ont aussi appliqué au TRSP. Cette méthode combine des heuristiques gloutonnes randomisées avec des méthodes de recherche locale (voir [23] pour une introduction à la méthode GRASP).

(34)

Ainsi, l’algorithme Glouton est randomisée de la façon suivante : à chaque itéra-tion, une tâche est sélectionnée aléatoirement dans une liste appelée RCL (pour Restricted Candidate List) contenant les α tâches de plus grand poids non encore affectées à un technicien. Ensuite, un technicien est choisi pour réaliser la tâche en sélectionnant aléatoirement dans une autre liste RCL pour les techniciens, construite selon le critère utilisé dans l’algorithme Glouton. Une implantation paral-lèle de la méthode est également décrite dans le but d’améliorer les temps d’exécution.

(d) Recherche adaptative à grand voisinage

Cordeau et al. [11] présentent une heuristique constructive et une méthode de recherche adaptative à grand voisinage (ALNS pour Adaptive Large Neighborhood Search) [53] afin de résoudre un problème réel présenté dans le cadre de la compétition française de recherche opérationnelle ROADEF.

Ici, des tâches sont affectées à des équipes de techniciens ayant les compétences requises pour les réaliser sur un intervalle de plusieurs jours, tout en tenant compte de trois niveaux de priorité différents pour les tâches. L’objectif est de minimiser la somme des temps de fina-lisation de la dernière tâche pour chaque niveau de priorité et pour l’ensemble des tournées. Une heuristique de construction est d’abord utilisée afin d’identifier une première solution réalisable. Cette heuristique fonctionne en deux phases. La première phase consiste à former chaque équipe à partir d’une tâche germe (tout en se gardant une réserve de techniciens). Pour ce faire, les mesures suivantes sont utilisées :

— Mesure critique : mesure l’importance d’effectuer la tâche en premier, en fonction de sa priorité, de sa durée et de ses successeurs ;

— Mesure de difficulté : mesure la difficulté d’identifier une équipe pour cette tâche, en se basant sur les compétences requises ;

— Mesure de similarité : mesure la similitude des compétences requises entre la nouvelle tâche et les tâches déjà choisies

Ces trois mesures sont combinées afin d’obtenir un score et c’est la tâche germe ayant le score le plus élevé qui est choisie. Une équipe ayant les compétences requises pour la réaliser est ensuite formée. Dans la deuxième phase, les tâches restantes sont affectées aux équipes existantes, en se basant sur une mesure des compétences perdues. Au cours de ce processus, il est possible d’adjoindre un ou plusieurs techniciens à une équipe existante afin de lui permettre de réaliser une tâche. S’il reste des tâches à la fin et qu’aucune équipe ne peut les réaliser, celles-ci sont alors considérées pour le jour suivant.

La solution générée par l’heuristique de construction est ensuite améliorée par une mé-thode de destruction et reconstruction semblable à la mémé-thode ALNS rapportée dans [60].

(35)

Pour choisir les tâches à retirer de la solution courante, quatre méthodes de destruction sont proposées :

— destruction aléatoire ;

— destruction avec dépendances : ici on désire retirer des tâches présentant des similarités au niveau des compétences requises.

— destruction semi-aléatoire, semi-dépendante ;

— destruction d’une équipe et de toutes les tâches qui lui ont été affectées.

Pour réparer les solutions détruites, l’heuristique de construction présentée plus haut est appliquée aux tâches qui ont été retirées de la solution. A chaque itération, les heuris-tiques de destruction et de reconstruction sont choisies selon le principe de la roulette et le score des heuristiques est modifié en fonction de la qualité de la solution obtenue. Certaines fonctionnalités nouvelles sont également intégrées à la méthode :

Fonction objectif modifiée : la fonction objectif originale est modifiée de façon à

prendre en compte non pas seulement la dernière tâche pour chaque niveau de prio-rité, mais les ε dernières tâches. Cette modification permet d’obtenir une plus grande diversification des valeurs possibles de la fonction objectif ;

Permutation des priorités : l’algorithme considère trois permutations diffentes des

priorités (par exemple, affecter les tâches de niveau 1, 2 et 3 dans cet ordre ; ensuite de niveau 3, 2 et 1, etc.). En commençant avec les tâches dont le niveau de priorité ap-paraît en premier dans la permutation, l’algorithme construit une solution sur laquelle la méthode adaptative est ensuite appliquée. Après un certain nombre d’itérations, les tâches sont fixées dans la solution, et les tâches avec le niveau de priorité suivant sont considérées. La solution obtenue à la fin peut encore être réoptimisée en libérant les tâches considérées en premier.

Kovacs et al. [41] ont aussi utilisé une recherche adaptative à grand voisinage pour ré-soudre deux versions d’un problème réel de tournées de techniciens. Il s’agit de planifier les routes formant la journée de travail d’un ensemble de techniciens ayant différents niveaux de compétences. Les tâches demandent aussi un certain niveau d’une ou de plusieurs com-pétences et doivent être réalisées à l’intérieur de fenêtres de temps.

Une première version de l’algorithme est développée pour le cas où chaque tournée est réa-lisée par un seul technicien, alors que la deuxième version planifie des tournées d’équipes de travail. Les auteurs proposent une heuristique de type ALNS dans les deux cas en faisant appel à différentes méthodes de destruction et de reconstruction de solutions.

Contrairement à Ropke et Pisinger dans [60], un score est associé à une paire d’opérateurs (destruction, reconstruction) qui est mis à jour à chaque itération selon la qualité de la so-lution obtenue.

(36)

— destruction aléatoire ;

— destruction des pires tâches : on enlève ici les tâches qui ont l’impact le moins favorable sur la valeur de l’objectif ;

— destruction avec dépendances : on enlève d’abord une tâche choisie de façon aléatoire et on enlève ensuite celles qui présentent des similarités (du point de vue distance, fenêtres de temps et compétences requises) ;

— destruction par clusters : une route est d’abord choisie aléatoirement, puis on construit un arbre couvrant minimum pour le sous-ensemble des nœuds du graphe faisant partie de cette route. On supprime ensuite l’arc le plus long de façon à obtenir deux clusters. L’un des deux clusters est alors choisi aléatoirement et tous ses nœuds sont retirés de la solution.

Pour les méthodes de reconstruction, on a :

— heuristique d’insertion avec ordre fixé : on considère les tâches une à une dans un ordre donné et on insère chaque tâche à l’endroit qui entraîne l’augmentation la plus faible de la valeur de l’objectif ;

— heuristique d’insertion avec ordre variable : dans cette approche, l’ordre d’insertion des tâches est variable ; plus précisément, on identifie à chaque itération le meilleur endroit pour insérer chaque tâche ; la prochaine tâche choisie est alors celle qui optimise une mesure qui dépend du meilleur endroit où on peut l’insérer.

— heuristique de regret : on calcule la somme des différences au niveau de l’objectif entre l’insertion d’une tâche à sa meilleure position et aux q meilleures positions suivantes. On choisit ensuite la tâche pour laquelle cette somme est la plus grande.

Pour adapter les méthodes de destruction à la deuxième version, une étape est ajoutée à la phase de destruction qui supprime des équipes précédemment formées ainsi que les techniciens dits "redondants" (i.e., qui ne sont pas vraiment impliqués dans la solution). La méthode de destruction aléatoire d’une équipe, telle que décrite dans [11], est également utilisée.

À l’étape de reconstruction, les tâches sont réinsérées de la même façon que dans la première version, mais sans vérifier les compétences des équipes. On procède ensuite à cette vérification. Des techniciens toujours disponibles ayant les compétences requises peuvent alors être ajoutées aux équipes. Enfin, s’il y a toujours des techniciens non affectés, de nouvelles équipes peuvent être formées.

(e) Matheuristique

Pillac et al. [51] présentent une matheuristique pour un TRSP où les pièces de rechange requises pour réaliser une tâche sont prises en compte. L’approche proposée comprend une

(37)

heuristique constructive, une recherche parallèle adaptative à grand voisinage (pALNS) et un programme mathématique qui est utilisé à des fins de post-optimisation.

1.4.2. TRSPs dynamiques

Comme leur nom l’indique, les TRSPs dynamiques possèdent un ou plusieurs aspects dynamiques tels : une partie ou toutes les tâches à réaliser se présentent de façon continue au cours de la journée, le temps de déplacement d’un client à un autre varie dynamiquement, etc. Cette spécificité rend ces problèmes beaucoup plus compliqués que les TRSPs statiques. Pillac et al. [50] présentent une méthode pour résoudre un TRSP où une partie des tâches est de nature dynamique. Leur méthode de résolution a été implantée sur une architecture parallèle et peut se résumer ainsi :

1. Un ensemble de solutions initiales avec les tâches connues à l’avance sont créées en utilisant une heuristique de regret [54] ;

2. Chaque solution est affectée à un processus esclave qui exécute un algorithme de type ALNS afin de l’améliorer ;

3. Les meilleures solutions sont ensuite communiquées au processus maître, qui met à jour l’ensemble des solutions élites. Cette procédure est répétée pour un certain nombre d’itérations ;

4. La meilleure solution obtenue est retournée ;

5. À l’arrivée d’une nouvelle tâche, la portion des tâches déjà exécutées est fixée et le processus maître relance alors les processus esclaves (Étape 2) afin d’intégrer cette nouvelle tâche.

Bostel et al. [7] proposent deux méthodes de résolution pour un problème de tournées de techniciens dynamique. Il s’agit d’un problème rencontré par une compagnie qui gère un réseau d’aqueduc et où des tournées de techniciens doivent être planifiées sur une période d’une semaine pour des réparations ou de la maintenance. Les tâches à ordonnancer sont de deux types, soit celles qui sont connues d’avance (maintenance préventive) et celles qui apparaissent de façon dynamique. Chaque tâche a une fenêtre de temps qui doit être respectée et la compagnie possède un nombre de techniciens et de véhicules limité.

La première méthode proposée est un algorithme mémétique [47]. Au début, une po-pulation initiale de solutions est créée. Puis, à chaque itération, des solutions enfants sont générées à partir des solutions parents afin de produire une nouvelle population. Essentielle-ment, deux solutions parents échangent des routes afin de créer deux solutions enfants, qui sont ensuite améliorées avec une méthode de recherche locale. L’algorithme mémétique est d’abord appliqué avec les tâches statiques seulement afin de produire des tournées planifiées pour chacun des jours de la semaine. Les tâches dynamiques sont ensuite intégrées dans

(38)

la solution à mesure qu’on avance dans le temps, toujours en faisant appel à l’algorithme mémétique.

La deuxième approche de résolution est basée sur une méthode de génération de colonnes qui n’est applicable qu’à des instances de petite taille.

1.4.3. TRSPs avec temps de service stochastiques

En général, il est difficile d’estimer le temps de service requis par une tâche. Il est donc indiqué de prendre en compte cette incertitude. Ordonez et al. [12], par exemple, modélisent le temps de service comme une variable aléatoire et proposent un modèle d’optimisation robuste (où l’on considère le pire cas pour le temps total requis pour servir les tâches). Le problème est résolu avec une méthode de génération de colonnes où le problème maître correspond à un problème de partitionnement. Le sous-problème est abordé à l’aide de la programmation par contraintes.

Les auteurs dans [6] décrivent un problème réel rencontré par British Telecom qui gère un grand nombre de techniciens avec différentes compétences pour servir des clients qui sont éparpillés géographiquement. Le problème présente des aspects dynamiques et stochastiques. Ainsi, une fraction des tâches est révélée au cours de la journée, tandis que les temps de parcours et les temps de service sont stochastiques. Afin de résoudre le problème, les auteurs font d’abord appel à une méthode de clustering (K-means) pour regrouper les tâches qui sont proches d’un point de vue géographique. Chaque groupe définit alors une zone. Ensuite, une heuristique d’insertion est utilisée pour affecter les techniciens aux zones en commençant avec les techniciens qui n’ont que peu de compétences. L’ordre d’insertion des tâches est défini à l’aide d’un système de règles qui favorise les tâches de courte durée avec une date de fin serrée.

(39)
(40)

Chapitre

2

PROGRAMMATION LINÉAIRE EN NOMBRES

ENTIERS POUR UN PROBLÈME

MULTI-ATTRIBUT DE TOURNÉES DE

TECHNICIENS

Ce chapitre correspond à un article qui a été publié dans la revue Information Systems and Operational Research 56(1), 33-49, 2018. Les co-auteurs sont I. Mathlouthi, M. Gendreau et J.-Y. Potvin.

Dans ce chapitre nous considérons un problème multi-attributs de tournées de techniciens motivé par une application touchant à des équipements de transactions électroniques. Le but est de créer des routes pour les techniciens afin réaliser des tâches chez différents clients, tout en maximisant le gain total associé aux clients desservis moins les coûts d’exploita-tion (distance totale parcourue, heures de travail supplémentaires). De plus, des contraintes doivent êtres prises en considération comme les compétences des techniciens pour les diffé-rentes tâches, leur horaire de travail, une distance maximale autorisée, des fenêtres de temps multiples pour le service et un inventaire de pièces à respecter. Un modèle de programmation linéaire mixte avec variables continues et entières est proposé pour formuler ce problème. Le modèle est ensuite résolu avec le solveur commercial CPLEX. Les résultats des expériences démontrent la difficulté du problème en fonction de ses différentes caractéristiques et sou-lignent son inhérente complexité.

(41)

Mixed Integer Linear Programming for a Multi-Attribute Technician Routing and Scheduling Problem

In this paper, we consider a multi-attribute technician routing and scheduling problem motivated by an application for the maintenance and repair of electronic transaction equip-ment. This problem is aimed at routing technicians to perform tasks at different customer locations so as to maximize the total gain associated with served customers, minus the ope-rations costs (total traveled distance and overtime of the technicians). At the same time, a number of constraints must be satisfied like technician skills, breaks, maximum distance, multiple time windows and parts inventory. A mixed integer linear programming model is proposed to address this problem, which is then solved with a commercial solver. The compu-tational results explore the difficulty of the problem along various dimensions and underline its inherent complexity.

Keywords : Technician routing and scheduling problem, multiple time windows, inventory,

mixed integer linear programming.

2.1. Introduction

In the technician routing and scheduling problem (TRSP), a number of technicians must serve different tasks at minimum cost while satisfying resource constraints. The TRSP be-longs to the class of Vehicle Routing Problems (VRP) [32] and is related in particular to the VRP with time windows [38]. There are, however, significant differences such as skill requi-rements to perform different types of tasks and relatively large service times when compared to travel times. In our case, we also deal with inventory issues, in particular the availability of spare parts and special parts in the technician’s vehicle.

This TRSP, which was proposed to us by a company involved in the maintenance and repair of electronic transactions equipment, is defined as follows. There is a set of technicians, each with different skills for different types of tasks. These tasks may also have different priority levels. There is a set of customers, where every customer requires the service of a technician to perform a particular task. The goal is then to assign tasks to technicians and to build a route for each technician, starting and ending at his home base location, so as to optimize an objective that involves the maximization of the total gain obtained by serving tasks minus the operations costs (total traveled distance and overtime of the technicians). The solution must also satisfy various constraints related to the required skills of the technicians to perform the assigned tasks, breaks, maximum distance, multiple time windows, availability of spare parts and special parts. It should be noted that technician skills are sometimes accounted for in the literature as degrees of ability (instead of constraints) and are integrated into the objective.

(42)

A particular feature of our problem comes from an inventory of spare parts. More preci-sely, a technician leaves his home base position to start his route with an initial inventory. However, if there is not enough parts to serve all tasks, he has the opportunity to replenish once along the route by going through a particular depot, which has previously been assigned to him. There are also special parts that are not carried in the vehicle unless one or more tasks along the route require them. In such a case, the technician must also take them from his depot before performing these tasks.

Overall, the main contributions of this work come from the development of a mixed integer linear programming (MILP) model for a complex problem motivated by a real-world application. Furthermore, an analysis of the problem difficulty along various dimensions is provided by generating instances with different characteristics and by solving them with CPLEX.

The remainder of this paper is organized as follows. In Section 2, we review some related work. In Section 3, the problem is introduced. Then, the mathematical formulation is pre-sented in Section 4. The generation of the test instances is explained in Section 5, followed by the results obtained in Section 6. Finally, Section 7 concludes the paper.

2.2. Related Work

TRSPs have received limited attention compared to VRPs, despite their numerous prac-tical applications. The first work is reported in 1997 by Tsang and Voudouris [67] where the authors introduce the technician workforce scheduling problem faced by British Telecom. The particularity of this problem is that there are no skill constraints. They are replaced by a proficiency factor that reduces the service time depending on the technician experience. A Guided Local Search (GLS) and a so-called Fast Local Search are used to solve this problem. Later, Weigel and Coo [71] introduce the problem faced by a well-known retailer when pro-viding on-site technical assistance. The proposed solution consists of assigning requests to technicians and then optimizing each route individually through Or-opt exchanges [48].

In [73], Xu and Chiu propose a MILP for a TRSP where the objective is to maximize the number of served requests, while taking into account request priorities, skills and overtime. Four heuristics based on local search and GRASP are reported. In [5], Blakeley et al. solve a periodic maintenance problem faced by the Schindler Elevator Corporation for their elevators and escalators. In this application, the technician routes must account for technician skills, travel times and working regulations. A little bit later, a similar application was addressed by Tang et al. [64] with a tabu search heuristic.

In 2007, the French Operations Research Society (ROADEF) initiated a challenge based on a problem encountered by France Telecom. The participants had to schedule technician tours on a multiple-day horizon. The particularity of this problem is that each task needs one or more skills with different proficiency levels, while technicians can have multiple skills.

(43)

To solve this problem, teams of technicians working together must be created. However, the routing aspect of the problem is ignored. Based on this challenge, Hashimioto et al. [33], developed a GRASP for this problem while Cordeau et al. [11] proposed a mathematical model and a problem-solving methodology based on an adaptive large neighborhood search (ALNS).

A dynamic variant of the TRSP is addressed in Bostel et al. [7]. The authors introduce a problem faced by Veolia, a water treatment and distribution company. In this problem, technician routes must be planned over a period of one week for repair or maintenance. The tasks to be scheduled can either be known in advance (preventive maintenance) or can occur dynamically. Each task has a time window for service. The first proposed method is a memetic algorithm, which is first applied on static tasks to produce tours for every day of the week. Dynamic tasks are then integrated into the solution as they occur, still using the memetic algorithm. The second approach is based on a column generation algorithm which can only be applied to problem instances of small size.

Finally, Pillac et al. [50] also address a TRSP in which a fraction of the tasks occur dynamically. A parallel architecture is proposed to speed up the calculations. An initial solution is first created with known tasks using a regret heuristic [54]. This solution is then improved with ALNS [53]. The latter works by successively destroying (removing tasks) and repairing (reinserting tasks) to produce a new solution from the current one. When a new task is received, the part of the current solution already executed is fixed and the new task is incorporated into the solution by running the ALNS for a limited number of iterations.

To the best of our knowledge, no work considers concurrently technician skills, task prio-rities, multiple time windows, breaks, overtime and parts inventory. This complex problem will now be introduced more precisely in the next section.

2.3. Problem Statement

Our problem is a technician routing and scheduling problem encountered in maintenance and repair services for electronic transactions equipment. Although dynamic customer re-quests can sometimes be accommodated in the real problem (same-day service), it is assumed here that all tasks to be performed at customer locations are known beforehand. Also, there is no need to serve all of them, that is, tasks can be postponed. Each task is characterized by the following attributes :

— Gain (based on the customer’s service priority) ;

— Subset of technicians with the required skills to perform the task ; — Types and number of required spare parts of each type ;

— Special part, if any ; — Service time ;

(44)

There are one or more depots, where each depot contains a (virtually infinite) number of parts. Each technician is assigned to a particular depot for the replenishment of his spare parts or for the acquisition of special parts. Each technician can work from 9H00 AM to 5H00 PM (if no overtime) and is allowed three breaks during the day : one break of 15 minutes in the morning and afternoon, respectively, and a mid-day break of 30 minutes. The morning, mid-day and afternoon periods are defined through time window constraints. Finally, a technician cannot travel more than a given maximum distance during his workday. With this information, the problem is to design technician routes for one day, where each route starts and ends at the technician’s home base and serves a number of tasks, including one possible stop at the preassigned depot, while satisfying the required skills for each task, the multiple time windows at each location, the time window for each break, the required number of spare parts for each task and the requirement (or not) of a special part for each task. The goal is to optimize an objective involving overtime, total traveled distance and total gain over the performed tasks.

Figure 2.1. Example with two technician routes

Figure2.1 shows an example with one depot, a single customer requiring a special part, and two technician routes. The first technician has all the required skills to perform all tasks. His route serves tasks 1, 2, 3, 4 in this order. After task 2, he goes to the depot to replenish his inventory of spare parts, takes a break and then goes to task 3. Then, he takes another break before going to task 4. The second technician does not have all the required skills to perform all tasks. His route serves tasks 5 and 6 and he must first go to the depot to pick up the special part needed by task 5. He then takes a break before going to task 6.

(45)

2.4. Mathematical Model

In this section a mixed integer linear programming model for our problem is provided. The parameters are first defined, followed by the decision variables. It should be noted that we are not aware of any model that accounts for all these characteristics.

2.4.1. Parameters

— D = {1, . . . , g} : Set of depots ; — K = {1, . . . ,m} : Set of technicians ;

— Kd⊆ K : Set of technicians assigned to depot d ∈ D ;

— I = {1, . . . ,n} : Set of tasks ;

— Θ = {θ1, . . . , θm} : Set of starting positions of the technicians (home bases) ;

— I0 = I ∪ Θ — I00 = I0 ∪ D

— P = {1, . . . ,o} : Set of types of spare parts ; — It⊆ I : Set of tasks that require a special part ;

— Pi ⊆ P : Set of types of spare parts required to perform task i ∈ I ;

— Fi : Set of time windows of task i ∈ I ;

— αi : Gain of task i ∈ I ;

— ar

i : Lower bound of time window r ∈ Fi of task i ∈ I ;

— br

i : Upper bound of time window r ∈ Fi of task i ∈ I ;

— al : Lower bound of time window of break l = 1, 2, 3 ;

— bl : Upper bound of time window of break l = 1, 2, 3 ;

— ak : Earliest workday start time of technician k ∈ K ;

— bk : Latest (regular) workday end time of technician k ∈ K ;

— σi : Duration of service of task i ∈ I ;

— σl : Duration of break l = 1, 2, 3 ;

— dij : Distance between i et j ∈ I00, i 6= j ;

— tij : Travel time between i et j ∈ I00, i 6= j ;

— dmax : Maximum traveled distance of each technician ;

— dk : Depot of technician k ∈ K ;

— zpi : Number of spare parts of type p ∈ P needed to perform task i ∈ I ;

— vpk : Number of new spare parts of type p ∈ P in the vehicle of technician k ∈ K after replenishment ;

— vkk : Number of spare parts of type p ∈ P in the vehicle of technician k ∈ K at his

starting position (home base) ; — sk

i =

  

1, if technician k ∈ K has the required skills to perform task i ∈ I ; 0, otherwise.

Figure

Figure 2.1. Example with two technician routes
Figure 2.2. An example with 20 tasks, 3 technicians and 2 depots
Table 2.3. Basic configurations
Table 2.8. Warm start results
+6

Références

Documents relatifs

Nevertheless, when a graph G has more than one maximal sequence corresponding to partitions of its vertex set into cliques, the optimal solution for the cluster deletion problem of

The subproblems (16) can be solved to search columns with a negative reduced cost using matheuristics, the number of technician is restricted and matheuristics restrict the size of

Dans le deuxième chapitre, nous présentons une méthode à deux phases pour résoudre Pm TS basée sur la résolution d’un problème de classification et d’un pro-

A hybrid iterative local search algorithm for the electric fleet size and mix vehicle routing problem with time windows and recharging stations. IFAC-PapersOnLine, 49

The second set consists of the 276 instances (108 small with proven optima + 168 large) proposed in [1] for the closely-related electric fleet size and mix vehicle routing problem

With this information, the problem is to design technician routes for one day, where each route starts and ends at the technician’s home base and serves a number of tasks, including

Dr Buchman is Chair of the Social Accountability Working Group of the College of Family Physicians of Canada, Past President of the College, a family physician providing

Lewy body disease.  Of  course  I  was  familiar  with  the  words.  I  could  easily  rhyme  off  their  definitions,  diag- noses,  prognoses,  and