Optimisation discrète : Séance 4 (corrigé, indications)
PROGRAMMATION LINÉAIRE
1 Exemple
Ex 1 Méthode de résolution vue à la séance précédente : Fig. 1.
FIG. 1 – Méthode des tableaux
1 2 3 4 5
5.000 3.000 1.000 0.000 0.000 : 30.000 3 2.000 3.000 0.000 1.000 0.000 : 24.000 4 1.000 3.000 0.000 0.000 1.000 : 18.000 5 -8.000 -6.000 0.000 0.000 0.000 : 0.000
3 2 3 4 5
0.200 0.600 0.200 0.000 0.000 : 6.000 1 -0.400 1.800 -0.400 1.000 0.000 : 12.000 4 -0.200 2.400 -0.200 0.000 1.000 : 12.000 5
1.600 -1.200 1.600 0.000 0.000 : 48.000
3 5 3 4 5
0.250 -0.250 0.250 0.000 -0.250 : 3.000 1 -0.250 -0.750 -0.250 1.000 -0.750 : 3.000 4 -0.083 0.417 -0.083 0.000 0.417 : 5.000 2
1.500 0.500 1.500 0.000 0.500 : 54.000
2 Inéquations linéaires
C11 C12 · · · C1n
C21 C22 · · · C2n
... ... ... ...
Cp1 Cp2 · · · Cpn
x1
x2
...
xn
=
d1
d2
...
dp
Aspects algébriques
Thm 1 [Farkas-Minkowski] Résultat admis.
Thm 2 [fondamental] S’il existe une solution réalisable au système des contraintes, alors il existe une solution réalisable de base.
Dans le système
x1C1+· · ·+xmCm=d
supposons que k composantes dex(les premières pour la commodité d’écriture) soient positives, i.e. non nulles.
Si les colonnes(C1, . . . , Ck)correspondantes sont indépendantes, le résultat est démontré puisqu’alorsk≤p(la solution étant éventuellement dégénérée).
Sinon, cela signifie qu’on peut écrire
u1C1+· · ·+ukCk= 0 et donc
(x1−θu1)C1+· · ·+ (xk−θuk)Ck=d
Cette nouvelle solution (x−θu) est réalisable pourθ = 0. Si on augmenteθ jusqu’à annuler une composante (de numéroi) correspondant àui > 0, il ne reste alors plus quek−1composantes>0, et on recommence si c’est nécessaire (jusqu’à k≤p).
Aspects géométriques
Thm 3 [Théorème d’équivalence] SoitΩle polyèdre des contraintes. Alors : xsolution réalisable de base ⇔ xpoint extrémal deΩ Condition⇐
Soit, en effet,xréalisable de base, alors (tant pis pour la numérotation) x1C1+· · ·+xpCp=d
Supposons que :
x=λu+ (1−λ)v 0< λ <1 Comme on a
u≥0 & v≥0
on voit queuetvn’ont, eux aussi, quepcomposantes non nulles.
Leur appartenance àΩs’écrit donc
u1C1+· · ·+upCp = d v1C1+· · ·+vpCp = d
et doncu=v(lesCiformant une base).
Condition⇒
Soitxun point extrémal ayantkcomposantes> 0. Il faut montrer que les co- lonnes correspondantes sont indépendantes (car alorsk≤p).
Par l’absurde : s’il existe deswitels que
w1C1+· · ·+wkCk= 0
on peut choisirθde sorte que
x+θw≥0 et x−θw≥0 soient réalisables de base, donc dansΩ. Mais alors
x=1
2(x+θw) +1
2(x−θw)
ne serait plus extrémal (en tant que combinaison linéaire de deux points 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.
Il suffit, pour le voir, d’utiliser le théorème de Krein-Milman (tout point deK est combinaison convexe des ses points extrémaux).
SoientS1, . . . , Sqles sommets extrémaux. Pour toutxdeK, on a : x=ξ1S1+· · ·+ξqSq
Donc
(a|x) =ξ1(a|S1) +· · ·+ξq(a|Sq) SoitΦ∗la plus grande valeur (atteinte enSi), on a :
(a|x)≤Σξj(a|Sj)≤Σξj(a|Si) = Φ∗
qui montre que la fonction objectif ne peut dépasser cette valeur.
3 Méthode du simplexe
Description
Forme standard :
max Φ = (a|x) Cx = d
x ≥ 0
et on suppose queCcontient une matrice de base, normalisée àI, dans sespcolonnes de droite.
Ex 2 Ecrire les formules et l’algorithme du changement de base.
Expression théorique
SoitB1, . . . , Bpla base des colonnes courante. On a : d = x1B1+· · ·+xpBp
C~j = C1jB1+· · ·+CpjBp
En particulier, pourj=r, on a :
C~r=CsrBs+ Σi6=sCirBr
d’oùBs, qu’on reporte dansC~j: C~j= Csj
Csr
C~r+ Σi6=s
µ
Cij−Cir
Csr
Csj
¶ Bi
soit :
Csj= Csj
Csr
et Cij =Cij− Cir
Csr
Csj
Dans la méthode des Tableaux, le changement de base n’est rien d’autre qu’une étape de Gauss-Jordan (Fig. dans l’énoncé).
Ex 3 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.
function [ cof1, r ] = crit1 (A, f, m) //
vec = A(f,1:m) // f == p+1
[ cof1, r ] = min (min (vec, 0)) endfunction
Ex 4 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.
On a (par définition)
C~r = C1re1+· · ·+Cprep
d = y1e1+· · ·+ypep
d’où
(y1−θC1r)e1+· · ·+ (yp−θCpr)ep+θBr=d
Pourθ >0(et, disons, petit) la nouvelle solution est réalisable en général mais pas de base. On prend donc
θ= min
i=1:p
µ yi
Cir
/ Cir>0
¶
et on notesl’indice ainsi déterminé. Donc : Ds
Csr
= min
i=1:p
µDi Cir
/ Cir>0
¶
function [ val2, s ] = crit2 (A, p, m, r) //
if A(1:p,r) < 0 then val2 = 1 / %eps end
[val2, s ] = min (A(1:p,m+1) ./ max (A(1:p,r), %eps)) endfunction
Ex 5 Expliquer en quoi le critère d’entrée en base est un critère d’optimalité.
Ex 6 Expliquer en quoi le critère de sortie de base est un critère d’optimum non borné.
Démarrage des itérations
Exemple
Ex 7 Reprendre l’exemple d’introduction avec la nouvelle fonction objectif : Φ = 11x1+ 6x2
On constate quex2disparaît de la base à l’optimum(x1,∗,∗, y2, y3).
1 2 3 4 5
5.000 3.000 1.000 0.000 0.000 : 30.000 3 2.000 3.000 0.000 1.000 0.000 : 24.000 4 1.000 3.000 0.000 0.000 1.000 : 18.000 5 -11.000 -6.000 0.000 0.000 0.000 : 0.000
3 2 3 4 5
0.200 0.600 0.200 0.000 0.000 : 6.000 1 -0.400 1.800 -0.400 1.000 0.000 : 12.000 4 -0.200 2.400 -0.200 0.000 1.000 : 12.000 5
2.200 0.600 2.200 0.000 0.000 : 66.000 Ex 8 Peut-on résoudre si on impose la contrainte supplémentaire :x2≥1?
Non, mais on se ramène à une situation connue en introduisant une variable artificielle :
x2−y4+z1= 1
Ex 9 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σ=P
zi=z1).
Exemple Fig. 2.
On procède comme d’habitude (après avoir ajouté une ligne,p+ 2, de minimi- sation deσ), mais le premier critère doit être subdivisé pour tester la fin de la phase zéro d’élimination des variables artificielles.
FIG. 2 – 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 -1 | 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
Ex 10 Expliciter les cas possibles à l’optimum des variables artificielles.
Si, à l’optimum de la phase zéro d’élimination des variables artificielles, on a : Dp+2= 0
alors on supprime la lignep+ 2et on continue, sinon c’est que le convexe est vide.
Algorithme du simplexe
Ex 11 L’utilisation d’un vecteurindex(1 :p)rend inutile le stockage des colonnes de base (Fig. 3).
Ex 12 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. 3 – 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
FIG. 4 – Algorithme du simplexe Forme canonique initiale
INDX(:) = 1:m while True
r = Dantz1 ()
Tester Fin phase-zero Tester Optimum atteint s = Dantz2 ()
Tester Optimum non borne Tester Degenerescence Permut (INDX, r, s) Changement de base
4 Dualité
Primal (P) Dual (D)
Cx ≤ d C∗u ≥ a
x ≥ 0 u ≥ 0
max Φ = (a|x) minπ = (u|d) Ex 13 Ecrire le dual pour l’exemple d’introduction et préciser sa signification.
minπ= 30u1+ 24u2+ 18u3
5u1+ 2u2+u3 ≥ 8 3u1+ 3u2+ 3u3 ≥ 6 u1, u2, u3 ≥ 0
Il exprime le même problème mais du point de vue d’un client qui voudrait acheter la totalité des matières premières (sous les conditions du fabricant).
Ex 14 Résolution du problème dual.
1 2 3 4 5
5.000 2.000 1.000 -1.000 0.000 : 8.000 6 3.000 3.000 3.000 0.000 -1.000 : 6.000 7 30.000 24.000 18.000 0.000 0.000 : 0.000
-8.000 -5.000 -4.000 1.000 1.000 : -14.000
6 2 3 4 5
0.200 0.400 0.200 -0.200 0.000 : 1.600 1 -0.600 1.800 2.400 0.600 -1.000 : 1.200 7 -6.000 12.000 12.000 6.000 0.000 : -48.000
1.600 -1.800 -2.400 -0.600 1.000 : -1.200
6 2 7 4 5
0.250 0.250 -0.083 -0.250 0.083 : 1.500 1 -0.250 0.750 0.417 0.250 -0.417 : 0.500 3 -3.000 3.000 -5.000 3.000 5.000 : -54.000
1.000 0.000 1.000 0.000 0.000 : 0.000
−π µ3
2,0,1 2,0,0
¶
+ 3u2+ 3v1+ 5v2=−54
Ex 15 Soientxetudeux solutions réalisables, alors : Φ(x)≤π(u) En effet (avecx≥0) :
Cx=d=⇒(u|Cx) = (u|d)
C∗u≥a=⇒(C∗u|x)≥(a|x)
Ex 16 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.