Optimisation discrète : Séance 4 (cours et exercices)
PROGRAMMATION LINÉAIRE
Objectifs Optimisation linéaire sous contraintes linéaires.
Aspects algébriques et géométriques.
Algorithme du simplexe.
Certains résultats (cités pour la continuité de l’exposé) n’ont pas à être démontrés.
1 Exemple
Un manufacturier fabrique deux types de produits à partir de trois composants : – un produitA(5 plaques, 2 rondelles, 1 tube) rapportant 8 euros.
– un produitB(3 plaques, 3 rondelles, 3 tubes) rapportant 6 euros.
Sachant qu’il dispose en tout de 30 plaques, 24 rondelles, 18 tubes, calculer les quantitésx1(de produitsA) etx2(de produitsB) à fabriquer pour maximiser son bénéficeΦ.
Ex 1 Rappeler brièvement la méthode de résolution vue à la séance précédente : – introduire les variables d’écart,
– écrire la forme canonique,
– itérer jusqu’à l’optimum : le tableau final est celui de la Fig. 1.
FIG. 1 – Tableau final obtenu
| 1 0 1/4 0 -1/4 3 |
| 0 0 -1/4 1 -3/4 3 |
| 0 1 -1/12 0 5/12 5 |
| 0 0 3/2 0 1/2 54 |
2 Inéquations linéaires
Déf 1 Forme standarddu système des contraintes :
C11 C12 · · · C1n
C21 C22 · · · C2n
... ... ... ...
Cp1 Cp2 · · · Cpn
x1
x2
...
xn
=
d1
d2
...
dp
Aspects algébriques
Déf 2 Partition deCenmatrice de baseBet hors-baseH.
Déf 3 Forme canoniquedu système des contraintes :B−1Cx=B−1d.
On s’arrange pour que les colonnes de base soient regroupées à droite :C= [H B].
1 m m+1 m+p=n
x(1 :m) x(m+1 :m+p) variables hors-base variables de base
Déf 4 Changement de base: passage de la matrice d’une forme canonique à une autre.
Notation des composantes du changement de base :
r = indice (1≤r≤m) de la composante qui entre s = indice (m+ 1≤m+s≤m+p) de celle qui sort
L’entiersest donc l’indice, dansBregroupée à droite, de la colonne sortante.
Déf 5 Une solution est ditede basesi les composantes hors-base sont nulles :x(1 :m) = 0.
Ex 2 Quelle est l’expression de la solution de base d’une forme canonique ? Si l’une des composantes de base s’annule également, la solution est ditedégénérée.
Déf 6 Une solution du système des contraintes est diteréalisablesi :x(1 :n)≥0.
Thm 1 [Farkas-Minkowski] On a l’alternative suivante :
– ou bien le système des contraintes (Cx=d) admet une solution réalisable, – ou bien on peut trouver un vecteurutel que :
C∗u ≥ 0 (d|u) < 0
Cela veut dire :
– ou biendappartient au cône défini par les colonnes deC,
– ou bien il possède une composante (u) non nulle dans une direction orthogonale, i.e. il existe un hyperplan séparateur entredet ce cône (le vecteuru, orthogonal à cet hyperplan bien choisi, fait un angle aigu avec le cône et obtus avecd).
Thm 2 [fondamental] S’il existe une solution réalisable au système des contraintes, alors il existe une solution réalisable de base.
Aspects géométriques
L’ensemble des solutions réalisables du système des contraintes standard constitue un polyèdre convexe (polyèdre des contraintes).
Thm 3 [Théorème d’équivalence] SoitΩle polyèdre des contraintes. Alors : xsolution réalisable de base ⇔ xpoint extrémal deΩ
Thm 4 Soit à maximiserΦ = (a|x)sur le polyèdre des contraintes. Alors l’optimum est atteint en un (au moins un) point extrémal.
3 Méthode du simplexe
Description
On considère ici la forme standard (Déf.1) :
max{Φ = (a|x)}
Cx = d x ≥ 0
et on suppose queCcontient une matrice de base, normalisée àI, dans sespcolonnes de droite (Déf.3).
Déf 7 Letableau du simplexeest constitué des coefficients des relations : Cx = d
(a|x) = Φ
i.e. on ajoute (au système des contraintes) une ligne (numérotéep+1) faisant intervenir la variable supplémentaireΦ.
Maximum ou minimum Le test d’optimum se fait sur le facteur de x: ce vecteur ne doit contenir aucune composante négative, dans le cas d’unmaxcomme dans celui d’unmin.
En conséquence :
– on change le signe des coefficients deΦlorsque c’estmax.
– la valeur deΦapparaît avec le signe moins lorsque c’estmin.
Ex 3 Le changement de base (Déf.4) signifie le passage de B àB0 par remplacement d’une colonne deB(en numérosdansB) par une colonnevdeH(en numéror).
Ecrire les formules et l’algorithme du changement de base.
Dans la méthode des Tableaux, le changement de base n’est rien d’autre qu’une étape de l’élimi- nation de Gauss-Jordan (Fig. 2).
Ex 4 Montrer qu’un critère raisonnable d’entrée en base est :
r=argminC(p+1,1:m) sur les composantesCp+1,j <0 et écrire la fonction correspondante.
Ex 5 Montrer que le critère de sortie de la base est nécessairement : s=argmin d(1:p)
C(1:p,r) sur les composantesCir>0 et écrire la fonction correspondante.
Ex 6 Expliquer en quoi le critère d’entrée en base est un critère d’optimalité.
Ex 7 Expliquer en quoi le critère de sortie de base est un critère d’optimum non borné.
Déf 8 Cyclage.
FIG. 2 – Méthode de Gauss-Jordan function [ C ] = chngBas (C, p, m)
//
m1 = m+1 // +1 pour le second membre p1 = p+1 // +1 pour la fonction objectif piv = C(s,r)
C(s,1:m1) = C(s,1:m1) / piv for i = 1:p1
if i == s then continue, end t = C(i,r)
for j = 1:m1
if j == r then continue, end C(i,j) = C(i,j) - t * C(s,j) end
end
C(1:p1,r) = - C(1:p1,r) / piv C(s,r) = 1 / piv
Démarrage des itérations
Exemple
On revient au cas général oùC ne contient pas forcément une sous-matriceI(cela se produit lorsque le système de contraintes a des inégalités dans les deux sens, ou des égalités).
Ex 8 Reprendre l’exemple d’introduction avec la nouvelle fonction objectif : Φ = 11x1+ 6x2
Ex 9 Peut-on résoudre si on impose la contrainte supplémentaire :x2≥1? Déf 9 Variable artificielle:x2−y4+z1= 1.
Déf 10 Méthode des deux phases: on minimise d’abord la sommeσdes variables artificielles.
Ex 10 Ecrire la forme canonique (standard) pour la méthode des deux phases, et résoudre (après avoir ajouté une ligne,p+ 2, de minimisation deσ).
Exemple
Avec l’exemple ci-dessus (z1= 1−x2+y4), résultat en Fig. 3.
Ex 11 Expliciter les cas possibles à l’optimum des variables artificielles.
FIG. 3 – Méthode des deux phases
| 5 3 0 1 0 0 30 | y1
| 2 3 0 0 1 0 24 | y2
| 1 3 0 0 0 1 18 | y3
| 0 1 -1 0 0 0 1 | z1
| -11 -6 0 0 0 0 0 | Phi
| 0 -1 1 0 0 0 0 | Sigma
| 5 0 3 1 0 0 27 | y1
| 2 0 3 0 1 0 21 | y2
| 1 0 3 0 0 1 15 | y3
| 0 1 -1 0 0 0 1 | x2
| -11 0 -6 0 0 0 6 | Phi
| 0 0 0 0 0 0 0 | Sigma
| 1 0 3/5 1/5 0 0 27/5 | x1
| 0 0 9/5 -2/5 1 0 51/5 | y2
| 0 0 12/5 -1/5 0 1 48/5 | y3
| 0 1 -1 0 0 0 1 | x2
| 0 0 3/5 11/5 0 0 327/5 | Phi
Algorithme du simplexe
Ex 12 L’utilisation d’un vecteurindex(1 :p)rend inutile le stockage des colonnes de base (Fig. 4).
Ex 13 Ecrire une fonction réalisant les étapes principales de l’algorithme du simplexe (en expli- citant bien les cas de terminaison, normale ou anormale).
FIG. 4 – Vecteurindex
1 2 3
+---+---+---+---+--
| 5.000 3.000 0.000 | 30.000 | 4
| 2.000 3.000 0.000 | 24.000 | 5
| 1.000 3.000 0.000 | 18.000 | 6
| 0.000 1.000 -1.000 | 1.000 | 7
| -11.000 -6.000 0.000 | 0.000 | Phi
| 0.000 -1.000 1.000 | -1.000 | Sigma
1 7 3
+---+---+---+---+--
| 5.000 -3.000 3.000 | 27.000 | 4
| 2.000 -3.000 3.000 | 21.000 | 5
| 1.000 -3.000 3.000 | 15.000 | 6
| 0.000 1.000 -1.000 | 1.000 | 2
| -11.000 6.000 -6.000 | 6.000 | Phi
| 0.000 1.000 0.000 | 0.000 | Sigma
4 3
+---+---+---+--
| 0.200 0.600 | 5.400 | 1
| -0.400 1.800 | 10.200 | 5
| -0.200 2.400 | 9.600 | 6
| 0.000 -1.000 | 1.000 | 2
| 2.200 0.600 | 65.400 | Phi
4 Dualité
Déf 11 Problème dual.
Etant donné le problèmeprimal(P) :
max{Φ = (a|x)}
Cx ≤ d x ≥ 0
on lui associe le problèmedual(D) :
min{π = (u|d)}
C∗u ≥ a u ≥ 0
Primal (P) Dual (D)
Cx ≤ d C∗u ≥ a
x ≥ 0 u ≥ 0
max Φ = (a|x) minπ = (u|d) Ex 14 Ecrire le dual pour l’exemple d’introduction et préciser sa signification.
Ex 15 Résoudre le problème dual.
On trouve, en résolvant par tableaux, que l’optimum correspond à :
−π µ3
2,0,1 2,0,0
¶
+ 3u2+ 3v1+ 5v2=−54
φ(3,5,0,3,0) + 32y1+12y3 = 54 3v1+ 5v2+ 3u2 − π¡3
2,0,12,0,0¢
= -54 Noter le principe de complémentarité à l’optimum :
– y26= 0 =⇒u2= 0
– u16= 0 & u36= 0 =⇒y1= 0 =y3
Ex 16 Soientxetudeux solutions réalisables, respectivement de (P) et (D). Montrer que : Φ(x)≤π(u)
Ex 17 Si l’un des deux problèmes, (P) ou (D), admet un optimum non borné (+∞pourΦ,−∞
pourπ), alors l’autre n’admet pas de solution réalisable.
Thm 5 Les solutions réalisablesxetusont optimales si et seulement si : (C∗u−a|x) = 0
et si et seulement si
(u|Cx−d) = 0
Algo 1 Algorithme dual.
On reprend la variante de l’exemple d’introduction correspondant à :Φ = 11x1+ 6x2. On trouve, à l’optimum
| 1/5 3/5 6 |
| -2/5 9/5 12 |
| -1/5 12/5 12 |
| 11/5 3/5 66 | avec les indices(3,2; 1,4,5).
Si on ajoute maintenant la contraintex2≥1, il vient :
| 1/5 3/5 6 |
| -2/5 9/5 12 |
| -1/5 12/5 12 |
| 0 -1 -1 |
| 11/5 3/5 66 | avec les indices(3,2; 1,4,5,6).
On est en présence d’une solution non réalisable dans le primal (c’est pour cela qu’on avait précédemment introduit une variable artificielle).
Mais si on considère ce tableau comme celui du problème dual (le transposer par la pensée), il fait apparaître une solution duale réalisable(115,35)et une possibilité d’amélioration (par le−1 du second membre).
Noter au passage que cet algorithme dual prend les critères en ordre inverse. Le changement de base donne alors
| 1/5 3/5 27/5 |
| -2/5 9/5 51/5 |
| -1/5 12/5 48/5 |
| 0 -1 1 |
| 11/5 3/5 327/5 | avec les indices(3,6; 1,4,5,2).
Cette solution est optimum (mais c’est évidemment un hasard qu’une seule itération ait suffi).