Vous êtes sur la page 1sur 17

5.

Algorithmes d’Optimisation Mathématique

Dépt de Mathématiques, UMBB


Classification des Méthodes d’Optimisation
A. Méthode analytique
• Traite des PM de faible dimension et dérivables
• Solution sous forme de formule
⟹ Valeurs exactes
B. Méthodes algorithmiques
• Applicables dans le cas des PM convexes
Objet de ce cours
• Traitent des PM de très grande dimension
• Rapides, et très bonnes solutions
C. Méthodes heuristiques (‘’optimisation globale’’)
• Applicables pour n’importe quel type de PM
• Continuité et dérivabilité ne sont pas exigées
• Solutions approximatives
• Quelques heuristiques : algorithmes génétiques, réseaux de neurons, recherche tabou, …
Les Méthodes Algorithmiques
Avantages et Inconvénients :
• Elles donnent de très bon résultats pour les PM 𝑥 (0)
convexes. 𝑥 (2)
𝑑 (0)
𝑥∗
• La solution n’est pas garantie dans le cas d’un PM non-
convexe. 𝑑 (1)

Répartition : 𝑥 (1)
• Méthodes unidimensionnelles (𝑥 ∈ ℝ)
• Méthodes multidimensionnelles (𝑥 ∈ ℝ𝑛 ) sans contraintes
• Méthodes multidimensionnelle avec contrainte
Principe : • Un PM multidimensionnelle avec contrainte est
• A partir d’une solution 𝑥 (𝑘) , construire une direction 𝑑 (𝑘) et transformé en PM sans contraintes.
un pas 𝛼𝑘 telle que la nouvelle solution : • Un PM sans contrainte de ℝ𝑛 est transformé en
𝑥 (𝑘+1) = 𝑥 (𝑘) + 𝛼𝑘 𝑑 (𝑘) une série PM de ℝ.
𝑘+1
vérifie 𝑓 𝑥 < 𝑓(𝑥 (𝑘) )
Cas Unidimensionnel (𝒙 ∈ ℝ)
𝑦
Problème : Soit 𝑓: ℝ → ℝ
𝑞𝑘 (𝑥) 𝑓(𝑥)
min 𝑓(𝑥)
𝑥∈ℝ

Quelques Méthodes :
• Méthode de la section d’orrée
• Méthode de Fibonnaci
• Méthode de Newton 𝑥 (𝑘) 𝑥 (𝑘+1) 𝑥∗
𝑥
• Méthode de la sécante Au lieu de minimiser 𝑓(𝑥), minimisant 𝑞(𝑥).
Focus sur la Méthode de Newton : La CNPO est 𝑞 ′ 𝑥 = 0 ⟹
On suppose 𝑓 ∈ 𝐶 2 . 𝑓 ′ 𝑥 (𝑘) + 𝑥 − 𝑥 (𝑘) 𝑓 ′′ 𝑥 (𝑘) = 0
L’idée est d’approximer 𝑓(𝑥) par une fonction et posant le point optimal 𝑥 = 𝑥 (𝑘+1) ⟹
quadratique 𝑞(𝑥) au voisinage de 𝑥 (𝑘) :
𝑓 ′ 𝑥 (𝑘)
𝑓 𝑥 ≈ 𝑞𝑘 𝑥 = 𝑥 (𝑘+1) = 𝑥 (𝑘) − ′′ (𝑘)
𝑓 𝑥
1 2
=𝑓 𝑥 (𝑘) + 𝑥− 𝑥 (𝑘) 𝑓′ 𝑥 (𝑘) + 𝑥 − 𝑥 (𝑘) 𝑓′′(𝑥 (𝑘) )
2
Exemple : Methode de Newton unidimensionnelle
′ 3
1 𝑓 𝑥
min 𝑓 𝑥 = 𝑥 2 − sin 𝑥 𝑥 (4) = 𝑥 (3) − ′′ 3 = 0,7390
x∈ℝ 2 𝑓 𝑥

On a 𝑥 (4) − 𝑥 (3) ≤ 10−5. On arrête le processus.


Point départ : 𝑥 (0) = 0,5
Comme 𝑓 ′ 𝑥 4
= −8,6 × 10−6 ≈ 0 et 𝑓 ′′ 𝑥 4
=
(𝑘+1) (𝑘) −5
Critère arrêt: 𝑥 −𝑥 ≤ 𝜖 = 10
1,673 > 0, alors on considère 𝑥 ∗ = 𝑥 (4) comme un
𝑓 ′ 𝑥 = 𝑥 − cos 𝑥
minimum.
𝑓 ′′ 𝑥 = 1 + sin 𝑥

𝑓 ′ 𝑥 0
0,5 − cos 0,5
𝑥 (1) = 𝑥 (0) − ′′ 0 = 0,5 − = 0,7552
𝑓 𝑥 1 + sin 0,5

𝑓′ 𝑥 1
𝑥 (2) = 𝑥 (1) − ′′ 1 = 0,7391
𝑓 𝑥

𝑓′ 𝑥 2
𝑥 (3) = 𝑥 (2) − ′′ 2 = 0,7390
𝑓 𝑥
Cas Multidimensionnel (𝒙 ∈ ℝ𝒏 ) sans Contrainte
Problème : 𝑓: ℝ𝑛 → ℝ 𝑥 (0)
𝑓0 > 𝑓1 > 𝑓2
min 𝑓(𝑥)
𝑥∈ℝ𝑛
𝑥 (2)
Quelques Méthodes :
• Méthode du gradient
• Méthode de Newton
• Méthode des directions conjuguées
𝑓0
• Méthode quasi-newtonienne
Focus sur la Méthode du Gradient :
L’idée : la direction d = −𝛻𝑓(𝑥) apporte le plus grand
Le pas 𝛼𝑘 doit apporter le plus grand décroissement de
décroissement local de 𝑓.
𝑓, il est calculé par :
A partir du point 𝑥 (𝑘) , on avance dans la direction
𝑘
𝛼𝑘 = arg min 𝑓(𝑥 − 𝛼𝛻𝑓(𝑥 (𝑘) )
𝛼≥0
− 𝛻𝑓(𝑥 (𝑘) ) avec un pas 𝛼𝑘 pour obtenir le point suivant

𝑥 (𝑘+1) : Théorème : Si 𝑥 (𝑘) 𝑘=0
est la séquence générée par

𝑥 (𝑘+1) = 𝑥 (𝑘) − 𝛼𝑘 𝛻𝑓(𝑥 𝑘 ) l’algorithme du gradient ci-dessus, et 𝛻𝑓 𝑥 (𝑘) ≠ 0 , alors

𝑓 𝑥 (𝑘+1) < 𝑓(𝑥 𝑘 ).


Exemple : Algorithme du Gradient En minimisant 𝑔0 (𝛼) avec une méthode
unidimensionnelle (par exemple Newton vue
4 2 4
min3 𝑓 𝑥 = 𝑥1 − 4 + 𝑥2 − 3 + 4 𝑥3 + 5 précédemment), on obtient :
𝑥∈ℝ
(0) 𝑇 𝛼0 = 3,967 × 10−3
Le point initial 𝑥 = 4, 2, −1
𝛻𝑓 𝑥 = 4 𝑥1 − 4 3 , 2 𝑥2 − 3 , 16 𝑥3 + 5 3 𝑇 Donc 𝑥 (1) = 𝑥 (0) − 𝛼0 𝛻𝑓 𝑥 0
= 4, 2, −1 𝑇
− 3,967 ×

𝛻𝑓(𝑥 0
) = 0, −2, 1024 𝑇 10−3 0, −2, 1024 𝑇
= 4, 2,008, −5,062 𝑇

Calculons 𝑥 (1) : Calculons 𝑥 (2) :


𝛻𝑓(𝑥 1 𝑇
) = 0, −1,984, −0,003875
𝛼0 = arg min 𝑓(𝑥 (0) − 𝛼𝛻𝑓(𝑥 (0) ))
𝛼≥0
𝛼1 = arg min 𝑓(𝑥 (1) − 𝛼𝛻𝑓(𝑥 (1) ))
𝛼≥0
4 0 4
= arg min 𝑓 2 − 𝛼 −2 =𝑓 2 + 2𝛼 4
𝛼≥0
−1 1024 −1 − 1024𝛼 = arg min 𝑓 2,008 + 1,984𝛼
𝛼≥0
= arg 𝑚𝑖𝑛 4 − 4 4
+ 2 + 2𝛼 − 3 2 −5,062 + 0,0038𝛼
𝛼≥0
4 = arg 𝑚𝑖𝑛 4 − 4 4 + 2,008 + 1,984𝛼 − 3 2
+ 4 −1 − 1024𝛼 + 5 𝛼≥0
4
+ 4 −5,062 + 0,0038𝛼 + 5
= arg min 𝑔0 𝛼
𝛼≥0
= arg min 𝑔1 𝛼
𝛼≥0
… suite
Par une méthode unidimensionnelle, appliquée sur la
fonction 𝑔1 on obtient 𝛼1 = 0,5
Donc 𝑥 (2) = 𝑥 (1) − 𝛼1 𝛻𝑓 𝑥 1
= 4, 3, −5,06 𝑇

Calculons 𝑥 (3) :
2 𝑇
𝛻𝑓(𝑥 ) = 0, 0, −0,003525
4
𝛼2 = arg min 0 + 0 + 4 −5,06 + 0,0035𝛼 + 5
𝛼≥0

= arg min 𝑔2 𝛼
𝛼≥0
En minimisant 𝑔2 comme précédemment, on obtient
𝛼2 = 16,29 et

Donc 𝑥 (3) = 𝑥 (2) − 𝛼2 𝛻𝑓 𝑥 2


= 4, 3, −5,002 𝑇

𝑥 (3) − 𝑥 (2) ≤ 𝜖 ∶ Critère d’arrêt atteint


Méthodes d’Optimisation avec Contraintes
Méthodes Directes : Méthodes Indirectes :
• Les contraintes sont prises explicitement en • Approximer le modèle initial par une séquence de
considération. modèle sans contrainte.
• Les solutions intermédiaires sont faisables. • Les solutions intermédiaires ne sont pas
nécessairement faisables.

(0) 𝑥 (0)
𝑥
𝑥∗
𝑥 (1) 𝑥∗
𝑥 (1)
𝛀
𝛀
• La méthode du gradient projeté
• La méthode de Newton
• Sequentiel quadratic programming • Méthodes des pénalités
• Active set methods • Méthodes des barrieres
• Etc. • Etc.
La Méthode des Pénalités
min 𝑓(𝑥) Le PM sans contrainte :
s-a 𝑔𝑗 𝑥 ≤ 0, 𝑗 = 1 ⋯ 𝑝 (1) 𝑞 𝑥, 𝑐 = 𝑓 𝑥 + 𝑐𝑃(𝑥)
Définir une séquence {𝑐𝑘 } tel que 𝑐𝑘 ≥ 0 et 𝑐𝑘+1 > 𝑐𝑘 ,
Principe : ∀𝑘
• Approximer le PM initial par un PM sans contrainte Calculer 𝑥 (𝑘) = arg min 𝑞(𝑥, 𝑐𝑘 )
• Résoudre une séquence de PM sans contrainte Idéalement : {c𝑘 } → ∞ alors : 𝑥 (𝑘) → 𝑥 ∗
• Pénaliser la violation des contraintes Exemple : Ω = a, b ⊂ ℝ
et 𝑐1 = 1, 𝑐2 = 10, 𝑐3 = 100
𝑝
1 2
𝑃 𝑥 = 𝑔𝑗+ (𝑥)
2
𝑗=1


𝑔𝑗+ 𝑥 = max(0, 𝑔𝑗 (𝑥))

Lemme 1: Si 𝑥 (𝑘) = arg min 𝑞(𝑥, 𝑐𝑘 ) et 𝑐𝑘+1 > 𝑐𝑘 alors Théorème : La limite de la séquence {𝑥 (𝑘) } générée par la

• 𝑞 𝑥 𝑘 𝑘+1
, 𝑐𝑘 ≤ 𝑞 𝑥 , 𝑐𝑘+1 méthode des pénalités, est une solution du problème (1).
𝑘
• 𝑃 𝑥 ≥ 𝑃(𝑥 (𝑘+1) )
𝑘 𝑘+1 Algorithme (Méthode des Pénalités):
• 𝑓 𝑥 ≤ 𝑓(𝑥 )

Input : 𝑥 (0) , 𝑐1 , 𝑐2 , ⋯, 𝜖
Lemme 2: Soit 𝑥 la solution optimale du problème
Poser 𝑘 = 0
(𝑘) ∗
(1), alors pour tout 𝑘, on aura 𝑓 𝑥 ≤𝑓 𝑥 .
Tanque 𝑞 𝑥 (𝑘) , 𝑐𝑘 − 𝑓 𝑥 (𝑘) > 𝜖
Preuve :
𝑥 (𝑘+1) = arg min 𝑞(𝑥, 𝑐𝑘 )
𝑘 𝑘
𝑓 𝑥 ≤𝑓 𝑥 + 𝑐𝑘 𝑃(𝑥 (𝑘) )
𝑘 = 𝑘+1
≤𝑓 𝑥∗ + 𝑐𝑘 𝑃(𝑥 ∗ )
Fin Tanque
= 𝑓(𝑥 ∗ )
Output: 𝑥 ∗ = 𝑥 (𝑘)
Exemple
1 2
1 2 1 1
min 𝑓 𝑥 = 𝑥 −3 + 𝑥 −2 𝑞 𝑥, 𝑐 = 𝑥 −3 2
+ 𝑥 −2 2
2 1 2 2 2 1 2 2
s-a −𝑥1 + 𝑥2 ≤ 0
𝑥1 + 𝑥2 ≤ 1 𝑐 2
+ max(0, −𝑥1 + 𝑥2 )
−𝑥2 ≤ 0 2
2 2
+ max(0, 𝑥1 + 𝑥2 − 1) + max(0, −𝑥2 )
On pose 𝑥 (0) = (3, 2) (cette solution viole la contrainte
f=4 f=2 𝑥1 + 𝑥2 ≤ 1)
Au point 𝑥 (0) :

1 2
1 2
𝑐 2
𝑞 𝑥, 𝑐 = 𝑥 −3 + 𝑥 −2 + 𝑥 + 𝑥2 − 1
−x2 ≤ 0 𝛀 𝑥∗ 2 1 2 2 2 1
2𝑐+3
2𝑐+1
𝛻𝑥 𝑞 𝑥, 𝑐 = 0 ⟹ 𝑥 𝑐 = 2
2𝑐+1

𝑥 ∗ = 1, 0 𝑇 , 𝑓(𝑥 ∗ ) = 4
suite …
Calculons 𝑥 (𝑘) pour différents 𝑐𝑘 : Au passage, calculons aussi :
𝑘 𝑐𝑘 𝑥 (𝑘) 𝑘 𝒇(𝒙𝒌 ) 𝒑(𝒙(𝒌) ) 𝒒(𝒙(𝒌) )
1 1 𝑥 (1) = 1.6667 0.6667 𝑇 1 1.7778 1.7778 3.5556
2 10 𝑥 (2) = 1.0952 0.0952 𝑇 2 3.6281 0.0363 3.9909
3 100 𝑥 (3) = 1.0100 0.0100 𝑇 3 3.9603 3.9603e-04 3.9999
4 1000 𝑥 (4) = 1.0010 0.0010 𝑇 4 3.9960 3.9960e-06 4.0000

1 Ceci montre que les conditions des


Lorsque 𝑐𝑘 → ∞ on aura 𝑥 (𝑘) → 𝑥 ∗ =
0 Lemmes 1 et 2 sont vérifiées :
𝑘 𝑘+1
• 𝑞 𝑥 , 𝑐𝑘 ≤ 𝑞 𝑥 , 𝑐𝑘+1

• 𝑃 𝑥 𝑘 ≥ 𝑃(𝑥 (𝑘+1) )

• 𝑓 𝑥 𝑘 ≤ 𝑓(𝑥 𝑘+1 )

𝛀 o 𝑓 𝑥 (𝑘) ≤ 𝑓 𝑥 ∗ .
Méthode du Gradient Projeté
Principe : A partir de 𝑥 (𝑘) ∈ Ω, suivre la direction
Dans ce cas, Ω est une « boité » de ℝ𝑛
descendante du gradient −𝛻𝑓(𝑥 (𝑘) ) pour obtenir un
nouveau point 𝑦 (𝑘+1)
𝑦 (k+1) = 𝑥 (𝑘) − 𝛼𝑘 𝛻𝑓(𝑥 (𝑘) )
ΠΩ
Cependant si 𝑦 (k+1) ∉ Ω, alors il faudra le projeter sur Ω
à l’aide d’un operateur de projection ΠΩ ⋅ : 𝑥 (𝑘+1)
𝑥 (k+1) = ΠΩ 𝑦 (k+1) 𝑥 (𝑘)
pour avoir 𝑥 (k+1) ∈ Ω 𝛀

 Cas 1: PM avec des contraintes de bornes sur les


L’opérateur de projection dans ce cas est :
variables 𝑥𝑖 :
𝑎𝑖 , 𝑦𝑖 < 𝑎𝑖
Π(𝑦𝑖 ) = 𝑦𝑖 , 𝑎𝑖 ≤ 𝑦𝑖 ≤ 𝑏𝑖
min 𝑓(𝑥) 𝑏𝑖 , 𝑦𝑖 > 𝑏𝑖
s-a 𝑎𝑖 ≤ 𝑥𝑖 ≤ 𝑏𝑖 , 𝑖 = 1 ⋯ 𝑛
Méthode du Gradient Projeté (suite)
Cas 2 : PM avec des contraintes d’égalité Le point obtenu par le gradient projeté :
min 𝑓(𝑥) 𝑥 𝑘+1 = ΠΩ 𝑥 𝑘 − 𝛼𝑘 𝛻𝑓(𝑥 (𝑘) )
s-a 𝐴𝑥 = 𝑏 (2)
avec :
𝐴 ∈ ℝ𝑚×𝑛 , 𝑚 < 𝑛, 𝑟𝑎𝑛𝑔 𝐴 = 𝑚. ΠΩ 𝑥 𝑘
− 𝛼𝑘 𝛻𝑓(𝑥 (𝑘) ) = 𝑥 (𝑘) − 𝛼𝑘 𝑷𝛻(𝑥 𝑘
)
• La structure de Ω = {𝑥 ∈ ℝ𝑛 : 𝐴𝑥 = 𝑏} permet de
calculer un opérateur de projection ΠΩ (. )
ΠΩ (⋅)
• ΠΩ (. ) est défini à l’aide de la matrice de projection
orthogonale : 𝑥 (𝑘+1)

𝑃 = 𝐼 − 𝐴𝑇 𝐴𝐴𝑇 −1 𝐴 𝑥 (𝑘)

La matrice 𝑃 vérifie 𝛀
1. 𝑃 = 𝑃𝑇
2. 𝑃2 = 𝑃 Lemme : Si 𝑥 (0) est faisable, alors la méthode du gradient
projeté produit des points 𝑥 (𝑘) faisables c-à-d 𝐴𝑥 (𝑘) = 𝑏,
𝑘 = 1,2 ⋯
Méthode de Newton avec Contrainte
Rappel : Formule de Taylor pour 𝑥 ∈ ℝ𝑛 : 𝜆 ∈ ℝ𝑚 : multiplicateurs de Lagrange
1
𝑓 𝑥 + 𝑑 ≈ 𝑓 𝑥 + 𝑑 𝑇 𝛻𝑓 𝑥 + 𝑑 𝑇 𝐻(𝑥)𝑑 Appliquer la méthode de Newton, avec :
2
où H x = 𝛻 2 𝑓 𝑥 (hessien de 𝑓) • 𝑥 (0) : doit être faisable (∈ Ω)

Pour minimiser 𝑓 𝑥 + 𝑑 suivant la direction 𝑑, on annule • le nouveau point 𝑥 (𝑘+1) = 𝑥 (𝑘) + 𝑑 (𝑘) doit rester

son gradient, soit 𝛻d 𝑓 𝑥 + 𝑑 = 0 faisable.

⟹ 𝛻𝑓 𝑥 + 𝐻 𝑥 𝑑 = 0 Lemme : Pour que 𝑥 (𝑘+1) soit faisable c-à-d 𝐴𝑥 (𝑘+1) =

⟹ d = −𝐻 −1 𝑥 𝛻𝑓 𝑥 𝑏 on doit avoir 𝐴𝑑 (𝑘) = 0 .


Ici, considérons le PM : Preuve : Soit 𝐴𝑥 (𝑘+1) = 𝑏
𝑘 𝑘
⟹ 𝐴(𝑥 +𝑑 ) = 𝑏,
min 𝑓(𝑥)
s-a 𝐴𝑥 = 𝑏 (2) ⟹ 𝐴𝑥 𝑘 + 𝐴𝑑 𝑘 = 𝑏,
𝑓 convexe et 2 fois différentiable. ⟹ 𝑏 + 𝐴𝑑 𝑘 = 𝑏,
Conditions d’optimalité (théorème de Lagrange): ⟹ 𝐴𝑑 𝑘 = 0.
𝛻𝑓 𝑥 ∗ + 𝜆𝑇 𝐴 = 0
𝐴𝑥 ∗ =𝑏

Le pas 𝑑 (𝑘) de la méthode de Newton est déterminé par
la résolution du système :

𝛻𝑓 𝑥 (𝑘) + 𝑑 (𝑘) + 𝜆 𝑘 𝑇 𝐴 = 0
𝐴(𝑥 (𝑘) + 𝑑 (𝑘) ) =𝑏
Algorithme (Newton avec contrainte)
Input : 𝑥 (1) , 𝜖
Poser 𝑘 = 0
Répéter
𝑘 = 𝑘+1
Calculer 𝑑 (𝑘) (en résolvant le système ci-dessus)
𝑥 (𝑘+1) = 𝑥 (𝑘) + 𝑑 (𝑘)
Jusqu’à 𝑓 𝑥 (𝑘+1) − 𝑓 𝑥 (𝑘) ≤ 𝜖
Output : 𝑥 ∗ = 𝑥 (𝑘)