Académique Documents
Professionnel Documents
Culture Documents
Module Modélisation
Polycopie pédagogique
Par
Abdelkrim EL MOUATASIM Professeur Habilité
Outils d’optimisation
Définition 1 (Différentielle au sens de Fréchet) Une application f (x) de V dans W est différentiable en
x ∈ V si il existe une application linéaire continue de V dans W, notée D f (x) telle que
D f (M).h = Mh + hM
1
Définition 2 (Différentielle au sens de Gâteaux) Une fonction F(x) de V dans R est une fonction diffé-
rentiable au sens de Gâteaux en x ∈ V si il existe une forme linéaire sur V, notée DF(x), telle que
d
∀h ∈ V F(x + λh)|λ=0 = DF(x).h (1.1)
dλ
Theorem 1 (Lien avec Fréchet) Si F est différentiable au sens de Fréchet, F est différentiable au sens de
Gâteaux.
Exemple 3 Soit V = Rn
1 X x4j
f (x) = hAx, xi +
2 4
j
d X
D f (x).h = f (x + th)|t=0 = hAx, hi + x3j h j
dt
j
Exemple 4 Soit V = Rn et f (x) = Ax + x3 , où A est une matrice. Soit ∆(x) la matrice diagonale telle que
∆i,i = 3x2i .
d
D f (x).h = f (x + th)|t=0 = Ah + ∆(x)h
dt
Définition 3 (Gradient) Soit V un espace de dimension finie muni d’un produit scalaire h·, ·i. Il existe un
vecteur, le gradient, noté ∇ F(x), tel que
DF(x).h = h∇ F(x), hi
:
Si V = Rn et hx, yi =
P
i xi yi on retrouve la définition usuelle du gradient
∂F ∂F ∂F t
∇ F(x) = ( , ..., , ..., )
∂x1 ∂xi ∂xn
le gradient définit la direction de plus grande pente ⊥ à la surface équipoten-
tielle.
Exemple 5
D f (x).h = hAx + x3 , hi
∇ F(x) = Ax + x3
J f = A + ∆(x)
2
Soit V = Rn et F(x) une fonction différentiable en tout point. Si f (x) = F0 (x) = ∇F(x) est une application
différentiable de Rn dans Rn , la matrice jacobienne J f (x) est symétrique .
Définition 5 (Hessien) Le Hessien de la fonction F(x), supposée deux fois différentiable, est la matrice HF(x)
telle que
d2
F(x + λh)λ=0 = hHF(x)h, hi
dλ2
Ce qui implique
∂2 F(x)
HF(x)i, j =
∂xi x j
Exemple 7 Soit V = Rn
1 X x4j
F(x) = hAx, xi +
2 4
j
f (x) = ∇ F(x) = Ax + x3
J f = A + ∆(x)
HF = A + ∆(x)
1.1.1 Applications
Définition 6 Une matrice réelle D de dimension n × n est semi-définie positive si xT Dx ≥ 0 pour tout x ∈ Rn .
Définition 7 Une matrice réelle D de dimension n×n est définie positive si xT Dx > 0 pour tout x ∈ Rn , x , 0.
Theorem 2 Si x ∈ V est un minimum local de F(x) et (si V = Rn ) le Hessien HF(x) est semi-défini positif.
Réciproquement :
Si DF(x) = 0 et si il existe une boule Br (x) telle que le Hessien est semi-défini positif alors x est un minimum
local. Si
1
∀h ∈ V F(x + h) = F(x) + h∇ F(x), hi + hHF(x)h, hi + (h)khk2
2
où limh→0 k(h)k = 0.
1.1.2 Approximation
Dérivation numérique
• Méthode "naïve" :
f (x+h)− f (x)
f 0 (x) ≈ h
• en théorie, la formule est vraie pour h ≈ 0
• en pratique, attention au choix de h !
• h trop grand : calcul trop approximatif
• h trop petit : problèmes d’arrondis
Méthode des différences centrales
• Taylor :
2 3
• f (x + y) = f (x) + h f 0 (x) + h2! f 00 (x) + h3! f 000 (x) + . . .
3
• On connaît f sur un ensemble de points {xi , yi }
• h = xi+1 − xi
2 3
• f (x + h) → yi+1 = yi + h f 0 (xi ) + h2! f 00 (xi ) + h3! f 000 (xi ) + . . .
2 3
• f (x − h) → yi−1 = yi − h f 0 (xi ) + h2! f 00 (xi ) − h3! f 000 (xi ) + . . .
0 3 00 0 yi+1 −yi−1
f (x+h)− f (x−h) ⇒ yi+1 −yi−1 = 2h f (xi )+ 2h3! f (xi )+... en négligeant les termes en h3 : f (xi ) ≈ 2h
meilleure approximation que la méthode "naïve" (h3 /h2 )
Calcule des dérivées d’ordre supérieur :
00
f xi ?
0 2 00 3 000
yi+1 = yi + h f (xi ) + h2! f (xi ) + h3! f (xi ) + ...
0 2 00 3 000
yi−1 = yi − h f (xi ) + h2! f (xi ) − h3! f (xi ) + ...
2 00
yi+1 + yi−1 = 2yi + 2h2! f (xi ) + ...
• en négligeant les termes en h4 :
Une fonction est convexe si tout point sur le segment de droite joignant f (a) et f (b) se trouve au-dessus
du graphe de f :
Propriété 1 Soit X ⊂ Rn un ensemble convexe. Soit f : X −→ R1 une fonction convexe. Si x̄ est un minimum
local de f sur X, alors x̄ est un minimum global de f sur X.
Démonstration : La preuve se fait par contradiction en supposant qu’il existe un point x̂ ∈ X tel que
f (x̂) < f (x̄). Puisque f est convexe, f (θx̂ + (1 − θ)x̄) ≤ θ f (x̂) + (1 − θ) f (x̄) < θ f (x̄) + (1 − θ) f (x̄) = f (x̄)
pour tout θ ∈ (0, 1]. Or pour θ > 0 suffisamment petit,
Ainsi f (x(θ)) < f (x̄) où x(θ) ∈ B(x̄) ∩ X, contredisant que x̄ est un minimum local de f sur X.
4
f (x)
f (b)
f (a)
x
a b
f (x)
fonction concave
Corollaire :
Soit X ⊂ Rn un ensemble convexe. Soit f : X −→ R1 une fonction convexe
de classe C1 /X. Alors si ∇ f (x∗ )T (x − x∗ ) ≥ 0 pour tout x ∈ X, alors x∗ est un
minimum global de f sur X.
5
d’où f (x) ≥ f (x∗ ) pour tout x ∈ X. Donc x∗ est un minimum global de f sur X. Conséquence :
d2 f (x)
∀ x, ≥ 0;
dx2
d2 f (x)
∀ x, > 0;
dx2
d2 f (x)
∀ x, ≤ 0;
dx2
d2 f (x)
∀ x, < 0.
dx2
Supposons que f est une fonction deux dérivable de deux variables. Dans ce cas, nous utilisons
la Table 1.1 comme conditions nécessaires.
Convexe Strict. Concave Strict.
convexe concave
∂2 f (x1 ,x2 )
∂x21
≥0 >0 ≤0 <0
∂2 f (x1 ,x2 )
∂x22
≥0 >0 ≤0 <0
2
∂ f (x1 ,x2 ) ∂ f (x2 ,x2 )
2 2
∂ f (x1 ,x2 )
2
∂x21
. ∂x2 − ∂x1 x2 ≥0 >0 ≥0 >0
2
Table 1.1 – Test de convexité et de concavité pour une fonction à deux variables deux fois dérivable
Ces tests se généralisent à des fonctions de plus de deux variables en utilisant le Hessien (la
matrice des dérivées secondes). Deux résultats supplémentaires sont utiles pour tester la convexité :
— une fonction qui s’exprime comme la somme de fonctions convexes (concaves) est convexe
(concave) ;
— l’opposé d’une fonction concave est convexe et vice-versa.
Pour les fonctions f de classe C2 , il existe un critère pour vérifier la convexité qui est basé sur le
Hessien ∇2 f .
Propriété 3 Soit X ⊂ Rn un ensemble convexe dont l’intérieur est non vide. Soit f : X −→ R1 une fonction
de classe C2 /X. Alors f est convexe sur X si et seulement si son Hessien ∇2 f est une matrice semi définie
positive pour tout x ∈ X.
6
1.2.2 Valeurs propres
Theorem 3 Une matrice symétrique définie positive possède des valeurs propres strictement positives.
Démonstration :
1. Supposons A symétrique définie positive. Soit λi une valeur propre associée au vecteur propre
xi . On a donc Axi = λi xi , et xTi Axi = λi xTi xi = λi kxi k2 > 0.
2. Réciproquement, si toutes les valeurs propres sont positives, on a pour tout vecteur propre xi
xTi Axi > 0. Ces derniers formant une base orthonormée, on écrit pour tout x , 0
n T n n
X X X
xT Ax = αi xi A αi xi = α2i λi > 0.
i=1 i=1 i=1
x1 ≤4 (usine 1)
2x2 ≤ 12 (usine 3)
3x1 + 2x2 ≤ 18 (usine 3)
x1 ≥ 0, x2 ≥ 0 (non-négativité)
Exemple 9 (Wyndor Glass) Modifions l’exemple Wyndor Glass en remplaçant certaines contraintes par une
contrainte non linéaire.
7
x2
8
7
(2, 6)
6
5
4 z = 36 = 3x1 + 5x2
domaine
3
réalisable
2
1
0 x1
0 1 2 3 4 5 6
Modifions encore l’exemple Wyndor Glass, mais cette fois en remplaçant l’objectif lineaire par
une fonction non lineaire, comme illustré sur la Figure 1.4 :
Nous pouvons à nouveau remarquer que l’objectif est concave et que le domaine réalisable est
convexe : c’est aussi un modèle de programmation convexe. Ici, la solution optimale (8/3, 5) est sur la
frontière du domaine réalisable, mais ne correspond pas à un point extrême du domaine réalisable.
Considérons le même exemple, mais avec une fonction objectif différente, tel que représenté sur
la Figure 1.5 :
Il s’agit à nouveau d’un modèle de programmation convexe, avec comme solution optimale (3, 3),
laquelle se trouve à l’intérieur du domaine réalisable. La fonction objectif est la somme de deux
fonctions d’une seule variable. Si nous annulons les dérivées de chacune de ces fonctions, nous
obtenons la solution unique (3, 3), qui se trouve à l’intérieur du domaine ; c’est donc nécessairement
la solution optimale.
Revenons sur la fonction objectif initiale, mais introduisons une contrainte non-linéaire, qui définit
8
x2
9
8
7
6
(8/3, 5)
5
4
domaine z = 907
3 z = 857
réalisable z = 807
2
1
0 x1
0 1 2 3 4 5 6 7 8 9
9
x2
7
6
z = 117
5 z = 162
4 z = 189
z = 198
3
(3, 3)
2
1
0 x1
0 1 2 3 4 5 6 7
x2
8
7 (0.7) = maximum global
6
5
4 z = 35 = 3x1 + 5x2
10
Chapitre 2
2.1 Introduction
2.1.1 Formulation générale des problèmes d’optimisation
La forme générale d’optimisation est la suivante :
min f (x)
s.c. g(x) ≤ 0
(2.1)
h(x) = 0
x ∈ Rn .
Il va de soi que la plupart des problèmes réels ou industriels ne sont pas initialement sous la forme
proposée. C’est pourquoi un des premiers travaux consiste en général à mettre le problème initial
sous une forme standard. Par exemple, un problème donné sous forme
maxn g(x),
x∈R
se mettra sous la forme standard d’optimisation sans contraints de (2.1) en posant f (x) = −g(x).
Considérons tout d’abord le cas d’un modèle de programmation non-linéaire dans lequel il n’y a
aucune contrainte :
Il est alors possible de montrer que si x∗ = (x∗1 , x∗2 , . . . , x∗n ) est un minimum local, alors
∂ f (x∗ )
= 0, j = 1, 2, . . . , n.
∂x j
En d’autres mots, lorsque la dérivée s’annule en un point donné, ce point peut être un maximum
local, mais l’inverse n’est pas nécessairement vérifié : ce point peut aussi être un minimum local ou
un point de selle. Par contre, si f est convexe, un point où la dérivée s’annule est nécessairement un
minimum global. De plus, si f est strictement convexe, un tel minimum global est unique.
Dans le cas d’une fonction non convexe, afin de trouver un minimum global, il faut
— identifier tous les minima locaux ;
— identifier celui de plus petit valeur ;
— vérifier que la fonction est bornée inférieurement (sinon, il n’y a pas de minimum global).
Le problème est qu’identifier tous les minima locaux peut être extrêmement difficile.
11
2.1.2 Résultats d’existence
Considérons notre problème d’optimisation (2.1), que l’on écrira un peut différemment, en mettant
les contraintes sous la forme x ∈ K ⊂ Rn :
min f (x). (2.3)
x∈K
Définition 8 Une ensemble K ⊂ Rn est dit compact si, de toute suite {xk }, où xk ∈ K, ∀k, on peut extraire
une sous-suite convergente.
Exemple 10 Dans R, les intervalles fermés du type [a, b] sont compacts. La notion de fermeture signifie
qu’une suite {xk }, où xk ∈ K, ∀k, doit converger vers une limite x ∈ K. Pour illustrer sur un exemple qu’un
intervalle ouvert dans R ne peut pas être compact : soit K = ] 0, 1 ] et la suite xk = 1k , on a bien xk ∈ K mais
lim xk = 0 < K.
k→0
Démonstration : Soit x0 ∈ Rn . Puisque lim f (x) = ∞ il existe M > 0 tel que kxk > M ⇒ f (x) > f (x0 ),
kxk→∞
donc
∃M > 0, f (x) ≤ f (x0 ) ⇒ kxk ≤ M.
Puisque est caractérisé par f (x∗ ) ≤ f (x), ∀x ∈ Rn , on a donc forcément kx∗ k ≤ M. Donc x∗ est
x∗
solution du problème
min f (x),
kxk≤M
2.1.3 Unicité
Theorem 7 Si f : K ⊂ Rn −→ R strictement convexe sur K convexe. Le minimum de f sur K, s’il existe, est
unique
Démonstration : Soit donc x∗ ∈ K tel que f (x∗ ) ≤ f (x), ∀x ∈ K. Supposons qu’il existe y∗ , x∗ tel que
f (y∗ ) ≤ f (x), ∀x ∈ K. Formons pour λ ∈ ] 0, 1 [ le vecteur
u = λy∗ + (1 − λ)x∗ .
D’après la stricte convexité de f et puisque nécessairement f (y∗ ) = f (x∗ ) on a
f (u) < λ f (y∗ ) + (1 − λ) f (x∗ ) = f (x∗ ),
ce qui contredit le fait que x∗ soit un minimum. On a donc x∗ = y∗ .
12
2.1.4 Conditions d’optimalité
Conditions nécessaires
Theorem 8 Soit f : Rn −→ R différentiable et x∗ vérifiant
f (x∗ ) ≤ f (x), ∀x ∈ Rn ,
alors on a nécessairement
∇ f (x∗ ) = 0.
Démonstration : On a
2
f (x∗ + th) = f (x∗ ) + t∇ f (x∗ )T h + t2 hT ∇2 f (x∗ )h + t2 khk2 (th),
2
= f (x∗ ) + t2 hT ∇2 f (x∗ )h + t2 khk2 (th).
On a donc pour t > 0
f (x∗ + th) − f (x∗ ) 1 T 2 ∗
= h ∇ f (x )h + khk2 (th).
t2 2
Donc si t est suffisamment petit on aura bien f (x∗ + th) − f (x∗ ) > 0 puisque hT ∇2 f (x∗ )h > 0.
13
Cas de fonctions à deux variables
Tout comme
∂2 f (x, y) ∂2 f (x, y)
= ,
∂x∂y ∂y∂x
on a :
∂2 f (x, y)
∆1 = ,
∂x2
∂2 f (x, y) ∂2 f (x, y) ∂2 f (x, y) 2
∆2 = − ( ) ,
∂x2 ∂y2 ∂x∂y
:
Ainsi
— ∆1 > 0 et ∆2 > 0 −→ minimum.
— ∆1 < 0 et ∆2 > 0 −→ maximum.
— ∆1 quelconque et ∆2 < 0. −→ point-selle.
— ∆1 quelconque et ∆2 = 0. −→ on ne peut pas conclure.
2.1.5 Algorithme
Résolution d’équations
— L’identification des points critiques revient à résoudre
∇ f (x) = 0.
2.1.6 Histoire
Histoire d’algorithme
14
2.2 Fonctions à une seule variable
2.2.1 Méthode de la bissection
Considérons en premier lieu le cas le plus simple : la fonction objectif f est concave et comporte
une seule variable. Il est alors possible de montrer que, si x∗ est une solution optimale et il existe xi et
xu tels que xi ≤ x∗ ≤ xu et f (xi ) , f (x∗ ), f (xu ) , f (x∗ ), alors il existe a et b tels que a ≤ x∗ ≤ b et
d f (x)
> 0, si x < a,
dx
d f (x)
= 0, si x = x∗ ,
dx
d f (x)
< 0, si x > b.
dx
f (x)
d f (x)
dx =0
x
x∗
xi + xu
xc = ,
2
et nous passons à l’étape suivante. Sinon, c’est-à-dire si
|xu − xi | ≤ 2,
avec > 0 suffisamment petit, nous nous arrêtons : xc est une approximation suffisamment précise de
la solution optimale.
15
4 Si la dérivée en xc est nulle, arrêt : xc est la solution optimale.
5 Si la dérivée en xc est positive, nous posons xi = xc .
6 Si la dérivée en xc est négative, nous posons xu = xc .
7 Retour à l’étape 3.
critéres d’arrêts
|x1 −x2 |
1. L’erreur absolue : |r − xm | ' 2 < abs
|r−xm | |x1 −x2 |
2. L’erreur relative : |r| ' |xm | < rel
3. On peut arrêter l’algorithme si f 0 (xm ) < f
L
|r − xm | ≤ .
2n
Étant donnée une erreur absolue ∆r, c’est quoi la valeur de n (nombre d’itérations )pour avoir
L
|r − xm | ≤ < ∆r
2n
L
ln( ∆r )
La réponse est : n > ln 2 .
16
2.2.3 Méthode de Newton
Soit une équation à résoudre de la forme :
f 0 (x) = 0
f 0 (x0 )
δx = −
f 00 (x0 )
la correction δx est en principe la quantité que l’on doit ajouter à x0 pour annuler la fonction
f 0 (x).puisque nous avons négligé les termes d’ordre supérieur ou égal à 2 dans le développement de
taylor, cette correction n’est pas parfaite et l’on pose :
x1 = x0 + δx
5. si |xn+1 −xn |
|xn+1 | < a :
— convergence atteint
— écrir la solution xn+1 : arrêt
6. si le nombre maximal d’itérations N est atteint :
— convergence non atteinte en N iterations : arrêt
7. retour à l’étape 4.
Étude de convergence
On peut associer la méthode de Newton à l’application de la méthode de point fixe sur une
fonction g particulière
f 0 (x)
g(x) = x − 00
f (x)
17
On retrouve les résultats de convergence obtenue pour le point fixe. On peut cependant revoir les
résultats en fonction de f 0 puisque la relation en f 0 et g est maintenant fixée.
00 000 000
0 ( f (x))2 − f 0 (x) f (x) f 0 (x) f (x)
g (x) = 1 − 00 = 00
( f (x))2 ( f (x))2
Principe
Déterminer un intervalle [a, b] sur lequel il y a convergence de Newton n’est pas toujours facile. Il
existe cependant un théorème qui donne une condition suffisante.
Theorem 11 (convergence globale de la méthode de Newton) Si la fonction f 0 (x) définie sur [a, b] vé-
rifie :
1. f 0 (a) f 0 (b) < 0
18
2. ∀x ∈ [a, b] f 00 (x) , 0 (stricte monotonie de f 0 )
3. ∀x ∈ [a, b] f 000 (x) , 0 (concativité de f 0 dans le même sens.)
Alors en choisissant x0 de [a, b] tel que f 0 (x0 ) f 000 (x0 ) > 0, les itérations de Newton convergent vers
l’unique solution x∗ de f 0 (x) = 0 dans [a, b]. De plus, la convergence est quadratique.
donc si on écrit
f (x + td) − f (x)
= ∇ f (x)T d + (t),
t
on voit bien que pour t suffisamment petit on aura f (x + td) − f (x) < 0.
Dans la méthode (2.4) le choix de tk est lié à la fonction
19
en particulier, une façon de choisir tk peut être de résoudre le problème d’optimisation (à une seul
variable)
min ϕ(t).
t>0
Le pas t̂k obtenu ainsi s’appelle le pas optimal. La fonction ϕ(t) = f (xk + tdk ) étant différentiable, on a
alors nécessairement
ϕ0 (t̂k ) = ∇ f (xk + t̂k dk )T dk = 0.
Considérons une fonction concave f de plusieurs variables. La méthode de la bissection ne peut plus
s’appliquer, aussi nous devons nous tourner vers une meilleure alternative. La gradient de f au point
x0 est défini comme
∂ f (x0 )
∂x10
∂ f (x )
∇x f (x0 ) = ∂x. 2 .
..
∂ f (x0 )
∂xn
Il est possible de montrer que le gradient correspond a une direction d’augmentation de la valeur de
f . Ainsi, dans la méthode du gradient, nous nous déplaçons dans la direction du gradient en tentant
d’augmenter au maximum la valeur de l’objectif. A partir d’un point initial x0 , nous effectuons un
déplacement dans la direction du gradient vers un nouveau point x :
x = x0 + s,
C’est un problème de maximisation d’une fonction concave d’une seule variable : nous pouvons par
conséquent le résoudre, par exemple en employant la méthode de la bissection
Nous posons ensuite x0 = x, et nous itérons ainsi jusqu’à ce que le gradient s’annule (ou presque).
Remarque 2 La valeur de f diminue à mesure que les courbes de niveau se rapproche du centre des ellipses !
20
Nous avons par conséquent l’algorithme suivant.
Algorithme 2 (Méthode du gradient) 1. Déterminer une solution initiale x0 . Posons k = 0. Nous
fixons également une constante > 0 suffisamment petite.
2. Résoudre le problème suivant :
xk+1 = xk + t∗ ∇x f (xk ),
et incrémentons k.
4. Si
∂ f (xk )
≤ , j = 1, 2, . . . , n,
∂x j
21
Convergence
Theorem 13 Soit f ∈ C1 . Tout point limite x∗ d’une sous suite convergent de la suite générée par la méthode
du gradient est tel que ∇ f (x∗ ) = 0.
{xk j } −→ x∗ .
Donc
f (xk j+1 ) ≤ f (xk j − t∇ f (xk j )) ∀t ≥ 0.
Puisque f ∈ C1 , f est continue sur Rn et
Donc
Par conséquent ∇ f (x∗ ) = 0 car autrement si ∇ f (x∗ ) , 0, alors −∇ f (x∗ ) est une direction de descente,
donc il existe t > 0 tq f (x∗ − t∇ f (x∗ )) < f (x∗ ) ce qu’est contradiction avec la relation (2.6).
22
Déplacement en zig-zag
Theorem 14 Si xk+1 = xk − tk ∇ f (xk ) où tk est tel que f (xk − tk ∇ f (xk )) = min{ f (x∗ − t∇ f (x∗ ))}, alors
t≥0
∇ f (xk+1 )T ∇ f (xk ) = 0.
Notes :
1. L’ordre de convergence de la méthode du gradient est linéaire.
2. Au début de son application, la méthode permet de faire diminuer la valeur de la fonction
économique relativement rapidement, mais son efficacité à ce chapitre diminue au cours des
itérations.
3. La méthode du gradient est la méthode la plus rapide marginalement ("steepest descent
methode") :
∇ f (x)T d = k∇ f (x)kkdk cos θ
où θ est l’angle entre d et ∇ f (x). Ainsi, parmi les directions d de norme 1, celle minimisant
∇ f (x)T d a un angle de 180 car cos(180) = −1. Ainsi, cette direction d correspond à
∇ f (x)
− .
k∇ f (x)k
23
2.3.2 La méthode de Newton
La méthode de Newton permet de construire un algorithme permettant de résoudre le système
d’équations non-linéaires
g(x) = 0,
où g : Rn −→ Rn est différentiable : on se donne x0 ∈ Rn et on fait les itérations
où Jg(x) est la dérivée (au jacobienne)de g au point x. L’application de cette méthode au problème
d’optimisation
consiste à l’utiliser pour résoudre le système d’optimalité du problème (2.8), c’est à dire que l’on pose
g(x) = ∇ f (x) dans (2.7) : on obtient les itérations
Algorithme de Newton
L’algorithme de Newton combine la stratégie de Newton de choix de la direction de descente
avec, à chaque étape, une recherche du pas optimal :
x ← x0 , g ← ∇ f (x0 ), H ← ∇2 f (x0 )
Tant que : gT H−1 g ≥tolerance
Calculer le pas optimal t dans la direction : u = −H−1 g
Retourner x
Convergence
Proposition :
La méthode de Newton est intéressant car sa convergence est quadratique au voisinage de la solution,
c’est à dire que l’on a
kxk+1 − x̂k ≤ γkxk − x̂k2 , γ > 0,
24
mais la convergence n’est assurée que si x0 est suffisamment proche de x̂, ca qui en limite l’intérêt.
Pour résoudre le problème de convergence locale de la méthode de Newton, on peut penser à lui
ajouter une phase de recherche linéaire, dans la direction
ce qui sera le cas si ∇2 f (xk ) est une matrice définie positive, ce qui n’est pas garanti (on sait tout au
plus que ∇2 f (x̂) > 0).
25
Chapitre 3
Modélisation Statistique
E(XY) = E(X)E(Y)
Dans le cas général, cette relation n’est pas vraie, on définit la covariance entre X et Y par
Cette valeur n’est pas “normalisée” (si X et Y ont des unités physiques par exemple ce nombre a une
dimension), on définit donc la corrélation par
C(X, Y)
c(X, Y) =
σ(X)σ(Y)
ce nombre est sans unité. On montre qu’il appartient à l’intervalle [−1, 1]. Si Y = X alors c = 1, si
Y = −X alors c = −1. Si les variables sont indépendantes, alors c = 0. Mais la réciproque est fausse.
On utilise toutefois ce calcul pour estimer si deux variables sont corrélées ou indépendantes. Plus
précisément, si deux variables paraissent corrélées, on peut essayer d’exprimer l’une en fonction de
l’autre, c’est ce qu’on va faire dans la section suivante.
∂f
Pn
∂a = 0 = 2 i=1 (a + bXi − Yi )
∂ f = 0 = 2 n Xi (a + bXi − Yi )
P
∂b i=1
équivalentes à :
( Pn
a Pi=1 + b Pni=1 Xi = Pni=1 Yi
P P
(3.1)
a ni=1 Xi + b ni=1 Xi2 = n
i=1 Xi Yi
26
Si on note U la matrice de première colonne remplie de 1, et de deuxième colonne remplie par Xi
(en ligne i),
1 X1
1 X2
U =
... ...
1 Xn
et si on note U∗ la transposée de U,
1 ... 1
!
1
U =
∗
X1 X2 ... Xn
on observe que
Pn Pn !
1 X i
UU=
∗ Pni=1 i=1
Pn 2
i=1 Xi i=1 Xi
E(XY) − E(X)E(Y)
b= , a = Y − bX
σ(X)2
et
E(XY) − E(X)E(Y)
f (a, b) = n(1 − r2 )σ(Y)2 , r=
σ(X)σ(Y)
On montre que cette méthode se généralise (dans sa formulation matricielle), si on veut prévoir
par exemple Yi à partir de deux séries statistiques xi et Xi avec une relation linéaire de la forme
Yi = a + bxi + cXi , alors (a, b, c) est obtenu en calculant inv(U∗ U)U∗ Y, où cette fois la matrice U possède
3 colonnes, la colonne de 1, la colonne des xi et la colonne des Xi . Les calculs pratiques se font de
manière identique.
27
Corrélations entre gaz à effet de serre et température
Si on fait une corrélation température-CO2 sur les 400 000 dernières années, on trouve un rapport
f (a, b)/n sur variance de 0.35, soit une qualité de corrélation de 0.65 (65% de la variance de la
température est expliquée par le taux de CO2) et un coefficient d’augmentation de température de 9
degrés pour 100 ppm de CO2. On peut aussi faire une corrélation température en fonction du CO2
et du CH4, on trouve alors 6 degrés pour 100 ppmv de CO2 et 1.5 degré pour 100 ppbv de CH4 avec
une qualité de corrélation de 0.68.
Bien entendu, une corrélation statistique ne suffit pas à conclure qu’une des variables dépend (au
moins partiellement) de l’autre, mais ici la physique nous montre que l’augmentation du taux de CO2
augmente les radiations solaires capturées au niveau du sol, la corrélation permet de quantifier cet
effet (calcul que l’on pourra comparer à celui obtenu par d’autres méthodes).
Pourquoi b̂ et pas b ?
On cherche à expliquer la variable b par n autres variables v1 , v2 , . . . , vn mais on n’est pas certain que
b ne dépend que de ces variables. Dans l’idéal b̂ = b mais le plus souvent b̂ ≈ b avec b̂ , b.
28
En utilisant les notations matricielles, le système :
s’écrit :
v1,1 v1,2 . . . v1,n α1
v2,1 v2,2 . . . v2,n α2
b̂ = ..
.. .. × ..
. . . .
vm,1 vm,2 . . . vm,n αm
| {z } | {z }
A x
29
Chapitre 4
4.1 Introduction
Considérons le problème d’optimisation :
min f (x)
Ax = b
s.c. (4.1)
x≥0
où
— A est une matrice de taille m × n (m lignes, n colonnes) de rang(A) = m < n.
— f est une fonction de Rn à valeur dans R est de classe C1 .
— b un vecteur de dimension m.
:
Rappelons que, quelque soit le polyèdre initial, il est toujours possible de se
ramener à ce type de contraintes.
Supposons que l’on résolve ce problème en un point quelconque, qui n’est pas un minimum local du
programme (4.1).
Le programme linéaire (4.2) possédera une solution yk telle que
c’est-à-dire, la direction (yk − xk ) constitue une direction de descente réalisable pour le programme
(4.1). Nommant d cette direction, nous allons choisir
xk+1 = xk + θd
de sorte que θ minimise f sur la ligne joignant xk et yk , tout en demeurant réalisable. Alors, f (xk+1 ) <
f (xk ), et nous pouvons recommencer le processus.
30
Nous en déduisons la suite de quantités suivants :
Les observations précédentes montrent que la suite f (xk ) est décroissante. Voir :
Jean-Pierre Dussault. Optimisation mathématique. Université de Sherbrooke, Canada. 2015.
L’algorithme de Frank-Wolfe utilise dans son calcul de direction la minimisation d’une fonction
linéaire et donc résolue par un algorithme de programmation linéaire, i.e.
(AB AN )
où xB est formé des composantes de x indexées dans B et xN est formé des composantes de x indexées
dans N.
Ainsi !
xB
Ax = b ⇔ (AB AN ) = AB xB + AN xN = b
xN
et si AB est inversible alors on peut exprimer xB en fonction de xN par la relation
xB = A−1
B b − AB AN xN .
−1
x1 + 2x2 + 3x3 − x4 = 6
(
Exemple 11 Soit le système
x1 + 3x2 + 2x3 + 5x4 = 4
!
1 2 3 −1
Ici A =
1 3 2 5
31
! ! ! !
1 3 2 −1 x1 x2
Choisissons B = {1, 3}, N = {2, 4}. Alors AB = , AN = , xB , xN
1 2 3 5 x3 x4
! ! ! ! !
xB 1 3 x1 2 −1 x2
(AB AN ) = +
xN 1 2 x3 3 !5 x4
x1 + 3x3 + 2x2 − x4
=
x1 + 2x3 + 3x2 + 5x4
min f (xB , xN )
s.c. (i) BxB + NxN = b,
(4.3)
(ii) xB > 0,
(iii) xN ≥ 0.
Comme pour la programmation linéaire, il est plus commode d’utiliser la transposée du gradient
de f (vecteur ligne) que le gradient de f (vecteur colonne).
On note
∂f ∂f ∂f
=( ,..., ) = ∇ft
∂x ∂x1 ∂xn
(On aura reconnu la matrice jacobienne de f ).
De manière similaire aux notations précédentes on note
∂f ∂f ∂f
=( ,..., ) jk ∈ N
∂xN ∂x j1 ∂x jn−m
et
∂f ∂f ∂f
=( ,..., ) ik ∈ B.
∂xB ∂xi1 ∂xim
Le principe de la méthode du gradient réduit est de considérer le problème (4.3) uniquement en
terme de variables xN .
On résout localement le problème :
∂g ∂f ∂ f −1
= − A AN . (4.5)
∂xN ∂xN ∂xB B
32
Le gradient réduit r(x) correspond au vecteur des coûts réduits en programmation linéaire :
∂f ∂f
r(x) = (x) − (x)A−1
B A.
∂x ∂xB
∂g
On a : rN (x) = ∂xN
(x) et rB (x) = 0.
x1 + 2x2 + 3x3 − x4 = 6
(
et
f (x1 , x2 , x3 , x4 ) = x21 + x22 .
Choisissons B = {1, 3}, N = {2, 4}.
On exprime x1 en fonction de x2 , x4 , on obtient
et
∂g ∂g
( ) = (52x2 + 170x4 170x2 + 578x4 ).
∂x2 ∂x4
:
Définition 10 On appelle algorithme du simplexe convexe la variante de l’algorithme du gradient réduit qui
consiste à ne modifier qu’une seule variable hors base à chaque itération.
Principe de la méthode
Plutôt que de considérer f , fonction de n variables, on considère g fonction de n − m variables. Outre
le fait que le nombre de variables est ainsi mois important, l’intérêt est que ces n − m variables sont
soumises seulement aux contraintes relativement simple de non négativité.
On part d’un point x réalisable et on choisit une partition des variables (B, N) vérifiant les critères
énoncés plus haut.
On va effectuer un déplacement dans la direction opposée au gradient réduit mais en prenant soin
de ne pas rendre négatives les variables indexées dans N et nulles.
33
4.3.2 Convergence de la méthode GR
Principe de la méthode
Si dN , 0 le déplacement se fait jusqu’à atteindre le minimum de f dans la direction d mais en
respectant les contraintes de non négativité des variables. On obtient un nouveau point x0 . Si une de
ses composantes dans B, disons s, s’annule on construit une nouvelle partition des variables
où r est choisi de sorte que AB0 soit inversible et que x0r soit non nul puis on réitère. Cette opération,
appelée changement de base, est nécessaire car sinon on risque de faire du surplace, la nullité de x0s
bloquant le déplacement suivant. Le fait de faire passer s dans N permet de contrôler la variation de
la coordonnée s qui être que positive ou nulle par construction de la direction de déplacement.
Critère d’arrêt : :
Theorem 15 Si la méthode de gradient réduit construit une direction de déplacement nulle, i.e. dN = 0, le
point courant x vérifie les conditions de Kuhn-Tucker.
Démonstration
Les conditions de Kuhn-Tucker s’écrivent :
∂f
(x) + µA − λ = 0
∂x
λ≥0
λi xi = 0 i = 1, . . . , n
∂f
Soient µ = − ∂xB (x)A−1
B
, λB = 0, λN = rN (x). x, µ, λ vérifient-ils ces conditions ? Pour la première égalité
un simple calcul le montre. La deuxième condition (λ ≥ 0) est vérifiée car dN = 0 ⇒ rN (x) ≥ 0 d’après
la définition de dN . La troisième condition (complémentarité) est vérifiée car d j = 0 ⇒ (r j > 0 et x j =
0) ou (−r j = 0) ∀ j ∈ N toujours par définition de dN .
34
Algorithme du gradient réduit
Exemple 13
min f (x) =x21 + x22 + x23 + x24 − 2x1 − 3x4
2x1 + x2 + x3 + 4x4 = 7
s.c.
x1 + x2 + 2x3 + x4 = 6
x≥0
!
2 1
Soient x = (2, 2, 1, 0) , x1 et x2 les variables de base et B =
0 t la base.
1 1
On a : ∇ f (x0 ) = (2, 4, 2, −3)T
! !
1 −1 2 1 1 4
r(x ) = (2, 4, 2, −3) − (2, 4)
0
= (0, 0, −8, −1),
−1 2 1 1 2 1
par conséquent, d3 = 8 et d4 = 1.
On a :
dB = B−1 NdN = (5, −22)T
xkj
et µ ≤ µmax = min {− d j } = 11 .
1
j∈B,d j <0
On vérifie que le minimum de la fonction f (x0 + µd) pour µ ∈ [0, 11 1
] est obtenu pour µ = 1
11 .
La variable x2 quitte alors la base pour y être remplacée par x3 ou x4 , au choix.
Remarque pratique :
au cours de l’algorithme, il faut effectuer le changement de base B0 = B − {s} + {r} N0 = N + {s} − {r}
35
et il faut alors calculer A−1
B0
. Ce calcul peut être fait à moindre coût.
On a l’identité AB0 = (AB AB0 )−1 A−1
−1 −1 AB0 étant obtenue à partir de AB en remplaçant la colonne A{s}
B
1 0 y1 0
y1
. . ..
0 . . ..
.
.
.
par la colonne A{r} , on a AB AB = .
−1 0
p où AB A{r} = p
−1
.
.. . . ..
. .
y
0 ym 1
m
−y1
1 0 p 0
0 . . . ..
.
..
si p , 0 alors (AB AB0 ) = .
−1 −1
1
p
.. .
.
. .
−ym
0 1
p
On peut donc calculer A−1 B0
en prémultipliant A−1 B
par une matrice simple à obtenir. p est appelé pivot
de la colonne r.
x1 + 2x2 + 3x3 − x4 = 6
(
Exemple 14 Reconsidérons le système
x1 + 3x2 + 2x3 + 5x4 = 4
!
1 2 3 −1
A=
1 3 2 5
! !
1 3 −2 3
Choisissons B = {1, 3}, N = {2, 4}. Alors AB = , A−1
B
=
1 2 1 −1
! ! !
−2 3 2 5
Effectuons le changement de base B = {2, 3}, N = {1, 4} AB A{2} =
0 0 −1 = p=5,0
1 −1 3 −1
1 1 −2 3
! ! ! ! !
2 3 0 0 −2 3
et donc AB0 = est inversible (AB AB0 ) = 51
−1 −1 et AB0 = 51
−1 = 35 −2 5
3 2 5 1 5 1
1 −1 5 5
36
(P) revient à le pb d’optimisation avec contraintes d’égalité
min x21 + x22
s.c. x1 + x2 + x3 = 1
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
2
Choisissons le point initial P0 = 0 et B = {3}, N = {1, 2}.
1
Itération 1.
∂g ∂f ∂f
On a x3 = −1 + x1 + x2 . On en déduit g(x1 , x2 ) = f (x1 , x2 , −1 + x1 + x2 ), ∂xN = ( ∂x1 , ∂x2 ) = (2x1 , 2x2 ) et
−4
r(P0 ) = (4 0). La direction de déplacement est 0 .
−4
2 −4
α ≤ 12
(
0 + α 0 ≥ 0 ⇒ ⇒ αmax = 41
α ≤ 14
1 −4
Le minimum de f (2 − 4α, 0, 1 − 4α) sous la contrainte 0 ≤ α ≤ 14 est atteint en α1 = 41 .
1
Le nouveau point est P1 = 0 . Sa coordonnée 3 est nulle. Il faut effectuer un changement de base. L’indice 1
0
est l’indice dans N associé à la coordonnée de P1 la plus grande : on forme la nouvelle décomposition B = {1} et
N = {2, 3}.
Itération 2.
∂g ∂f ∂f ∂f ∂f
On a x1 = 1 − x2 + x3 d’où g(x2 , x3 ) = f (1 − x2 + x3 , x2 , x3 ), ∂xN = (− ∂x1 + ∂x2 ∂x1 + ∂x3 ) = (−2x1 + 2x2 2x1 )
! −2
2
et r(P1 ) = (−2 2). dN = et dB = −2 donc la direction de déplacement est 2 .
0
0
1 −2
0 + α 2 ≥ 0 ⇒ α ≤ 2 ⇒ α
( 1
max = 2
1
α≤0
0 0
Le minimum de f (1 − 2α, 2α, 0) sous la contrainte 0 ≤ α ≤ 12 est atteint en α2 = 14 .
1
2
Le nouveau point est P2 = 12 .
0
Itération 3. !
0
Le gradient réduit en P2 est r(P2 ) = (0 1) donc dN = . On arrête.
0
Vérifions que les conditions de Kuhn-Tucker sont satisfaites : ici A = (1 1 − 1)
∂f
soient µ = − ∂x1 ( 21 , 12 , 0)A−1
1
= −2 × 12 = −1 (car A1 = 1), λ1 = 0, (λ2 λ3 ) = r(P2 ) = (0 1)
∂f 1 1
( , , 0)
∂x 2 2
+ µA − λ = 0 ⇔ (2 × 12 2 × 12 0) − (1 1 − 1) − (0 0 0), donc vérifié.
On aura remarqué que l’on a une écriture “transposée” des équations de Kuhn-Tucker.
λ ≥ 0 et les conditions de complémentarités λ1 × 12 = 0, λ2 × 12 = 0, λ3 × 0 = 0 sont vérifiées.
Remarque 3 en partant du même point on obtient des cheminements différents selon le choix du B initial.
2 2 1
5 5 2
Si l’on choisit B = {1} et N = {2, 3}, on passe par les 3 points P1 = 45 , P2 = 35 , P3 = 12 sans
1
0 0
5
changer de base B.
37
4.4 Autre méthodes
4.4.1 Méthode du gradient projeté
Une idée assez naturelle, pour adapter les méthodes d’optimisation sans contraintes aux pro-
blèmes avec contraintes, est de projeter à chaque étape le déplacement sur la frontière du domaine,
afin de s’assurer que le nouveau point obtenu appartienne à l’ensemble des solutions réalisables.
L’ensemble des contraintes linéaires forme alors un domaine de points réalisables qui s’écrit sous la
forme
Xn
S = {x ∈ R :
n
ai j x j − bi ≤ 0, i = 1, 2, ..., m},
j=1
Soit Aq la sous matrice de A constituée par les lignes des contraintes saturées en un point x de S,
Aq ≡ [a1 a2 ...aq ]t .
Puisque les vecteur ai sont supposés linéairement indépendants, la matrice symétrique Aq Atq est non
singulière. Par conséquent, son inverse (Aq Atq ) existe.
On définit une matrice symétrique n × n par
En modifiant ainsi le moins possible la méthode d’origine, on peut espérer conserver son efficacité.
De nombreux algorithmes basés sur ce schéma général ont été proposés. Un des premiers algorithmes
bâtis suivant ce principe est la méthode du gradient projeté de Rosen qui consiste à projeter le gradient
sur l’intersection des contraintes saturées.
La méthode du gradient projeté consiste à prendre comme direction de déplacement la projection
du vecteur gradient sur la frontière du domaine et dont l’algorithme s’écrit sous la forme générale
suivante :
(i) On part de l’initialisation : x0 ∈ S.
(ii) On génére la suite de vecteurs {xk }k≥1 ∈ S définis par :
Une façon simple de se débarrasser des contraintes est d’intégrer dans la fonction objectif une fonction
qui pénalise les vecteurs qui violent les contraintes, on a
m
X
minn f (x) − pi (x)
x∈R
i=1
38
où pi (x) prend une valeur élevée lorsque gi (x) est strictement positif, ce qui décourage l’adoption de
ces vecteurs x. On peut par exemple poser
où λ est un coefficient positif et grand. Si l’on souhaite que la fonction objectif soit différentiable, on
peut élever l’expression précédente au carré. Pour résoudre le problème pénalisé, il suffit alors de
trouver les points où le gradient de la fonction objectif s’annule.
Principe de pénalisation
Optimisation sous contraintes d’égalité
Le problème formel :
Principe :
Pénalisation
Interprétation
Un problème de mécanique
Équilibre d’un treillis :
1 F1 (x)2
min hKx, xi − hb, xi +
x 2 2
qui est l’énergie potentielle + l’énergie interne du ressort de liaison.
39
Figure 4.1 – Équilibre d’une structure avec contacte unilatéral
Intérêt
Pénalisation
Theorem 16 La √ solution du problème pénalisé tend vers la solution du problème avec contraintes quand → 0.
L’erreur est en
Difficulté :
40