Génération de coupes pour la planification d’agents Boris Detienne, Laurent Péridy, Eric Boris Detienne, Laurent Péridy, Eric Pinson, David Rivreau Pinson, David Rivreau Centre de Recherche et d’Etudes sur les Centre de Recherche et d’Etudes sur les Applications des Mathématiques Applications des Mathématiques Institut de Mathématiques Appliquées Institut de Mathématiques Appliquées Université Catholique de l’Ouest – Angers 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
55
Embed
Génération de coupes pour la planification dagents Boris Detienne, Laurent Péridy, Eric Pinson, David Rivreau Centre de Recherche et dEtudes sur les Applications.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Génération de coupes pour la planification d’agents
Boris Detienne, Laurent Péridy, Eric Pinson, David RivreauBoris Detienne, Laurent Péridy, Eric Pinson, David RivreauCentre de Recherche et d’Etudes sur les Applications des MathématiquesCentre de Recherche et d’Etudes sur les Applications des Mathématiques
Institut de Mathématiques Appliquées Institut de Mathématiques Appliquées
Université Catholique de l’Ouest – AngersUniversité 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ésRabat, 3-5 avril 2006
Sommaire Description du problèmeDescription du problème FormalisationFormalisation Borne inférieure (décomposition lagrangienne)Borne inférieure (décomposition lagrangienne) Méthodes heuristiquesMéthodes heuristiques
Approche gloutonneApproche gloutonne Génération de coupesGénération de coupes
Méthodes exactes Méthodes exactes Décomposition de BendersDécomposition de Benders Génération de coupesGénération de coupes
• ΘΘ : Horizon temporel : Horizon temporel• A : Ensemble d’agentsA : Ensemble d’agents• C : Ensemble de compétencesC : Ensemble de compétences• eecc
θ θ : Requête en agents pour c: Requête en agents pour cC durant θC durant θΘΘ
Θθ 1θ 2θ 3θ 4θ 5θ 6 …
e
c1
c2
c3
A : ensemble d’agentsA : ensemble d’agents• Compétences maîtrisées CCompétences maîtrisées Ca a C C
• Ensemble de profils horaires sur l’horizonEnsemble de profils horaires sur l’horizon
Description du problème
Θθ 1 θ 2 θ 3 θ 4 θ 5 θ 6 …
…
ω1
ω2
ωn
ωn-1
Description du problème
PHH(1 semaine)
Roulements(2-5 semaines)
Profils horaires(horizon)
Règles contractuellesCongés
Législation du travailCoûts horaires
• Affecter : Affecter : • Un profil horaire par agentUn profil horaire par agent• Une compétence à chaque agent présent sur Une compétence à chaque agent présent sur
chaque plage horairechaque plage horaire• De manière à satisfaire les requêtesDe manière à satisfaire les requêtes• Au moindre coûtAu moindre coût
Description du problème
Formalisation
Programme linéaire (1)
1,0,,
1,0,
,
0,
1
..
min:][
aca
aa
Aacac
a
Ccac
a
Aa
aa
xCcAa
yAa
exCc
yxAa
yAa
ts
yETP
c
aa
a
a
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 θ
Formalisation
Affectation Profil / Agents
Affectation Compétence / Agent / Période
ETP
Contraintes couplantes
Borne inférieure pardécomposition lagrangienne
Décomposition lagrangienne
Affectation Profil / Agent
Affectation Compétence / Agent / Période
Dualisation des contraintes couplantes(perte d’information)
Approche par génération de coupesApproche par génération de coupes
Résultats numériquesRésultats numériques
Résolution heuristique
Approche gloutonneApproche gloutonne
Approche gloutonne
PrincipePrincipe
Étape i :Étape i :• Affecter un profil à un agentAffecter un profil à un agent• Réduire l’ensemble Réduire l’ensemble ΩΩ des profils possibles pour des profils possibles pour
les autres agentsles autres agents
Approche gloutonne
Sélection de l’agent / profilSélection de l’agent / profil
• CoûtCoût• Bonus / pénalitésBonus / pénalités• Indicateurs sur les périodes couvertesIndicateurs sur les périodes couvertes
• Requête (résiduelle ou absolue)Requête (résiduelle ou absolue)• Nombre d’agents potentielsNombre d’agents potentiels• ……
Approche gloutonne
Réduction de Réduction de ΩΩ
a a doitdoit être présent en être présent en θθ
ω ω ΩΩa, a, ννωωaa=0 =0 y yωω
aa=0=0
dans toute solution réalisabledans toute solution réalisable
Stratégie : Stratégie : détecter heuristiquement ces couples agents/périodesdétecter heuristiquement ces couples agents/périodes
Approche gloutonneRéduction de Réduction de ΩΩ
Affectation agent/profil partielle Affectation agent/profil partielle 1 c-couplage par période 1 c-couplage par période
• Peut être généralisé pour un ensemble de périodesPeut être généralisé pour un ensemble de périodes• Peut être utilisé dans d’autres méthodes (pré-processing, Peut être utilisé dans d’autres méthodes (pré-processing,
exploration…)exploration…)
… Compétences(e1
θ)
(e3θ)
(e2θ)
Demandes
Agents
Résolution heuristique
Génération de coupesGénération de coupes
Génération de coupes
Affectation Agent / Profil
sous contraintes(générées)
Contrôle de réalisabilité
ETP
Horaires de présence des
agents
Contraintes(c-couplages)
Affectation Agent / Profil
sous contraintes(exponentielles)
ETP
Génération de coupesFormalisation alternativeFormalisation alternativeDistribution y* Distribution y* |Θ| problèmes de c-couplage |Θ| problèmes de c-couplage
y* extensible à une solution réalisable y* extensible à une solution réalisable
on peut coupler l’ensemble des sommets-requêtes on peut coupler l’ensemble des sommets-requêtes
sur l’ensemble des sommets-agentssur l’ensemble des sommets-agents
…
Agents … Compétences
(e1θ)
(e3θ)
(e2θ)
Demandes…
Génération de coupesFormalisation alternativeFormalisation alternativeThéorème de König-Hall : Théorème de König-Hall :
C peut être couplé sur A si et seulement si :C peut être couplé sur A si et seulement si :
Kc
ceKCK )(,
y* peut être complété en une solution réalisable si et seulement si :
Kc
cAa
aKa eyCK
a
*,,
avec αaK=1 KCa
Génération de coupesProgramme linéaire (2)Programme linéaire (2)
1,0,
)(,
1
..
min:][
aa
Kcc
Aa
aKa
a
Aa
aa
yAa
eyCPK
yAa
ts
yMMKP
a
a
a
P(C) représente l’ensemble des parties de CP(C) représente l’ensemble des parties de C
Sac-à-dos multidimensionnel multi-choix avec un Sac-à-dos multidimensionnel multi-choix avec un nombre exponentiel de contraintes de ressources :nombre exponentiel de contraintes de ressources :
Génération de coupesAlgorithme général
1.1. Sélectionner un ensemble de contraintes de ressource Sélectionner un ensemble de contraintes de ressource initial initial ΔΔ00 définissant [MMKP]définissant [MMKP]00 ; ; ii00
2.2. Résoudre [MMKP]Résoudre [MMKP]ii y* y*
3.3. y* est réalisable pour [MMKP] ?y* est réalisable pour [MMKP] ? Si oui, STOPSi oui, STOP Sinon, déterminer une contrainte de ressource Sinon, déterminer une contrainte de ressource
violée et l’ajouter à Δviolée et l’ajouter à Δii ; i ; ii+1; aller en 2i+1; aller en 2
Génération de contraintesEnsemble initial de contraintes
1.1. Sélection gloutonne Sélection gloutonne (requête maximale sur (requête maximale sur agent potentiels,…) agent potentiels,…)
2.2. FiltresFiltres1.1. DominancesDominances
2.2. Suppression heuristique :Suppression heuristique :1.1. Approximation des variables duales par relaxation Approximation des variables duales par relaxation
LagrangienneLagrangienne
2.2. Suppression des contraintes de variables duales Suppression des contraintes de variables duales 0 0
Génération de contraintesRésolution du sous-problème
[MMKP][MMKP]ii peut être résolu peut être résolu• Exactement (solver de MIP)Exactement (solver de MIP)• Heuristiquement (Heuristiquement (adaptation de [Akbar et al,2001]adaptation de [Akbar et al,2001]))
1.1. Trouver une solution réalisableTrouver une solution réalisable
2.2. Améliorer son coût (permutations)Améliorer son coût (permutations)
3.3. Améliorer son coût (destruction/réparation)Améliorer son coût (destruction/réparation) Si échec, STOP ; renvoyer la solution trouvée en 2Si échec, STOP ; renvoyer la solution trouvée en 2
Sinon, retour en 2Sinon, retour en 2
Génération de coupesContrôle de réalisabilité : y*
Recherche de Recherche de |Θ| |Θ| c-couplages maximumc-couplages maximum
…
…
…AgentsCompétences
(e1θ)
(e3θ
(e2θ)
Demandes
Génération de coupesDétection de contraintes violées
Soit M un c-couplage maximum et un sommet Soit M un c-couplage maximum et un sommet non M-saturé cnon M-saturé c
…
…
…
c
AgentsCompétences
(e1θ)
(e3θ
(e2θ)
Demandes
Génération de coupesDétection de contraintes violées
Le déficit en c pourrait être comblé en dérivant un Le déficit en c pourrait être comblé en dérivant un agent de c’ ou c’’ par un transfert le long d’une agent de c’ ou c’’ par un transfert le long d’une chaîne alternéechaîne alternée
…
…
…
cc’c’’
Génération de coupesDétection de contraintes violées
Impossible de saturer un sommet non M-saturé et tous les Impossible de saturer un sommet non M-saturé et tous les sommets atteignables par une C.A.sommets atteignables par une C.A.
Génération de coupes (couplages)Génération de coupes (couplages)
Décomposition de BendersDécomposition de Benders
Résultats numériquesRésultats numériques
Résolution exacte
Génération de coupes (couplages)Génération de coupes (couplages)
Génération de coupesAlgorithme général
1.1. Sélectionner un ensemble de contraintes de ressource Sélectionner un ensemble de contraintes de ressource initial initial ΔΔ00 définissant [MMKP]définissant [MMKP]00 ; ; ii00
3.3. y* est réalisable pour [MMKP] ?y* est réalisable pour [MMKP] ? Si oui, STOPSi oui, STOP Sinon, déterminer une contrainte de ressource Sinon, déterminer une contrainte de ressource
violée et l’ajouter à Δviolée et l’ajouter à Δii ; i ; ii+1; aller en 2i+1; aller en 2
Résolution exacte
Décomposition de BendersDécomposition de Benders
Décomposition de BendersProgramme linéaire (3)
N
c
aca
aa
Aaccac
a
Ccac
a
Ccc
Aa
aa
rCc
xCcAa
yAa
erxCc
yxAa
yAa
ts
rMyP
c
aa
a
a
,
1,0,,
1,0,
,
0,
1
..
min:][
Variables de décision :rc
θ : marge satisfaction de la requête
Évite l’irréalisabilité
Décomposition de Benders
[P]: min z = cx + fys.c. Dx + Fy = d
x 0
Les variables de [P] sont naturellement partitionnables :
x : var de couplage de compétences sur agentsy : var d’affectation de PHs aux agents
Décomposition de Benders
[SP(ŷ)]: min z = cxs.c. Dx = d - Fŷ
x 0
Problèmes de couplages indépendants
y fixé : ŷ
[DSP(ŷ)]: max w = v(d – F ŷ)s.c. vD c
v quelconque
Dual :
Problèmes indépendantsContraintes indépendantes de y Points extrêmes v1, v2, …, vq
x : var de couplage de compétences sur agentsy : var d’affectation de PHs aux agentsY : contrainte d’un profil unique par agent
Décomposition de Benders
J={1,…,q} : cut = { fy + vj(d – fy), j J }
Programme maître :[PM] : miny zs.c. cut
yY
[P]: minyY { fy + SP(y) }
Réécriture de [P] : [P] : min zs.c. z fy + v1(d - fy)
Coupes K-H Coupes K-H outil de résolution opérationnel outil de résolution opérationnel pour des instances de taille réellepour des instances de taille réelle
Surclassent XPRESS et la décomposition de Surclassent XPRESS et la décomposition de BendersBenders
Les coupes de Benders induisent une structure de Les coupes de Benders induisent une structure de PM très difficile à résoudrePM très difficile à résoudre Benders : 1 – 10 coupesBenders : 1 – 10 coupes K-H : 30 – 100 coupesK-H : 30 – 100 coupes
Incrémentaliser la résolution du programme maîtreIncrémentaliser la résolution du programme maître