Vous êtes sur la page 1sur 4

cole des Mines de Nancy

2me anne

Sance de T.P. n3
Cours : Optimisation Optimisation sous contraintes Lobjectif de cette sance de travaux pratiques est de vous apprendre coder des algorithmes gnraux de minimisation avec contraintes : lalgorithme dUzawa et la mthode de pnalisation. Lalgorithme dUzawa est rappel au dbut du TP.

Partie I : Quelques rappels de cours 1 Lalgorithme du gradient projet

La mthode du gradient projet sinspire des mthodes usuelles de gradient. Supposons, dune faon gnrale, que lon souhaite minimiser une fonctionnelle J : Rn R sur un ensemble de contraintes C . Si lon construit une suite ditrs de la forme xk+1 = xk + k dk , o dk est une direction de descente, on ne peut pas tre sr que si xk appartient C , alors xk+1 appartiendra encore C . Il faut donc ramener xk+1 dans C , ce que lon fait en utilisant une projection. Algorithme du gradient projet 1. Initialisation. k = 0 : on choisit x0 Rn et 0 R +. 2. Itration k. xk+1 = C xk k J (xk ) . C dsigne ici la projection sur C Notons galement le rsultat de convergence : Thorme 1 On suppose que J est C 1 , de drive Lipschitzienne, et elliptique, cest dire quil existe > 0 tel que : (x, y ) (Rn )2 , (J (x) J (y ), x y ) . x y 2 .
Si lon choisit le pas k dans un intervalle [1 , 2 ] tel que 0 < 1 < 2 < 2 M , o est la constante dellipticit de J et M , la constante de Lipschitz de la drive de J , alors la suite (xn )n0 ditrs par la mthode du gradient projet converge vers la solution du problme de minimisation.

Lalgorithme dUzawa

Supposons que lon souhaite rsoudre sur Rn le problme (P ) min J (x), x C , o : C = {x Rn , h(x) = 0, g(x) 0}, avec h = (hi )1ip et g = (gj )1j q . 1

Appelons L, la fonction Lagrangienne associe ce problme. Alors : x Rn , L(x, , ) = J (x) + (, h(x))Rp + (, g(x))Rq . On voit ici que la fonction Lagrangienne englobe la fois la fonctionnelle J et les contraintes h et g. Elle reprsente donc bien le problme (P ). Avant de poursuivre, souvenons-nous de ce que lon appelle point selle. Dnition 1 On appelle point selle de L sur Rn Rp (R+ )q , tout triplet (x , , ) vriant lquation : L(x , , ) L(x , , ) L(x, , ), (x, , ) Rn Rp (R+ )q . (1)

Le thorme suivant nous permettra de comprendre intuitivement lalgorithme dUzawa. Pour une comprhension totale, il faudra sintresser au problme dual de (P ). Thorme 2 Supposons J , g et h convexes, de classe C 1 . Alors, le triplet (x , , ) Rn Rp (R+ )q est un point selle de L si, et seulement si ce triplet vrie les conditions de Kuhn-Tucker. Ce thorme nous aide comprendre que, pour chercher le triplet (x , , ) Rn Rp (R+ )q vriant les conditions de Kuhn-Tucker, on peut procder de la faon suivante : Pour ( , ) Rp (R+ )q , xs, on peut chercher le minimum sans contrainte (i.e. sur tout lespace Rn ) de la fonction x L(x, , ). Cela traduit le terme de droite de lquation (1). Pour x Rn x, on cherche le maximum sur Rp (R+ )q de la fonction (, ) L(x , , ). Cest ce que traduit le terme de gauche de lquation (1). Cest cette ide quutilise lalgorithme dUzawa :

Algorithme dUzawa 1. Initialisation. k = 0 : on choisit 0 Rp et 0 (R+ )q . 2. Itration k. k q k p k k k = (k 1 , ..., p ) R et = (1 , ..., q ) R sont connus. (a) Calcul de xk Rn solution de : (Pk ) min L(x, k , k ). n
xR

(b) Calcul de k+1 et k+1 par les formules :


+1 k k = k i + hi (x ), i {1, ..., p} i +1 k k = max(0, k j + gj (x ), j {1, ..., q }. j

Enn, signalons le thorme suivant qui pourrait se rvler utile en pratique : Thorme 3 On suppose que J est C 1 et elliptique. Supposons de plus que h est ane, g est convexe de classe C 1 et lipschitziennes. On suppose de plus que le Lagrangien L possde un point 2

selle (x , , ) sur Rn Rp (R+ )q . Alors, il existe 1 et 2 , avec 0 < 1 < 2 tels que, pour tout [1 , 2 ], la suite (xk )k0 gnre par lalgorithme dUzawa converge vers x . De plus, on sait que 2 = 2(M 2 2 , avec , la constante dellipticit de J , Mh et Mg , les h +M g ) constantes de Lipschitz associes h et g.

Partie II : Exercices
EXERCICE N. 1
Optimisation dun portefeuille dactions
TPUza1

On considre le problme de lOptimisation dun portefeuille. Supposons que lon possde n actions, que lon reprsente par des variable alatoires R1 , ..., Rn . Chaque action rapporte en moyenne lactionnaire ei = E(Ri ) (esprance de Ri ) au bout dun an. On suppose que lon investit une somme S donne, et lon note xi R, la proportion de la somme investie dans
n

laction i. Ainsi, on a :
n i=1

xi = 1. Le portefeuille total est reprsent par la variable alatoire :


n

R=
i=1

xi Ri et rapporte donc en moyenne : E(R) =


i=1

xi ei .
n

On dsire imposer un rendement donn r0 > 0, ce qui se traduit par : r0 = On modlise le risque du portefeuille par : 2 (x) = E[(R R)2 ]. On note A = (aij ) 1in , la matrice de covariance dnie par la relation :
1j n i=1

xi ei .

(i, j ) {1, ..., n}2 , aij = E[Ri E(Ri )]E[Rj E(Rj )]. On peut alors crire que 2 (x) = (x, Ax). On appelle J , la fonctionnelle dnie sur Rn par : J (x) = 1 (x, Ax). 2

On appelle galement K , lensemble des contraintes : K := {x Rn : (x, u) = 1 et (x, e) = r0 }. Le but de ce TP est de dterminer numriquement la solution du problme : (P ) min J (x) . xK

1. Mettre lensemble des contraintes sous la forme K = {x Rn : Cx = f }, o C et f dsignent respectivement une matrice et un vecteur prciser. Rappeler comment se traduisent les conditions dOptimalit de ce problme et formuler lquation en x rsoudre chaque itration. 2. On souhaite tudier un exemple concret. Supposons que : i {1, ..., n}, ei = i, que r0 = 2.5. Pour les tests numriques, on se placera par exemple dans le cas o n = 5. crire un programme genere.m permettant de gnrer la matrice A laide des instructions suivantes : A=diag(e./n); R=rand(n,n); A=A+0.1.*R*R; Expliquer la dernire ligne du programme. 3

3. Pour direntes matrices A, programmer lalgorithme dUzawa. On noubliera pas dimposer un nombre maximal ditrations. 4. Quel inconvnient majeur constatez-vous ici ? , lensemble dni par : 5. On appelle donc prsent K = {x Rn : x 0, (x, u) = 1 et (x, e) = r0 } . K Si lon souhaite amliorer la rsolution du problme, on est amen rsoudre : min J (x).
xK

6. Comment doit-on choisir la constante qui intervient dans lalgorithme dUzawa. Soyez prcis. 7. crire lalgorithme dUzawa crit sous sa forme la plus gnrale, puis le tester.

EXERCICE N. 2
Mise en uvre dune mthode de pnalisation
TPPena

On considre la fonctionnelle J dnie sur R2 par : J (x, y ) = 2x2 + 3xy + 2y 2 . On appelle Q le cadrant dni par : Q= 1 1 x , y 2 2

1. (a) Quelle est la solution du problme de minimisation de J sans contrainte ? (b) On appelle X , le minimum de J sous la contrainte X Q. Dmontrer que, ncessairement, J (X ) = 0 ou X Q. (c) Mettre en uvre la mthode du gradient projet pour rsoudre le problme de minimisation : min J (x, y ).
(x,y )Q

Pensez-vous que la mthode du gradient conjugu peut tre associe la mthode de projection ? Pourquoi ? (d) Reprsenter les itrs par cette mhode. 2. Sil vous reste du temps. Nous allons reprendre le mme problme que prcdemment, et valuer une mthode de pnalisation. On propose les tapes suivantes : (a) Mettre en place une fonction de pnalisation x (x), en rchissant lexpression quelle aura sur le cadrant Q. Dterminer alors le gradient de la fonctionnelle pnalise. Remarque : attention au choix de la pnalisation ! La fonctionnelle pnalise doit tre direntiable. (b) Tracer les courbes de niveau de la nouvelle fonction cot et son gradient, pour plusieurs valeurs de . Que constatez-vous quant la vitesse de variation de la fonction cot ? Dans la suite, on tracera le gradient uniquement sur le domaine admissible. (c) Pour une valeur petite de , par exemple = 104 (pnalisation forte), et un point de dpart x0 = (0.3, 0.5)t , tester la mthode de pnalisation pour les mthodes de gradient pas xe et pas optimal. En visualisant les itrs, peut-on dire que la vitesse de convergence est satisfaisante ? Rpter le test pour = 0.5 (pnalisation faible). Que peut-on dire de la convergence ? Quid de la solution trouve ? (d) Dduire de ces observations une mthode qui converge plus rapidement.