Upload
pierrette-cheron
View
107
Download
0
Embed Size (px)
Citation preview
recherche & développement
Une méthode de génération de colonnes basée sur unalgorithme central de plans coupantsMathieu Trampont – Orange Labs / CEDRIC
Christian Destré – Orange Labs
Alain Faye – CEDRIC
11/04/23
recherche & développementGénération de colonnes 04/11/23 – p2
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développementGénération de colonnes 04/11/23 – p3
Vision du dual
Le dual du problème maître est un programme linéaire avec
un très grand nombre de contraintes :
La génération de colonnes correspond dans le dual à une
méthode de plans coupants
Niz
jaz
z
P
i
j
N
iiij
N
iii
z
...10
n...1.b
:s.c
.cmin
1
1
n...10
...1.b
:s.c
.max
n
1
n
1
ju
Nicu
ua
DP
j
ij
jij
jjj
u
recherche & développementGénération de colonnes 04/11/23 – p4
Vision du dual (2)
Dans le dual, c'est l'ensemble des coupes qui est restreint
Déroulement de la génération de colonnes : La résolution du problème restreint
donne une première solution
La résolution du sous-problèmefait apparaître de nouvelles variables, donc de nouveaux plans
On continue jusqu'à ce qu'on nepuisse plus rajouter de variablequi améliore la solution
La valeur obtenue est aussi lavaleur optimale du dual
u1u*u2
recherche & développementGénération de colonnes 04/11/23 – p5
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développementGénération de colonnes 04/11/23 – p6
Problèmes de stabilisation
La convergence de la génération de colonnes vers l'optimum de la relaxation continue peut parfois prendre du temps
La vision du dual permet d'illustrer les situations où la convergence ralentit
u1u*u4u2 u3u
1u
2... u*
recherche & développementGénération de colonnes 04/11/23 – p7
Stabilisation
Objectifs Stabiliser la convergence de l'algorithme Diminuer les appels au sous-problème
Idée : trouver un meilleur point de séparation à fournir au sous-problème
Méthodes proximales
pénaliser les déplacements dans le dual
• méthode boxstep
Méthode de stabilisation par point intérieur de [Rousseau et al.]
s'attaque spécifiquement à la dégénérescence
recherche & développementGénération de colonnes 04/11/23 – p8
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Principe
Interprétation géométrique et déroulement
Stabilisation et paramétrage
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développement
L'Accelerated Central Cutting Plane Idée [Elzinga&Moore] :
Chercher le centre de la plus grande sphère contenue dans un polyèdre basé sur les contraintes du dual auquel on ajoute une borne inférieure
Le polyèdre doit être borné
Ce problème se modélise par un programme linéaire dont l'objectif est de maximiser le rayon σ de la sphère
Les contraintes sont issues de celles du dual
On rajoute une contrainte issue d'une borne inférieure :
...Iicbσ..ub...Iic.ub i
n
jij
n
jjiji
n
jjij 11
1
2
11
LBuaj
jj
n
1
Génération de colonnes 04/11/23 – p9
recherche & développement
L'Accelerated Central Cutting Plane Autre possibilité pour la borne inférieure :
Troisième possibilité :
Les coordonnées du centre de la sphère serviront de point de séparation
Lorsqu'il ne viole aucune contrainte : Mise à jour de la borne inférieure
La taille du polyèdre diminue
LBauaLBuan
jj
jjj
jjj
)...1
2n
1
n
1
LBaua
LBr
r.ua n
jj
jjj
n
jjj
)11.(.
1
2n
1
1
Génération de colonnes 04/11/23 – p10
recherche & développementGénération de colonnes 04/11/23 – p11
L'Accelerated Central Cutting Plane Autre possibilité pour la contrainte de borne :
Les coordonnées du centre de la sphère serviront de point de séparation
Lorsqu'il ne viole aucune contrainte : Mise à jour de la borne inférieure
La taille du polyèdre diminue
Iicbub
LBaua
...Iic.ub
LBr
r.ua
i
n
jij
jjij
n
jj
jjj
i
n
jjij
n
jjj
...1..
)11.(.
11
2n
1
1
2n
1
1
1
recherche & développementGénération de colonnes 04/11/23 – p12
Accélération proposée par Betrò On utilise comme borne inférieure une combinaison convexe
entre une borne inférieure valide et une borne supérieure τ = α.UB + (1- α).LB
La borne inférieure utilisée n'est peut-être pas valide
Lorsque que le centre de la sphère ne viole aucune contrainte
τ est bien une borne inférieure
Si le problème de recherche de la sphère est infaisable
τ est en fait une borne supérieure
recherche & développementGénération de colonnes 04/11/23 – p13
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Principe
Interprétation géométrique et déroulement
Améliorations et Stabilisation
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développement
Interprétation géométrique Pour Elzinga-Moore
Ici la borne inférieure vaut zéro et constitue donc le "plancher"
Le centre de la sphère se trouve sur le plan de la fonction objectif
La sphère est arrêtée par les contraintes du dual et par la borne inférieure
r
u1
λ2
Contrainte 1
Contrainte 2Plan de la fonction
objectif du dual
Plan de la borne inférieureLB = 0
recherche & développementGénération de colonnes 04/11/23 – p15
Interprétation géométrique (2) Pour le polyèdre de [Betrò]
La borne est ici fixée à une valeur LB
On se place dans l'espace des variables duales (sans le plan de la fonction objectif)
La sphère est arrêtée par les contraintes du dual et par celle de la borne inférieure
u1
u2Contrainte 1
Contrainte 2Contrainte de la borne inférieure
a2.u2+ a1.u1 ≥ LB
recherche & développementGénération de colonnes 04/11/23 – p16
Interprétation géométrique (3) Autre polyèdre
Ici aussi la borne inférieure est nulle et constitue le "plancher"
La sphère touche obligatoirement le plan de l'objectif et est arrêtée par les contraintes du dual et la contrainte de la borne inférieure
r
u1
u2
Contrainte 1
Contrainte 2Plan de la fonction
objectif du dual
Plan de la borne inférieure
f ≥ 0
recherche & développementGénération de colonnes 04/11/23 – p17
Accélérations proposées par Betrò Déroulement de l'algorithme avec les accélérations de [Betrò] :
Départ :• LB = 0
• UB = c1 + c2
• On utilise la borne inférieureτ0 = (LB + UB) / 2
Le centre ne viole aucune contrainte
• LB = u20 + u1
0
• τ1 = (LB + UB) / 2
Le centre viole une contrainte• On rajoute la contrainte
Le problème est infaisable• UB = τ1
• τ2 = (LB + UB) / 2
…
Contrainte rajoutée
u1
u2
u20
u21
u10 u1
1u1
3
u23
c1
c2τLBUB
recherche & développementGénération de colonnes 04/11/23 – p18
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Principe
Interprétation géométrique et déroulement
Améliorations et Stabilisation
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développementGénération de colonnes 04/11/23 – p19
Paramétrage et améliorations Les poids de LB et de UB dans la combinaison convexe peuvent
être ajustés L'idée est de privilégier la borne la plus proche de la valeur optimale
Faire évoluer les poids pendant le déroulement de l'algorithme Favoriser UB lorsque le centre de la sphère est
admissible
•
Favoriser LB lorsque le problème est infaisable
•
Il est possible de mettre à jour UB plus souvent avec des solutions primales admissibles
À partir du problème de la sphère
En résolvant le primal
LB UB
τ)10
1( max
)10
1( min
recherche & développementGénération de colonnes 04/11/23 – p20
Stabiliser l'ACCP Les méthodes de boxstep ou de stabilisation par point
intérieur peuvent s'appliquer à l'ACCP
Pour le point intérieur : adaptation très simple
Attention pour le boxstep : les contraintes de boîte peuvent rendre le problème infaisable
Nécessité de discerner qui de la boîte ou de τ cause l'infaisabilité• Suppression temporaire des contraintes de boîte• Si la boîte est responsable, on agrandit la boîte
recherche & développementGénération de colonnes 04/11/23 – p21
ACCP avec boxstep Reprenons l'exemple :
Départ :• LB = 0• UB = c1 + c2
Le problème est infaisable• suppression de la boîtele problème est faisable• augmentation de la boîte
Aucune contrainte n'est violée• mise à jour de LB et de τ• augmentation de la boîte
Le centre viole une contrainte• On rajoute la contrainte
Le problème est infaisable• suppression de la boîtele problème est infaisable• mise à jour de UB et de τ
…u1
u2
u20
u21
u10
u11u1
3
u23
c1
c2τLBUB
recherche & développementGénération de colonnes 04/11/23 – p22
Parallèle entre générations de colonnes et méthode de plans coupants
Problèmes de convergence et de stabilisation
L'algorithme ACCP de [Betrò]
Comparaison sur un problème de localisation
1
2
Plan
3
4
recherche & développementGénération de colonnes 04/11/23 – p23
Problème de localisation de concentrateurs But du problème
On connaît les coordonnées d'un élément central et de clients
Déterminer le nombre de concentrateurs et leurs emplacements de
façon à minimiser les coûts de raccordement des clients au central
Modèle E est l'ensemble des clients et P(E) l'ensemble des parties de E
zi vaut 1 si la partie i se voit attribuer un SR, 0 sinon
bij vaut 1 si le client j est dans la partie i, 0 sinon
ci correspond au coût total d'attribution d'un SR à la partie i
1)E(...11;0
n...11.b
:s.c
.cmin
1)E(
1
1)E(
1
P
P
P
iz
jz
z
P
i
iiij
iii
z
Élément central
Clients
concentrateur
recherche & développementGénération de colonnes 04/11/23 – p24
Comparaison génération de colonnes classique et ACCP Nous avons résolu la relaxation continue de notre problème
avec deux méthodes de génération de colonnes
Utilisation d’un boxstep et d’une stabilisation par point intérieur
Le paramétrage des méthodes de stabilisation est identique
Les colonnes sont initialisées à partir de solutions heuristiques
Les instances sont générées aléatoirement
2 séries de dix instances de tailles similaires
recherche & développementGénération de colonnes 04/11/23 – p25
Temps de calcul Bonne initialisation
10 instances de taille ~ 500
10 instances de taille ~ 725
Initialisation plus légère 10 instances de taille ~ 500
Centrale : 606,7 s
Centrale : 1099,5 s
Centrale : 874.9 s
Classique : 2050,9 s
Classique : 6020,1 s
Classique : 2218.1 s
recherche & développementGénération de colonnes 04/11/23 – p26
Évolution des bornes
405000
408000
411000
414000
417000
420000
-80 600 1280 1960 2640 3320 4000
CPU Time
Co
st
Classical LB
Classical UB
Central LB
Central UB
recherche & développementGénération de colonnes 04/11/23 – p27
Références
B. Betrò, “An accelerated central cutting plane algorithm for linear semi-infinite programming”, Mathematical Programming, Vol.101, 479-495, 2004.
L-M. Rousseau, M. Gendreau, D. Feillet, “Interior point stabilization for column generation”, Operations Research Letters, Vol. 35, 660-668, 2007
J. Elzinga et T. G. Moore, “A central cutting plane algorithm for the convex programming problem”, Mathematical Programming, Vol.8, 134-145, 1975.
recherche & développementGénération de colonnes 04/11/23 – p28
Questions ?
recherche & développement
Attention : si tau devient proche de la valeur optimale trop rapidement, on perd la stabilité.
Betrò propose de perturber τlorsque plusieurs coupes sont rajoutées successivement
τ’ = τ
τ = (1-β).τ + β.UB
La politique de mise à jourde τ doit être choisiejudicieusement
Génération de colonnes 04/11/23 – p29
L'Accelerated Central Cutting Plane
u1c1
c2
τLBUB
u2
recherche & développementGénération de colonnes 04/11/23 – p30
Résultats
Instance 0 1 2 3 4 5 6 7 8 9 Mean
Size 515 508 530 492 561 468 536 504 562 485 516,1
CPU Time classical
2951 1548 1196 2516 2971 1142 2118 2045 2059 1963 2050,9
CPU Time central
555 627 495 691 853 575 568 433 751 519 606,7
Integrity yes no yes no no yes yes yes yes No
Instance 10 11 12 13 14 15 16 17 18 19 Mean
Size 778 724 744 671 735 747 739 717 787 736 737,8
CPU Time classical
8981 5197 4569 4183 4702 11209 5536 3232 7906 4686 6020,1
CPU Time central
1162 702 1059 945 1138 1430 1084 1068 1336 1071 1099,5
Integrity no yes yes yes no no no no no yes
recherche & développementGénération de colonnes 04/11/23 – p31
Nombreux optimums locaux aléatoires + heuristique
Peu d'optimums locaux aléatoires
Résultats avec une moins bonne initialisation
Instance 0 1 2 3 4 5 6 7 8 9 Mean
Size 515 508 530 492 561 468 536 504 562 485 516,1
CPU Time classical
2951 1548 1196 2516 2971 1142 2118 2045 2059 1963 2050,9
CPU Time central
555 627 495 691 853 575 568 433 751 519 606,7
Instance 0 1 2 3 4 5 6 7 8 9 Mean
CPU Time classical
2403 1362 2718 2117 4069 1108 2306 2280 2650 1168 2218.1
CPU Time central
1022 623 673 455 3003 367 717 573 729 587 874.9
recherche & développementGénération de colonnes 04/11/23 – p32
Comparaison avec notre heuristique
Une heuristique multi-phase a été développée pour notre problème
La résolution de la relaxation continue nous donne une borne inférieure
Instance 10 11 12 13 14 15 16 17 18 19 Mean
Size 778 724 744 671 735 747 739 717 787 736 737,8
CPU Time central
1162 702 1059 945 1138 1430 1084 1068 1336 1071 1099,5
Integrity no yes yes yes no no no no no yes
Gap (%) 0,05 0,04 0,13 0,05 0,09 0,03 0,11 0,07 0,15 0,10 0,08
CPU Time heuristic
40 5 33 8 24 5 33 28 28 27 23,1