Archive for December, 2010

sleeveface - Throbbing Gristle : Greatest Hits (Entertainment Through Pain)

Monday, December 6th, 2010

Peter Christopherson est mort le jour de mon demi-anniversaire dernier.
sleevefacetg.jpg
Et hop une autre sleeveface, hint : je ne porte pas de docs.

optimisation avec (une seule) contrainte pour les fonctions de 2 variables, lagrangien et hessienne bordée

Monday, December 6th, 2010

comme promis dans les commentaires au post précédent sur l’optimisation sans contrainte, un petit topo rapide sur le cas avec contrainte. J’ai toujours un peu l’impression de faire du reverse engineering sur mes propres connaissances et la façon sont les choses sont présentées en général dans les documents académiques, surtout dans le cas où, comme ici, la notion est principalement utilisée en tant qu’outil appliqué, en l’occurence à l’économie.

****
j’avais publié puis dé-publié ce post parce que j’avais fait une bêtise, je m’étais arrếtée au cas contrainte linéaire, pour laquelle le lagrangien ne présente aucun intérêt.
Il faut que je mène le calcul réel pour la condition du second ordre, en calculant le long de la contrainte et prenant en compte la valeur de λ obtenue grâce aux conditions du premier ordre. J’espère retomber sur l’expression du déterminant de la hessienne bordée.
Donc en attendant, je publie en l’état, et en guise d’auto-flagellationn je réprime le jeu de mot hyper vulgaire que j’avais mis dans le titre.
****

On veut optimiser f(x,y) sous la contrainte g(x,y)=0.
Supposons que l’on peut paramétrer par (x(t),y(t)) la courbe de niveau correspondant à g(x,y)=0, quitte à passer localement par des fonctions implicites (ce qui demande un gradient non nul pour g). Le problème se ramène alors à optimiser la fonction F(t) = f(x(t),y(t)). Par dérivation de g et F, on obtient :
     ∂g/∂x (x(t), y(t)).x’(t) + ∂g/∂y (x(t), y(t)).y’(t) = 0 car g est constante par définition le long de sa courbe de niveau d’une part (et que le gradient est orthogonal à la courbe de niveau enfin zut quoi !),
     et d’autre part ∂f/∂x (x(t0), y(t0)).x’(t0) + ∂f/∂y (x(t0), y(t)0).y’(t0) = 0 pour un certain t0 qui permet d’atteindre l’extremum recherché.
Ainsi les gradients de g et de f sont tous les deux orthogonaux à (x’(t0),y’(t0)), soit, colinéaires, d’où l’idée de Lagrange d’introduire λ tel que :
     ∇f(x0,y0) = λ ∇g(x0,y0) et g(x0,y0)=0 au point qui permet de réaliser un extremum.
“Élégamment” noté L (x,y,λ) := f(x,y) - λg(x,y) et la condition nécéssaire du premier ordre d’optimum devient donc ∇ L (x0,y0,λ) = 0 .

Reste à déterminer une condition suffisante, et l’on retrouve l’étude de la convexité. À partir du développement limité à l’ordre 2 obtenu dans le post précédent, et avec le même raisonnement dans le cas d’un minimum pour fixer les idées, il faut donc que le terme d’ordre 2 soit positif le long de la courbe de niveau autour de l’extremum: ∂²f/∂x².(x0, y0) h² + 2.∂²f/∂x∂y (x0, y0) . hk + ∂²f/∂y² (x0, y0) . k² > 0. Il suffit ensuite d’expliciter les accroissements qui permettent de rester sur la courbe de niveau : fonction implicite (ou statique comparative) on a : dy = - ∂g/∂y / ∂g/∂x dx que l’on injecte dans le terme d’ordre 2 en tant que k (et h = dx), puis multiplié par (∂g/∂x)² et divisé par dx² on obtient la condition suffisante du second ordre :
     ∂²f/∂x² . (∂g/∂x)² - 2.∂²f/∂x∂y . ∂g/∂y . ∂g/∂x + ∂²f/∂y² . (∂g/∂y)² > 0
et dans le cas d’un maximum :
     ∂²f/∂x² . (∂g/∂x)² - 2.∂²f/∂x∂y . ∂g/∂y . ∂g/∂x + ∂²f/∂y² . (∂g/∂y)² < 0
…. et c’est là que l’on observe que cette expression est justement l’opposée du déterminant de la matrice hessienne bordée du Lagrangien.
La bonne blague.
Il me reste à comprendre si lorsque l’on exprime tout ceci en terme de convexité du Lagrangien, cela repose uniquement sur ces “élégances” d’écriture, ou sur une réalité géométrique sous-jascente que je ne saisis pas encore ne serait-ce dans le cas de 2 variables. Subjectivité disait-il.