Une méthode de génération de colonnes basée sur un algorithme central de plans coupants Mathieu Trampont – Orange Labs / CEDRIC Christian Destré – Orange Labs Alain Faye – CEDRIC 26/03/2017
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p2
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 Génération de colonnes 26/03/2017 – p3
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ème fait apparaître de nouvelles variables, donc de nouveaux plans On continue jusqu'à ce qu'on ne puisse plus rajouter de variable qui améliore la solution La valeur obtenue est aussi la valeur optimale du dual u1 u2 u* Génération de colonnes 26/03/2017 – p4
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p5
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 u2 u3 u4 u* u1 u2... u* u1 Génération de colonnes 26/03/2017 – p6
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 Génération de colonnes 26/03/2017 – p7
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p8
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 : Génération de colonnes 26/03/2017 – p9
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 Génération de colonnes 26/03/2017 – p10
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 Génération de colonnes 26/03/2017 – p11
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 Génération de colonnes 26/03/2017 – p12
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p13
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 Contrainte 1 r λ2 Plan de la fonction objectif du dual Contrainte 2 Plan de la borne inférieure LB = 0 u1
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 u2 Contrainte 1 Contrainte de la borne inférieure a2.u2+ a1.u1 ≥ LB Contrainte 2 u1 Génération de colonnes 26/03/2017 – p15
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 Contrainte 1 r u2 Plan de la fonction objectif du dual Contrainte 2 Plan de la borne inférieure f ≥ 0 u1 Génération de colonnes 26/03/2017 – p16
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 + u10 τ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 u2 τ LB UB c2 u23 u21 u20 u10 u11 u1 u13 c1 Génération de colonnes 26/03/2017 – p17
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p18
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 τ Génération de colonnes 26/03/2017 – p19
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 Génération de colonnes 26/03/2017 – p20
ACCP avec boxstep Reprenons l'exemple : u2 τ c2 LB UB u1 c1 Départ : UB = c1 + c2 Le problème est infaisable suppression de la boîte le problème est faisable augmentation de la boîte Aucune contrainte n'est violée mise à jour de LB et de τ Le centre viole une contrainte On rajoute la contrainte le problème est infaisable mise à jour de UB et de τ … u2 τ LB UB c2 u23 u21 u20 u10 u1 u13 u11 c1 Génération de colonnes 26/03/2017 – p21
Plan 1 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 2 3 4 Génération de colonnes 26/03/2017 – p22
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 Élément central Clients concentrateur Mettre le problème direct en continu Rajouter le dessin en bas Génération de colonnes 26/03/2017 – p23
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 Génération de colonnes 26/03/2017 – p24
Temps de calcul Bonne initialisation Initialisation plus légère 10 instances de taille ~ 500 10 instances de taille ~ 725 Initialisation plus légère Classique : 2050,9 s Classique : 6020,1 s Classique : 2218.1 s Centrale : 606,7 s Centrale : 1099,5 s Centrale : 874.9 s Génération de colonnes 26/03/2017 – p25
Évolution des bornes Génération de colonnes 26/03/2017 – p26
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. Génération de colonnes 26/03/2017 – p27
Questions ? Génération de colonnes 26/03/2017 – p28
L'Accelerated Central Cutting Plane 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 à jour de τ doit être choisie judicieusement τ LB UB u2 c2 Ajouter un slide en annexe sur d’où vient la borne inf u1 c1 Génération de colonnes 26/03/2017 – p29 29
Résultats Instance 1 2 3 4 5 6 7 8 9 Mean Size 515 508 530 492 561 468 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 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 Génération de colonnes 26/03/2017 – p30
Résultats avec une moins bonne initialisation Nombreux optimums locaux aléatoires + heuristique Peu d'optimums locaux aléatoires Instance 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 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 Génération de colonnes 26/03/2017 – p31
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 Gap (%) 0,05 0,04 0,13 0,09 0,03 0,11 0,07 0,15 0,10 0,08 CPU Time heuristic 40 5 33 8 24 28 27 23,1 Génération de colonnes 26/03/2017 – p32