220 likes | 308 Views
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!
E N D
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 • 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