Optimisation des horaires de personnel Bernard Gendron Université de Montréal
Domaines d’application Transport en commun Transport aérien Administration de la santé Chaînes de magasins
Contribution de la RO A Montréal même, une expertise de plus de 30 ans dans ces domaines! Centre de recherche sur les transports GERAD Quelques compagnies Pourtant relativement peu connue RO : peu connue! Informatisation très lente dans de nombreuses organisations Situation aujourd’hui : RO : méthodes de plus en plus sophistiquées Essor d’Internet et progrès technologiques
Confection d’horaires Deux problèmes distincts : Décider des quarts de travail et du nombre d’employés à affecter en fonction des besoins à combler Décider des employés à affecter aux quarts de travail Le premier problème peut être résolu par : Apprentissage statistique (voir présentation de Yoshua Bengio au CIRANO) Modèles stochastiques et simulation Le deuxième problème est traité par des méthodes d’optimisation combinatoire
Optimisation combinatoire Programmation en nombres entiers Génération de colonnes Méthodes heuristiques Programmation par contraintes Méthodes hybrides
Objectifs à considérer Minimiser les coûts Maximiser la satisfaction des employés Satisfaire les exigences particulières Affecter les quarts de façon équitable Respecter l’ancienneté des employés Satisfaire des besoins particuliers Par exemple, affecter certains quarts en priorité à certaines catégories d’employés
Exemple simplifié I employés J jours K quarts de travail/jour Contrainte 1 : un employé/quart Contrainte 2 : Un quart de travail/jour pour chaque employé Contrainte 3 : Après un soir travaillé, pas de quart le lendemain matin 24 heures/jour (cas des salles d’urgence) Contrainte 4 : Après trois nuits travaillées, au moins trois jours de congés
Programmation en nombres entiers Définir les variables d’affectation : employé i affecté au quart k du jour j On peut facilement modéliser les trois premières contraintes avec ces variables La contrainte 4 est plus complexe Une première tentative (n’utilisant que les variables d’affectation) échoue : plusieurs situations valides seraient interdites Il faut ajouter des variables de succession
Programmation en nombres entiers Avantages Approche classique Extension de la programmation linéaire Algorithme de résolution éprouvé Algorithme exact Logiciels performants Désavantages Contraintes de succession difficiles à modéliser S’il y en a trop, difficile à résoudre! Objectif parfois impossible à exprimer comme une fonction linéaire des variables d’affectation
Génération de colonnes Modèle basé sur l’affectation d’horaires : employé i affecté à un horaire h Trop de variables : les générer de façon dynamique Les deux premières contraintes sont modélisées dans le problème maître : Programmation linéaire (en nombres entiers) Les deux autres contraintes sont modélisées dans le problème auxiliaire Souvent résolu par la recherche d’un plus court chemin avec contraintes additionnelles
Génération de colonnes Avantages Permet de modéliser aisément des situations complexes (contraintes de succession, objectif non linéaire,…) Algorithme exact Problème maître a une structure connue Algorithmes très efficaces pour le calcul de plus courts chemins Désavantages Développement et implantation peuvent être très longs S’il y a trop de contraintes additionnelles, le problème auxiliaire devient difficile à résoudre
Méthodes heuristiques Méthodes ne garantissant pas l’obtention d’une solution optimale Souvent basées sur la notion de voisinage A partir d’une solution, on atteint une solution voisine par une modification Exemple : échanger les affectations de deux employés Générer une première solution (plusieurs contraintes peuvent être violées!) Passer d’une solution à une autre voisine En tentant d’améliorer l’objectif En tentant de réduire la violation des contraintes
Méthodes heuristiques Avantages Simples à concevoir Souvent très efficaces, si elles obéissent aux principes fondamentaux des métaheuristiques Permet de s’affranchir des logiciels commerciaux (économie de $...) Désavantages Implantation efficace : un art Aucune garantie d’optimalité (écart à la solution optimale?) S’il y a trop de contraintes, difficile de trouver des solutions
Programmation par contraintes Variables à domaine fini : employé i affecté au quart k du jour j Contrainte Exprime des relations de toute nature entre les variables et leurs domaines Lorsque le domaine d’une variable est réduit, déclenche un algorithme de propagation pour réduire les domaines d’autres variables Algorithme de recherche Réduit les domaines des variables Propage l’effet de ces réductions au moyen des contraintes
Programmation par contraintes Avantages Permet de modéliser toutes sortes de contraintes Souvent efficace lorsqu’il y a un grand nombre de contraintes difficiles à satisfaire simultanément Algorithmes de recherche pouvant s’adapter à des méthodes exactes ou heuristiques Désavantages Difficile d’implanter des contraintes efficaces Domaine relativement jeune (intéressant pour les chercheurs, mais pas pour les praticiens…) N’exploite pas encore très bien les algorithmes éprouvés en RO
Méthodes hybrides Combiner heuristique et programmation par contraintes Explorer des solutions par une heuristique à base de voisinage Explorer chaque voisinage au moyen de la programmation par contraintes Combiner génération de colonnes et programmation par contraintes Résoudre le problème auxiliaire au moyen de la programmation par contraintes Diriger la recherche de solutions du problème auxiliaire pour faciliter la résolution du problème maître
Application 1 : médecins d’urgence Deux hôpitaux de la région montréalaise Programmation en nombres entiers Heuristique en trois phases Affecter les fins de semaine Affecter les nuits Affecter les autres quarts Certaines contraintes sont dures, mais la plupart sont molles Force de la méthode : capacité de prendre en compte simultanément un grand nombre de contraintes
Application 1 : médecins d’urgence Premier cas (1995-98) Collaboration des médecins Implantation informatique rudimentaire Absence de budget pour poursuivre Deuxième cas (1999-2001) Intérêt de la DSP Implantation informatique incluant interface graphique et base de données Logiciel de programmation en nombres entiers jugé trop coûteux Développement d’une méthode heuristique sans logiciel de programmation en nombres entiers (2001-2004)
Application 2 : SAQ 400 magasins et 3000 employés Division par région Un même employé peut travailler dans plusieurs succursales d’une même région On traite les employés l’un après l’autre, par ordre d’ancienneté Pour chaque employé, on résout un modèle de programmation en nombres entiers Une méthode exacte est nécessaire car une solution optimale doit être identifiée!
Application 2 : SAQ Interface accessible dans chaque succursale via le Web Base de données centralisée qui reçoit les données et transmet les résultats aux succursales Base de données communique avec le moteur d’optimisation via des fichiers Nouvelles contraintes faciles à intégrer au modèle grâce aux librairies pouvant être intégrées au code C++ Implantation depuis septembre 2002
Caractéristiques des applications Environnement syndiqué Règles rigides et souvent complexes Méthode exacte souvent nécessaire Satisfaction des employés et ancienneté Environnement non syndiqué Règles flexibles Méthodes heuristiques intéressantes Équité entre employés (mais pas toujours) Demande variable : combiner la résolution des deux problèmes mentionnés au début
Conclusions Questions de recherche Progrès en pratique Programmation par contraintes Méthodes hybrides Demande variable Progrès en pratique Interface Web et base de données Moteur d’optimisation communiquant avec la base de données Progrès continus dans les méthodes d’optimisation combinatoire