Génération de coupes pour la planification d’agents

Slides:



Advertisements
Présentations similaires
7. Probème de flot à coût minimum.
Advertisements

Résolution Graphique d'un Programme Linéaire
Théorie des graphes.
Probabilités et statistiques au lycée
Fabrice Lauri, François Charpillet, Daniel Szer
« Systèmes électroniques »
Gestion de portefeuille
Gestion de portefeuille
1 Modèles Economiques en Informatique Michel de Rougemont Université Paris II.
Antoneta Iuliana BRATCU
Algorithmes et structures de données avancés
Soutenance de thèse Lundi 12 décembre 2005
Planification d'expériences et analyse d'incertitudes pour les gros codes numériques : approches stochastiques Toulouse, 2 Février 2006 Optimisation multi-objectifs.
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Bloc 2 : Modèles d’optimisation par la programmation linéaire
1 Bornes supérieures pour le TV-Break Packing Problem Thierry Benoist BOUYGUES e-lab
Journée Francilienne de recherche Opérationnelle Politiques de gestion de coûts de transit dans lInter domaine basé sur BGP Loubna ECHABBI Dominique BARTH,
Equipe optimisation TempoSoft
Le problème de dimensionnement multi-périodes avec conservation des routages Journée Francilienne de Recherche Opérationnelle 24 juin 2005 France Telecom.
1 Intégration numérique garantie de systèmes décrits par des équations différentielles non-linéaires Application à l'estimation garantie d'état et de paramètres.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Chapitre II.Rappels mathématiques et complexité
Génération de colonnes
Sélection automatique d’index et de vues matérialisées
Introduction Modélisation Utilisation dun ensemble de relations mathématiques pour refléter le plus adéquatement possible une situation réelle Compromis.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Application des algorithmes génétiques
CHALLENGE ROADEF 2001 Résolution par une métaheuristique à base de recherche à voisinage variable et propagation par contraintes Fabrice BUSCAYLET Fabrice.
Les Systèmes Multi-Agents pour la Gestion de Production
Programmation linéaire
Séminaire de lobjectif « forage et production » Beaune, les 26,27 et 28 Avril 2000 Outils danalyse statistiques « programmation par lexemple » S. Canu,
Optimisation non linéaire sans contraintes
Coloration gap sommet identifiante de graphes
GPA750 Les ateliers multigammes Chapitre 5
Algorithmes d ’approximation
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.
Optimisation dans les réseaux
Introduction à la programmation linéaire
Recherche Opérationnelle
Page de garde présentation
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
GPA750 – Gestion de Projets
Programmation linéaire en nombres entiers : les méthodes de troncature
L’adaptativité pour un solveur de l’équation de Vlasov
MAXIMISER les RESULTATS
Institut Provincial des Arts et Métiers
Coupes efficaces pour la relaxation lagrangienne
Décomposition de Benders
les méthodes de recherche locale
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Algorithmes Branch & Bound
Foued Mnasri Weal Rekik
Programmation mathématique avancée
6° Conférence Francophone de Modélisation et de simulation 3 / 5 Avril Rabat Outil d’aide à l’analyse des interactions de contraintes pour l’ordonnancement.
Recherches locales et méta-heuristiques
Programmation dynamique
Présenté par : ABED Djemaa; BAKHOUIA Roqiya.
Méthode des moindres carrés (1)
4ème journées PDM IA - Vendredi 7 mai 2004 Recherche en ligne pour la résolution de PDMs Laurent Péret, Frédérick Garcia INRA Toulouse, équipe Méthodes.
Optimisation des horaires de personnel
1 Logiciels de confection automatique d’horaires.
Problème du Car Sequencing
Modélisation des problèmes complexes et Optimisation
Programme linéaire - solution graphique
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Techniques d'Optimisation Master
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

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 cC 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  KCa

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 ; i0 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 ; ii+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 ; i0 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 ; ii+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) yY [P]: minyY { fy + SP(y) } [P]: minyY { 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 yY 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