Génération de coupes pour la planification d’agents Boris Detienne, Laurent Péridy, Eric Pinson, David Rivreau Centre de Recherche et d’Etudes sur les Applications des Mathématiques Institut de Mathématiques Appliquées Université Catholique de l’Ouest – Angers 6ème Conférence Francophone de Modélisation et Simulation Modélisation, Optimisation et Simulation des Systèmes : Défis et Opportunités Rabat, 3-5 avril 2006
Sommaire Description du problème Formalisation Borne inférieure (décomposition lagrangienne) Méthodes heuristiques Approche gloutonne Génération de coupes Méthodes exactes Décomposition de Benders Conclusion / Perspectives
Description du problème
Description du problème Θ : Horizon temporel A : Ensemble d’agents C : Ensemble de compétences ecθ : Requête en agents pour cC durant θΘ e c1 Horizon Theta partitionné en plages horaires Activités définies implicitement sur Theta c3 c2 Θ θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 …
Description du problème A : ensemble d’agents Compétences maîtrisées Ca C Ensemble de profils horaires sur l’horizon Θ θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 … ω1 ω2 ωn ωn-1 Ensembles de compétences, PHH et règles différents pour chaque agent PHH -> typiquement, horaires du matin, soir, nuit combinables en roulements de 3-8 Exemple de règles : semaine de congés, 35 heures/semaine sur l’année, pas plus de 48h/semaine, tarif heures sup après 40 heures/semaines…
Description du problème Profils horaires (horizon) PHH (1 semaine) Roulements (2-5 semaines) Règles contractuelles Congés Législation du travail Coûts horaires
Description du problème Affecter : Un profil horaire par agent Une compétence à chaque agent présent sur chaque plage horaire De manière à satisfaire les requêtes Au moindre coût Une compétence à chaque agent présent sur chaque plage horaire selon la séquence de PHH
Formalisation
Programme linéaire (1) νωθ=1 le profil ω couvre la période θ Notations νωθ=1 le profil ω couvre la période θ ηωa : coût du profil ω Variables de décision yωa=1 le profil ω est affecté à l’agent a xacθ=1 l’agent a est affecté à la compétence c durant θ 1ère contrainte…
Compétence / Agent / Période Formalisation Affectation Profil / Agents Compétence / Agent / Période ETP Contraintes couplantes Les méthodes présentées reposent sur la remarque suivante : Le problème comporte deux niveaux de décision : - Affectation Agent/profil - Pour chaque période, Affectation Agent / Compétence
Borne inférieure par décomposition lagrangienne
Décomposition lagrangienne Affectation Profil / Agent ETP Dualisation des contraintes couplantes (perte d’information) Affectation Compétence / Agent / Période But : séparer les deux niveaux de décision en deux sous-problème en problèmes moins dépendants, mais avec une perte d’information
Décomposition lagrangienne Les contraintes qui vont être dualisées sont celles qui lient les variables x et y On leur associe un vecteur de multiplicateurs de Lagrange positifs
Décomposition lagrangienne Fonction duale : avec : Après dualisation de ces contraintes, on obtient une fonction duale décomposable en deux parties dont le calcul peut se faire de façon indépendante. Cette fonction a pour propriété d’être de valeur inférieure à l’optimum d’ETP pour toute distribution de Pi. Affecter les ecθ agents de « coût » min par plage horaire et compétence Affecter le profil de coût lagrangien minimum par agent
Décomposition relaxation Maximisation de L() par une méthode de sous-gradient Équivalent à la relaxation continue On calcule donc son maximum afin d’avoir une évalutation la plus grande possible de la borne inférieure du problème initial. On utilise ici une méthode de sous-gradient qui exploite la concavité de la fonction duale pour donner une approximation de son maximum. Les deux sous-problème ayant la propriété d’intégrité, cette relaxation lagrangienne est équivalente à la relaxation continue.
Résultats numériques Instances aléatoires : 100 instances par catégorie 5-50 profils / agent 5-20 compétences
Résultats numériques
Résultats numériques
Résolution heuristique Approche gloutonne Approche par génération de coupes Résultats numériques
Résolution heuristique Approche gloutonne
Approche gloutonne Principe Étape i : Affecter un profil à un agent Réduire l’ensemble Ω des profils possibles pour les autres agents … réduire l’ensemble… pour supprimer le plus possible de « mauvais » profils, qui ne mènent à aucune solution réalisable
Approche gloutonne Sélection de l’agent / profil Coût Bonus / pénalités Indicateurs sur les périodes couvertes Requête (résiduelle ou absolue) Nombre d’agents potentiels … Le choix du couple agent/profil à affecter est basé sur un critère calculé selon une combinaison du coût du profil, de bonus/pénalités (achève la couverture d’une compétence, sur-couvre une compétence…) et d’indicateurs sur les périodes couvertes
dans toute solution réalisable Approche gloutonne Réduction de Ω a doit être présent en θ ω Ωa, νωa=0 yωa=0 dans toute solution réalisable Stratégie : détecter heuristiquement ces couples agents/périodes S’il s’avère qu’un agent doit forcément être présent durant une plage horaire, alors on ne peut pas lui affecter de profil ne couvrant pas cette plage. On peut donc éliminer tout profil ne couvrant pas la plage de son ensemble omega.
Approche gloutonne Réduction de Ω Affectation agent/profil partielle 1 c-couplage par période Sous-ensemble d’agents obligatoirement présents (non optimal) Peut être généralisé pour un ensemble de périodes Peut être utilisé dans d’autres méthodes (pré-processing, exploration…) Demandes (e1θ) Agents Compétences … (e2θ) (e3θ) Affectation agent/profil partielle 1 c-couplages par période dans un graphe biparti, entre les compétences et les agents présents selon l’affectation ou potentiellement présents (agent non traités possédant la compétence dont il reste au moins un profil couvrant la période). On peut trouver un sous-ensemble des agents obligatoirement présents sur la période par la recherche d’un c-couplage maximum (possible incrémentalement) puis de chaînes alternées (O du nombre d’arêtes du graphe, soit le nombre cumulé de compétences maîtrisées par les agents présents ou potentiellement présents) Cette méthode peut être généralisée pour fonctionner sur plusieurs périodes avec une capacité de détection fortement accrue et un temps de calcul fortement plus long Peut être utilisée dans d’autres méthodes ou la réduction du nombre de variables est intéressante (en pré-processing, dans une méthode d’exploration…)
Résolution heuristique Génération de coupes
Horaires de présence des agents Génération de coupes ETP ETP Affectation Agent / Profil sous contraintes (générées) Affectation Agent / Profil sous contraintes (exponentielles) Horaires de présence des agents Contraintes (c-couplages) Le principe de cette approche est de réduire le problème à un seul niveau de décision, avec un nombre exponentiel de contraintes. Le problème résultant étant très difficile à résoudre, on propose de le résoudre par génération de contraintes Contrôle de réalisabilité
Génération de coupes Formalisation alternative Distribution y* |Θ| problèmes de c-couplage y* extensible à une solution réalisable on peut coupler l’ensemble des sommets-requêtes sur l’ensemble des sommets-agents … Compétences (e1θ) (e3θ) (e2θ) Demandes Agents Cette approche est basée sur une formalisation alternative utilisant une caractérisation des affectations agent/profil réalisables relativement aux couplages qu’elles induisent. Sur chaque période, on peut définir un graphe biparti avec d’un côté des sommets représentant les agents présents, de l’autre des sommets représentant les compétences. Une arête est présente ssi l’agent possède la compétence. Considérons une affectation complète des profils aux agents, y*. On peut compléter la solution (trouver une distribution réalisable des variables d’affectation des agents aux compétences) ssi il existe un c-couplage saturant tous les sommets-requête pour toute période. … …
Génération de coupes Formalisation alternative Théorème de König-Hall : C peut être couplé sur A si et seulement si : y* peut être complété en une solution réalisable si et seulement si : Le théorème de Koenig-Hall permet de caractériser l’existence d’un tel couplage dans un graphe biparti : Il existe si et seulement si le nombre de sommets adjacents aux sommets de tout sous-ensemble de C est supérieur ou égal à la demande totale de cet ensemble. On en déduit l’inégalité suivante en fonction de y, avec alpha(a,K)=1 ssi a maîtrise au moins une compétence de K avec αaK=1 KCa
Génération de coupes Programme linéaire (2) Sac-à-dos multidimensionnel multi-choix avec un nombre exponentiel de contraintes de ressources : Cela nous amène à écrire un second modèle PLNE, sous forme de MCMDKP… P(C) représente l’ensemble des parties de C
Génération de coupes Algorithme général Sélectionner un ensemble de contraintes de ressource initial Δ0 définissant [MMKP]0 ; i0 Résoudre [MMKP]i y* y* est réalisable pour [MMKP] ? Si oui, STOP Sinon, déterminer une contrainte de ressource violée et l’ajouter à Δi ; ii+1; aller en 2
Génération de contraintes Ensemble initial de contraintes Sélection gloutonne (requête maximale sur agent potentiels,…) Filtres Dominances Suppression heuristique : Approximation des variables duales par relaxation Lagrangienne Suppression des contraintes de variables duales 0 Ces contraintes ne sont pas saturées dans la solution primale de la relaxation continue correspondant à l’optimum dual estimé
Génération de contraintes Résolution du sous-problème [MMKP]i peut être résolu Exactement (solver de MIP) Heuristiquement (adaptation de [Akbar et al,2001]) Trouver une solution réalisable Améliorer son coût (permutations) Améliorer son coût (destruction/réparation) Si échec, STOP ; renvoyer la solution trouvée en 2 Sinon, retour en 2
Génération de coupes Contrôle de réalisabilité : y* Recherche de |Θ| c-couplages maximum Compétences (e1θ) (e3θ (e2θ) Demandes … Agents … …
Génération de coupes Détection de contraintes violées Soit M un c-couplage maximum et un sommet non M-saturé c Compétences (e1θ) (e3θ (e2θ) Demandes … Agents … … c
Génération de coupes Détection de contraintes violées Le déficit en c pourrait être comblé en dérivant un agent de c’ ou c’’ par un transfert le long d’une chaîne alternée … … c’’ c’ … c
Génération de coupes Détection de contraintes violées Impossible de saturer un sommet non M-saturé et tous les sommets atteignables par une C.A. Contrainte violée … … c’’ c’ … c K
Résolution heuristique Résultats numériques
Résolution heuristique Résultats numériques Instances aléatoires : 5-50 agents 10-100 périodes 5-50 profils / agent 5-10 compétences
Résultats numériques Méthodes heuristiques
Résolution exacte Génération de coupes (couplages) Décomposition de Benders Résultats numériques
Génération de coupes (couplages) Résolution exacte Génération de coupes (couplages)
Génération de coupes Algorithme général Sélectionner un ensemble de contraintes de ressource initial Δ0 définissant [MMKP]0 ; i0 Résoudre [MMKP]i y* (solver MIP) y* est réalisable pour [MMKP] ? Si oui, STOP Sinon, déterminer une contrainte de ressource violée et l’ajouter à Δi ; ii+1; aller en 2
Décomposition de Benders Résolution exacte Décomposition de Benders
Décomposition de Benders Programme linéaire (3) Évite l’irréalisabilité Variables de décision : rcθ : marge satisfaction de la requête If r=0 then the solution is a feasible solution of [ETP]
Décomposition de Benders Les variables de [P] sont naturellement partitionnables : [P]: min z = cx + fy s.c. Dx + Fy = d x 0 x : var de couplage de compétences sur agents y : var d’affectation de PHs aux agents First, we define a sub-problem SP(y) corresponding to the residual problem after fixing y, so that the global problem can be expressed by its « y-part » and SP(y).
Décomposition de Benders y fixé : ŷ [SP(ŷ)]: min z = cx s.c. Dx = d - Fŷ x 0 x : var de couplage de compétences sur agents y : var d’affectation de PHs aux agents Y : contrainte d’un profil unique par agent Problèmes de couplages indépendants Dual : [DSP(ŷ)]: max w = v(d – F ŷ) s.c. vD c v quelconque First, we define a sub-problem SP(y) corresponding to the residual problem after fixing y, so that the global problem can be expressed by its « y-part » and SP(y). Problèmes indépendants Contraintes indépendantes de y Points extrêmes v1, v2, …, vq
Décomposition de Benders Réécriture de [P] : [P] : min z s.c. z fy + v1(d - fy) … z fy + vq(d - fy) yY [P]: minyY { fy + SP(y) } [P]: minyY { fy + maxi=1..q vi(d -Fy) } J={1,…,q} : cut = { fy + vj(d – fy), j J } Programme maître : [PM] : miny z s.c. cut yY First, we define a sub-problem SP(y) corresponding to the residual problem after fixing y, so that the global problem can be expressed by its « y-part » and SP(y).
Décomposition de Benders Algorithme général : LB = - ; UB = + cut = ; choisir ŷ Y Tant que UB-LB> faire Résoudre [DSP(ŷ)] : max {v(d – Fŷ) / vD c } v* Si f ŷ+v*(d-Fŷ) > LB alors cut = cut { f ŷ+v*(d-Fŷ) z } UB = min {UB, f ŷ+v*(d-Fŷ) } Sinon STOP : solution optimale Fin Si Résoudre [PM]:min { z / cut, y Y } y*, coût z* LB=max { LB, z* } ŷ = y* Fin Tant que First, we define a sub-problem SP(y) corresponding to the residual problem after fixing y, so that the global problem can be expressed by its « y-part » and SP(y).
Résolution exacte Résultats numériques
Méthodes exactes Résultats numériques Référence : Solveur de PLNE – stratégie standard (XPRESS MP 2004)
Résolution exacte Résultats numériques Instances aléatoires : 100 instances par catégorie 5-50 profils/agent 5-20 compétences Catégories pour lesquelles les trois méthodes aboutissent
Résolution exacte Résultats numériques
Résolution exacte Résultats numériques Instances réelles : 1 semaine 100 agents 10 compétences 8 profils par agent 600+ périodes (50 par dominances)
Résolution exacte Résultats numériques Méthodes exactes – Instances réelles
Conclusion / Perspectives Coupes K-H outil de résolution opérationnel pour des instances de taille réelle Surclassent XPRESS et la décomposition de Benders Les coupes de Benders induisent une structure de PM très difficile à résoudre Benders : 1 – 10 coupes K-H : 30 – 100 coupes Incrémentaliser la résolution du programme maître