Post on 03-Apr-2015
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
Conclusion / PerspectivesConclusion / Perspectives
Description du problème
Description du problème
• ΘΘ : 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)
ETP
Décomposition lagrangienne
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
Décomposition lagrangienneFonction duale :Fonction duale :
),(),()( * yxL *yx LL
avec :
1,0,,,
,..
min),(*
aca
Aacac
Aaac
ax
xCcAa
exCcts
xx
c
L
1,0,,
1,..
min),(*
aa
a
Aa
aaay
yAa
yAats
yy
a
a
L
Affecter le profil de coût lagrangien
minimum par agent
Affecter les ecθ agents de « coût » min
par plage horaire et compétence
Décomposition relaxation
Maximisation de L(Maximisation de L() par une méthode de ) par une méthode de sous-gradientsous-gradient
Équivalent à la relaxation continueÉquivalent à la relaxation continue
Résultats numériques
Instances aléatoires :Instances aléatoires : • 100 instances par catégorie100 instances par catégorie• 5-50 profils / agent5-50 profils / agent• 5-20 compétences5-20 compétences
Résultats numériques
Borne inférieure - Qualité
0,991
0,986
0,995
0,9930,991
0,975
0,980
0,985
0,990
0,995
1,000
50 / 50 50 / 100 100 / 50 100 / 100 Moyenne
Instances (nb agents / nb périodes)
[RL]/XPRESS
Résultats numériques
Borne inférieure - Temps de calcul
1,7 4,2 3,68,5
4,53,5
21,4
11,3
81,8
29,5
0,0
10,0
20,0
30,0
40,0
50,0
60,0
70,0
80,0
90,0
50 / 50 50 / 100 100 / 50 100 / 100 Moyenne
Instances (nb agents / nb périodes)
Tem
ps
(s.)
[RL]
XPRESS
Résolution heuristique
Approche gloutonneApproche gloutonne
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
Sous-ensemble d’agents obligatoirement présents Sous-ensemble d’agents obligatoirement présents (non optimal)(non optimal)
• 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.
Contrainte violéeContrainte violée
…
…
…
cc’c’’
Kc
c
Aa
aKa eya
K
Résolution heuristique
Résultats numériquesRésultats numériques
Résolution heuristiqueRésultats numériques
Instances aléatoires :Instances aléatoires : • 5-50 agents5-50 agents• 10-100 périodes10-100 périodes• 5-50 profils / agent5-50 profils / agent• 5-10 compétences5-10 compétences
Résultats numériques
Méthodes heuristiquesMéthodes heuristiques
HG1 HG2 HG3 HG4 HG5Gén.
Coupes
% résolu 45% 4% 38% 37% 18% 93%Tps (ms.) 772 744 791 765 713 613H/LB 1,09 1,15 1,10 1,11 1,11 1,04
Résolution exacte
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
2.2. Résoudre [MMKP]Résoudre [MMKP]ii y* ( y* (solver MIPsolver MIP))
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)
…z fy + vq(d - fy)yY[P]: minyY { fy + maxi=1..q vi(d -Fy) }
Décomposition de BendersAlgorithme général :
LB = - ; UB = + cut = ; choisir ŷ YTant 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ŷ) }
SinonSTOP : solution optimale
Fin SiRésoudre [PM]:min { z / cut, y Y } y*, coût z*LB=max { LB, z* } ŷ = y*
Fin Tant que
Résolution exacte
Résultats numériquesRésultats numériques
Méthodes exactesRésultats numériques
Référence : Référence : Solveur de PLNE – stratégie standard Solveur de PLNE – stratégie standard
(XPRESS MP 2004)(XPRESS MP 2004)
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
Instances aléatoires :Instances aléatoires : • 100 instances par catégorie100 instances par catégorie• 5-50 profils/agent5-50 profils/agent• 5-20 compétences5-20 compétences
• Catégories pour lesquelles les trois méthodes aboutissentCatégories pour lesquelles les trois méthodes aboutissent
Résolution exacteRésultats numériques
Résolution exacteRésultats numériques
Résolution exacte - Instances aléatoires
34,6
98,3
2,46,17,8
57,2
0,0
20,0
40,0
60,0
80,0
100,0
120,0
100 / 50 100 / 100
Instances (nb agents / nb périodes)
Tp
s (s
.) Benders
Couplages
XPRESS
Résolution exacteRésultats numériques
Instances réelles :Instances réelles :• 1 semaine1 semaine• 100 agents100 agents• 10 compétences10 compétences• 8 profils par agent8 profils par agent• 600+ périodes (50 par dominances)600+ périodes (50 par dominances)
Résolution exacteRésultats numériques
Instances XPRESSSemaine 31 >10 min. 328 48469Semaine 32 >10 min. 390 8594Semaine 33 >10 min. 391 5829Moyenne --- 223,5 12591,4
Benders Couplages
Temps (ms.)
Méthodes exactes – Instances réellesMéthodes exactes – Instances réelles
Conclusion / Perspectives
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