Génération de colonnes

Slides:



Advertisements
Présentations similaires
Programmation linéaire et Recherche opérationnelle
Advertisements

CHAPITRE 7 DROITES ET SYSTEMES.
Résolution Graphique d'un Programme Linéaire
Eléments d'algèbre linéaire
La Méthode de Simplexe Standardisation
La méthode du simplexe.
6. Analyse postoptimale.
l’algorithme du simplexe
3. Variantes de l’algorithme
2. Méthodes du simplexe et son analyse.
Modèle des jeux et des mécanismes
1 Modèles Economiques en Informatique Michel de Rougemont Université Paris II.
Algorithmes et structures de données avancés
Résolution d’un programme linéaire
Equipe optimisation TempoSoft
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
5. Algorithme du simplexe
Systèmes d’équations du premier degré à deux variables
6. Analyse postoptimale. Analyse postoptimale Mesurer linfluence sur la solution optimale de modifier certains coefficients du problème Indiquer à lutilisateur.
Algorithmes Branch & Bound
CHAPITRE 1 LES SYSTÈMES D' INÉQUATIONS
Programmation linéaire
Fonction puissance Montage préparé par : André Ross
Optimisation linéaire
ENSIIE-Master MPRO Alain Faye
Équations différentielles.
Systèmes d’équations linéaires
Chapitre 5 Choix et demande.
Espaces vectoriels Montage préparé par : S André Ross
GPA750 Les ateliers multigammes Chapitre 5
Dualité Introduction à la dualité. Construction du couple primal-dual.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Programmation linéaire en nombres entiers : la méthode du simplexe
5.1 SYSTÈME DÉQUATIONS LINÉAIRES Cours 13. Au dernier cours nous avons vus Léquations vectoriel et léquation normale dun plan. Lintersection de deux plans.
Algorithmes d ’approximation
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.
Optimisation dans les réseaux
Optimisation linéaire
Optimisation linéaire
Introduction à la programmation linéaire
Recherche Opérationnelle
Optimisation-Identification et Cast3M
L ABORATOIRE d I NGÉNIERIE des S YSTÈMES A UTOMATISÉS EA 4014 – Université dAngers Institut des Sciences et Techniques de lIngénieur dAngers Master2 Recherche.
Programmation dynamique
Génération de colonnes pour la résolution des problemes de foresterie
Programmation linéaire en nombres entiers : les méthodes de troncature
Introduction à la programmation linéaire en nombres entiers
l’algorithme du simplexe
Yan Gerard LAIC (Université d’Auvergne)
Coupes efficaces pour la relaxation lagrangienne
Décomposition de Benders
بسم الله الرحمن الرحيم.
REGLAGE ECONOMIQUE DES PRODUCTIONS Le réglage tertiaire.
Cours 3ème Fonctions linéaires et fonctions affines I Fonctions linéaires II Fonctions affines.
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
6. Problème de flot à coût minimum.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
PROGRAMMATION DYNAMIQUE (Exemples d’application)
Post-optimisation, analyse de sensibilité et paramétrage
2. Méthode du simplexe et son analyse.
Chapitre 4 La représentation des nombres.
programmation linéaire
3. Variantes de l’algorithme
1. Méthode du simplexe et son analyse.
Programme linéaire - solution graphique
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Chapitre 2 Résolution de Programmes Linéaires. La méthode graphique Cette méthode est simple et s’applique à des problèmes de programmation linéaire à.
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 colonnes ENSIIE-Master MPRO Alain Faye

Introduction On considère le problème: (Pb) max f(x) s.c. gj(x)0 jJ , xX Avec f linéaire, gj affines Avec X={xZn: h(x)0 } X partie de Zn , contraintes quelconques h(x) 0 On fait les hypothèses suivantes : X contient un nombre fini de points Max f(x) s.c. xX se résout facilement f linéaire même si X est grand Autrement dit, si on enlève les contraintes gj(x)0 on sait résoudre le problème On va tout de même tenir compte des contraintes mais considérer une autre relaxation.

Relaxation de X à ConvX On considère la relaxation de (Pb) suivante : (P) max f(x) s.c. gj(x)0 jJ , xConvX On écrit : x=iixi avec i0, ii=1, xiX On reporte dans (P) et par linéarité les i sortent de f et des gj : (P') max iif(xi) s.c. iigj(xi) 0 jJ i0, ii=1 Maintenant les variables sont les i tandis que f(xi), gj(xi) sont les coefficients de l’objectif et des contraintes. (P') est un programme linéaire que l’on va résoudre par un algorithme similaire au simplexe. (P') a généralement un nombre exponentiel de variables, on n’introduit que celles qui sont utiles , celles non introduites sont considérées hors-base et sont nulles. A une itération on introduit la variable de coût réduit>0 le plus grand. On s’arrête quand toutes les variables ont leur coût réduit 0

Algorithme de génération de colonnes On démarre avec un sous ensemble restreint de points de X t.q. au moins un satisfait les contraintes. On note I les indices de ces points. 1- On résout le problème restreint : (PR') max iIif(xi) s.c. -iIigj(xi) 0 jJ iIi=1 (convexité) i0 iI On note j0 jJ,  les variables duales associées aux contraintes jJ et à la contrainte convexité. 2- Sous-problème: on recherche une variable de coût réduit>0. Pour cela on résout : cred=maxxXf(x)+j jgj(x) -  Si cred>0 alors soit xiX la solution du sous-pb, on ajoute son indice i à I I:=I{i} (nouvelle colonne) et on retourne en 1. Sinon on arrête car tous les coûts réduits sont 0 et (P') est résolu

Encadrement de la valeur optimale de (P) A chaque itération de l’algorithme de génération de colonnes , on a l’encadrement suivant: f(x*)+cred Où x* est la solution de (P) et  la variable duale associée à la contrainte de convexité. Par dualité,  est égale à la valeur du problème restreint courant (PR) Exercice: démontrer cet encadrement.

Exercice Max 5x1+4x2+3x3+2x4+x5 s.c. x1+2x2+3x3+4x4+5x57 xX={0,1}5 Poser g(x)=7 - (x1+2x2+3x3+4x4+5x5) 1-Ecrire (PR') le problème restreint à l’enveloppe convexe des 3 points de X : (0 0 0 0 0), (1 1 1 1 1), (1 1 1 0 0) 2-On résout (PR') et on obtient 1=0,2=1/9,3=8/9, et les variables duales =1/3 et =12+1/3 Résoudre le sous-problème et rajouter la nouvelle colonne à (PR') 3-On résout le nouveau (PR') et on obtient 1=2=0,3=3/4,4=1/4, et les variables duales =1/2 et =12+1/2 Résoudre le sous-problème et conclure.

Génération de coupes (P) résolu, il se peut que l’on ait résolu (Pb) . Il suffit pour cela que les i soient non fractionnaires. Si tel n’est pas le cas on peut toujours rajouter des coupes et réitérer l’algorithme de génération de colonnes. 1- Résoudre (P) par l’algorithme de génération de colonnes Soit * la solution de (P) , poser x*=i*ixi. Si x*X alors Stop on a résolu (Pb) Sinon Chercher des inégalités valides violées par x*. Les rajouter à l’ensemble J Retourner en 1

Branch&Bound Une fois (P) résolu et après avoir ajouté des coupes, il se peut que la solution optimale x*=i*ixi n’appartienne pas à X (* fractionnaire). On a alors recours à une procédure de type séparation et évaluation pour résoudre (Pb). De la même façon que l’on rajoute des coupes à (P) dans l’algorithme de coupes, on ajoute ici des contraintes qui séparent l’ensemble des solutions réalisables en deux parties. Soit x*j une coordonnée de x* fractionnaire. On sépare (P) en deux problèmes fils: - l’un avec la contrainte xjx*j , l’autre avec la contrainte xjx*j +1 . On résout chacun par génération de colonnes.

Lien avec la relaxation lagrangienne Relaxation lagrangienne des contraintes J: on injecte les contraintes dans l’objectif . max f(x)+jjgj(x) s.c. xX Avec j0 jJ Cela donne une borne supérieure de la valeur de (Pb). On recherche la plus petite borne supérieure. Le problème dual lagrangien consiste à minimiser la fonction duale: (D) min0 max f(x)+jjgj(x) s.c. xX Pour éliminer le max du problème interne on rajoute simplement une variable z : (D) minz, 0 z s.c. z f(x)+jjgj(x) xX (D) est un programme linéaire de variables z et . Si on écrit le dual de (D) avec les variables i0 une par contrainte de (D), on retrouve (P‘) . Donc dans (Pb) la relaxation de X à son enveloppe convexe revient à faire la relaxation lagrangienne des contraintes J.

Cas particuliers La relaxation lagrangienne des contraintes J de (Pb) revient à optimiser sur ConvX c’est-à-dire au problème (P). Dans le cas où l’on sait décrire ConvX par un polyèdre i.e. ConvX={x : Axb}, alors la relaxation lagrangienne de (Pb), équivalente à (P) , revient au programme linéaire: max f(x) s.c. gj(x)0 jJ , Axb Exemple: Si X={0,1}n alors ConvX=[0,1]n Dans ce cas le problème (P) revient à la relaxation continue de (Pb) dans laquelle l’intégrité de xj est remplacée par 0xj1. Conclusion, si X={0,1}n la relaxation lagrangienne est équivalente à la relaxation continue.

Exercice: (Pb) max f(x)=x1+2x2 s.c. g1(x)=3-3x1-2x20 g2(x)=3-2x1-3x20 xX={0,1}2 Soit (P) la relaxation de (Pb) obtenue en passant de X à ConvX Représenter graphiquement les solutions réalisables de (P). Observer le point extrême qui n’est pas dans X. Que peut-on en conclure? Ecrire (P‘) Ecrire (D) le dual langrangien de (Pb) avec la variable z. Ecrire le dual de (D) et vérifier que l’on retrouve (P‘)

Généralisation: problème décomposable sous contraintes couplantes (Pb) max k=1,…,K fk(xk) s.c. k=1,…,K gj,k(xk)0 jJ , xkXk k=1,…K Avec | Xk | fini, fk linéaire, gj,k affines (k) Relaxation (P) = (Pb) avec xkConvXk k=1,…K On écrit : xk=ik,ixki avec k,i0, k,ii=1, xkiXk On reporte dans (P) et par linéarité les k,i sortent de fk et des gj,k : (P') max k=1,…,K ik,ifk (xki) s.c. k=1,…,K ik,igj,k(xki) 0 jJ k,ii=1 k=1,…,K k,i0 k=1,…,K, i Maintenant les variables sont les k,i