Aller au contenu

L'Établi des Maths Cours

Outils pour apprendre et pratiquer

Licence 3 · Optimisation · L3-13

Cours et exercices corrigés de L3 : Programmation linéaire, algorithme du Simplexe et dualité

Problèmes d'optimisation sous contraintes, forme standard de la programmation linéaire, polyèdres convexes et sommets extrêmes, algorithme du simplexe (tableaux, variables d'écart, pivotage), problème dual et théorème fort de la dualité.

Objectifs du chapitre

Le cours

1. Polyèdres et forme standard

  • Polyèdre : intersection finie de demi-espaces fermés, P={x∈Rn∣Ax≤b}P = \{x \in \mathbb{R}^n \mid Ax \le b\} ; il est convexe et fermé. Un polyèdre borné est un polytope.
  • Point extrême (sommet) : x∈Px \in P qui n'est le milieu d'aucun segment [y;z]⊂P[y ; z] \subset P avec y≠zy \neq z.
  • Forme standard :

max⁡x∈Rn  tc xsousAx=b,  x≥0\max_{x \in \mathbb{R}^n} \; {}^tc\,x \quad \text{sous} \quad Ax = b, \; x \ge 0
avec A∈Mm,n(R)A \in \mathcal{M}_{m,n}(\mathbb{R}) de rang m≤nm \le n.

  • Passage en forme standard : une contrainte taix≤bi{}^ta_i x \le b_i devient taix+si=bi{}^ta_i x + s_i = b_i avec une variable d'écart si≥0s_i \ge 0 ; une variable libre s'écrit xj=xj+−xj−x_j = x_j^+ - x_j^- avec xj±≥0x_j^\pm \ge 0 ; minimiser tc x{}^tc\,x revient à maximiser −tc x-{}^tc\,x.

2. Solutions de base admissibles et théorème fondamental

  • Base : ensemble BB de mm indices tel que la sous-matrice ABA_B soit inversible ; NN désigne les autres indices. La solution de base associée est xN=0x_N = 0, xB=AB−1bx_B = A_B^{-1}b.
  • Solution de base admissible (SBA) : solution de base avec xB≥0x_B \ge 0. Théorème : les SBA sont exactement les sommets du polyèdre {Ax=b, x≥0}\{Ax = b, \, x \ge 0\}. Il y en a au plus (nm)\binom{n}{m}.
  • Dégénérescence : une SBA est dégénérée si une variable de base est nulle ; plusieurs bases peuvent alors définir le même sommet.
  • Théorème fondamental : pour un programme linéaire sous forme standard,

1. si l'ensemble admissible est non vide, il possède au moins un sommet ;
2. si le problème admet une solution optimale, il existe une SBA optimale ;
3. si l'ensemble admissible est non vide et l'objectif majoré sur cet ensemble, une solution optimale existe.

  • L'ensemble des solutions optimales est une face du polyèdre : il peut y avoir une infinité d'optima (une arête entière, par exemple).

3. Algorithme du simplexe

On part d'une SBA de base BB.

  • Coûts réduits : tcˉN=tcN−tcBAB−1AN{}^t\bar{c}_N = {}^tc_N - {}^tc_B A_B^{-1}A_N ; l'objectif s'écrit z=tcBAB−1b+tcˉNxNz = {}^tc_B A_B^{-1}b + {}^t\bar{c}_N x_N.
  • Optimalité (en maximisation) : si cˉj≤0\bar{c}_j \le 0 pour tout j∈Nj \in N, la SBA courante est optimale.
  • Variable entrante : un indice ee avec cˉe>0\bar{c}_e > 0 (règle de Dantzig : le plus grand).
  • Variable sortante (test du ratio) : avec Aˉ=AB−1A\bar{A} = A_B^{-1}A et bˉ=AB−1b\bar{b} = A_B^{-1}b, on choisit

i∗∈arg⁡min⁡{bˉiaˉie  |  aˉie>0}i^{\ast} \in \arg\min \left\{ \frac{\bar{b}_i}{\bar{a}_{ie}} \;\middle|\; \bar{a}_{ie} > 0 \right\}
Si aucun aˉie\bar{a}_{ie} n'est >0> 0, le problème est non borné.

  • Pivot sur aˉi∗e\bar{a}_{i^{\ast}e}, puis itération.
  • Terminaison : sans dégénérescence, l'objectif augmente strictement et l'algorithme s'arrête (nombre fini de bases). En cas de dégénérescence, il peut cycler ; la règle de Bland (plus petit indice) l'évite.
  • Initialisation : si 00 n'est pas admissible, une phase I (minimiser la somme de variables artificielles) fournit une SBA de départ ou prouve que le problème est irréalisable.

4. Dualité : énoncés et démonstration de la dualité faible

  • Primal (P)(P) : max⁡tc x\max {}^tc\,x sous Ax≤bAx \le b, x≥0x \ge 0. Dual (D)(D) : min⁡tb y\min {}^tb\,y sous tA y≥c{}^tA\,y \ge c, y≥0y \ge 0. Le dual du dual est le primal.

Théorème (dualité faible). Si xx est admissible pour (P)(P) et yy admissible pour (D)(D), alors tc x≤tb y{}^tc\,x \le {}^tb\,y.

Démonstration.
1. Comme x≥0x \ge 0 et tA y−c≥0{}^tA\,y - c \ge 0 (composante par composante), le produit scalaire t(tA y−c) x=∑j(tA y−c)jxj{}^t({}^tA\,y - c)\,x = \sum_j ({}^tA\,y - c)_j x_j est une somme de termes positifs : tc x≤t(tA y) x=ty Ax{}^tc\,x \le {}^t({}^tA\,y)\,x = {}^ty\,Ax.
2. Comme y≥0y \ge 0 et b−Ax≥0b - Ax \ge 0 : ty (b−Ax)≥0{}^ty\,(b - Ax) \ge 0, donc ty Ax≤ty b=tb y{}^ty\,Ax \le {}^ty\,b = {}^tb\,y.
3. En combinant : tc x≤ty Ax≤tb y{}^tc\,x \le {}^ty\,Ax \le {}^tb\,y. □\square

Corollaires.

  • Si tc x=tb y{}^tc\,x = {}^tb\,y pour des points admissibles x,yx, y, ils sont optimaux tous les deux (certificat d'optimalité).
  • Si (P)(P) est non borné, (D)(D) est irréalisable ; si (D)(D) est non borné, (P)(P) est irréalisable.
  • Écarts complémentaires : l'égalité tc x=tb y{}^tc\,x = {}^tb\,y équivaut à l'égalité dans les étapes 1 et 2, c'est-à-dire, les termes étant positifs, à

xj (tA y−c)j=0    ∀jetyi (b−Ax)i=0    ∀ix_j\,({}^tA\,y - c)_j = 0 \;\; \forall j \qquad \text{et} \qquad y_i\,(b - Ax)_i = 0 \;\; \forall i

  • Dualité forte : si (P)(P) (ou (D)(D)) admet une solution optimale, alors l'autre aussi et max⁡(P)=min⁡(D)\max (P) = \min (D). La preuve utilise le simplexe (coûts réduits à l'optimum) ou le lemme de Farkas : Ax=bAx = b, x≥0x \ge 0 a une solution si et seulement s'il n'existe pas de yy avec tA y≥0{}^tA\,y \ge 0 et tb y<0{}^tb\,y < 0.
  • Ainsi x∗x^{\ast} et y∗y^{\ast} admissibles sont optimaux si et seulement s'ils vérifient les écarts complémentaires.

5. Conditions de Karush-Kuhn-Tucker

On considère min⁡f(x)\min f(x) sous gi(x)≤0g_i(x) \le 0 (1≤i≤p1 \le i \le p), avec f,gif, g_i de classe C1\mathcal{C}^1 sur Rn\mathbb{R}^n.

  • Conditions KKT en x∗x^{\ast} admissible : il existe μ1,…,μp\mu_1, \dots, \mu_p tels que

∇f(x∗)+∑i=1pμi∇gi(x∗)=0,μi≥0,μi gi(x∗)=0\nabla f(x^{\ast}) + \sum_{i=1}^p \mu_i \nabla g_i(x^{\ast}) = 0, \qquad \mu_i \ge 0, \qquad \mu_i\, g_i(x^{\ast}) = 0
(les multiplicateurs des contraintes inactives sont nuls).

  • Nécessité : si x∗x^{\ast} est un minimum local et si les contraintes sont qualifiées en x∗x^{\ast} (par exemple contraintes affines, ou gradients des contraintes actives linéairement indépendants, ou, dans le cas convexe, condition de Slater : existence de x~\tilde{x} avec gi(x~)<0g_i(\tilde{x}) < 0 pour tout ii), alors les conditions KKT sont satisfaites.
  • Suffisance : si ff et les gig_i sont convexes, tout point admissible vérifiant KKT est un minimum global.
  • Lien avec la programmation linéaire : pour un programme linéaire, les multiplicateurs KKT sont une solution du dual et la condition μigi(x∗)=0\mu_i g_i(x^{\ast}) = 0 est exactement la condition des écarts complémentaires.

Méthodes et exemples rédigés

Méthode : Écrire le dual et certifier l'optimalité

Exemple

Former le dual de : max⁡ 3x1+2x2\max\, 3x_1 + 2x_2 sous x1+2x2≤4x_1 + 2x_2 \le 4, 2x1+x2≤52x_1 + x_2 \le 5, x1,x2≥0x_1, x_2 \ge 0, puis vérifier que x∗=(2,1)x^{\ast} = (2, 1) est optimal.

  1. Étape 1 (Données) : c=(32)c = \begin{pmatrix} 3 \\ 2 \end{pmatrix}, b=(45)b = \begin{pmatrix} 4 \\ 5 \end{pmatrix}, A=(1221)A = \begin{pmatrix} 1 & 2 \\ 2 & 1 \end{pmatrix}.

  2. Étape 2 (Dual) : une variable duale yi≥0y_i \ge 0 par contrainte, une contrainte duale par variable primale : min⁡ 4y1+5y2\min\, 4y_1 + 5y_2 sous y1+2y2≥3y_1 + 2y_2 \ge 3, 2y1+y2≥22y_1 + y_2 \ge 2, y1,y2≥0y_1, y_2 \ge 0.

  3. Étape 3 (Écarts complémentaires) : x1∗,x2∗>0x_1^{\ast}, x_2^{\ast} > 0 impose que les deux contraintes duales soient des égalités : y1+2y2=3y_1 + 2y_2 = 3 et 2y1+y2=22y_1 + y_2 = 2, d'où y∗=(13,43)≥0y^{\ast} = \left(\frac{1}{3}, \frac{4}{3}\right) \ge 0 (admissible). Les deux contraintes primales sont saturées en x∗x^{\ast} (2+2=42 + 2 = 4, 4+1=54 + 1 = 5), ce qui est compatible avec y∗>0y^{\ast} > 0.

  4. Conclusion : tc x∗=6+2=8{}^tc\,x^{\ast} = 6 + 2 = 8 et tb y∗=43+203=8{}^tb\,y^{\ast} = \frac{4}{3} + \frac{20}{3} = 8. Par la dualité faible, x∗x^{\ast} et y∗y^{\ast} sont optimaux, de valeur commune 88.

Méthode : Dérouler l'algorithme du simplexe

Exemple

Résoudre par le simplexe : max⁡ Z=3x1+2x2\max\, Z = 3x_1 + 2x_2 sous x1+2x2≤4x_1 + 2x_2 \le 4, 2x1+x2≤52x_1 + x_2 \le 5, x1,x2≥0x_1, x_2 \ge 0.

  1. Étape 1 (Forme standard) : avec des variables d'écart s1,s2≥0s_1, s_2 \ge 0 : x1+2x2+s1=4x_1 + 2x_2 + s_1 = 4 et 2x1+x2+s2=52x_1 + x_2 + s_2 = 5. Base initiale (s1,s2)(s_1, s_2) : x=(0,0)x = (0, 0), s=(4,5)s = (4, 5), Z=0Z = 0.

  2. Étape 2 (Entrée) : coûts réduits cˉ1=3\bar{c}_1 = 3, cˉ2=2\bar{c}_2 = 2 ; x1x_1 entre (plus grand coût réduit).

  3. Étape 3 (Ratio) : ligne 1 : 41=4\frac{4}{1} = 4 ; ligne 2 : 52=2,5\frac{5}{2} = 2{,}5. Le minimum est en ligne 2 : s2s_2 sort, pivot 22.

  4. Étape 4 (Pivot) : x1=2,5−0,5x2−0,5s2x_1 = 2{,}5 - 0{,}5x_2 - 0{,}5s_2 ; la ligne 1 devient 1,5x2+s1−0,5s2=1,51{,}5x_2 + s_1 - 0{,}5s_2 = 1{,}5 ; Z=3(2,5−0,5x2−0,5s2)+2x2=7,5+0,5x2−1,5s2Z = 3(2{,}5 - 0{,}5x_2 - 0{,}5s_2) + 2x_2 = 7{,}5 + 0{,}5x_2 - 1{,}5s_2.

  5. Étape 5 (Deuxième itération) : cˉx2=0,5>0\bar{c}_{x_2} = 0{,}5 > 0, x2x_2 entre ; seul ratio : 1,51,5=1\frac{1{,}5}{1{,}5} = 1 (ligne 1), s1s_1 sort. On obtient x2=1−23s1+13s2x_2 = 1 - \frac{2}{3}s_1 + \frac{1}{3}s_2, x1=2+13s1−23s2x_1 = 2 + \frac{1}{3}s_1 - \frac{2}{3}s_2 et Z=8−13s1−43s2Z = 8 - \frac{1}{3}s_1 - \frac{4}{3}s_2.

  6. Conclusion : tous les coûts réduits sont négatifs : l'optimum est (x1∗,x2∗)=(2,1)(x_1^{\ast}, x_2^{\ast}) = (2, 1), Z∗=8Z^{\ast} = 8. Les opposés des coûts réduits des variables d'écart, (13,43)\left(\frac{1}{3}, \frac{4}{3}\right), sont la solution duale.

Pièges fréquents

Questions de révision

Essaie de répondre de tête avant d'afficher la réponse.

Énoncer la dualité faible et sa preuve en une ligne.

tc x≤ty Ax≤tb y{}^tc\,x \le {}^ty\,Ax \le {}^tb\,y pour x,yx, y admissibles, en utilisant x≥0x \ge 0, tA y≥c{}^tA\,y \ge c, puis y≥0y \ge 0, Ax≤bAx \le b.

Énoncer la dualité forte en programmation linéaire.

Si le primal ou le dual admet une solution optimale, les deux en admettent et max⁡ tc x=min⁡ tb y\max\,{}^tc\,x = \min\,{}^tb\,y.

Quelle caractérisation géométrique ont les solutions de base admissibles ?

Ce sont exactement les sommets (points extrêmes) du polyèdre admissible.

Critère d'arrêt du simplexe en maximisation ?

Tous les coûts réduits sont ≤0\le 0 : la SBA courante est optimale.

Énoncer les conditions des écarts complémentaires.

xj(tA y−c)j=0x_j({}^tA\,y - c)_j = 0 pour tout jj et yi(b−Ax)i=0y_i(b - Ax)_i = 0 pour tout ii ; avec l'admissibilité, elles caractérisent l'optimalité du couple (x,y)(x, y).

Quand les conditions KKT sont-elles suffisantes ?

Lorsque l'objectif et les contraintes gig_i sont convexes : un point admissible vérifiant KKT est alors un minimum global.

Exercices corrigés

Exercice 1 Forme standard d'un programme linéaire et variables d'écart

Palier 1 · découverte

Pour mettre la contrainte d'inégalité 2x1+3x2≤122x_1 + 3x_2 \le 12 sous forme standard d'égalité avec des variables positives, quelle transformation effectue-t-on ?

  1. On introduit une variable d'écart s≥0s \ge 0 telle que 2x1+3x2+s=122x_1 + 3x_2 + s = 12
  2. On remplace simplement ≤\le par == sans rien ajouter
  3. On introduit une variable s≤0s \le 0 telle que 2x1+3x2=12+s2x_1 + 3x_2 = 12 + s
  4. On élève la contrainte au carré
Un indice

Une contrainte ≤\le signifie que le membre de gauche est inférieur au membre de droite.

Voir la correction

Bonne réponse : A. On introduit une variable d'écart s≥0s \ge 0 telle que 2x1+3x2+s=122x_1 + 3x_2 + s = 12

Dans la mise sous forme standard, toute contrainte d'inégalité ≤\le est transformée en égalité par l'addition d'une variable d'écart positive (s≥0s \ge 0) : 2x1+3x2+s=122x_1 + 3x_2 + s = 12.

Exercice 2 Règle de la variable entrante dans le simplexe

Palier 2 · application

Dans l'algorithme du simplexe en maximisation, comment choisit-on la variable hors-base entrante selon la règle de Dantzig ?

  1. On choisit la variable ayant le coût réduit strictement positif le plus grand (cˉe=max⁡jcˉj>0\bar{c}_e = \max_{j} \bar{c}_j > 0)
  2. On choisit la variable ayant le coût réduit le plus négatif
  3. On choisit la variable ayant la plus grande valeur dans le vecteur bb
  4. On choisit arbitrairement n'importe quelle variable de base
Un indice

Un coût réduit positif cˉj>0\bar{c}_j > 0 indique que faire croître xjx_j augmentera la fonction objectif.

Voir la correction

Bonne réponse : A. On choisit la variable ayant le coût réduit strictement positif le plus grand (cˉe=max⁡jcˉj>0\bar{c}_e = \max_{j} \bar{c}_j > 0)

En maximisation, le critère de Dantzig prescrit de faire entrer en base la variable hors-base xex_e dont le coût réduit est le plus grand strictement positif : cˉe=max⁡j∈Ncˉj>0\bar{c}_e = \max_{j \in N} \bar{c}_j > 0. Si tous les coûts réduits sont ≤0\le 0, la solution actuelle est optimale.

Exercice 3 Test du ratio minimum et variable sortante

Palier 3 · approfondissement

Lors d'une itération du simplexe avec colonne pivot AeA_e, la variable de base sortante est déterminée par :

  1. Le minimum des ratios bˉiaˉi,e\frac{\bar{b}_i}{\bar{a}_{i, e}} pour les lignes où aˉi,e>0\bar{a}_{i, e} > 0
  2. Le maximum des ratios bˉiaˉi,e\frac{\bar{b}_i}{\bar{a}_{i, e}}
  3. La ligne où aˉi,e\bar{a}_{i, e} est le plus proche de 0
  4. La ligne où le terme indépendant bˉi\bar{b}_i est négatif
Un indice

En augmentant la variable entrante xex_e, les composantes de base deviennent xB(i)=bˉi−aˉi,exex_{B(i)} = \bar{b}_i - \bar{a}_{i, e} x_e.

Voir la correction

Bonne réponse : A. Le minimum des ratios bˉiaˉi,e\frac{\bar{b}_i}{\bar{a}_{i, e}} pour les lignes où aˉi,e>0\bar{a}_{i, e} > 0

Pour préserver la positivité de toutes les variables (admissibilité), la variable de base qui quitte la base est celle dont la valeur s'annule en premier : i∗=arg⁡min⁡{bˉiaˉi,e∣aˉi,e>0}i^* = \arg \min \{ \frac{\bar{b}_i}{\bar{a}_{i,e}} \mid \bar{a}_{i,e} > 0 \}.

Exercice 4 Théorème des écarts complémentaires

Palier 4 · défi

Soient x∗x^* et y∗y^* des solutions admissibles respectives du problème primal (max⁡tcx\max {}^t c x sous Ax≤b,x≥0Ax \le b, x \ge 0) et dual (min⁡tby\min {}^t b y sous tAy≥c,y≥0{}^t A y \ge c, y \ge 0). Quelle condition caractérise leur optimalité conjointe ?

  1. yi∗(b−Ax∗)i=0y_i^* (b - Ax^*)_i = 0 pour tout ii et xj∗(tAy∗−c)j=0x_j^* ({}^t A y^* - c)_j = 0 pour tout jj
  2. x∗=y∗x^* = y^* obligatoirement
  3. tcx∗<tby∗{}^t c x^* < {}^t b y^*, strictement
  4. det⁡(A)=0\det(A) = 0
Un indice

Pour x∗,y∗x^*, y^* admissibles : tc x∗≤ty∗Ax∗≤tb y∗{}^tc\,x^* \le {}^ty^* A x^* \le {}^tb\,y^*. Par dualité, l'optimalité conjointe équivaut à tc x∗=tb y∗{}^tc\,x^* = {}^tb\,y^* : les deux inégalités doivent être des égalités.

Voir la correction

Bonne réponse : A. yi∗(b−Ax∗)i=0y_i^* (b - Ax^*)_i = 0 pour tout ii et xj∗(tAy∗−c)j=0x_j^* ({}^t A y^* - c)_j = 0 pour tout jj

D'après le théorème des écarts complémentaires, deux solutions admissibles sont optimales si et seulement si pour tout ii, yi∗(bi−(Ax∗)i)=0y_i^*(b_i - (Ax^*)_i) = 0 (le produit du multiplicateur par la variable d'écart est nul) et pour tout jj, xj∗((tAy∗)j−cj)=0x_j^*(({}^t A y^*)_j - c_j) = 0.